diff --git a/core/modules/image/image.admin.inc b/core/modules/image/image.admin.inc index 851b009..7aee6fb 100644 --- a/core/modules/image/image.admin.inc +++ b/core/modules/image/image.admin.inc @@ -9,18 +9,7 @@ * Menu callback; Listing of all current image styles. */ function image_style_list() { - $page = array(); - - $styles = entity_load_multiple('image_style'); - $page['image_style_list'] = array( - '#markup' => theme('image_style_list', array('styles' => $styles)), - '#attached' => array( - 'css' => array(drupal_get_path('module', 'image') . '/image.admin.css' => array()), - ), - ); - - return $page; - + return entity_list_controller('image_style')->render(); } /** @@ -87,12 +76,12 @@ function image_style_form($form, &$form_state, $style) { if (isset($effect['form callback'])) { $links['edit'] = array( 'title' => t('edit'), - 'href' => 'admin/config/media/image-styles/edit/' . $style->id() . '/effects/' . $key, + 'href' => 'admin/config/media/image-styles/manage/' . $style->id() . '/effects/' . $key, ); } $links['delete'] = array( 'title' => t('delete'), - 'href' => 'admin/config/media/image-styles/edit/' . $style->id() . '/effects/' . $key . '/delete', + 'href' => 'admin/config/media/image-styles/manage/' . $style->id() . '/effects/' . $key . '/delete', ); $form['effects'][$key]['operations'] = array( '#type' => 'operations', @@ -101,13 +90,13 @@ function image_style_form($form, &$form_state, $style) { $form['effects'][$key]['configure'] = array( '#type' => 'link', '#title' => t('edit'), - '#href' => 'admin/config/media/image-styles/edit/' . $style->id() . '/effects/' . $key, + '#href' => 'admin/config/media/image-styles/manage/' . $style->id() . '/effects/' . $key, '#access' => isset($effect['form callback']), ); $form['effects'][$key]['remove'] = array( '#type' => 'link', '#title' => t('delete'), - '#href' => 'admin/config/media/image-styles/edit/' . $style->id() . '/effects/' . $key . '/delete', + '#href' => 'admin/config/media/image-styles/manage/' . $style->id() . '/effects/' . $key . '/delete', ); } } @@ -170,7 +159,7 @@ function image_style_form_add_submit($form, &$form_state) { // Load the configuration form for this option. if (isset($effect['form callback'])) { - $path = 'admin/config/media/image-styles/edit/' . $style->id() . '/add/' . $form_state['values']['new']; + $path = 'admin/config/media/image-styles/manage/' . $style->id() . '/add/' . $form_state['values']['new']; $form_state['redirect'] = array($path, array('query' => array('weight' => $form_state['values']['weight']))); } // If there's no form, immediately add the image effect. @@ -213,7 +202,7 @@ function image_style_form_submit($form, &$form_state) { if ($status == SAVED_UPDATED) { drupal_set_message(t('Changes to the style have been saved.')); } - $form_state['redirect'] = 'admin/config/media/image-styles/edit/' . $style->id(); + $form_state['redirect'] = 'admin/config/media/image-styles/manage/' . $style->id() . '/edit'; } /** @@ -256,7 +245,7 @@ function image_style_add_form_submit($form, &$form_state) { )); $style->save(); drupal_set_message(t('Style %name was created.', array('%name' => $style->label()))); - $form_state['redirect'] = 'admin/config/media/image-styles/edit/' . $style->id(); + $form_state['redirect'] = 'admin/config/media/image-styles/manage/' . $style->id() . '/edit'; } /** @@ -324,7 +313,7 @@ function image_effect_form($form, &$form_state, $style, $effect) { // If there's no configuration for this image effect, return to // the image style page. if (!isset($effect['form callback'])) { - drupal_goto('admin/config/media/image-styles/edit/' . $style->id()); + drupal_goto('admin/config/media/image-styles/manage/' . $style->id() . '/edit'); } $form_state['image_style'] = $style; $form_state['image_effect'] = $effect; @@ -365,7 +354,7 @@ function image_effect_form($form, &$form_state, $style, $effect) { $form['actions']['cancel'] = array( '#type' => 'link', '#title' => t('Cancel'), - '#href' => 'admin/config/media/image-styles/edit/' . $style->id(), + '#href' => 'admin/config/media/image-styles/manage/' . $style->id() . '/edit', ); return $form; @@ -382,7 +371,7 @@ function image_effect_form_submit($form, &$form_state) { image_effect_save($style, $effect); drupal_set_message(t('The image effect was successfully applied.')); - $form_state['redirect'] = 'admin/config/media/image-styles/edit/' . $style->id(); + $form_state['redirect'] = 'admin/config/media/image-styles/manage/' . $style->id() . '/edit'; } /** @@ -400,7 +389,7 @@ function image_effect_delete_form($form, &$form_state, $style, $effect) { $form_state['image_effect'] = $effect; $question = t('Are you sure you want to delete the @effect effect from the %style style?', array('%style' => $style->label(), '@effect' => $effect['label'])); - return confirm_form($form, $question, 'admin/config/media/image-styles/edit/' . $style->id(), '', t('Delete')); + return confirm_form($form, $question, 'admin/config/media/image-styles/manage/' . $style->id() . '/edit', '', t('Delete')); } /** @@ -412,7 +401,7 @@ function image_effect_delete_form_submit($form, &$form_state) { image_effect_delete($style, $effect); drupal_set_message(t('The image effect %name has been deleted.', array('%name' => $effect['label']))); - $form_state['redirect'] = 'admin/config/media/image-styles/edit/' . $style->id(); + $form_state['redirect'] = 'admin/config/media/image-styles/manage/' . $style->id() . '/edit'; } /** @@ -569,55 +558,6 @@ function image_rotate_form($data) { } /** - * Returns HTML for the page containing the list of image styles. - * - * @param $variables - * An associative array containing: - * - styles: An array of all the image styles returned by image_get_styles(). - * - * @see image_get_styles() - * @ingroup themeable - */ -function theme_image_style_list($variables) { - $styles = $variables['styles']; - - $header = array(t('Style name'), t('Operations')); - $rows = array(); - - foreach ($styles as $style) { - $row = array(); - $row[] = l($style->label(), 'admin/config/media/image-styles/edit/' . $style->id()); - $links = array(); - $links['edit'] = array( - 'title' => t('edit'), - 'href' => 'admin/config/media/image-styles/edit/' . $style->id(), - 'class' => array('image-style-link'), - ); - $links['delete'] = array( - 'title' => t('delete'), - 'href' => 'admin/config/media/image-styles/delete/' . $style->id(), - 'class' => array('image-style-link'), - ); - $row[] = array( - 'data' => array( - '#type' => 'operations', - '#links' => $links, - ), - ); - $rows[] = $row; - } - - if (empty($rows)) { - $rows[] = array(array( - 'colspan' => 4, - 'data' => t('There are currently no styles. Add a new one.', array('!url' => url('admin/config/media/image-styles/add'))), - )); - } - - return theme('table', array('header' => $header, 'rows' => $rows)); -} - -/** * Returns HTML for a listing of the effects within a specific image style. * * @param $variables diff --git a/core/modules/image/image.module b/core/modules/image/image.module index b9ad53c..b49ac78 100644 --- a/core/modules/image/image.module +++ b/core/modules/image/image.module @@ -62,10 +62,10 @@ function image_help($path, $arg) { return $output; case 'admin/config/media/image-styles': return '

' . t('Image styles commonly provide thumbnail sizes by scaling and cropping images, but can also add various effects before an image is displayed. When an image is displayed with a style, a new file is created and the original image is left unchanged.') . '

'; - case 'admin/config/media/image-styles/edit/%/add/%': + case 'admin/config/media/image-styles/manage/%/add/%': $effect = image_effect_definition_load($arg[7]); return isset($effect['help']) ? ('

' . $effect['help'] . '

') : NULL; - case 'admin/config/media/image-styles/edit/%/effects/%': + case 'admin/config/media/image-styles/manage/%/effects/%': $effect = ($arg[5] == 'add') ? image_effect_definition_load($arg[6]) : image_effect_load($arg[6], $arg[4]); return isset($effect['help']) ? ('

' . $effect['help'] . '

') : NULL; } @@ -134,7 +134,7 @@ function image_menu() { 'weight' => 2, 'file' => 'image.admin.inc', ); - $items['admin/config/media/image-styles/edit/%image_style'] = array( + $items['admin/config/media/image-styles/manage/%image_style/edit'] = array( 'title' => 'Edit style', 'description' => 'Configure an image style.', 'page callback' => 'drupal_get_form', @@ -142,7 +142,7 @@ function image_menu() { 'access arguments' => array('administer image styles'), 'file' => 'image.admin.inc', ); - $items['admin/config/media/image-styles/delete/%image_style'] = array( + $items['admin/config/media/image-styles/manage/%image_style/delete'] = array( 'title' => 'Delete style', 'description' => 'Delete an image style.', 'load arguments' => array(NULL, (string) IMAGE_STORAGE_NORMAL), @@ -151,7 +151,7 @@ function image_menu() { 'access arguments' => array('administer image styles'), 'file' => 'image.admin.inc', ); - $items['admin/config/media/image-styles/edit/%image_style/effects/%image_effect'] = array( + $items['admin/config/media/image-styles/manage/%image_style/effects/%image_effect'] = array( 'title' => 'Edit image effect', 'description' => 'Edit an existing effect within a style.', 'load arguments' => array(5, (string) IMAGE_STORAGE_EDITABLE), @@ -160,7 +160,7 @@ function image_menu() { 'access arguments' => array('administer image styles'), 'file' => 'image.admin.inc', ); - $items['admin/config/media/image-styles/edit/%image_style/effects/%image_effect/delete'] = array( + $items['admin/config/media/image-styles/manage/%image_style/effects/%image_effect/delete'] = array( 'title' => 'Delete image effect', 'description' => 'Delete an existing effect from a style.', 'load arguments' => array(5, (string) IMAGE_STORAGE_EDITABLE), @@ -169,7 +169,7 @@ function image_menu() { 'access arguments' => array('administer image styles'), 'file' => 'image.admin.inc', ); - $items['admin/config/media/image-styles/edit/%image_style/add/%image_effect_definition'] = array( + $items['admin/config/media/image-styles/manage/%image_style/add/%image_effect_definition'] = array( 'title' => 'Add image effect', 'description' => 'Add a new effect to a style.', 'load arguments' => array(5), @@ -201,9 +201,6 @@ function image_theme() { ), // Theme functions in image.admin.inc. - 'image_style_list' => array( - 'variables' => array('styles' => NULL), - ), 'image_style_effects' => array( 'render element' => 'form', ), diff --git a/core/modules/image/lib/Drupal/image/ImageStyleListController.php b/core/modules/image/lib/Drupal/image/ImageStyleListController.php new file mode 100644 index 0000000..9051d5d --- /dev/null +++ b/core/modules/image/lib/Drupal/image/ImageStyleListController.php @@ -0,0 +1,45 @@ +Add a new one.', array('!url' => url('admin/config/media/image-styles/add'))); + return $build; + } + +} diff --git a/core/modules/image/lib/Drupal/image/Plugin/Core/Entity/ImageStyle.php b/core/modules/image/lib/Drupal/image/Plugin/Core/Entity/ImageStyle.php index eda9f5c..9229146 100644 --- a/core/modules/image/lib/Drupal/image/Plugin/Core/Entity/ImageStyle.php +++ b/core/modules/image/lib/Drupal/image/Plugin/Core/Entity/ImageStyle.php @@ -2,7 +2,7 @@ /** * @file - * Definition of Drupal\image\Plugin\Core\Entity\ImageStyle. + * Contains \Drupal\image\Plugin\Core\Entity\ImageStyle. */ namespace Drupal\image\Plugin\Core\Entity; @@ -19,6 +19,7 @@ * label = @Translation("Image style"), * module = "image", * controller_class = "Drupal\image\ImageStyleStorageController", + * list_controller_class = "Drupal\image\ImageStyleListController", * uri_callback = "image_style_entity_uri", * config_prefix = "image.style", * entity_keys = { diff --git a/core/modules/image/lib/Drupal/image/Tests/ImageAdminStylesTest.php b/core/modules/image/lib/Drupal/image/Tests/ImageAdminStylesTest.php index 0d09461..913d866 100644 --- a/core/modules/image/lib/Drupal/image/Tests/ImageAdminStylesTest.php +++ b/core/modules/image/lib/Drupal/image/Tests/ImageAdminStylesTest.php @@ -68,7 +68,7 @@ function testStyle() { // Setup a style to be created and effects to add to it. $style_name = strtolower($this->randomName(10)); $style_label = $this->randomString(); - $style_path = 'admin/config/media/image-styles/edit/' . $style_name; + $style_path = 'admin/config/media/image-styles/manage/' . $style_name; $effect_edits = array( 'image_resize' => array( 'data[width]' => 100, @@ -112,7 +112,7 @@ function testStyle() { // Add each sample effect to the style. foreach ($effect_edits as $effect => $edit) { // Add the effect. - $this->drupalPost($style_path, array('new' => $effect), t('Add')); + $this->drupalPost($style_path . '/edit', array('new' => $effect), t('Add')); if (!empty($edit)) { $this->drupalPost(NULL, $edit, t('Add effect')); } @@ -175,13 +175,13 @@ function testStyle() { $image_path = $this->createSampleImage($style); $this->assertEqual($this->getImageCount($style), 1, format_string('Image style %style image %file successfully generated.', array('%style' => $style->label(), '%file' => $image_path))); - $this->drupalPost($style_path, $edit, t('Update style')); + $this->drupalPost($style_path . '/edit', $edit, t('Update style')); // Note that after changing the style name, the style path is changed. - $style_path = 'admin/config/media/image-styles/edit/' . $style_name; + $style_path = 'admin/config/media/image-styles/manage/' . $style_name; // Check that the URL was updated. - $this->drupalGet($style_path); + $this->drupalGet($style_path . '/edit'); $this->assertResponse(200, format_string('Image style %original renamed to %new', array('%original' => $style->label(), '%new' => $style_name))); // Check that the image was flushed after updating the style. @@ -229,7 +229,7 @@ function testStyle() { // Style deletion form. // Delete the style. - $this->drupalPost('admin/config/media/image-styles/delete/' . $style_name, array(), t('Delete')); + $this->drupalPost($style_path . '/delete', array(), t('Delete')); // Confirm the style directory has been removed. $directory = file_default_scheme() . '://styles/' . $style_name; @@ -248,7 +248,7 @@ function testStyleReplacement() { $style_label = $this->randomString(); $style = entity_create('image_style', array('name' => $style_name, 'label' => $style_label)); $style->save(); - $style_path = 'admin/config/media/image-styles/edit/' . $style_name; + $style_path = 'admin/config/media/image-styles/manage/'; // Create an image field that uses the new style. $field_name = strtolower($this->randomName(10)); @@ -276,7 +276,7 @@ function testStyleReplacement() { 'name' => $new_style_name, 'label' => $new_style_label, ); - $this->drupalPost('admin/config/media/image-styles/edit/' . $style_name, $edit, t('Update style')); + $this->drupalPost($style_path . $style_name . '/edit', $edit, t('Update style')); $this->assertText(t('Changes to the style have been saved.'), format_string('Style %name was renamed to %new_name.', array('%name' => $style_name, '%new_name' => $new_style_name))); $this->drupalGet('node/' . $nid); $this->assertRaw(image_style_url($new_style_name, file_load($node->{$field_name}[LANGUAGE_NOT_SPECIFIED][0]['fid'])->uri), 'Image displayed using style replacement style.'); @@ -285,7 +285,7 @@ function testStyleReplacement() { $edit = array( 'replacement' => 'thumbnail', ); - $this->drupalPost('admin/config/media/image-styles/delete/' . $new_style_name, $edit, t('Delete')); + $this->drupalPost($style_path . $new_style_name . '/delete', $edit, t('Delete')); $message = t('Style %name was deleted.', array('%name' => $new_style_label)); $this->assertRaw($message);