fancy error information
authorMaciej Tronowski <mtro@man.poznan.pl>
Tue, 14 Apr 2015 10:41:32 +0000 (12:41 +0200)
committerMaciej Tronowski <mtro@man.poznan.pl>
Tue, 14 Apr 2015 10:41:32 +0000 (12:41 +0200)
qcg/templates/qcg/gridftp.html

index dd24d7e..67bf34f 100644 (file)
                 $('#status').text(msg);
             }
 
-            function fail() {
-                status('Wystąpił błąd.');
-                console.error(arguments);
-                filex.idle();
+            function failModal(msg) {
+                return function() {
+                    var $errorModal = $('#error-modal');
+
+                    $errorModal.find('#error-modal-label').text('Błąd serwera');
+                    $errorModal.find('.modal-body').html($('<h4>', {text: msg}));
+
+                    filex.idle();
+                    $errorModal.modal();
+
+                    console.error(arguments);
+                };
             }
 
             filex.files.on('change:checked reset', function() {
 
                         if (keys.length) {
                             var $errorModal = $('#error-modal'),
-                                $errorList = $errorModal.find('dl').html('');
+                                $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) {
                                 $('<dt>', {text: keys[i]}).appendTo($errorList);
                         if (response.done.length)
                             filex.reloadFiles();
 
-                    }, 'json').fail(fail);
+                    }, 'json').fail(failModal('Nie udało się usunąć plików'));
 
                     $confirmModal.modal('hide');
                 });
                 $.post($this.attr('action'), $this.serialize(), function() {
                     status('Katalog utworzono pomyślnie');
                     filex.reloadFiles();
-                }, 'json').fail(fail);
+                }, 'json').fail(failModal('Nie udało się utworzyć katalogu'));
             });
 
             $('#rename-form').on('show.bs.modal', function() {
                 $.post($this.attr('action'), $this.serialize(), function() {
                     status('Nazwę zmieniono pomyślnie');
                     filex.reloadFiles();
-                }, 'json').fail(fail);
+                }, 'json').fail(failModal('Nie udało się zmienić nazwy'));
             });
 
             $('#compress-form').on('submit', function(e) {
                 $.post($this.attr('action'), data, function() {
                     status('Archiwum utworzono pomyślnie');
                     filex.reloadFiles();
-                }, 'json').fail(fail);
+                }, 'json').fail(failModal('Nie udało się utworzyć archiwum'));
             });
 
             $('#btn-extract').on('click', function() {
                 $.post('{% url 'filex:extract' %}', data, function() {
                     status('Archiwum rozpakowano pomyślnie');
                     filex.reloadFiles();
-                }, 'json').fail(fail);
+                }, 'json').fail(failModal('Nie udało się rozpakować archiwum'));
             });
         })
     </script>
                     <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                         <span aria-hidden="true">&times;</span>
                     </button>
-                    <h4 class="modal-title" id="error-modal-label">Błąd</h4>
+                    <h4 class="modal-title" id="error-modal-label"></h4>
                 </div>
                 <div class="modal-body">
-                    <h4>Wystąpiły problemy podczas usuwania:</h4>
-                    <dl class="dl-horizontal"></dl>
                 </div>
                 <div class="modal-footer">
                     <button type="button" class="btn btn-primary" data-dismiss="modal">OK</button>