folder.html 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. {{template "base" .}}
  2. {{define "title"}}{{.Title}}{{end}}
  3. {{define "page_body"}}
  4. <div class="card shadow mb-4">
  5. <div class="card-header py-3">
  6. <h6 class="m-0 font-weight-bold text-primary">{{.Title}}</h6>
  7. </div>
  8. <div class="card-body">
  9. {{if .Error}}
  10. <div class="card mb-4 border-left-warning">
  11. <div class="card-body text-form-error">{{.Error}}</div>
  12. </div>
  13. {{end}}
  14. {{if eq .Mode 3}}
  15. <div class="card mb-4 border-left-info">
  16. <div class="card-body">
  17. Generate a data provider independent JSON file to create new folders or update existing ones.
  18. <br>
  19. The following placeholder is supported:
  20. <br><br>
  21. <ul>
  22. <li><span class="text-success">%name%</span> will be replaced with the specified folder name</li>
  23. </ul>
  24. The generated folders file can be imported from the "Maintenance" section.
  25. </div>
  26. </div>
  27. {{end}}
  28. <form id="folder_form" action="{{.CurrentURL}}" method="POST" autocomplete="off" {{if eq .Mode 3}}target="_blank"{{end}}>
  29. {{if eq .Mode 3}}
  30. <div class="form-group row">
  31. <label for="idFolders" class="col-sm-2 col-form-label">Folders</label>
  32. <div class="col-sm-10">
  33. <textarea class="form-control" id="idFolders" name="folders" rows="5" required
  34. aria-describedby="foldersHelpBlock"></textarea>
  35. <small id="foldersHelpBlock" class="form-text text-muted">
  36. Specify the folder names, one for line.
  37. </small>
  38. </div>
  39. </div>
  40. <input type="hidden" name="name" id="idFolderName" value="{{.Folder.Name}}">
  41. {{else}}
  42. <div class="form-group row">
  43. <label for="idFolderName" class="col-sm-2 col-form-label">Name</label>
  44. <div class="col-sm-10">
  45. <input type="text" class="form-control" id="idFolderName" name="name" placeholder=""
  46. value="{{.Folder.Name}}" maxlength="255" autocomplete="nope" required {{if ge .Mode 2}}readonly{{end}}>
  47. </div>
  48. </div>
  49. {{end}}
  50. <div class="form-group row">
  51. <label for="idDescription" class="col-sm-2 col-form-label">Description</label>
  52. <div class="col-sm-10">
  53. <input type="text" class="form-control" id="idDescription" name="description" placeholder=""
  54. value="{{.Folder.Description}}" maxlength="255" aria-describedby="descriptionHelpBlock">
  55. <small id="descriptionHelpBlock" class="form-text text-muted">
  56. Optional description
  57. </small>
  58. </div>
  59. </div>
  60. <div class="form-group row">
  61. <label for="idMappedPath" class="col-sm-2 col-form-label">Absolute Path</label>
  62. <div class="col-sm-10">
  63. <input type="text" class="form-control" id="idMappedPath" name="mapped_path" placeholder=""
  64. value="{{.Folder.MappedPath}}" maxlength="512" aria-describedby="mappedPathHelpBlock">
  65. <small id="descriptionHelpBlock" class="form-text text-muted">
  66. Required for local providers. For Cloud providers, if set, it will store temporary files
  67. </small>
  68. </div>
  69. </div>
  70. {{template "fshtml" .Folder.FsConfig}}
  71. <input type="hidden" name="_form_token" value="{{.CSRFToken}}">
  72. <button type="submit" class="btn btn-primary float-right mt-3 px-5 px-3">{{if eq .Mode 3}}Generate and export folders{{else}}Submit{{end}}</button>
  73. </form>
  74. </div>
  75. </div>
  76. {{end}}
  77. {{define "extra_js"}}
  78. <script type="text/javascript">
  79. $(document).ready(function () {
  80. onFilesystemChanged('{{.Folder.FsConfig.Provider}}');
  81. });
  82. {{template "fsjs"}}
  83. </script>
  84. {{end}}