Commit 30e80411c9870c4f1ba8efc7fc55369d08112e7d

Authored by Zambom
1 parent 92f8d2d5

Change restore to require a file

Showing 1 changed file with 27 additions and 4 deletions   Show diff stats
subjects/templates/subjects/restore.html
@@ -72,10 +72,10 @@ @@ -72,10 +72,10 @@
72 {% csrf_token %} 72 {% csrf_token %}
73 73
74 <div class="form-group is-fileinput"> 74 <div class="form-group is-fileinput">
75 - <input type="file" id="zip_file" name="zip_file" class="form-control" accept=".zip" /> 75 + <input type="file" id="zip_file" name="zip_file" class="form-control" accept=".zip" data-mimetypes="['application/zip', 'application/octet-stream']" required />
76 76
77 <div class="input-group common-file-input"> 77 <div class="input-group common-file-input">
78 - <input type="text" readonly="" class="form-control" placeholder="{% trans 'Choose your file...' %}"> 78 + <input type="text" readonly="" class="form-control" placeholder="{% trans 'Choose your file...' %}" required>
79 <span class="input-group-btn input-group-sm"> 79 <span class="input-group-btn input-group-sm">
80 <button type="button" class="btn btn-fab btn-fab-mini"> 80 <button type="button" class="btn btn-fab btn-fab-mini">
81 <i class="material-icons">attach_file</i> 81 <i class="material-icons">attach_file</i>
@@ -88,8 +88,18 @@ @@ -88,8 +88,18 @@
88 </div> 88 </div>
89 </div> 89 </div>
90 90
  91 + <div class="col-lg-12 col-md-12 col-sm-12 alert alert-danger alert-dismissible client-file-errors" style="display:none" role="alert">
  92 + <button type="button" class="close" data-dismiss="alert" aria-label="Close">
  93 + <span aria-hidden="true">&times;</span>
  94 + </button>
  95 + <ul>
  96 + <li class="format">{% trans 'File not supported.' %}</li>
  97 + </ul>
  98 + </div>
  99 +
  100 +
91 <div class="row text-center"> 101 <div class="row text-center">
92 - <input type="submit" value="{% trans 'Restore' %}" class="btn btn-success btn-raised" /> 102 + <input type="submit" value="{% trans 'Restore' %}" disabled class="btn btn-success btn-raised" />
93 </div> 103 </div>
94 </form> 104 </form>
95 </div> 105 </div>
@@ -127,10 +137,23 @@ @@ -127,10 +137,23 @@
127 // file selection 137 // file selection
128 function FileSelectHandler(e) { 138 function FileSelectHandler(e) {
129 var files = e.target.files || e.dataTransfer.files, 139 var files = e.target.files || e.dataTransfer.files,
130 - parent = $(e.target.offsetParent); 140 + parent = $(e.target.offsetParent),
  141 + mimeTypes = $(e.target).data('mimetypes'),
  142 + submit_btn = $(e.target).closest("form").find("input[type='submit']");
  143 +
  144 + $(".client-file-errors").hide();
  145 + $(submit_btn).prop('disable', false);
  146 + $(submit_btn).prop('disabled', false);
131 147
132 // process all File objects 148 // process all File objects
133 for (var i = 0, f; f = files[i]; i++) { 149 for (var i = 0, f; f = files[i]; i++) {
  150 + if (!mimeTypes.includes(f.type)) {
  151 + $(submit_btn).prop('disable', true);
  152 + $(submit_btn).prop('disabled', true);
  153 +
  154 + $(".client-file-errors").show();
  155 + }
  156 +
134 parent.find('.filedrag').html(f.name); 157 parent.find('.filedrag').html(f.name);
135 } 158 }
136 } 159 }