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 72 {% csrf_token %}
73 73  
74 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 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 79 <span class="input-group-btn input-group-sm">
80 80 <button type="button" class="btn btn-fab btn-fab-mini">
81 81 <i class="material-icons">attach_file</i>
... ... @@ -88,8 +88,18 @@
88 88 </div>
89 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 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 103 </div>
94 104 </form>
95 105 </div>
... ... @@ -127,10 +137,23 @@
127 137 // file selection
128 138 function FileSelectHandler(e) {
129 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 148 // process all File objects
133 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 157 parent.find('.filedrag').html(f.name);
135 158 }
136 159 }
... ...