Commit f222d2a0 authored by Steffen Schlaer's avatar Steffen Schlaer
Browse files

Issue #3207507 by IT-Cru, ericpugh: Settings form layout issue

parent ff42b371
Loading
Loading
Loading
Loading
+8 −3
Changes for css/image_style_warmer.admin.css: 8 added lines, 3 removed lines.
Original line number Diff line number Diff line
@media screen and (min-width: 960px) {

  .fieldgroup.image-style-warmer.image-styles {
  .image-style-warmer.image-styles-wrapper {
    margin: auto;
    width: 100%;
  }
  .image-style-warmer.image-styles.fieldgroup {
    box-sizing: border-box;
    display: inline-block;
    float: left;
    width: 49.5%;
    width: 50%;
  }
}
+30 −11
Changes for src/Form/ImageStyleWarmerSettingsForm.php: 30 added lines, 11 removed lines.
Original line number Diff line number Diff line
@@ -28,34 +28,53 @@ class ImageStyleWarmerSettingsForm extends ConfigFormBase {
   * {@inheritdoc}
   */
  public function buildForm(array $form, FormStateInterface $form_state) {
    $config = $this->configFactory()->getEditable('image_style_warmer.settings');
    $config = $this->configFactory()->get('image_style_warmer.settings');
    $imageStyleOptions = image_style_options(FALSE);

    $initialImageStyles = $config->get('initial_image_styles');
    $form['initial_image_styles'] = [
    $form['image_styles'] = [
      '#type' => 'details',
      '#title' => $this->t('Image styles'),
      '#description' => $this->t('Configure image styles which will be created initially or via queue worker by Image Style Warmer.'),
      '#open' => TRUE,
      '#attributes' => [
        'class' => [
          'image-style-warmer',
          'image-styles-wrapper',
          'clearfix',
        ],
      ],
    ];
    $form['image_styles']['initial_image_styles'] = [
      '#type' => 'checkboxes',
      '#title' => $this->t('Initial image styles'),
      '#description' => $this->t('Select image styles which will be created initial for an image.'),
      '#options' => $imageStyleOptions,
      '#default_value' => !empty($initialImageStyles) ? $initialImageStyles : [],
      '#size' => 10,
      '#attributes' => [
        'class' => [
          'image-style-warmer',
          'image-styles',
          'initial-image-styles',
        ],
      ],
    ];
    $form['initial_image_styles']['#attributes']['class'][] = 'image-style-warmer';
    $form['initial_image_styles']['#attributes']['class'][] = 'image-styles';
    $form['initial_image_styles']['#attributes']['class'][] = 'initial-image-styles';

    $queueImageStyles = $config->get('queue_image_styles');
    $form['queue_image_styles'] = [
    $form['image_styles']['queue_image_styles'] = [
      '#type' => 'checkboxes',
      '#title' => $this->t('Queue image styles'),
      '#description' => $this->t('Select image styles which will be created via queue worker.'),
      '#options' => $imageStyleOptions,
      '#default_value' => !empty($queueImageStyles) ? $queueImageStyles : [],
      '#size' => 10,
      '#attributes' => [
        'class' => [
          'image-style-warmer',
          'image-styles',
          'queue-image-styles',
        ],
      ],
    ];
    $form['queue_image_styles']['#attributes']['class'][] = 'image-style-warmer';
    $form['queue_image_styles']['#attributes']['class'][] = 'image-styles';
    $form['queue_image_styles']['#attributes']['class'][] = 'queue-image-styles';

    // Add CSS for better form layout.
    $form['#attached']['library'][] = 'image_style_warmer/image_style_warmer.admin';
+20 −4
Changes for tests/src/Functional/ImageStyleWarmerSettingsFormTest.php: 20 added lines, 4 removed lines.
Original line number Diff line number Diff line
@@ -10,18 +10,34 @@ namespace Drupal\Tests\image_style_warmer\Functional;
class ImageStyleWarmerSettingsFormTest extends ImageStyleWarmerTestBase {

  /**
   * Test Image Style Warmer settings page.
   * Anonymous users don't have access to image_style_warmer settings page.
   */
  public function testSettingsPage() {
  public function testAnonymousPermissionDenied() {
    $this->drupalLogout();
    $this->drupalGet('admin/config/development/performance/image-style-warmer');
    $this->assertSession()->statusCodeEquals(403);
  }

    // Anonymous users don't have access to image_style_warmer settings pages.
  /**
   * Authenticated non-admin users don't have access to image_style_warmer settings page.
   */
  public function testAuthenticatedPermissionDenied() {
    $this->drupalLogin($this->createUser());
    $this->drupalGet('admin/config/development/performance/image-style-warmer');
    $this->assertSession()->statusCodeEquals(403);
  }

  /**
   * Test Image Style Warmer settings page.
   */
  public function testSettingsPage() {

    // Can access pages if logged in.
    // The admin user can access image_style_warmer settings page.
    $this->drupalLogin($this->adminUser);
    $this->drupalGet('admin/config/development/performance/image-style-warmer');
    $this->assertSession()->statusCodeEquals(200);
    $this->assertSession()->pageTextContains(t('Image styles'));
    $this->assertSession()->pageTextContains(t('Configure image styles which will be created initially or via queue worker by Image Style Warmer.'));
    $this->assertSession()->pageTextContains(t('Initial image styles'));
    $this->assertSession()->pageTextContains(t('Select image styles which will be created initial for an image.'));
    $this->assertSession()->pageTextContains(t('Queue image styles'));