fixing breadcrumbs on ajax loading of files
This commit is contained in:
parent
ef955bae56
commit
4e751cbb47
|
@ -218,8 +218,10 @@ var FileList={
|
||||||
if(typeof(result.data.breadcrumb) != 'undefined'){
|
if(typeof(result.data.breadcrumb) != 'undefined'){
|
||||||
$controls.find('.crumb').remove();
|
$controls.find('.crumb').remove();
|
||||||
$controls.prepend(result.data.breadcrumb);
|
$controls.prepend(result.data.breadcrumb);
|
||||||
// TODO: might need refactor breadcrumb code into a new file
|
|
||||||
//resizeBreadcrumbs(true);
|
var width = $(window).width();
|
||||||
|
Files.initBreadCrumbs();
|
||||||
|
Files.resizeBreadcrumbs(width, true);
|
||||||
|
|
||||||
// in case svg is not supported by the browser we need to execute the fallback mechanism
|
// in case svg is not supported by the browser we need to execute the fallback mechanism
|
||||||
if(!SVGSupport()) {
|
if(!SVGSupport()) {
|
||||||
|
|
|
@ -111,6 +111,72 @@ Files={
|
||||||
$(e).droppable(folderDropOptions);
|
$(e).droppable(folderDropOptions);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
lastWidth: 0,
|
||||||
|
|
||||||
|
initBreadCrumbs: function () {
|
||||||
|
Files.lastWidth = 0;
|
||||||
|
Files.breadcrumbs = [];
|
||||||
|
|
||||||
|
// initialize with some extra space
|
||||||
|
Files.breadcrumbsWidth = 64;
|
||||||
|
if ( document.getElementById("navigation") ) {
|
||||||
|
Files.breadcrumbsWidth += $('#navigation').get(0).offsetWidth;
|
||||||
|
}
|
||||||
|
Files.hiddenBreadcrumbs = 0;
|
||||||
|
|
||||||
|
$.each($('.crumb'), function(index, breadcrumb) {
|
||||||
|
Files.breadcrumbs[index] = breadcrumb;
|
||||||
|
Files.breadcrumbsWidth += $(breadcrumb).get(0).offsetWidth;
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
$.each($('#controls .actions>div'), function(index, action) {
|
||||||
|
Files.breadcrumbsWidth += $(action).get(0).offsetWidth;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
resizeBreadcrumbs: function (width, firstRun) {
|
||||||
|
if (width != Files.lastWidth) {
|
||||||
|
if ((width < Files.lastWidth || firstRun) && width < Files.breadcrumbsWidth) {
|
||||||
|
if (Files.hiddenBreadcrumbs == 0) {
|
||||||
|
Files.breadcrumbsWidth -= $(Files.breadcrumbs[1]).get(0).offsetWidth;
|
||||||
|
$(Files.breadcrumbs[1]).find('a').hide();
|
||||||
|
$(Files.breadcrumbs[1]).append('<span>...</span>');
|
||||||
|
Files.breadcrumbsWidth += $(Files.breadcrumbs[1]).get(0).offsetWidth;
|
||||||
|
Files.hiddenBreadcrumbs = 2;
|
||||||
|
}
|
||||||
|
var i = Files.hiddenBreadcrumbs;
|
||||||
|
while (width < Files.breadcrumbsWidth && i > 1 && i < Files.breadcrumbs.length - 1) {
|
||||||
|
Files.breadcrumbsWidth -= $(Files.breadcrumbs[i]).get(0).offsetWidth;
|
||||||
|
$(Files.breadcrumbs[i]).hide();
|
||||||
|
Files.hiddenBreadcrumbs = i;
|
||||||
|
i++
|
||||||
|
}
|
||||||
|
} else if (width > Files.lastWidth && Files.hiddenBreadcrumbs > 0) {
|
||||||
|
var i = Files.hiddenBreadcrumbs;
|
||||||
|
while (width > Files.breadcrumbsWidth && i > 0) {
|
||||||
|
if (Files.hiddenBreadcrumbs == 1) {
|
||||||
|
Files.breadcrumbsWidth -= $(Files.breadcrumbs[1]).get(0).offsetWidth;
|
||||||
|
$(Files.breadcrumbs[1]).find('span').remove();
|
||||||
|
$(Files.breadcrumbs[1]).find('a').show();
|
||||||
|
Files.breadcrumbsWidth += $(Files.breadcrumbs[1]).get(0).offsetWidth;
|
||||||
|
} else {
|
||||||
|
$(Files.breadcrumbs[i]).show();
|
||||||
|
Files.breadcrumbsWidth += $(Files.breadcrumbs[i]).get(0).offsetWidth;
|
||||||
|
if (Files.breadcrumbsWidth > width) {
|
||||||
|
Files.breadcrumbsWidth -= $(Files.breadcrumbs[i]).get(0).offsetWidth;
|
||||||
|
$(Files.breadcrumbs[i]).hide();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
i--;
|
||||||
|
Files.hiddenBreadcrumbs = i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Files.lastWidth = width;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
|
@ -273,72 +339,15 @@ $(document).ready(function() {
|
||||||
//do a background scan if needed
|
//do a background scan if needed
|
||||||
scanFiles();
|
scanFiles();
|
||||||
|
|
||||||
var lastWidth = 0;
|
Files.initBreadCrumbs();
|
||||||
var breadcrumbs = [];
|
|
||||||
var breadcrumbsWidth = 0;
|
|
||||||
if ( document.getElementById("navigation") ) {
|
|
||||||
breadcrumbsWidth = $('#navigation').get(0).offsetWidth;
|
|
||||||
}
|
|
||||||
var hiddenBreadcrumbs = 0;
|
|
||||||
|
|
||||||
$.each($('.crumb'), function(index, breadcrumb) {
|
|
||||||
breadcrumbs[index] = breadcrumb;
|
|
||||||
breadcrumbsWidth += $(breadcrumb).get(0).offsetWidth;
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
$.each($('#controls .actions>div'), function(index, action) {
|
|
||||||
breadcrumbsWidth += $(action).get(0).offsetWidth;
|
|
||||||
});
|
|
||||||
|
|
||||||
function resizeBreadcrumbs(firstRun) {
|
|
||||||
var width = $(this).width();
|
|
||||||
if (width != lastWidth) {
|
|
||||||
if ((width < lastWidth || firstRun) && width < breadcrumbsWidth) {
|
|
||||||
if (hiddenBreadcrumbs == 0) {
|
|
||||||
breadcrumbsWidth -= $(breadcrumbs[1]).get(0).offsetWidth;
|
|
||||||
$(breadcrumbs[1]).find('a').hide();
|
|
||||||
$(breadcrumbs[1]).append('<span>...</span>');
|
|
||||||
breadcrumbsWidth += $(breadcrumbs[1]).get(0).offsetWidth;
|
|
||||||
hiddenBreadcrumbs = 2;
|
|
||||||
}
|
|
||||||
var i = hiddenBreadcrumbs;
|
|
||||||
while (width < breadcrumbsWidth && i > 1 && i < breadcrumbs.length - 1) {
|
|
||||||
breadcrumbsWidth -= $(breadcrumbs[i]).get(0).offsetWidth;
|
|
||||||
$(breadcrumbs[i]).hide();
|
|
||||||
hiddenBreadcrumbs = i;
|
|
||||||
i++
|
|
||||||
}
|
|
||||||
} else if (width > lastWidth && hiddenBreadcrumbs > 0) {
|
|
||||||
var i = hiddenBreadcrumbs;
|
|
||||||
while (width > breadcrumbsWidth && i > 0) {
|
|
||||||
if (hiddenBreadcrumbs == 1) {
|
|
||||||
breadcrumbsWidth -= $(breadcrumbs[1]).get(0).offsetWidth;
|
|
||||||
$(breadcrumbs[1]).find('span').remove();
|
|
||||||
$(breadcrumbs[1]).find('a').show();
|
|
||||||
breadcrumbsWidth += $(breadcrumbs[1]).get(0).offsetWidth;
|
|
||||||
} else {
|
|
||||||
$(breadcrumbs[i]).show();
|
|
||||||
breadcrumbsWidth += $(breadcrumbs[i]).get(0).offsetWidth;
|
|
||||||
if (breadcrumbsWidth > width) {
|
|
||||||
breadcrumbsWidth -= $(breadcrumbs[i]).get(0).offsetWidth;
|
|
||||||
$(breadcrumbs[i]).hide();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
i--;
|
|
||||||
hiddenBreadcrumbs = i;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
lastWidth = width;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$(window).resize(function() {
|
$(window).resize(function() {
|
||||||
resizeBreadcrumbs(false);
|
var width = $(this).width();
|
||||||
|
Files.resizeBreadcrumbs(width, false);
|
||||||
});
|
});
|
||||||
|
|
||||||
resizeBreadcrumbs(true);
|
var width = $(this).width();
|
||||||
|
Files.resizeBreadcrumbs(width, true);
|
||||||
|
|
||||||
// event handlers for breadcrumb items
|
// event handlers for breadcrumb items
|
||||||
$('#controls').delegate('.crumb a', 'click', onClickBreadcrumb);
|
$('#controls').delegate('.crumb a', 'click', onClickBreadcrumb);
|
||||||
|
|
|
@ -38,7 +38,9 @@
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
<?php if ($_['trash'] ): ?>
|
<?php if ($_['trash'] ): ?>
|
||||||
<input id="trash" type="button" value="<?php p($l->t('Deleted files'));?>" class="button" <?php $_['trashEmpty'] ? p('disabled') : '' ?>></input>
|
<div id="trash" class="button" <?php $_['trashEmpty'] ? p('disabled') : '' ?>>
|
||||||
|
<a><?php p($l->t('Deleted files'));?></a>
|
||||||
|
</div>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
<div id="uploadprogresswrapper">
|
<div id="uploadprogresswrapper">
|
||||||
<div id="uploadprogressbar"></div>
|
<div id="uploadprogressbar"></div>
|
||||||
|
|
Loading…
Reference in New Issue