maintenance.html 4.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <!--
  2. Copyright (C) 2024 Nicola Murino
  3. This WebUI uses the KeenThemes Mega Bundle, a proprietary theme:
  4. https://keenthemes.com/products/templates-mega-bundle
  5. KeenThemes HTML/CSS/JS components are allowed for use only within the
  6. SFTPGo product and restricted to be used in a resealable HTML template
  7. that can compete with KeenThemes products anyhow.
  8. This WebUI is allowed for use only within the SFTPGo product and
  9. therefore cannot be used in derivative works/products without an
  10. explicit grant from the SFTPGo Team ([email protected]).
  11. -->
  12. {{template "base" .}}
  13. {{- define "page_body"}}
  14. <div class="card shadow-sm">
  15. <div class="card-header bg-light">
  16. <h3 data-i18n="maintenance.restore" class="card-title section-title">Restore</h3>
  17. </div>
  18. <div class="card-body">
  19. {{- template "errmsg" .Error}}
  20. <form id="restore_form" enctype="multipart/form-data" action="{{.RestorePath}}" method="POST">
  21. <div class="form-group row">
  22. <label for="idBackupFile" data-i18n="maintenance.backup_file" class="col-md-3 col-form-label">Backup file</label>
  23. <div class="col-md-9">
  24. <input id="idBackupFile" type="file" accept="application/json" required class="form-control" name="backup_file" aria-describedby="idBackupFileHelp" />
  25. <div id="idBackupFileHelp" class="form-text" data-i18n="maintenance.backup_file_help"></div>
  26. </div>
  27. </div>
  28. <div class="form-group row mt-10">
  29. <label for="idMode" data-i18n="general.mode" class="col-md-3 col-form-label">Mode</label>
  30. <div class="col-md-9">
  31. <select id="idMode" name="mode" class="form-select" data-control="i18n-select2" data-hide-search="true">
  32. <option data-i18n="maintenance.restore_mode1" value="1">add only</option>
  33. <option data-i18n="maintenance.restore_mode0" value="0">add and update</option>
  34. <option data-i18n="maintenance.restore_mode2" value="2">add, update and disconnect</option>
  35. </select>
  36. </div>
  37. </div>
  38. <div class="form-group row mt-10">
  39. <label for="idQuota" data-i18n="maintenance.after_restore" class="col-md-3 col-form-label">After restore</label>
  40. <div class="col-md-9">
  41. <select id="idQuota" name="quota" class="form-select" data-control="i18n-select2" data-hide-search="true">
  42. <option data-i18n="maintenance.quota_mode0" value="0">no quota update</option>
  43. <option data-i18n="maintenance.quota_mode1" value="1">update quota</option>
  44. <option data-i18n="maintenance.quota_mode2" value="2">update quota if the user has quota restrictions</option>
  45. </select>
  46. </div>
  47. </div>
  48. <div class="d-flex justify-content-end mt-12">
  49. <input type="hidden" name="_form_token" value="{{.CSRFToken}}">
  50. <button type="submit" id="form_submit" class="btn btn-primary px-10" name="form_action" value="submit">
  51. <span data-i18n="maintenance.restore" class="indicator-label">
  52. Restore
  53. </span>
  54. <span data-i18n="general.wait" class="indicator-progress">
  55. Please wait...
  56. <span class="spinner-border spinner-border-sm align-middle ms-2"></span>
  57. </span>
  58. </button>
  59. </div>
  60. </form>
  61. </div>
  62. </div>
  63. <div class="card shadow-sm mt-10">
  64. <div class="card-header bg-light">
  65. <h3 data-i18n="maintenance.backup" class="card-title section-title">Backup</h3>
  66. </div>
  67. <div class="card-body">
  68. <div>
  69. <a href="{{.BackupPath}}?output-data=1" target="_blank" rel="noopener noreferrer" class="btn btn-primary btn-block">
  70. <span data-i18n="maintenance.backup_do">Backup your data</span>
  71. </a>
  72. </div>
  73. </div>
  74. </div>
  75. {{- end}}
  76. {{- define "extra_js"}}
  77. <script type="text/javascript" {{- if .CSPNonce}} nonce="{{.CSPNonce}}"{{- end}}>
  78. $(document).on("i18nshow", function(){
  79. $('#restore_form').submit(function (event) {
  80. let submitButton = document.querySelector('#form_submit');
  81. submitButton.setAttribute('data-kt-indicator', 'on');
  82. submitButton.disabled = true;
  83. });
  84. });
  85. </script>
  86. {{- end}}