Fixed some more test and loop fix
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
This commit is contained in:
parent
41210c8cf1
commit
694a96d938
|
@ -34,6 +34,8 @@
|
||||||
var BreadCrumb = function(options){
|
var BreadCrumb = function(options){
|
||||||
this.$el = $('<div class="breadcrumb"></div>');
|
this.$el = $('<div class="breadcrumb"></div>');
|
||||||
this.$menu = $('<div class="popovermenu menu-center"><ul></ul></div>');
|
this.$menu = $('<div class="popovermenu menu-center"><ul></ul></div>');
|
||||||
|
|
||||||
|
this.crumbSelector = '.crumb:not(.hidden):not(.crumbhome):not(.crumbmenu)';
|
||||||
options = options || {};
|
options = options || {};
|
||||||
if (options.onClick) {
|
if (options.onClick) {
|
||||||
this.onClick = options.onClick;
|
this.onClick = options.onClick;
|
||||||
|
@ -84,7 +86,6 @@
|
||||||
},
|
},
|
||||||
|
|
||||||
setDirectoryInfo: function(dirInfo) {
|
setDirectoryInfo: function(dirInfo) {
|
||||||
console.log(dirInfo);
|
|
||||||
if (dirInfo !== this.dirInfo) {
|
if (dirInfo !== this.dirInfo) {
|
||||||
this.dirInfo = dirInfo;
|
this.dirInfo = dirInfo;
|
||||||
this.render();
|
this.render();
|
||||||
|
@ -264,7 +265,7 @@
|
||||||
var totalWidth = 0;
|
var totalWidth = 0;
|
||||||
for (var i = 0; i < this.breadcrumbs.length; i++ ) {
|
for (var i = 0; i < this.breadcrumbs.length; i++ ) {
|
||||||
var $crumb = $(this.breadcrumbs[i]);
|
var $crumb = $(this.breadcrumbs[i]);
|
||||||
if(!$crumb.hasClass('hidden') || ignoreHidden) {
|
if(!$crumb.hasClass('hidden') || ignoreHidden === true) {
|
||||||
totalWidth += $crumb.width();
|
totalWidth += $crumb.width();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -275,11 +276,10 @@
|
||||||
* Hide the middle crumb
|
* Hide the middle crumb
|
||||||
*/
|
*/
|
||||||
_hideCrumb: function() {
|
_hideCrumb: function() {
|
||||||
var selector = '.crumb:not(.hidden):not(.crumbhome):not(.crumbmenu)';
|
var length = this.$el.find(this.crumbSelector).length;
|
||||||
var length = this.$el.find(selector).length;
|
|
||||||
// Get the middle one floored down
|
// Get the middle one floored down
|
||||||
var elmt = Math.floor(length / 2 - 0.5);
|
var elmt = Math.floor(length / 2 - 0.5);
|
||||||
this.$el.find(selector+':eq('+elmt+')').addClass('hidden');
|
this.$el.find(this.crumbSelector+':eq('+elmt+')').addClass('hidden');
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -287,7 +287,7 @@
|
||||||
*/
|
*/
|
||||||
_getCrumbElement: function() {
|
_getCrumbElement: function() {
|
||||||
var hidden = this.$el.find('.crumb.hidden').length;
|
var hidden = this.$el.find('.crumb.hidden').length;
|
||||||
var shown = this.$el.find('.crumb:not(.hidden):not(.crumbhome):not(.crumbmenu)').length;
|
var shown = this.$el.find(this.crumbSelector).length;
|
||||||
// Get the outer one with priority to the highest
|
// Get the outer one with priority to the highest
|
||||||
var elmt = (1 - shown % 2) * (hidden - 1);
|
var elmt = (1 - shown % 2) * (hidden - 1);
|
||||||
return this.$el.find('.crumb.hidden:eq('+elmt+')');
|
return this.$el.find('.crumb.hidden:eq('+elmt+')');
|
||||||
|
@ -327,6 +327,12 @@
|
||||||
},
|
},
|
||||||
|
|
||||||
_resize: function() {
|
_resize: function() {
|
||||||
|
|
||||||
|
if (this.breadcrumbs.length <= 2) {
|
||||||
|
// home & menu
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// Used for testing since this.$el.parent fails
|
// Used for testing since this.$el.parent fails
|
||||||
if (!this.availableWidth) {
|
if (!this.availableWidth) {
|
||||||
this.usedWidth = this.$el.parent().width();
|
this.usedWidth = this.$el.parent().width();
|
||||||
|
@ -334,12 +340,10 @@
|
||||||
this.usedWidth = this.availableWidth;
|
this.usedWidth = this.availableWidth;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.breadcrumbs.length <= 1) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// If container is smaller than content
|
// If container is smaller than content
|
||||||
while (this.getTotalWidth() > this.usedWidth) {
|
// AND if there are crumbs left to hide
|
||||||
|
while (this.getTotalWidth() > this.usedWidth
|
||||||
|
&& this.$el.find(this.crumbSelector).length > 0) {
|
||||||
this._hideCrumb();
|
this._hideCrumb();
|
||||||
}
|
}
|
||||||
// If container is bigger than content + element to be shown
|
// If container is bigger than content + element to be shown
|
||||||
|
|
|
@ -156,7 +156,7 @@ describe('OCA.Files.BreadCrumb tests', function() {
|
||||||
onDrop: handler
|
onDrop: handler
|
||||||
});
|
});
|
||||||
bc.setDirectory('/one/two/three/four');
|
bc.setDirectory('/one/two/three/four');
|
||||||
expect(droppableStub.calledOnce).toEqual(true);
|
expect(droppableStub.calledOnce).toEqual(false);
|
||||||
|
|
||||||
expect(droppableStub.getCall(0).args[0].drop).toBeDefined();
|
expect(droppableStub.getCall(0).args[0].drop).toBeDefined();
|
||||||
// simulate drop
|
// simulate drop
|
||||||
|
@ -169,7 +169,7 @@ describe('OCA.Files.BreadCrumb tests', function() {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
describe('Resizing', function() {
|
describe('Resizing', function() {
|
||||||
var bc, dummyDir, widths, oldUpdateTotalWidth;
|
var bc, dummyDir, widths;
|
||||||
|
|
||||||
beforeEach(function() {
|
beforeEach(function() {
|
||||||
dummyDir = '/short name/longer name/looooooooooooonger/' +
|
dummyDir = '/short name/longer name/looooooooooooonger/' +
|
||||||
|
|
Loading…
Reference in New Issue