summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Calviño Sánchez <danxuliu@gmail.com>2018-02-27 13:59:09 +0100
committerDaniel Calviño Sánchez <danxuliu@gmail.com>2018-02-28 15:03:26 +0100
commit92345f2c38a4cddbca6b63d03e3031023fe92a1a (patch)
tree480212192f0cf8ffcb08efd5f3a0bd778d568c8f
parent29c924f74b692a496606af1759f14d02c5dee9cc (diff)
downloadnextcloud-server-92345f2c38a4cddbca6b63d03e3031023fe92a1a.tar.gz
nextcloud-server-92345f2c38a4cddbca6b63d03e3031023fe92a1a.zip
Take padding and margins of crumbs into account
When calculating the total width of the crumbs only its padding was taken into account; now the margin is too. In a similar way, before showing a crumb only its width was taken into account; now its padding and margin are taken into account too. Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
-rw-r--r--apps/files/js/breadcrumb.js4
-rw-r--r--apps/files/tests/js/breadcrumbSpec.js54
2 files changed, 56 insertions, 2 deletions
diff --git a/apps/files/js/breadcrumb.js b/apps/files/js/breadcrumb.js
index 347d5a5dd0d..e4951958ad9 100644
--- a/apps/files/js/breadcrumb.js
+++ b/apps/files/js/breadcrumb.js
@@ -249,7 +249,7 @@
for (var i = 0; i < this.breadcrumbs.length; i++ ) {
var $crumb = $(this.breadcrumbs[i]);
if(!$crumb.hasClass('hidden') || ignoreHidden === true) {
- totalWidth += $crumb.outerWidth();
+ totalWidth += $crumb.outerWidth(true);
}
}
return totalWidth;
@@ -344,7 +344,7 @@
// If container is bigger than content + element to be shown
// AND if there is at least one hidden crumb
while (this.$el.find('.crumb.hidden').length > 0
- && this.getTotalWidth() + this._getCrumbElement().width() < availableWidth) {
+ && this.getTotalWidth() + this._getCrumbElement().outerWidth(true) < availableWidth) {
this._showCrumb();
}
diff --git a/apps/files/tests/js/breadcrumbSpec.js b/apps/files/tests/js/breadcrumbSpec.js
index b1fd8d11769..ea912cc9fa9 100644
--- a/apps/files/tests/js/breadcrumbSpec.js
+++ b/apps/files/tests/js/breadcrumbSpec.js
@@ -313,6 +313,60 @@ describe('OCA.Files.BreadCrumb tests', function() {
expect($crumbs.eq(6).hasClass('hidden')).toEqual(false);
expect($crumbs.eq(7).hasClass('hidden')).toEqual(false);
});
+ it('Hides breadcrumbs to fit available width taking paddings into account', function() {
+ var $crumbs;
+
+ // Each element is 20px wider
+ paddings = [10, 10, 10, 10, 10, 10, 10, 10];
+
+ $('div.crumb').each(function(index){
+ $(this).css('padding', paddings[index]);
+ });
+
+ $('#controls').width(700);
+ bc._resize();
+
+ $crumbs = bc.$el.find('.crumb');
+
+ // Second, third and fourth crumb are hidden and everything else is
+ // visible
+ expect($crumbs.eq(0).hasClass('hidden')).toEqual(false);
+ expect($crumbs.eq(1).hasClass('hidden')).toEqual(false);
+
+ expect($crumbs.eq(2).hasClass('hidden')).toEqual(false);
+ expect($crumbs.eq(3).hasClass('hidden')).toEqual(true);
+ expect($crumbs.eq(4).hasClass('hidden')).toEqual(true);
+ expect($crumbs.eq(5).hasClass('hidden')).toEqual(true);
+ expect($crumbs.eq(6).hasClass('hidden')).toEqual(false);
+ expect($crumbs.eq(7).hasClass('hidden')).toEqual(false);
+ });
+ it('Hides breadcrumbs to fit available width taking margins into account', function() {
+ var $crumbs;
+
+ // Each element is 20px wider
+ margins = [10, 10, 10, 10, 10, 10, 10, 10];
+
+ $('div.crumb').each(function(index){
+ $(this).css('margin', margins[index]);
+ });
+
+ $('#controls').width(700);
+ bc._resize();
+
+ $crumbs = bc.$el.find('.crumb');
+
+ // Second, third and fourth crumb are hidden and everything else is
+ // visible
+ expect($crumbs.eq(0).hasClass('hidden')).toEqual(false);
+ expect($crumbs.eq(1).hasClass('hidden')).toEqual(false);
+
+ expect($crumbs.eq(2).hasClass('hidden')).toEqual(false);
+ expect($crumbs.eq(3).hasClass('hidden')).toEqual(true);
+ expect($crumbs.eq(4).hasClass('hidden')).toEqual(true);
+ expect($crumbs.eq(5).hasClass('hidden')).toEqual(true);
+ expect($crumbs.eq(6).hasClass('hidden')).toEqual(false);
+ expect($crumbs.eq(7).hasClass('hidden')).toEqual(false);
+ });
it('Hides breadcrumbs to fit available width left by siblings', function() {
var $crumbs;