On Mon, Nov 27, 2017 at 5:01 PM, Khushboo Vashi <
khushboo.va...@enterprisedb.com> wrote:

>
>
> On Mon, Nov 27, 2017 at 4:58 PM, Dave Page <dp...@pgadmin.org> wrote:
>
>>
>>
>> On Mon, Nov 27, 2017 at 11:26 AM, Khushboo Vashi <
>> khushboo.va...@enterprisedb.com> wrote:
>>
>>>
>>>
>>> On Mon, Nov 27, 2017 at 4:47 PM, Dave Page <dp...@pgadmin.org> wrote:
>>>
>>>>
>>>>
>>>> On Mon, Nov 27, 2017 at 11:03 AM, Khushboo Vashi <
>>>> khushboo.va...@enterprisedb.com> wrote:
>>>>
>>>>>
>>>>>
>>>>> On Mon, Nov 27, 2017 at 4:13 PM, Dave Page <dp...@pgadmin.org> wrote:
>>>>>
>>>>>>
>>>>>>
>>>>>> On Mon, Nov 27, 2017 at 10:39 AM, Khushboo Vashi <
>>>>>> khushboo.va...@enterprisedb.com> wrote:
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Mon, Nov 27, 2017 at 2:59 PM, Dave Page <dp...@pgadmin.org>
>>>>>>> wrote:
>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Mon, Nov 27, 2017 at 9:19 AM, Khushboo Vashi <
>>>>>>>> khushboo.va...@enterprisedb.com> wrote:
>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Mon, Nov 27, 2017 at 2:20 PM, Dave Page <dp...@pgadmin.org>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Mon, Nov 27, 2017 at 5:25 AM, Khushboo Vashi <
>>>>>>>>>> khushboo.va...@enterprisedb.com> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hi Dave,
>>>>>>>>>>>
>>>>>>>>>>> On Fri, Nov 24, 2017 at 3:21 PM, Dave Page <dp...@pgadmin.org>
>>>>>>>>>>> wrote:
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On Thu, Nov 23, 2017 at 10:43 AM, Khushboo Vashi <
>>>>>>>>>>>> khushboo.va...@enterprisedb.com> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Thu, Nov 23, 2017 at 2:58 PM, Dave Page <dp...@pgadmin.org>
>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> Hi
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On Thu, Nov 23, 2017 at 5:03 AM, Khushboo Vashi <
>>>>>>>>>>>>>> khushboo.va...@enterprisedb.com> wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Hi,
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Please find the attached patch to fix RM #2859:  Can't
>>>>>>>>>>>>>>> create new user.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> The "User Management" dialogue footer was overlapping the
>>>>>>>>>>>>>>> back-grid table which has been fixed.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> If my screen is too small, it now looks like the attached
>>>>>>>>>>>>>> screenshot, which is really quite ugly.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> If we don't leave the bottom blank space then in case of
>>>>>>>>>>>>> error the error-message will shown on the grid itself and user 
>>>>>>>>>>>>> can't
>>>>>>>>>>>>> perform any task.
>>>>>>>>>>>>> Please refer the attached screen-shot for the same.
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Right, but we also can't have that space left blank like that.
>>>>>>>>>>>> Can't we extend the scroll range of the grid? In other words, 
>>>>>>>>>>>> always
>>>>>>>>>>>> include space for an extra row or so, so it can scroll above the 
>>>>>>>>>>>> error
>>>>>>>>>>>> message, when, and only when a message is shown?
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>> Please find the attached screen-shot, If we always include an
>>>>>>>>>>> extra row.
>>>>>>>>>>> Suggestion please.
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> I think that's much better, though still not ideal. What if we
>>>>>>>>>> made the error messages closable like other notifications?
>>>>>>>>>>
>>>>>>>>>> The error-messages in pgAdmin 4 are not closable, so it will not
>>>>>>>>> go with the flow.
>>>>>>>>>
>>>>>>>>
>>>>>>>> I meant to do it globally.
>>>>>>>>
>>>>>>>> Should I create the separate case for this?
>>>>>>>
>>>>>>
>>>>>> No, I don't think there's any need for that.
>>>>>>
>>>>>> Does it seem like it would solve the problem appropriately?
>>>>>>
>>>>>>
>>>>> It would lead us to more complexity
>>>>> 1. How can we keep track of the closed error messages for multiple
>>>>> fields?
>>>>>
>>>>
>>>> Do we need to?
>>>>
>>>>
>>>>> 2. We have validated backbone model on focus out/change, so we need to
>>>>> change the basic error model.
>>>>>
>>>>
>>>> I'm not sure why. Can't we just have an X button on the error panel
>>>> that will hide it? If another error occurs (e.g. because the user changes
>>>> focus), just re-display it.
>>>>
>>>>
>>> This means, if the error message is displayed for the field 1 and after
>>> closing if we go ahead without filling up the valid data, on the focus out;
>>> the same error message will be shown.
>>>
>>
>> Yes.
>>
>>
>>>
>>> I was thinking; if we have closed the error message for the field 1,
>>> then it will not display any kind of message for that particular field. So,
>>> I have mentioned about the complexity.
>>>
>>
>> I'm not convinced we need that level of complexity.
>>
>> Can you whip up a PoC so we can see how it behaves?
>>
>> Please find the attached patch.

This patch includes:
- The fix for this RM
- Close button for the error message for the User management module
- Close button for other node modules like server , schema etc....

Thanks,
Khushboo

> Sure.
>
>>
>>
>
>>>>> I have attached the patch for the RM #2859.
>>>>>
>>>>> Thanks,
>>>>> Khushboo
>>>>>
>>>>> --
>>>>>> Dave Page
>>>>>> Blog: http://pgsnake.blogspot.com
>>>>>> Twitter: @pgsnake
>>>>>>
>>>>>> EnterpriseDB UK: http://www.enterprisedb.com
>>>>>> The Enterprise PostgreSQL Company
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Dave Page
>>>> Blog: http://pgsnake.blogspot.com
>>>> Twitter: @pgsnake
>>>>
>>>> EnterpriseDB UK: http://www.enterprisedb.com
>>>> The Enterprise PostgreSQL Company
>>>>
>>>
>>>
>>
>>
>> --
>> Dave Page
>> Blog: http://pgsnake.blogspot.com
>> Twitter: @pgsnake
>>
>> EnterpriseDB UK: http://www.enterprisedb.com
>> The Enterprise PostgreSQL Company
>>
>
>
diff --git a/web/pgadmin/browser/static/js/node.js b/web/pgadmin/browser/static/js/node.js
index a9c2b18..5f06ee2 100644
--- a/web/pgadmin/browser/static/js/node.js
+++ b/web/pgadmin/browser/static/js/node.js
@@ -265,10 +265,16 @@ define(
                     <i class="fa fa-exclamation-triangle" aria-hidden="true"></i>\
                   </div>\
                     <div class="alert-text">' + msg + '</div>\
+                    <div class="close-error-bar">\
+                      <a class="close-error">x</a>\
+                    </div>\
                 </div>\
               </div>';
             if(!_.isUndefined(that.statusBar)) {
               that.statusBar.html(alertMessage).css("visibility", "visible");
+              that.statusBar.find(".close-error-bar").bind("click", function(e) {
+                 this.empty().css("visibility", "hidden");
+              }.bind(that.statusBar));
             }
             callback(true);
 
diff --git a/web/pgadmin/static/css/bootstrap.overrides.css b/web/pgadmin/static/css/bootstrap.overrides.css
index b894021..b0c531a 100755
--- a/web/pgadmin/static/css/bootstrap.overrides.css
+++ b/web/pgadmin/static/css/bootstrap.overrides.css
@@ -1176,6 +1176,16 @@ form[name="change_password_form"] .help-block {
   overflow: hidden;
 }
 
+.close-error-bar {
+  background: #d0021b;
+  padding: 5px;
+}
+
+.close-error-bar a {
+  color: #FFFFFF;
+  cursor: pointer;
+}
+
 .user_management .search_users form {
   margin: 0;
 }
diff --git a/web/pgadmin/static/scss/_alert.scss b/web/pgadmin/static/scss/_alert.scss
index 3f860b8..441c40f 100644
--- a/web/pgadmin/static/scss/_alert.scss
+++ b/web/pgadmin/static/scss/_alert.scss
@@ -104,8 +104,6 @@
   .alert-text {
     flex-grow: 1;
     border: 1px solid $color-red-2;
-    border-top-right-radius: 4px;
-    border-bottom-right-radius: 4px;
     padding: 7px 12px 6px 10px;
     border-left: none;
   }
diff --git a/web/pgadmin/tools/user_management/static/js/user_management.js b/web/pgadmin/tools/user_management/static/js/user_management.js
index ffdf8b2..f5a5c69 100644
--- a/web/pgadmin/tools/user_management/static/js/user_management.js
+++ b/web/pgadmin/tools/user_management/static/js/user_management.js
@@ -392,8 +392,8 @@ define([
               prepare: function() {
                 var self = this,
                   footerTpl = _.template([
-                    '<div class="pg-prop-footer">',
-                      '<div class="pg-prop-status-bar" style="visibility:hidden">',
+                    '<div class="pg-prop-footer" style="visibility:hidden;">',
+                      '<div class="pg-prop-status-bar">',
                         '<div class="media error-in-footer bg-red-1 border-red-2 font-red-3 text-14">',
                           '<div class="media-body media-middle">',
                             '<div class="alert-icon error-icon">',
@@ -401,12 +401,12 @@ define([
                             '</div>',
                             '<div class="alert-text">',
                             '</div>',
+                            '<div class="close-error-bar"><a class="close-error">x</a></div>',
                           '</div>',
                         '</div>',
                       '</div>',
                     '</div>'].join("\n")),
-                  $footer = $(footerTpl()),
-                  $statusBar = $footer.find('.pg-prop-status-bar'),
+                  $statusBar = $(footerTpl()),
                   UserRow = Backgrid.Row.extend({
                     userInvalidColor: "lightYellow",
 
@@ -558,7 +558,7 @@ define([
 
                 this.$content = $("<div class='user_management object subnode'></div>").append(
                     headerTpl(data)).append($gridBody
-                    ).append($footer);
+                    ).append($statusBar);
 
                 $(this.elements.body.childNodes[0]).addClass(
                   'alertify_tools_dialog_backgrid_properties');
@@ -571,6 +571,11 @@ define([
 
                 userCollection.fetch();
 
+                this.$content.find('.close-error').click(function(e) {
+                  $statusBar.find('.alert-text').empty();
+                  $statusBar.css("visibility", "hidden");
+                });
+
                 this.$content.find('button.add').first().click(function(e) {
                   e.preventDefault();
                   var canAddRow = true;

Reply via email to