X-Git-Url: http://mmka.chem.univ.gda.pl/gitweb/?a=blobdiff_plain;ds=sidebyside;f=qcg%2Ftemplates%2Fqcg%2Fgridftp.html;fp=qcg%2Ftemplates%2Fqcg%2Fgridftp.html;h=0b0d55a1432a7295458afa0cb655b89cfd296760;hb=edd1abec6c3948dd007a7a7d75ddcc28e9197e41;hp=5e3e7a81bbb4c8bf7aba99e14fd3210ff61161b9;hpb=8fa091024d4e474722fd81df48852625f926aa86;p=qcg-portal.git diff --git a/qcg/templates/qcg/gridftp.html b/qcg/templates/qcg/gridftp.html index 5e3e7a8..0b0d55a 100644 --- a/qcg/templates/qcg/gridftp.html +++ b/qcg/templates/qcg/gridftp.html @@ -34,12 +34,17 @@ } function failModal(msg) { - return function() { + return function(xhr) { var $errorModal = $('#error-modal'); $errorModal.find('#error-modal-label').text('Błąd serwera'); $errorModal.find('.modal-body').html($('

', {text: msg})); + var error = (xhr.responseJSON || {}).error || undefined; + + if (typeof error === 'string') + $errorModal.find('.modal-body').append($('
', {text: error}));
+
                     filex.idle();
                     $errorModal.modal();
 
@@ -47,6 +52,21 @@
                 };
             }
 
+            function conflictingName(name, modal) {
+                if (filex.files.some(function(item) { return item.get('name') == name })) {
+                    modal.find('.alert').remove();
+
+                    $('
', { + 'class': 'alert alert-danger', + html: ' Plik o podanej już nazwie istnieje!' + }).prependTo(modal.find('.modal-body')); + + return true; + } + + return false; + } + filex.files.on('change:checked reset', function() { var selected = filex.selectedFiles().length; @@ -68,7 +88,7 @@ }); $('#btn-upload').on('click', function() { - var url = '{% url 'gridftp_upload' %}?' + $.param({host: filex.host, path: filex.path.full() + '/'}); + var url = '{% url 'gridftp_upload' %}?' + $.param({host: filex.host, path: filex.path.full()}); var win = window.open(url, url, 'height=500,width=800'); win.focus(); @@ -76,11 +96,11 @@ $('#btn-delete').on('click', function() { var selected = _.groupBy(filex.selectedFiles(), function(item) { return item.get('type') }), - dirs = _.map(selected.directory || [], function (item) { return item.get('name') }), - files = _.map(selected.file || [], function (item) { return item.get('name') }), + 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, - path: filex.path.full() + '/', dirs: dirs, files: files }, @@ -106,8 +126,10 @@ $errorModal.find('#error-modal-label').text('Błąd'); for (var i in keys) { - $('
', {text: keys[i]}).appendTo($errorList); - $('
', {text: response.fail[keys[i]]}).appendTo($errorList); + if(keys.hasOwnProperty(i)) { + $('
', {text: keys[i].replace(path, '')}).appendTo($errorList); + $('
', {text: response.fail[keys[i]]}).appendTo($errorList); + } } $errorModal.modal(); @@ -132,6 +154,10 @@ var $this = $(this); e.preventDefault(); + + if (conflictingName($this.find('#id_name').val(), $this)) + return; + filex.busy(); $this.modal('hide'); @@ -145,22 +171,26 @@ }); $('#rename-form').on('show.bs.modal', function() { - var $this = $(this); + $(this).find('#id_dst').val(filex.selectedFiles()[0].get('name')); + }).on('submit', function(e) { + e.preventDefault(); - var file = filex.selectedFiles()[0]; + 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 + }; - $this.find('#id_host').val(filex.host); - $this.find('#id_path').val(filex.path.full()); - $this.find('#id_src').val(file.get('name')); - $this.find('#id_dst').val(file.get('name')); - }).on('submit', function(e) { - var $this = $(this); + if (conflictingName(newName, $this)) + return; - e.preventDefault(); filex.busy(); $this.modal('hide'); - $.post($this.attr('action'), $this.serialize(), function() { + $.post($this.attr('action'), data, function() { status('Nazwę zmieniono pomyślnie'); filex.reloadFiles(); }, 'json').fail(failModal('Nie udało się zmienić nazwy')); @@ -170,27 +200,19 @@ e.preventDefault(); var $this = $(this), - name = $this.find('#id_name').val(), + 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: filex.path.full(), + path: path, files: _.map(filex.selectedFiles(), function (item) { return item.get('name') }), - archive: archive + archive: path + '/' + archive }; - // check if maybe file with given name exists - if (filex.files.some(function(item) { return item.get('name') == archive })) { - $this.find('.alert').remove(); - - $('
', { - 'class': 'alert alert-danger', - html: ' Plik o podanej już nazwie istnieje!' - }).prependTo($this.find('.modal-body')); - + if (conflictingName(archive, $this)) return; - } filex.busy(); $this.modal('hide'); @@ -206,7 +228,7 @@ var data = { host: filex.host, - archive: filex.path.full() + '/' + filex.selectedFiles()[0].get('name'), + path: filex.path.full() + '/' + filex.selectedFiles()[0].get('name'), dst: filex.path.full() };