changeset 5b2da063eccb in sao:default
details: https://hg.tryton.org/sao?cmd=changeset;node=5b2da063eccb
description:
        Add clear button for search entry and reorder buttons

        Also hide pagination buttons when disabled on small screen.

        issue8099
        review62431003
diffstat:

 src/sao.less  |   8 ++++++++
 src/screen.js |  47 +++++++++++++++++++++++++++++++----------------
 2 files changed, 39 insertions(+), 16 deletions(-)

diffs (119 lines):

diff -r 5fa5b8a4f73f -r 5b2da063eccb src/sao.less
--- a/src/sao.less      Tue Feb 26 16:07:34 2019 +0100
+++ b/src/sao.less      Tue Feb 26 16:10:05 2019 +0100
@@ -158,6 +158,14 @@
     margin: 5px 5px;
 }
 
+@media screen and (max-width: @screen-sm-max) {
+    .filter-box {
+        button[disabled] {
+            display: none;
+        }
+    }
+}
+
 .treeview {
     overflow-x: auto;
 
diff -r 5fa5b8a4f73f -r 5b2da063eccb src/screen.js
--- a/src/screen.js     Tue Feb 26 16:07:34 2019 +0100
+++ b/src/screen.js     Tue Feb 26 16:10:05 2019 +0100
@@ -39,9 +39,29 @@
             this.search_list = jQuery('<datalist/>');
             this.search_list.uniqueId();
             this.search_entry.attr('list', this.search_list.attr('id'));
-            this.search_entry.keypress(this.key_press.bind(this));
             this.search_entry.on('input', this.update.bind(this));
 
+            var but_clear = jQuery('<button/>', {
+                'type': 'button',
+                'class': 'btn btn-default hidden-md hidden-lg',
+                'aria-label': Sao.i18n.gettext("Clear Search"),
+                'title': Sao.i18n.gettext("Clear Search"),
+            }).append(Sao.common.ICONFACTORY.get_icon_img('tryton-clear'));
+            but_clear.hide();
+            but_clear.click(function() {
+                this.search_entry.val('').change();
+                this.do_search();
+            }.bind(this));
+
+            this.search_entry.on('keyup change', function() {
+                if (this.search_entry.val()) {
+                    but_clear.show();
+                } else {
+                    but_clear.hide();
+                }
+                this.bookmark_match();
+            }.bind(this));
+
             var but_submit = jQuery('<button/>', {
                 'type': 'submit',
                 'class': 'btn btn-default',
@@ -71,7 +91,7 @@
                 'aria-hidden': true,
             }));
             var dropdown_bookmark = jQuery('<ul/>', {
-                'class': 'dropdown-menu',
+                'class': 'dropdown-menu dropdown-menu-right',
                 'role': 'menu',
                 'aria-labelledby': 'bookmarks'
             });
@@ -94,7 +114,7 @@
                 }
             }.bind(this));
             this.but_star = jQuery('<button/>', {
-                'class': 'btn btn-default',
+                'class': 'btn btn-default hidden-xs',
                 'type': 'button'
             }).append(jQuery('<img/>', {
                 'class': 'icon',
@@ -112,11 +132,12 @@
             .append(this.search_list)
             .append(jQuery('<span/>', {
                 'class': 'input-group-btn'
-            }).append(but_submit)
-                    .append(this.but_star)
-                    .append(this.but_active)
-                    .append(this.but_bookmark)
-                    .append(dropdown_bookmark))
+            }).append(but_clear)
+                .append(but_submit)
+                .append(this.but_star)
+                .append(this.but_bookmark)
+                .append(dropdown_bookmark)
+                .append(this.but_active))
             .appendTo(jQuery('<div/>', {
                 'class': 'col-sm-10 col-xs-12'
             }).appendTo(search_row));
@@ -124,7 +145,7 @@
 
             this.but_prev = jQuery('<button/>', {
                 type: 'button',
-                'class': 'btn btn-default',
+                'class': 'btn btn-default btn-sm',
                 'aria-label': Sao.i18n.gettext("Previous"),
                 'title': Sao.i18n.gettext("Previous"),
             }).append(Sao.common.ICONFACTORY.get_icon_img('tryton-back', {
@@ -133,7 +154,7 @@
             this.but_prev.click(this.search_prev.bind(this));
             this.but_next = jQuery('<button/>', {
                 type: 'button',
-                'class': 'btn btn-default',
+                'class': 'btn btn-default btn-sm',
                 'aria-label': Sao.i18n.gettext("Next"),
                 'title': Sao.i18n.gettext("Next"),
             }).append(Sao.common.ICONFACTORY.get_icon_img('tryton-forward', {
@@ -350,12 +371,6 @@
         do_search: function() {
             return this.screen.search_filter(this.get_text());
         },
-        key_press: function(e) {
-            // Wait the current event finished
-            window.setTimeout(function() {
-                this.bookmark_match();
-            }.bind(this));
-        },
         set_screen: function(screen) {
             this.screen = screen;
             this.but_bookmark.prop('disabled',

Reply via email to