]> source.dussan.org Git - nextcloud-server.git/commitdiff
hide Add Group when clicking away or pressing ESC
authorArthur Schiwon <blizzz@owncloud.com>
Tue, 25 Feb 2014 14:41:03 +0000 (15:41 +0100)
committerArthur Schiwon <blizzz@owncloud.com>
Mon, 2 Jun 2014 10:53:54 +0000 (12:53 +0200)
settings/js/users/groups.js

index 7c8b6608f1146dafd6f08f157e3cea02944a7e16..9f8225294b99f4cc23e0ef566fce64c1405f210a 100644 (file)
                OC.Notification.showHtml(t('settings', 'deleted') + ' ' + escapeHTML(gid) + '<span class="undo">' + t('settings', 'undo') + '</span>');
        },
 
+       elementBelongsToAddGroup: function(el) {
+               return !(el !== $('#newgroup-form').get(0)
+                               && $('#newgroup-form').find($(el)).length === 0);
+       },
+
        showGroup: function (gid) {
                UserList.empty();
                UserList.update(gid);
                }
        },
 
+       isAddGroupButtonVisible: function() {
+               return $('#newgroup-init').is(":visible");
+       },
+
        toggleAddGroup: function(event) {
-               if($('#newgroup-init').is(":visible")) {
+               if(GroupList.isAddGroupButtonVisible()) {
                        event.stopPropagation();
                        $('#newgroup-form').show();
                        $('#newgroup-init').hide();
@@ -149,6 +158,18 @@ $(document).ready( function () {
                GroupList.toggleAddGroup(e);
        });
 
+       $(document).on('click keydown keyup', function(event) {
+               if(!GroupList.isAddGroupButtonVisible()
+                       && !GroupList.elementBelongsToAddGroup(event.target)) {
+                       GroupList.toggleAddGroup();
+               }
+               // Escape
+               if(!GroupList.isAddGroupButtonVisible() && event.keyCode && event.keyCode === 27) {
+                       GroupList.toggleAddGroup();
+               }
+       });
+
+
        // Responsible for Creating Groups.
        $('#newgroup-form form').submit(function (event) {
                event.preventDefault();