From 98d06094e70d657907b139431624740acde3bbd9 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Thu, 21 Aug 2014 13:49:02 +0200 Subject: [PATCH] Fix share dropdown when links are not allowed When links are not allowed, the email field does not exist and autocomplete returns null. This causes Javascript errors. The fix prevents entering the bogus block when links aren't allowed, as it doesn't make sense to enter it in such cases anyway. --- core/js/share.js | 2 +- core/js/tests/specs/shareSpec.js | 26 ++++++++++++++++---------- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/core/js/share.js b/core/js/share.js index 99a767b47f..f1652370d3 100644 --- a/core/js/share.js +++ b/core/js/share.js @@ -503,7 +503,7 @@ OC.Share={ .append( insert ) .appendTo( ul ); }; - if (link) { + if (link && linksAllowed) { $('#email').autocomplete({ minLength: 1, source: function (search, response) { diff --git a/core/js/tests/specs/shareSpec.js b/core/js/tests/specs/shareSpec.js index 1fd36dfff0..06c4b98df2 100644 --- a/core/js/tests/specs/shareSpec.js +++ b/core/js/tests/specs/shareSpec.js @@ -44,6 +44,12 @@ describe('OC.Share tests', function() { autocompleteStub = sinon.stub($.fn, 'autocomplete', function() { // dummy container with the expected attributes + if (!$(this).length) { + // simulate the real autocomplete that returns + // nothing at all when no element is specified + // (and potentially break stuff) + return null; + } var $el = $('
').data('ui-autocomplete', {}); return $el; }); @@ -60,7 +66,7 @@ describe('OC.Share tests', function() { 'file', 123, $container, - 'http://localhost/dummylink', + true, 31, 'shared_file_name.txt' ); @@ -73,7 +79,7 @@ describe('OC.Share tests', function() { 'file', 123, $container, - 'http://localhost/dummylink', + true, 31, 'shared_file_name.txt' ); @@ -92,7 +98,7 @@ describe('OC.Share tests', function() { 'file', 123, $container, - 'http://localhost/dummylink', + true, 31, 'shared_file_name.txt' ); @@ -104,7 +110,7 @@ describe('OC.Share tests', function() { 'file', 123, $container, - 'http://localhost/dummylink', + true, 31, 'shared_file_name.txt' ); @@ -138,7 +144,7 @@ describe('OC.Share tests', function() { 'file', 123, $container, - 'http://localhost/dummylink', + true, 31, 'folder' ); @@ -176,7 +182,7 @@ describe('OC.Share tests', function() { 'file', 456, // another file $container, - 'http://localhost/dummylink', + true, 31, 'folder' ); @@ -230,7 +236,7 @@ describe('OC.Share tests', function() { 'folder', 123, $container, - 'http://localhost/dummylink', + true, 31, 'folder' ); @@ -245,7 +251,7 @@ describe('OC.Share tests', function() { 'file', 456, $container, - 'http://localhost/dummylink', + true, 31, 'file_in_folder.txt' ); @@ -266,7 +272,7 @@ describe('OC.Share tests', function() { 'file', 123, $container, - 'http://localhost/dummylink', + true, 31, 'folder' ); @@ -407,7 +413,7 @@ describe('OC.Share tests', function() { 'file', 123, $container, - 'http://localhost/dummylink', + true, 31, 'shared_file_name.txt' );