summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>2017-11-04 09:45:29 +0100
committerJohn Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>2017-11-08 13:04:38 +0100
commit6ee75e16af35473caa5e7ee4dbfbf4c63e1d2b4e (patch)
tree07a40708a3cf1d067674daa51f85433bb62ccf69
parent9616074f58b2d94f0e1722152720d982a1c2fc0c (diff)
downloadnextcloud-server-6ee75e16af35473caa5e7ee4dbfbf4c63e1d2b4e.tar.gz
nextcloud-server-6ee75e16af35473caa5e7ee4dbfbf4c63e1d2b4e.zip
Fixed computation and removed unwanted scripts
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
-rw-r--r--apps/files/js/breadcrumb.js91
-rw-r--r--apps/files/js/filelist.js34
-rw-r--r--core/js/js.js33
3 files changed, 56 insertions, 102 deletions
diff --git a/apps/files/js/breadcrumb.js b/apps/files/js/breadcrumb.js
index c5cb97d5b4c..d895572f9b0 100644
--- a/apps/files/js/breadcrumb.js
+++ b/apps/files/js/breadcrumb.js
@@ -136,7 +136,6 @@
$crumb.on('click', this.onClick);
}
}
- $crumb.addClass('last');
_.each(this._detailViews, function(view) {
view.render({
@@ -160,8 +159,7 @@
hoverClass: 'canDrop'
});
}
-
- this._updateTotalWidth();
+ this._resize();
},
/**
@@ -197,55 +195,36 @@
return crumbs;
},
- /**
- * Calculate the total breadcrumb width when
- * all crumbs are expanded
- */
- _updateTotalWidth: function () {
- this.totalWidth = 0;
- for (var i = 0; i < this.breadcrumbs.length; i++ ) {
- var $crumb = $(this.breadcrumbs[i]);
- this.totalWidth += $crumb.width();
- }
- this._resize();
- },
-
- /**
- * Show/hide breadcrumbs to fit the given width
- *
- * @param {int} availableWidth available width
- */
- setMaxWidth: function (availableWidth) {
- if (this.availableWidth !== availableWidth) {
- this.availableWidth = availableWidth;
- this._resize();
- }
- },
-
- /**
- * Return the number of items to hide
- */
- _toShrink: function() {
- var maxWidth = this.$el.parent().width();
- console.log('Available width:' +maxWidth);
- var smallestWidth = 50;
- // 50px by default for the ellipsis crumb
- return Math.ceil((this.totalWidth + 50 - maxWidth) / smallestWidth);
- },
-
- /**
- * Hide the desired number of items
- *
- * @param {int} number to hide
- */
- _hideCrumbs: function(toHide) {
- var min = Math.round(this.breadcrumbs.length/2 - toHide/2);
- var max = Math.round(this.breadcrumbs.length/2 + toHide/2 - 1);
- console.log('toShrink: '+toHide);
- this.$el.find('.crumb').removeClass('hidden')
- .slice(min, max).addClass('hidden');
+ /**
+ * Hide the middle crumb
+ */
+ _hideCrumb: function() {
+ var length = this.$el.find('.crumb:not(.hidden)').length;
+ // Get the middle one floored down
+ var elmt = Math.floor(length / 2 - 0.5);
+ this.$el.find('.crumb:not(.hidden):eq('+elmt+')').addClass('hidden');
+ },
+
+ /**
+ * Get the crumb to show
+ */
+ _getCrumbElement: function() {
+ var length = this.$el.find('.crumb.hidden').length;
+ // Get the outer one with priority to the highest
+ var elmt = (length % 2) * (length - 1);
+ return this.$el.find('.crumb.hidden:eq('+elmt+')');
},
+ /**
+ * Show the middle crumb
+ */
+ _showCrumb: function() {
+ if(this.$el.find('.crumb.hidden').length === 1) {
+ this.$el.find('.crumb.hidden').removeClass('hidden');
+ }
+ this._getCrumbElement().removeClass('hidden');
+ },
+
_resize: function() {
var i, $crumb, $ellipsisCrumb;
@@ -256,9 +235,17 @@
if (this.breadcrumbs.length <= 1) {
return;
}
- this._hideCrumbs(this._toShrink());
-
+ // If container is smaller than content
+ while (this.$el.width() > this.$el.parent().width()) {
+ this._hideCrumb();
+ }
+ // 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.$el.width() + this._getCrumbElement().width() < this.$el.parent().width()) {
+ this._showCrumb();
+ }
}
};
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js
index 4790afcf4d0..0fdec811a34 100644
--- a/apps/files/js/filelist.js
+++ b/apps/files/js/filelist.js
@@ -322,7 +322,7 @@
this.$el.find('thead th .columntitle').click(_.bind(this._onClickHeader, this));
- this._onResize = _.debounce(_.bind(this._onResize, this), 100);
+ this._onResize = _.debounce(_.bind(this._onResize, this), 250);
$('#app-content').on('appresized', this._onResize);
$(window).resize(this._onResize);
@@ -555,7 +555,7 @@
// subtract app navigation toggle when visible
containerWidth -= $('#app-navigation-toggle').width();
- this.breadcrumb.setMaxWidth(containerWidth - actionsWidth - 10);
+ this.breadcrumb._resize();
this.$table.find('>thead').width($('#app-content').width() - OC.Util.getScrollBarWidth());
},
@@ -1709,7 +1709,7 @@
if (status === 500) {
// Go home
this.changeDirectory('/');
- OC.Notification.show(t('files', 'This directory is unavailable, please check the logs or contact the administrator'),
+ OC.Notification.show(t('files', 'This directory is unavailable, please check the logs or contact the administrator'),
{type: 'error'}
);
return false;
@@ -1720,7 +1720,7 @@
if (this.getCurrentDirectory() !== '/') {
this.changeDirectory('/');
// TODO: read error message from exception
- OC.Notification.show(t('files', 'Storage is temporarily not available'),
+ OC.Notification.show(t('files', 'Storage is temporarily not available'),
{type: 'error'}
);
}
@@ -2036,11 +2036,11 @@
.fail(function(status) {
if (status === 412) {
// TODO: some day here we should invoke the conflict dialog
- OC.Notification.show(t('files', 'Could not move "{file}", target exists',
+ OC.Notification.show(t('files', 'Could not move "{file}", target exists',
{file: fileName}), {type: 'error'}
);
} else {
- OC.Notification.show(t('files', 'Could not move "{file}"',
+ OC.Notification.show(t('files', 'Could not move "{file}"',
{file: fileName}), {type: 'error'}
);
}
@@ -2267,7 +2267,7 @@
// TODO: 409 means current folder does not exist, redirect ?
if (status === 404) {
// source not found, so remove it from the list
- OC.Notification.show(t('files', 'Could not rename "{fileName}", it does not exist any more',
+ OC.Notification.show(t('files', 'Could not rename "{fileName}", it does not exist any more',
{fileName: oldName}), {timeout: 7, type: 'error'}
);
@@ -2287,7 +2287,7 @@
);
} else {
// restore the item to its previous state
- OC.Notification.show(t('files', 'Could not rename "{fileName}"',
+ OC.Notification.show(t('files', 'Could not rename "{fileName}"',
{fileName: oldName}), {type: 'error'}
);
}
@@ -2372,18 +2372,18 @@
self.addAndFetchFileInfo(targetPath, '', {scrollTo: true}).then(function(status, data) {
deferred.resolve(status, data);
}, function() {
- OC.Notification.show(t('files', 'Could not create file "{file}"',
+ OC.Notification.show(t('files', 'Could not create file "{file}"',
{file: name}), {type: 'error'}
);
});
})
.fail(function(status) {
if (status === 412) {
- OC.Notification.show(t('files', 'Could not create file "{file}" because it already exists',
+ OC.Notification.show(t('files', 'Could not create file "{file}" because it already exists',
{file: name}), {type: 'error'}
);
} else {
- OC.Notification.show(t('files', 'Could not create file "{file}"',
+ OC.Notification.show(t('files', 'Could not create file "{file}"',
{file: name}), {type: 'error'}
);
}
@@ -2422,7 +2422,7 @@
self.addAndFetchFileInfo(targetPath, '', {scrollTo:true}).then(function(status, data) {
deferred.resolve(status, data);
}, function() {
- OC.Notification.show(t('files', 'Could not create folder "{dir}"',
+ OC.Notification.show(t('files', 'Could not create folder "{dir}"',
{dir: name}), {type: 'error'}
);
});
@@ -2433,20 +2433,20 @@
// add it to the list, for completeness
self.addAndFetchFileInfo(targetPath, '', {scrollTo:true})
.done(function(status, data) {
- OC.Notification.show(t('files', 'Could not create folder "{dir}" because it already exists',
+ OC.Notification.show(t('files', 'Could not create folder "{dir}" because it already exists',
{dir: name}), {type: 'error'}
);
// still consider a failure
deferred.reject(createStatus, data);
})
.fail(function() {
- OC.Notification.show(t('files', 'Could not create folder "{dir}"',
+ OC.Notification.show(t('files', 'Could not create folder "{dir}"',
{dir: name}), {type: 'error'}
);
deferred.reject(status);
});
} else {
- OC.Notification.show(t('files', 'Could not create folder "{dir}"',
+ OC.Notification.show(t('files', 'Could not create folder "{dir}"',
{dir: name}), {type: 'error'}
);
deferred.reject(createStatus);
@@ -2503,7 +2503,7 @@
deferred.resolve(status, data);
})
.fail(function(status) {
- OC.Notification.show(t('files', 'Could not create file "{file}"',
+ OC.Notification.show(t('files', 'Could not create file "{file}"',
{file: name}), {type: 'error'}
);
deferred.reject(status);
@@ -2612,7 +2612,7 @@
removeFromList(file);
} else {
// only reset the spinner for that one file
- OC.Notification.show(t('files', 'Error deleting file "{fileName}".',
+ OC.Notification.show(t('files', 'Error deleting file "{fileName}".',
{fileName: file}), {type: 'error'}
);
var deleteAction = self.findFileEl(file).find('.action.delete');
diff --git a/core/js/js.js b/core/js/js.js
index 1f84b40a35a..730586713a0 100644
--- a/core/js/js.js
+++ b/core/js/js.js
@@ -1625,39 +1625,6 @@ function initCore() {
// initial call
toggleSnapperOnSize();
- // adjust controls bar width
- var adjustControlsWidth = function() {
- if($('#controls').length) {
- var controlsWidth;
- // if there is a scrollbar …
- if($('#app-content').get(0).scrollHeight > $('#app-content').height()) {
- if($(window).width() > 768) {
- controlsWidth = $('#content').width() - $('#app-navigation').width() - getScrollBarWidth();
- if (!$('#app-sidebar').hasClass('hidden') && !$('#app-sidebar').hasClass('disappear')) {
- controlsWidth -= $('#app-sidebar').width();
- }
- } else {
- controlsWidth = $('#content').width() - getScrollBarWidth();
- }
- } else { // if there is none
- if($(window).width() > 768) {
- controlsWidth = $('#content').width() - $('#app-navigation').width();
- if (!$('#app-sidebar').hasClass('hidden') && !$('#app-sidebar').hasClass('disappear')) {
- controlsWidth -= $('#app-sidebar').width();
- }
- } else {
- controlsWidth = $('#content').width();
- }
- }
- $('#controls').css('width', controlsWidth);
- $('#controls').css('min-width', controlsWidth);
- }
- };
-
- $(window).resize(_.debounce(adjustControlsWidth, 250));
-
- $('body').delegate('#app-content', 'apprendered appresized', _.debounce(adjustControlsWidth, 150));
-
}
// Update live timestamps every 30 seconds