diff --git a/core/includes/theme.inc b/core/includes/theme.inc index 069b497..e78f6fd 100644 --- a/core/includes/theme.inc +++ b/core/includes/theme.inc @@ -368,17 +368,11 @@ function list_themes($refresh = FALSE) { $list = array(); // Extract from the database only when it is available. // Also check that the site is not in the middle of an install or update. - if (!defined('MAINTENANCE_MODE')) { - try { - $themes = system_list('theme'); - } - catch (Exception $e) { - // If the database is not available, rebuild the theme data. - $themes = _system_rebuild_theme_data(); - } + try { + $themes = system_list('theme'); } - else { - // Scan the installation when the database should not be read. + catch (Exception $e) { + // If the database is not available, rebuild the theme data. $themes = _system_rebuild_theme_data(); } diff --git a/core/modules/breakpoint/breakpoint.install b/core/modules/breakpoint/breakpoint.install deleted file mode 100644 index 7ee2603..0000000 --- a/core/modules/breakpoint/breakpoint.install +++ /dev/null @@ -1,20 +0,0 @@ -status;}); - _breakpoint_theme_enabled(array_keys($themes)); - - // Import breakpoints from modules. - _breakpoint_modules_installed(array_keys(\Drupal::moduleHandler()->getModuleList())); -} diff --git a/core/modules/breakpoint/breakpoint.module b/core/modules/breakpoint/breakpoint.module index d502691..a2450f9 100644 --- a/core/modules/breakpoint/breakpoint.module +++ b/core/modules/breakpoint/breakpoint.module @@ -34,20 +34,6 @@ function breakpoint_help($path, $arg) { } /** - * Implements hook_themes_enabled(). - * - * @param array $theme_list - * An array of theme names. - * - * @see _breakpoint_theme_enabled() - * - * @todo: This should be removed if https://drupal.org/node/1813110 is resolved. - */ -function breakpoint_themes_enabled($theme_list) { - _breakpoint_theme_enabled($theme_list); -} - -/** * Implements hook_themes_disabled(). * * @param array $theme_list @@ -62,20 +48,6 @@ function breakpoint_themes_disabled($theme_list) { } /** - * Implements hook_modules_installed(). - * - * @param array $modules - * An array of the modules that were enabled. - * - * @see _breakpoint_modules_enabled() - * - * @todo: This should be removed if https://drupal.org/node/1813110 is resolved. - */ -function breakpoint_modules_installed($modules) { - _breakpoint_modules_installed($modules); -} - -/** * Implements hook_modules_uninstalled(). * * @param array $modules @@ -90,91 +62,6 @@ function breakpoint_modules_uninstalled($modules) { } /** - * Import breakpoints from all new enabled themes. - * - * @param array $theme_list - * An array of theme names. - */ -function _breakpoint_theme_enabled($theme_list) { - $themes = list_themes(); - foreach ($theme_list as $theme_key) { - $media_queries = breakpoint_get_theme_media_queries($theme_key); - _breakpoint_import_media_queries($theme_key, $themes[$theme_key]->info['name'], Breakpoint::SOURCE_TYPE_THEME, $media_queries); - // Import custom groups. - _breakpoint_import_breakpoint_groups($theme_key, Breakpoint::SOURCE_TYPE_THEME); - } -} - -/** - * Import breakpoints from all new installed modules. - * - * @param array $modules - * An array of the modules that were installed. - */ -function _breakpoint_modules_installed($modules) { - foreach ($modules as $module) { - $media_queries = breakpoint_get_module_media_queries($module); - _breakpoint_import_media_queries($module, $module, Breakpoint::SOURCE_TYPE_MODULE, $media_queries); - // Import custom groups. - _breakpoint_import_breakpoint_groups($module, Breakpoint::SOURCE_TYPE_MODULE); - } -} - -/** - * Import media queries from a theme or module and create a default group. - * - * @param string $group_name - * Machine readable name of the breakpoint group. - * @param string $label - * Human readable name of the breakpoint group. - * @param string $source_type - * Either Breakpoint::SOURCE_TYPE_THEME or Breakpoint::SOURCE_TYPE_MODULE. - * @param array $media_queries - * An array of breakpoints in the form $breakpoint['name'] = 'media query'. - */ -function _breakpoint_import_media_queries($group_name, $label, $source_type, $media_queries) { - if (!empty($media_queries)) { - // Create a new breakpoint group if it doesn't exist. - $breakpoint_group = _breakpoint_group_create_or_load($group_name, $label, $group_name, $source_type); - - // Load all media queries, create a breakpoint for each one and add them - // to this breakpoint group. - foreach ($media_queries as $name => $media_query) { - $breakpoint_group->addBreakpointFromMediaQuery($name, $media_query); - } - - $breakpoint_group->save(); - } -} - -/** - * Import breakpoint groups from theme or module. - * - * @param string $source - * The theme or module name - * @param string $source_type - * Either Breakpoint::SOURCE_TYPE_THEME or Breakpoint::SOURCE_TYPE_MODULE. - */ -function _breakpoint_import_breakpoint_groups($source, $source_type) { - $breakpoint_groups = \Drupal::config($source . '.breakpoint_groups'); - if ($breakpoint_groups) { - foreach ($breakpoint_groups->get() as $group_name => $data) { - // Breakpoints is mandatory, extra check since this is coming from config. - if (isset($data['breakpoints']) && !empty($data['breakpoints'])) { - // Create a new breakpoint group if it doesn't exist. - $breakpoint_group = _breakpoint_group_create_or_load($group_name, isset($data['label']) ? $data['label'] : $group_name, $source, $source_type); - // Add the breakpoints. - $breakpoint_group->addBreakpoints($data['breakpoints']); - $breakpoint_group->save(); - } - else { - throw new \Exception('Illegal config file detected.'); - } - } - } -} - -/** * Remove breakpoints from all disabled themes or uninstalled modules. * * The source type has to match the original source type, otherwise the group @@ -246,65 +133,6 @@ function _breakpoint_delete_breakpoint_groups($group_id, $source_type) { } /** - * Get a list of available breakpoints from a specified theme. - * - * @param string $theme_key - * The name of the theme. - * - * @return array - * An array of breakpoints in the form $breakpoint['name'] = 'media query'. - */ -function breakpoint_get_theme_media_queries($theme_key) { - $themes = list_themes(); - if (!isset($themes[$theme_key])) { - throw new \Exception('Illegal theme_key passed.'); - } - - $config = \Drupal::config($theme_key . '.breakpoints'); - if ($config) { - return $config->get(); - } - return array(); -} - -/** - * Get a list of available breakpoints from a specified module. - * - * @param string $module - * The name of the module. - * - * @return array - * An array of breakpoints in the form $breakpoint['name'] = 'media query'. - */ -function breakpoint_get_module_media_queries($module) { - if (!\Drupal::moduleHandler()->moduleExists($module)) { - throw new \Exception('Illegal module name passed.'); - } - - $config = \Drupal::config($module . '.breakpoints'); - if ($config) { - return $config->get(); - } - return array(); -} - -/** - * Load one breakpoint group by its identifier. - * - * @param string $id - * The id of the breakpoint group to load. - * - * @return \Drupal\breakpoint\Entity\BreakpointGroup|null - * The breakpoint group, or NULL if there is no entity with the given id. - * - * @todo Remove this in a follow-up issue. - * @see http://drupal.org/node/1798214 - */ -function breakpoint_group_load($id) { - return entity_load('breakpoint_group', $id); -} - -/** * Load one breakpoint by its identifier. * * @param int $id @@ -351,36 +179,3 @@ function breakpoint_select_options() { asort($options); return $options; } - -/** - * Helper function to easily create/load a breakpoint group. - * - * @param string $name - * Machine readable name of the breakpoint group. - * @param string $label - * Human readable name of the breakpoint group. - * @param string $source - * Machine readable name of the defining theme or module. - * @param string $source_type - * Either Breakpoint::SOURCE_TYPE_THEME or Breakpoint::SOURCE_TYPE_MODULE. - * - * @return \Drupal\breakpoint\Entity\BreakpointGroup - * - * @see _breakpoint_import_media_queries() - * @see _breakpoint_import_breakpoint_groups() - */ -function _breakpoint_group_create_or_load($name, $label, $source, $source_type) { - // Try loading the breakpoint group. - $breakpoint_group = entity_load('breakpoint_group', $source_type . '.' . $source . '.' . $name); - // Create a new breakpoint group if it doesn't exist. - if (!$breakpoint_group) { - // Build a new breakpoint group. - $breakpoint_group = entity_create('breakpoint_group', array( - 'name' => $name, - 'label' => $label, - 'source' => $source, - 'sourceType' => $source_type, - )); - } - return $breakpoint_group; -} diff --git a/core/modules/breakpoint/config/breakpoint.settings.yml b/core/modules/breakpoint/config/breakpoint.settings.yml deleted file mode 100644 index 542675f..0000000 --- a/core/modules/breakpoint/config/breakpoint.settings.yml +++ /dev/null @@ -1,4 +0,0 @@ -multipliers: - - 1x - - 1.5x - - 2x diff --git a/core/modules/breakpoint/config/schema/breakpoint.schema.yml b/core/modules/breakpoint/config/schema/breakpoint.schema.yml index 0f4184e..a2a5d7d 100644 --- a/core/modules/breakpoint/config/schema/breakpoint.schema.yml +++ b/core/modules/breakpoint/config/schema/breakpoint.schema.yml @@ -1,16 +1,4 @@ # Schema for the configuration files of the Breakpoint module. - -breakpoint.settings: - type: mapping - label: 'Breakpoint settings' - mapping: - multipliers: - type: sequence - label: 'Assigning resolution multipliers to breakpoints' - sequence: - - type: string - label: 'Multiplier' - breakpoint.breakpoint.*.*.*: type: mapping label: 'Defines the Breakpoint entity' diff --git a/core/modules/breakpoint/lib/Drupal/breakpoint/BreakpointGroupInterface.php b/core/modules/breakpoint/lib/Drupal/breakpoint/BreakpointGroupInterface.php index 59833ff..3bb877b 100644 --- a/core/modules/breakpoint/lib/Drupal/breakpoint/BreakpointGroupInterface.php +++ b/core/modules/breakpoint/lib/Drupal/breakpoint/BreakpointGroupInterface.php @@ -41,8 +41,30 @@ public function addBreakpointFromMediaQuery($name, $media_query); * The breakpoint name is either the machine_name or the ID of a breakpoint. * * @param array $breakpoints - * Array containing breakpoints keyed by their ID. + * Array containing breakpoint objects + * + * @return \Drupal\breakpoint\Entity\BreakpointGroup + * The breakpoint group object. */ public function addBreakpoints($breakpoints); + /** + * Gets the array of breakpoints for the breakpoint group. + * + * @return array + * The array of breakpoints for the breakpoint group. + */ + public function getBreakpoints(); + + /** + * Gets a breakpoint from the breakpoint group by ID. + * + * @param string $id + * The breakpoint ID to get. + * + * @return \Drupal\breakpoint\Entity\Breakpoint|boolean + * The breakpoint or FALSE if not in the Breakpoint group. + */ + public function getBreakpointById($id); + } diff --git a/core/modules/breakpoint/lib/Drupal/breakpoint/Entity/BreakpointGroup.php b/core/modules/breakpoint/lib/Drupal/breakpoint/Entity/BreakpointGroup.php index 5f32b5e..61c1ea6 100644 --- a/core/modules/breakpoint/lib/Drupal/breakpoint/Entity/BreakpointGroup.php +++ b/core/modules/breakpoint/lib/Drupal/breakpoint/Entity/BreakpointGroup.php @@ -62,14 +62,24 @@ class BreakpointGroup extends ConfigEntityBase implements BreakpointGroupInterfa public $label; /** + * The breakpoint group breakpoint IDs. + * + * @var array + * Array containing all breakpoints IDs of this group. + * + * @see \Drupal\breakpoint\Entity\Breakpoint + */ + protected $breakpoint_ids = array(); + + /** * The breakpoint group breakpoints. * * @var array - * Array containing all breakpoints of this group. + * Array containing all breakpoints objects of this group. * * @see \Drupal\breakpoint\Entity\Breakpoint */ - public $breakpoints = array(); + protected $breakpoints = array(); /** * The breakpoint group source: theme or module name. Use 'user' for @@ -97,7 +107,6 @@ class BreakpointGroup extends ConfigEntityBase implements BreakpointGroupInterfa */ public function __construct(array $values, $entity_type) { parent::__construct($values, $entity_type); - $this->loadAllBreakpoints(); } /** @@ -111,10 +120,7 @@ public function save() { if (empty($this->id)) { $this->id = $this->sourceType . '.' . $this->source . '.' . $this->name; } - // Only save the keys, but return the full objects. - $this->breakpoints = array_keys($this->breakpoints); parent::save(); - $this->loadAllBreakpoints(); } /** @@ -156,47 +162,70 @@ public function addBreakpointFromMediaQuery($name, $media_query) { 'mediaQuery' => $media_query, 'source' => $this->name, 'sourceType' => $this->sourceType, - 'weight' => count($this->breakpoints), + 'weight' => count($this->breakpoint_ids), )); $breakpoint->save(); } - $this->breakpoints[$breakpoint->id()] = $breakpoint; + return $this->addBreakpoints(array($breakpoint)); } /** * {@inheritdoc} */ public function addBreakpoints($breakpoints) { - foreach ($breakpoints as $breakpoint_name) { - // Check if breakpoint exists, assume $breakpoint_name is a machine name. - $breakpoint = entity_load('breakpoint', $this->sourceType . '.' . $this->source . '.' . $breakpoint_name); - // If the breakpoint doesn't exist, assume $breakpoint_name is an id. - if (!$breakpoint) { - $breakpoint = entity_load('breakpoint', $breakpoint_name); - } - // If the breakpoint doesn't exists, do not add it. - if ($breakpoint) { - // Add breakpoint to group. - $this->breakpoints[$breakpoint->id()] = $breakpoint; - } + foreach ($breakpoints as $breakpoint) { + // Add breakpoint to group. + $this->breakpoints[$breakpoint->id()] = $breakpoint; + $this->breakpoint_ids[] = $breakpoint->id(); } + return $this; } /** - * Loads all breakpoints, remove non-existing ones. - * - * @return array - * Array containing breakpoints keyed by their id. - */ - protected function loadAllBreakpoints() { - $breakpoints = $this->breakpoints; - $this->breakpoints = array(); - foreach ($breakpoints as $breakpoint_id) { - $breakpoint = breakpoint_load($breakpoint_id); - if ($breakpoint) { - $this->breakpoints[$breakpoint_id] = $breakpoint; + * {@inheritdoc} + */ + public function getBreakpoints() { + if (empty($this->breakpoints)) { + foreach ($this->breakpoint_ids as $breakpoint_id) { + $breakpoint = breakpoint_load($breakpoint_id); + if ($breakpoint) { + $this->breakpoints[$breakpoint_id] = $breakpoint; + } } } + return $this->breakpoints; } + /** + * {@inheritdoc} + */ + public function getBreakpointById($id) { + $breakpoints = $this->getBreakpoints(); + if (isset($breakpoints[$id])) { + return $breakpoints[$id]; + } + return FALSE; + } + + /** + * {@inheritdoc} + */ + public function getExportProperties() { + $names = array( + 'id', + 'uuid', + 'name', + 'label', + 'breakpoint_ids', + 'source', + 'sourceType', + 'status', + 'langcode', + ); + $properties = array(); + foreach ($names as $name) { + $properties[$name] = $this->get($name); + } + return $properties; + } } diff --git a/core/modules/breakpoint/lib/Drupal/breakpoint/Tests/BreakpointGroupCRUDTest.php b/core/modules/breakpoint/lib/Drupal/breakpoint/Tests/BreakpointGroupCRUDTest.php index bd5a2a8..e9eeb00 100644 --- a/core/modules/breakpoint/lib/Drupal/breakpoint/Tests/BreakpointGroupCRUDTest.php +++ b/core/modules/breakpoint/lib/Drupal/breakpoint/Tests/BreakpointGroupCRUDTest.php @@ -50,8 +50,7 @@ public function testBreakpointGroupCRUD() { $this->verifyBreakpointGroup($group); // Update the breakpoint group. - $group->breakpoints = array_keys($breakpoints); - $group->save(); + $group->addBreakpoints($breakpoints)->save(); $this->verifyBreakpointGroup($group); // Delete the breakpoint group. diff --git a/core/modules/breakpoint/lib/Drupal/breakpoint/Tests/BreakpointGroupTestBase.php b/core/modules/breakpoint/lib/Drupal/breakpoint/Tests/BreakpointGroupTestBase.php index 0f7e471..95141e3 100644 --- a/core/modules/breakpoint/lib/Drupal/breakpoint/Tests/BreakpointGroupTestBase.php +++ b/core/modules/breakpoint/lib/Drupal/breakpoint/Tests/BreakpointGroupTestBase.php @@ -33,7 +33,6 @@ public function verifyBreakpointGroup(BreakpointGroup $group, BreakpointGroup $c 'label', 'id', 'name', - 'breakpoints', 'sourceType', ); @@ -58,5 +57,8 @@ public function verifyBreakpointGroup(BreakpointGroup $group, BreakpointGroup $c $this->assertEqual($compare_set->{$property}, $group->{$property}, format_string('breakpoint_group_load: Proper %property: %property1 == %property2 for breakpoint group %group.', $t_args), 'Breakpoint API'); } } + + // Ensure that the breakpoint group has the expected breakpoints. + $this->assertEqual(array_keys($compare_set->getBreakpoints()), array_keys($group->getBreakpoints())); } } diff --git a/core/modules/breakpoint/lib/Drupal/breakpoint/Tests/BreakpointThemeTest.php b/core/modules/breakpoint/lib/Drupal/breakpoint/Tests/BreakpointThemeTest.php index e00af05..ed88881 100644 --- a/core/modules/breakpoint/lib/Drupal/breakpoint/Tests/BreakpointThemeTest.php +++ b/core/modules/breakpoint/lib/Drupal/breakpoint/Tests/BreakpointThemeTest.php @@ -47,12 +47,14 @@ public function testThemeBreakpoints() { 'sourceType' => Breakpoint::SOURCE_TYPE_THEME, 'id' => Breakpoint::SOURCE_TYPE_THEME . '.breakpoint_test_theme.breakpoint_test_theme', )); - $breakpoint_group_obj->breakpoints = array( - 'theme.breakpoint_test_theme.mobile' => array(), - 'theme.breakpoint_test_theme.narrow' => array(), - 'theme.breakpoint_test_theme.wide' => array(), - 'theme.breakpoint_test_theme.tv' => array(), - ); + $breakpoint_group_obj->addBreakpoints(entity_load_multiple('breakpoint', + array( + 'theme.breakpoint_test_theme.mobile', + 'theme.breakpoint_test_theme.narrow', + 'theme.breakpoint_test_theme.wide', + 'theme.breakpoint_test_theme.tv', + ) + )); // Verify we can load this breakpoint defined by the theme. $this->verifyBreakpointGroup($breakpoint_group_obj); @@ -74,11 +76,13 @@ public function testThemeBreakpointGroup() { 'source' => 'breakpoint_test_theme', 'id' => Breakpoint::SOURCE_TYPE_THEME . '.breakpoint_test_theme.test', )); - $breakpoint_group_obj->breakpoints = array( - 'theme.breakpoint_test_theme.mobile' => array('1.5x', '2.x'), - 'theme.breakpoint_test_theme.narrow' => array(), - 'theme.breakpoint_test_theme.wide' => array(), - ); + $breakpoint_group_obj->addBreakpoints(entity_load_multiple('breakpoint', + array( + 'theme.breakpoint_test_theme.mobile', + 'theme.breakpoint_test_theme.narrow', + 'theme.breakpoint_test_theme.wide', + ) + )); // Verify we can load this breakpoint defined by the theme. $this->verifyBreakpointGroup($breakpoint_group_obj); @@ -88,39 +92,4 @@ public function testThemeBreakpointGroup() { $this->assertFalse(entity_load('breakpoint_group', $breakpoint_group_obj->id()), 'breakpoint_group_load: Loading a deleted breakpoint group returns false.', 'Breakpoint API'); } - /** - * Test the breakpoints defined by the custom group in the module. - */ - public function testThemeBreakpointGroupModule() { - // Call the import manually, since the testbot needs to enable the module - // first, otherwise the theme isn't detected. - _breakpoint_import_breakpoint_groups('breakpoint_theme_test', Breakpoint::SOURCE_TYPE_MODULE); - - // Verify the breakpoint group 'module_test' was created by - // breakpoint_theme_test module. - $breakpoint_group_obj = entity_create('breakpoint_group', array( - 'label' => 'Test Module', - 'name' => 'module_test', - 'sourceType' => Breakpoint::SOURCE_TYPE_MODULE, - 'source' => 'breakpoint_theme_test', - 'id' => Breakpoint::SOURCE_TYPE_MODULE . '.breakpoint_theme_test.module_test', - )); - $breakpoint_group_obj->breakpoints = array( - 'theme.breakpoint_test_theme.mobile' => array(), - 'theme.breakpoint_test_theme.narrow' => array(), - 'theme.breakpoint_test_theme.wide' => array(), - ); - - // Verify we can load this breakpoint defined by the theme. - $this->verifyBreakpointGroup($breakpoint_group_obj); - - // Disable the test theme and verify the breakpoint group still exists. - theme_disable(array('breakpoint_test_theme')); - $this->assertTrue(entity_load('breakpoint_group', $breakpoint_group_obj->id()), 'Breakpoint group still exists if theme is disabled.'); - - // Uninstall the test module and verify the breakpoint group is deleted. - module_uninstall(array('breakpoint_theme_test')); - $this->assertFalse(entity_load('breakpoint_group', $breakpoint_group_obj->id()), 'Breakpoint group is removed if module is uninstalled.'); - } - } diff --git a/core/modules/breakpoint/tests/config/breakpoint_theme_test.breakpoint_groups.yml b/core/modules/breakpoint/tests/config/breakpoint_theme_test.breakpoint_groups.yml deleted file mode 100644 index 4e3e6f0..0000000 --- a/core/modules/breakpoint/tests/config/breakpoint_theme_test.breakpoint_groups.yml +++ /dev/null @@ -1,6 +0,0 @@ -module_test: - label: Test Module - breakpoints: - - theme.breakpoint_test_theme.mobile - - theme.breakpoint_test_theme.narrow - - theme.breakpoint_test_theme.wide diff --git a/core/modules/breakpoint/tests/themes/breakpoint_test_theme/config/breakpoint.breakpoint.theme.breakpoint_test_theme.mobile.yml b/core/modules/breakpoint/tests/themes/breakpoint_test_theme/config/breakpoint.breakpoint.theme.breakpoint_test_theme.mobile.yml new file mode 100644 index 0000000..3f30595 --- /dev/null +++ b/core/modules/breakpoint/tests/themes/breakpoint_test_theme/config/breakpoint.breakpoint.theme.breakpoint_test_theme.mobile.yml @@ -0,0 +1,12 @@ +id: theme.breakpoint_test_theme.mobile +uuid: 3ae8bfe6-496b-478c-a811-17424038f49c +name: mobile +label: mobile +mediaQuery: '(min-width: 0px)' +source: breakpoint_test_theme +sourceType: theme +weight: 0 +multipliers: + 1x: 1x +status: true +langcode: en diff --git a/core/modules/breakpoint/tests/themes/breakpoint_test_theme/config/breakpoint.breakpoint.theme.breakpoint_test_theme.narrow.yml b/core/modules/breakpoint/tests/themes/breakpoint_test_theme/config/breakpoint.breakpoint.theme.breakpoint_test_theme.narrow.yml new file mode 100644 index 0000000..e0773e3 --- /dev/null +++ b/core/modules/breakpoint/tests/themes/breakpoint_test_theme/config/breakpoint.breakpoint.theme.breakpoint_test_theme.narrow.yml @@ -0,0 +1,12 @@ +id: theme.breakpoint_test_theme.narrow +uuid: 1d791b4a-7ccf-4c93-a800-c2bc2594cc62 +name: narrow +label: narrow +mediaQuery: '(min-width: 560px)' +source: breakpoint_test_theme +sourceType: theme +weight: 1 +multipliers: + 1x: 1x +status: true +langcode: en diff --git a/core/modules/breakpoint/tests/themes/breakpoint_test_theme/config/breakpoint.breakpoint.theme.breakpoint_test_theme.tv.yml b/core/modules/breakpoint/tests/themes/breakpoint_test_theme/config/breakpoint.breakpoint.theme.breakpoint_test_theme.tv.yml new file mode 100644 index 0000000..9f4d189 --- /dev/null +++ b/core/modules/breakpoint/tests/themes/breakpoint_test_theme/config/breakpoint.breakpoint.theme.breakpoint_test_theme.tv.yml @@ -0,0 +1,12 @@ +id: theme.breakpoint_test_theme.tv +uuid: e0ffa737-0570-4891-9809-9bce925673ca +name: tv +label: tv +mediaQuery: 'only screen and (min-width: 3456px)' +source: breakpoint_test_theme +sourceType: theme +weight: 3 +multipliers: + 1x: 1x +status: true +langcode: en diff --git a/core/modules/breakpoint/tests/themes/breakpoint_test_theme/config/breakpoint.breakpoint.theme.breakpoint_test_theme.wide.yml b/core/modules/breakpoint/tests/themes/breakpoint_test_theme/config/breakpoint.breakpoint.theme.breakpoint_test_theme.wide.yml new file mode 100644 index 0000000..112a8e6 --- /dev/null +++ b/core/modules/breakpoint/tests/themes/breakpoint_test_theme/config/breakpoint.breakpoint.theme.breakpoint_test_theme.wide.yml @@ -0,0 +1,12 @@ +id: theme.breakpoint_test_theme.wide +uuid: 1561574d-99f8-48a6-b304-4e2b617673b2 +name: wide +label: wide +mediaQuery: '(min-width: 851px)' +source: breakpoint_test_theme +sourceType: theme +weight: 2 +multipliers: + 1x: 1x +status: true +langcode: en diff --git a/core/modules/breakpoint/tests/themes/breakpoint_test_theme/config/breakpoint.breakpoint_group.theme.breakpoint_test_theme.breakpoint_test_theme.yml b/core/modules/breakpoint/tests/themes/breakpoint_test_theme/config/breakpoint.breakpoint_group.theme.breakpoint_test_theme.breakpoint_test_theme.yml new file mode 100644 index 0000000..62ac756 --- /dev/null +++ b/core/modules/breakpoint/tests/themes/breakpoint_test_theme/config/breakpoint.breakpoint_group.theme.breakpoint_test_theme.breakpoint_test_theme.yml @@ -0,0 +1,13 @@ +id: theme.breakpoint_test_theme.breakpoint_test_theme +uuid: 94b96e6e-a032-4b29-8100-efd5bf854fd1 +name: breakpoint_test_theme +label: 'Breakpoint test theme' +breakpoint_ids: + - theme.breakpoint_test_theme.mobile + - theme.breakpoint_test_theme.narrow + - theme.breakpoint_test_theme.wide + - theme.breakpoint_test_theme.tv +source: breakpoint_test_theme +sourceType: theme +status: true +langcode: en diff --git a/core/modules/breakpoint/tests/themes/breakpoint_test_theme/config/breakpoint.breakpoint_group.theme.breakpoint_test_theme.test.yml b/core/modules/breakpoint/tests/themes/breakpoint_test_theme/config/breakpoint.breakpoint_group.theme.breakpoint_test_theme.test.yml new file mode 100644 index 0000000..e185e7f --- /dev/null +++ b/core/modules/breakpoint/tests/themes/breakpoint_test_theme/config/breakpoint.breakpoint_group.theme.breakpoint_test_theme.test.yml @@ -0,0 +1,12 @@ +id: theme.breakpoint_test_theme.test +uuid: fcc25180-7e18-4149-8962-98d706faa59a +name: test +label: 'Test Theme' +breakpoint_ids: + - theme.breakpoint_test_theme.mobile + - theme.breakpoint_test_theme.narrow + - theme.breakpoint_test_theme.wide +source: breakpoint_test_theme +sourceType: theme +status: true +langcode: en diff --git a/core/modules/breakpoint/tests/themes/breakpoint_test_theme/config/breakpoint_test_theme.breakpoint_groups.yml b/core/modules/breakpoint/tests/themes/breakpoint_test_theme/config/breakpoint_test_theme.breakpoint_groups.yml deleted file mode 100644 index bde92d8..0000000 --- a/core/modules/breakpoint/tests/themes/breakpoint_test_theme/config/breakpoint_test_theme.breakpoint_groups.yml +++ /dev/null @@ -1,6 +0,0 @@ -test: - label: Test Theme - breakpoints: - - mobile - - narrow - - wide diff --git a/core/modules/breakpoint/tests/themes/breakpoint_test_theme/config/breakpoint_test_theme.breakpoints.yml b/core/modules/breakpoint/tests/themes/breakpoint_test_theme/config/breakpoint_test_theme.breakpoints.yml deleted file mode 100644 index 534fbf5..0000000 --- a/core/modules/breakpoint/tests/themes/breakpoint_test_theme/config/breakpoint_test_theme.breakpoints.yml +++ /dev/null @@ -1,4 +0,0 @@ -mobile: '(min-width: 0px)' -narrow: '(min-width: 560px)' -wide: '(min-width: 851px)' -tv: 'only screen and (min-width: 3456px)' diff --git a/core/modules/picture/lib/Drupal/picture/Entity/PictureMapping.php b/core/modules/picture/lib/Drupal/picture/Entity/PictureMapping.php index 0f056a9..e6ce436 100644 --- a/core/modules/picture/lib/Drupal/picture/Entity/PictureMapping.php +++ b/core/modules/picture/lib/Drupal/picture/Entity/PictureMapping.php @@ -128,7 +128,7 @@ protected function loadAllMappings() { $loaded_mappings = $this->mappings; $this->mappings = array(); if ($this->breakpointGroup) { - foreach ($this->breakpointGroup->breakpoints as $breakpoint_id => $breakpoint) { + foreach ($this->breakpointGroup->getBreakpoints() as $breakpoint_id => $breakpoint) { // Get the mapping for the default multiplier. $this->mappings[$breakpoint_id]['1x'] = ''; if (isset($loaded_mappings[$breakpoint_id]['1x'])) { diff --git a/core/modules/picture/lib/Drupal/picture/PictureMappingFormController.php b/core/modules/picture/lib/Drupal/picture/PictureMappingFormController.php index 00f5b9f..5651ef9 100644 --- a/core/modules/picture/lib/Drupal/picture/PictureMappingFormController.php +++ b/core/modules/picture/lib/Drupal/picture/PictureMappingFormController.php @@ -73,7 +73,8 @@ public function form(array $form, array &$form_state) { $image_styles = image_style_options(TRUE); foreach ($picture_mapping->mappings as $breakpoint_id => $mapping) { foreach ($mapping as $multiplier => $image_style) { - $label = $multiplier . ' ' . $picture_mapping->breakpointGroup->breakpoints[$breakpoint_id]->name . ' [' . $picture_mapping->breakpointGroup->breakpoints[$breakpoint_id]->mediaQuery . ']'; + $breakpoint = $picture_mapping->breakpointGroup->getBreakpointById($breakpoint_id); + $label = $multiplier . ' ' . $breakpoint->name . ' [' . $breakpoint->mediaQuery . ']'; $form['mappings'][$breakpoint_id][$multiplier] = array( '#type' => 'select', '#title' => check_plain($label), diff --git a/core/modules/picture/lib/Drupal/picture/Plugin/Field/FieldFormatter/PictureFormatter.php b/core/modules/picture/lib/Drupal/picture/Plugin/Field/FieldFormatter/PictureFormatter.php index f34b37a..a28e5fb 100644 --- a/core/modules/picture/lib/Drupal/picture/Plugin/Field/FieldFormatter/PictureFormatter.php +++ b/core/modules/picture/lib/Drupal/picture/Plugin/Field/FieldFormatter/PictureFormatter.php @@ -133,9 +133,8 @@ public function viewElements(FieldItemListInterface $items) { // Make sure that the breakpoint exists and is enabled. // @todo add the following when breakpoint->status is added again: // $picture_mapping->breakpointGroup->breakpoints[$breakpoint_name]->status - if (isset($picture_mapping->breakpointGroup->breakpoints[$breakpoint_name])) { - $breakpoint = $picture_mapping->breakpointGroup->breakpoints[$breakpoint_name]; - + $breakpoint = $picture_mapping->breakpointGroup->getBreakpointById($breakpoint_name); + if ($breakpoint) { // Determine the enabled multipliers. $multipliers = array_intersect_key($multipliers, $breakpoint->multipliers); foreach ($multipliers as $multiplier => $image_style) { diff --git a/core/modules/picture/lib/Drupal/picture/Tests/PictureAdminUITest.php b/core/modules/picture/lib/Drupal/picture/Tests/PictureAdminUITest.php index b023fe5..3b908db 100644 --- a/core/modules/picture/lib/Drupal/picture/Tests/PictureAdminUITest.php +++ b/core/modules/picture/lib/Drupal/picture/Tests/PictureAdminUITest.php @@ -67,7 +67,7 @@ public function setUp() { ), )); $breakpoint->save(); - $breakpoint_group->breakpoints[$breakpoint->id()] = $breakpoint; + $breakpoint_group->addBreakpoints(array($breakpoint)); } $breakpoint_group->save(); diff --git a/core/modules/picture/lib/Drupal/picture/Tests/PictureFieldDisplayTest.php b/core/modules/picture/lib/Drupal/picture/Tests/PictureFieldDisplayTest.php index c19b63c..7c11a6f 100644 --- a/core/modules/picture/lib/Drupal/picture/Tests/PictureFieldDisplayTest.php +++ b/core/modules/picture/lib/Drupal/picture/Tests/PictureFieldDisplayTest.php @@ -77,7 +77,7 @@ public function setUp() { ), )); $breakpoint->save(); - $breakpoint_group->breakpoints[$breakpoint->id()] = $breakpoint; + $breakpoint_group->addBreakpoints(array($breakpoint)); } $breakpoint_group->save(); diff --git a/core/modules/toolbar/config/breakpoint.breakpoint.module.toolbar.narrow.yml b/core/modules/toolbar/config/breakpoint.breakpoint.module.toolbar.narrow.yml new file mode 100644 index 0000000..742e76f --- /dev/null +++ b/core/modules/toolbar/config/breakpoint.breakpoint.module.toolbar.narrow.yml @@ -0,0 +1,12 @@ +id: module.toolbar.narrow +uuid: cb5e5f7c-b443-4d0b-ae5e-948ba336a0cb +name: narrow +label: narrow +mediaQuery: 'only screen and (min-width: 16.5em)' +source: toolbar +sourceType: module +weight: 0 +multipliers: + 1x: 1x +status: true +langcode: en diff --git a/core/modules/toolbar/config/breakpoint.breakpoint.module.toolbar.standard.yml b/core/modules/toolbar/config/breakpoint.breakpoint.module.toolbar.standard.yml new file mode 100644 index 0000000..e5c5c33 --- /dev/null +++ b/core/modules/toolbar/config/breakpoint.breakpoint.module.toolbar.standard.yml @@ -0,0 +1,12 @@ +id: module.toolbar.standard +uuid: 19981d7a-2dc3-4b3f-be00-a4d8a7c12c07 +name: standard +label: standard +mediaQuery: 'only screen and (min-width: 38.125em)' +source: toolbar +sourceType: module +weight: 1 +multipliers: + 1x: 1x +status: true +langcode: en diff --git a/core/modules/toolbar/config/breakpoint.breakpoint.module.toolbar.wide.yml b/core/modules/toolbar/config/breakpoint.breakpoint.module.toolbar.wide.yml new file mode 100644 index 0000000..ab5ed2f --- /dev/null +++ b/core/modules/toolbar/config/breakpoint.breakpoint.module.toolbar.wide.yml @@ -0,0 +1,12 @@ +id: module.toolbar.wide +uuid: 8797545b-0b39-493d-8c00-b4ae721bf447 +name: wide +label: wide +mediaQuery: 'only screen and (min-width: 52em)' +source: toolbar +sourceType: module +weight: 2 +multipliers: + 1x: 1x +status: true +langcode: en diff --git a/core/modules/toolbar/config/breakpoint.breakpoint_group.module.toolbar.toolbar.yml b/core/modules/toolbar/config/breakpoint.breakpoint_group.module.toolbar.toolbar.yml new file mode 100644 index 0000000..4d09153 --- /dev/null +++ b/core/modules/toolbar/config/breakpoint.breakpoint_group.module.toolbar.toolbar.yml @@ -0,0 +1,12 @@ +id: module.toolbar.toolbar +uuid: 03945598-b3ae-4ea7-ad25-375b52f6f0a4 +name: toolbar +label: toolbar +breakpoint_ids: + - module.toolbar.narrow + - module.toolbar.standard + - module.toolbar.wide +source: toolbar +sourceType: module +status: true +langcode: en diff --git a/core/modules/toolbar/config/schema/toolbar.schema.yml b/core/modules/toolbar/config/schema/toolbar.schema.yml deleted file mode 100644 index c0949f2..0000000 --- a/core/modules/toolbar/config/schema/toolbar.schema.yml +++ /dev/null @@ -1,25 +0,0 @@ -# Schema for the configuration files of the toolbar module. - -toolbar.settings: - type: mapping - label: 'Toolbar settings' - mapping: - breakpoints: - type: sequence - label: 'Breakpoints' - sequence: - - type: string - -toolbar.breakpoints: - type: mapping - label: 'Toolbar breakpoint settings' - mapping: - narrow: - type: string - label: 'Narrow' - standard: - type: string - label: 'Standard' - wide: - type: string - label: 'Wide' diff --git a/core/modules/toolbar/config/toolbar.breakpoints.yml b/core/modules/toolbar/config/toolbar.breakpoints.yml deleted file mode 100644 index 74b318e..0000000 --- a/core/modules/toolbar/config/toolbar.breakpoints.yml +++ /dev/null @@ -1,3 +0,0 @@ -narrow: 'only screen and (min-width: 16.5em)' -standard: 'only screen and (min-width: 38.125em)' -wide: 'only screen and (min-width: 52em)' diff --git a/core/modules/toolbar/config/toolbar.settings.yml b/core/modules/toolbar/config/toolbar.settings.yml deleted file mode 100644 index 1f2de55..0000000 --- a/core/modules/toolbar/config/toolbar.settings.yml +++ /dev/null @@ -1,4 +0,0 @@ -breakpoints: - - module.toolbar.narrow - - module.toolbar.standard - - module.toolbar.wide diff --git a/core/modules/toolbar/toolbar.module b/core/modules/toolbar/toolbar.module index 85bfafa..45610c1 100644 --- a/core/modules/toolbar/toolbar.module +++ b/core/modules/toolbar/toolbar.module @@ -192,7 +192,7 @@ function toolbar_pre_render($element) { function ($object) { return $object->mediaQuery; }, - $breakpoints->breakpoints + $breakpoints->getBreakpoints() ); $element['#attached']['js'][] = array( diff --git a/core/themes/bartik/config/bartik.breakpoints.yml b/core/themes/bartik/config/bartik.breakpoints.yml deleted file mode 100644 index 501f417..0000000 --- a/core/themes/bartik/config/bartik.breakpoints.yml +++ /dev/null @@ -1,3 +0,0 @@ -mobile: '(min-width: 0px)' -narrow: 'all and (min-width: 560px) and (max-width: 850px)' -wide: 'all and (min-width: 851px)' diff --git a/core/themes/bartik/config/breakpoint.breakpoint.theme.bartik.mobile.yml b/core/themes/bartik/config/breakpoint.breakpoint.theme.bartik.mobile.yml new file mode 100644 index 0000000..99740ce --- /dev/null +++ b/core/themes/bartik/config/breakpoint.breakpoint.theme.bartik.mobile.yml @@ -0,0 +1,12 @@ +id: theme.bartik.mobile +uuid: 676e11ac-c254-415a-881c-28786167ed69 +name: mobile +label: mobile +mediaQuery: '(min-width: 0px)' +source: bartik +sourceType: theme +weight: 0 +multipliers: + 1x: 1x +status: true +langcode: en diff --git a/core/themes/bartik/config/breakpoint.breakpoint.theme.bartik.narrow.yml b/core/themes/bartik/config/breakpoint.breakpoint.theme.bartik.narrow.yml new file mode 100644 index 0000000..26597ae --- /dev/null +++ b/core/themes/bartik/config/breakpoint.breakpoint.theme.bartik.narrow.yml @@ -0,0 +1,12 @@ +id: theme.bartik.narrow +uuid: da7ce8eb-f006-4a2f-8557-87ac4f62d5cd +name: narrow +label: narrow +mediaQuery: 'all and (min-width: 560px) and (max-width: 850px)' +source: bartik +sourceType: theme +weight: 1 +multipliers: + 1x: 1x +status: true +langcode: en diff --git a/core/themes/bartik/config/breakpoint.breakpoint.theme.bartik.wide.yml b/core/themes/bartik/config/breakpoint.breakpoint.theme.bartik.wide.yml new file mode 100644 index 0000000..90b38db --- /dev/null +++ b/core/themes/bartik/config/breakpoint.breakpoint.theme.bartik.wide.yml @@ -0,0 +1,12 @@ +id: theme.bartik.wide +uuid: 42288274-fd42-49cc-bb0d-131c13e2b46b +name: wide +label: wide +mediaQuery: 'all and (min-width: 851px)' +source: bartik +sourceType: theme +weight: 2 +multipliers: + 1x: 1x +status: true +langcode: en diff --git a/core/themes/bartik/config/breakpoint.breakpoint_group.theme.bartik.bartik.yml b/core/themes/bartik/config/breakpoint.breakpoint_group.theme.bartik.bartik.yml new file mode 100644 index 0000000..9ae2b82 --- /dev/null +++ b/core/themes/bartik/config/breakpoint.breakpoint_group.theme.bartik.bartik.yml @@ -0,0 +1,12 @@ +id: theme.bartik.bartik +uuid: 7f6492dc-028c-47e9-bb00-c280cc21586c +name: bartik +label: Bartik +breakpoint_ids: + - theme.bartik.mobile + - theme.bartik.narrow + - theme.bartik.wide +source: bartik +sourceType: theme +status: true +langcode: en