From e78ea61cc080a38bb7985f04b5bf33ab0547cf73 Mon Sep 17 00:00:00 2001
From: Oleksandr Miroshnichenko <omiroshnichenko@magento.com>
Date: Tue, 2 Jan 2018 14:47:09 +0200
Subject: [PATCH] magento/magento2#12294: Bug: Adding Custom Attribute - The
 value of Admin scope can't be empty

---
 .../templates/catalog/product/attribute/options.phtml |  2 +-
 .../Magento/Catalog/view/adminhtml/web/js/options.js  | 11 +++++++----
 2 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/attribute/options.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/attribute/options.phtml
index 6ff0e193a77..f812a27f87a 100644
--- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/attribute/options.phtml
+++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/attribute/options.phtml
@@ -57,7 +57,7 @@ $stores = $block->getStoresSortedBySortOrder();
         <input type="hidden" id="option-count-check" value="" />
     </div>
     <script id="row-template" type="text/x-magento-template">
-         <tr>
+        <tr <% if (data.rowClasses) { %>class="<%- data.rowClasses %>"<% } %>>
             <td class="col-draggable">
                 <?php if (!$block->getReadOnly() && !$block->canManageOptionDefaultOnly()): ?>
                     <div data-role="draggable-handle" class="draggable-handle"
diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/options.js b/app/code/Magento/Catalog/view/adminhtml/web/js/options.js
index 89ca97ae53c..787516a9abf 100644
--- a/app/code/Magento/Catalog/view/adminhtml/web/js/options.js
+++ b/app/code/Magento/Catalog/view/adminhtml/web/js/options.js
@@ -24,6 +24,7 @@ define([
                 totalItems: 0,
                 rendered: 0,
                 template: mageTemplate('#row-template'),
+                newOptionClass: 'new-option',
                 isReadOnly: config.isReadOnly,
                 add: function (data, render) {
                     var isNewOption = false,
@@ -32,7 +33,8 @@ define([
                     if (typeof data.id == 'undefined') {
                         data = {
                             'id': 'option_' + this.itemCount,
-                            'sort_order': this.itemCount + 1
+                            'sort_order': this.itemCount + 1,
+                            'rowClasses': this.newOptionClass
                         };
                         isNewOption = true;
                     }
@@ -81,12 +83,13 @@ define([
                         element.addClassName('no-display');
                         element.addClassName('template');
                         element.hide();
-                        jQuery(element).find('input').each(function(index, el) {
-                            el.disabled = 'disabled';
-                        });
                         this.totalItems--;
                         this.updateItemsCountField();
                     }
+
+                    if (element.hasClassName(this.newOptionClass)) {
+                        element.remove();
+                    }
                 },
                 updateItemsCountField: function () {
                     $('option-count-check').value = this.totalItems > 0 ? '1' : '';
-- 
GitLab