From 1842da233151f5d197d3f41708b5b3a4b4335ffb Mon Sep 17 00:00:00 2001
From: Alex Pott <alex.a.pott@googlemail.com>
Date: Wed, 9 Sep 2015 14:16:36 +0100
Subject: [PATCH] Issue #2396937 by legolasbo, Vj, subhojit777, jhodgdon: "Last
 placed block" color confusing in Block layout page

---
 core/modules/block/js/block.js              | 19 +++++++++++++++++++
 core/modules/block/src/BlockListBuilder.php |  2 +-
 2 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/core/modules/block/js/block.js b/core/modules/block/js/block.js
index b1efc514ef3f..5607b02ca762 100644
--- a/core/modules/block/js/block.js
+++ b/core/modules/block/js/block.js
@@ -84,6 +84,7 @@
       // Add a handler for when a row is swapped, update empty regions.
       tableDrag.row.prototype.onSwap = function (swappedRow) {
         checkEmptyRegions(table, this);
+        updateLastPlaced(table, this);
       };
 
       // Add a handler so when a row is dropped, update fields dropped into
@@ -132,10 +133,28 @@
           updateBlockWeights(table, select[0].value);
           // Modify empty regions with added or removed fields.
           checkEmptyRegions(table, row);
+          // Update last placed block indication.
+          updateLastPlaced(table, row);
+          // Show unsaved changes warning.
+          if (!tableDrag.changed) {
+            $(Drupal.theme('tableDragChangedWarning')).insertBefore(tableDrag.table).hide().fadeIn('slow');
+            tableDrag.changed = true;
+          }
           // Remove focus from selectbox.
           select.trigger('blur');
         });
 
+      var updateLastPlaced = function ($table, rowObject) {
+        // Remove the color-success class from new block if applicable.
+        $table.find('.color-success').removeClass('color-success');
+
+        var $rowObject = $(rowObject);
+        if (!$rowObject.is('.drag-previous')) {
+          $table.find('.drag-previous').removeClass('drag-previous');
+          $rowObject.addClass('drag-previous');
+        }
+      };
+
       /**
        * Update block weights in the given region.
        *
diff --git a/core/modules/block/src/BlockListBuilder.php b/core/modules/block/src/BlockListBuilder.php
index c0a3b2e44af5..b92e7ae25eee 100644
--- a/core/modules/block/src/BlockListBuilder.php
+++ b/core/modules/block/src/BlockListBuilder.php
@@ -256,7 +256,7 @@ protected function buildBlocksForm() {
             ),
           );
           if ($placement && $placement == Html::getClass($entity_id)) {
-            $form[$entity_id]['#attributes']['class'][] = 'color-warning';
+            $form[$entity_id]['#attributes']['class'][] = 'color-success';
             $form[$entity_id]['#attributes']['class'][] = 'js-block-placed';
           }
           $form[$entity_id]['info'] = array(
-- 
GitLab