+
+ $('#btn-delete').on('click', function() {
+ var selected = _.groupBy(filex.selectedFiles(), function(item) { return item.get('type') }),
+ path = filex.path.full() + '/',
+ dirs = _.map(selected.directory || [], function (item) { return path + item.get('name') }),
+ files = _.map(selected.file || [], function (item) { return path + item.get('name') }),
+ data = {
+ host: filex.host,
+ dirs: dirs,
+ files: files
+ },
+ $confirmModal = $('#confirm-modal'),
+ $confirmList = $confirmModal.find('ul').html('');
+
+ _.each(filex.selectedFiles(), function(item) {
+ $('<li>', {text: item.get('name')}).appendTo($confirmList);
+ });
+
+ $('#btn-confirm').off().on('click', function() {
+ filex.busy();
+
+ $.post('{% url 'filex:delete' %}', data, function(response) {
+ var keys = Object.keys(response.fail);
+
+ if (keys.length) {
+ var $errorModal = $('#error-modal'),
+ $errorBody = $errorModal.find('.modal-body')
+ .html($('<h4>', {text: 'Wystąpiły problemy podczas usuwania:'})),
+ $errorList = $('<dl>', {'class': 'dl-horizontal'}).appendTo($errorBody);
+
+ $errorModal.find('#error-modal-label').text('Błąd');
+
+ for (var i in keys) {
+ if(keys.hasOwnProperty(i)) {
+ $('<dt>', {text: keys[i].replace(path, '')}).appendTo($errorList);
+ $('<dd>', {text: response.fail[keys[i]]}).appendTo($errorList);
+ }
+ }
+
+ $errorModal.modal();
+ filex.idle();
+ }
+ else {
+ status('Usuwanie zakończone pomyślnie');
+ }
+
+ if (response.done.length)
+ filex.reloadFiles();
+
+ }, 'json').fail(failModal('Nie udało się usunąć plików'));
+
+ $confirmModal.modal('hide');
+ });
+
+ $confirmModal.modal();
+ });
+
+ $('#mkdir-form').on('submit', function(e) {
+ var $this = $(this);
+
+ e.preventDefault();
+
+ if (conflictingName($this.find('#id_name').val(), $this))
+ return;
+
+ filex.busy();
+ $this.modal('hide');
+
+ $this.find('#id_host').val(filex.host);
+ $this.find('#id_path').val(filex.path.full());
+
+ $.post($this.attr('action'), $this.serialize(), function() {
+ status('Katalog utworzono pomyślnie');
+ filex.reloadFiles();
+ }, 'json').fail(failModal('Nie udało się utworzyć katalogu'));
+ });
+
+ $('#rename-form').on('show.bs.modal', function() {
+ $(this).find('#id_dst').val(filex.selectedFiles()[0].get('name'));
+ }).on('submit', function(e) {
+ e.preventDefault();
+
+ var $this = $(this),
+ path = filex.path.full() + '/',
+ newName = $this.find('#id_dst').val(),
+ data = {
+ host: filex.host,
+ src: path + filex.selectedFiles()[0].get('name'),
+ dst: path + newName
+ };
+
+ if (conflictingName(newName, $this))
+ return;
+
+ filex.busy();
+ $this.modal('hide');
+
+ $.post($this.attr('action'), data, function() {
+ status('Nazwę zmieniono pomyślnie');
+ filex.reloadFiles();
+ }, 'json').fail(failModal('Nie udało się zmienić nazwy'));
+ });
+
+ $('#compress-form').on('submit', function(e) {
+ e.preventDefault();
+
+ var $this = $(this),
+ name = $this.find('#id_archive').val(),
+ type = $this.find('#id_type').val(),
+ path = filex.path.full(),
+ archive = name + (name.endsWith(type) ? '' : type),
+ data = {
+ host: filex.host,
+ path: path,
+ files: _.map(filex.selectedFiles(), function (item) { return item.get('name') }),
+ archive: path + '/' + archive
+ };
+
+ if (conflictingName(archive, $this))
+ return;
+
+ filex.busy();
+ $this.modal('hide');
+
+ $.post($this.attr('action'), data, function() {
+ status('Archiwum utworzono pomyślnie');
+ filex.reloadFiles();
+ }, 'json').fail(failModal('Nie udało się utworzyć archiwum'));
+ });
+
+ $('#btn-extract').on('click', function() {
+ filex.busy();
+
+ var data = {
+ host: filex.host,
+ path: filex.path.full() + '/' + filex.selectedFiles()[0].get('name'),
+ dst: filex.path.full()
+ };
+
+ $.post('{% url 'filex:extract' %}', data, function() {
+ status('Archiwum rozpakowano pomyślnie');
+ filex.reloadFiles();
+ }, 'json').fail(failModal('Nie udało się rozpakować archiwum'));
+ });