mirror of
https://github.com/Studio-42/elFinder
synced 2026-06-08 12:37:09 +00:00
59 lines
1.4 KiB
JavaScript
59 lines
1.4 KiB
JavaScript
"use strict";
|
|
/**
|
|
* @class elFinder ui
|
|
* Display number of files/selected files and its size in statusbar
|
|
*
|
|
* @author Dmitry (dio) Levashov
|
|
**/
|
|
$.fn.elfinderstat = function(fm) {
|
|
return this.each(function() {
|
|
var size = $(this).addClass('elfinder-stat-size'),
|
|
sel = $('<div class="elfinder-stat-selected"/>'),
|
|
titlesize = fm.i18n('size').toLowerCase(),
|
|
titleitems = fm.i18n('items').toLowerCase(),
|
|
titlesel = fm.i18n('selected'),
|
|
setstat = function(files, cwd) {
|
|
var c = 0,
|
|
s = 0;
|
|
|
|
$.each(files, function(i, file) {
|
|
if (!cwd || file.phash == cwd) {
|
|
c++;
|
|
s += parseInt(file.size)||0;
|
|
}
|
|
})
|
|
size.html(titleitems+': '+c+', '+titlesize+': '+fm.formatSize(s));
|
|
};
|
|
|
|
fm.getUI('statusbar').prepend(size).append(sel).show();
|
|
|
|
fm
|
|
.bind('open reload add remove change searchend', function() {
|
|
setstat(fm.files(), fm.cwd().hash)
|
|
})
|
|
.search(function(e) {
|
|
setstat(e.data.files);
|
|
})
|
|
.select(function() {
|
|
var s = 0,
|
|
c = 0,
|
|
files = fm.selectedFiles();
|
|
|
|
if (files.length == 1) {
|
|
s = files[0].size;
|
|
sel.html(fm.escape(files[0].name)+(s > 0 ? ', '+fm.formatSize(s) : ''));
|
|
|
|
return;
|
|
}
|
|
|
|
$.each(files, function(i, file) {
|
|
c++;
|
|
s += parseInt(file.size)||0;
|
|
});
|
|
|
|
sel.html(c ? titlesel+': '+c+', '+titlesize+': '+fm.formatSize(s) : ' ');
|
|
})
|
|
|
|
;
|
|
})
|
|
} |