index.html 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. <!DOCTYPE html>
  2. <!--
  3. * Copyright © 2018-2020 Unrud <unrud@outlook.com>
  4. * Copyright © 2023-2023 Henning <github@henning-ullrich.de>
  5. * Copyright © 2023-2024 Matthew Hana <matthew.hana@gmail.com>
  6. * Copyright © 2024-2025 Peter Bieringer <pb@bieringer.de>
  7. -->
  8. <html lang="en">
  9. <head>
  10. <meta charset="utf-8">
  11. <meta name="viewport" content="width=device-width, initial-scale=1">
  12. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  13. <title>Radicale Web Interface</title>
  14. <link href="css/main.css" type="text/css" media="screen" rel="stylesheet">
  15. <link href="css/icon.png" type="image/png" rel="icon">
  16. <style>.hidden {display: none !important;}</style>
  17. <script src="fn.js"></script>
  18. </head>
  19. <body>
  20. <nav id="logoutview" class="hidden">
  21. <span data-name="user" style="word-wrap:break-word;"></span>
  22. <a href="#" class="green" data-name="refresh" title="Refresh">Refresh</a>
  23. <a href="#" class="red" data-name="logout" title="Logout">Logout</a>
  24. </nav>
  25. <main>
  26. <section id="loadingscene">
  27. <img src="css/loading.svg" alt="Loading..." class="loading">
  28. <h2>Loading</h2>
  29. <p>Please wait...</p>
  30. <noscript>JavaScript is required</noscript>
  31. </section>
  32. <section id="loginscene" class="container hidden">
  33. <div class="logocontainer">
  34. <img src="css/logo.svg" alt="Radicale">
  35. </div>
  36. <h1>Sign in</h1>
  37. <br>
  38. <form data-name="form">
  39. <input data-name="user" type="text" placeholder="Username">
  40. <input data-name="password" type="password" placeholder="Password">
  41. <button class="green" type="submit">Next</button>
  42. <span class="error" data-name="error"></span>
  43. </form>
  44. </section>
  45. <section id="collectionsscene" class="hidden">
  46. <div class="fabcontainer">
  47. <a href="" class="green" data-name="new" title="Create a new addressbook or calendar">
  48. <img src="css/icons/new.svg" class="icon" alt="➕">
  49. </a>
  50. <a href="" class="blue" data-name="upload" title="Upload an addressbook or calendar">
  51. <img src="css/icons/upload.svg" class="icon" alt="⬆️">
  52. </a>
  53. </div>
  54. <article data-name="collectiontemplate" class="hidden">
  55. <div class="colorbar" data-name="color"></div>
  56. <h3 class="title" data-name="title">Title</h3>
  57. <small>
  58. <span data-name="ADDRESSBOOK">Address book</span>
  59. <span data-name="CALENDAR_JOURNAL_TASKS">Calendar, journal and tasks</span>
  60. <span data-name="CALENDAR_JOURNAL">Calendar and journal</span>
  61. <span data-name="CALENDAR_TASKS">Calendar and tasks</span>
  62. <span data-name="JOURNAL_TASKS">Journal and tasks</span>
  63. <span data-name="CALENDAR">Calendar</span>
  64. <span data-name="JOURNAL">Journal</span>
  65. <span data-name="TASKS">Tasks</span>
  66. <span data-name="WEBCAL">Webcal</span>
  67. </small>
  68. <small data-name="contentcount"></small>
  69. <input type="text" data-name="url" value="" readonly="" onfocus="this.setSelectionRange(0, 99999);">
  70. <p data-name="description" style="word-wrap:break-word;">Description</p>
  71. <ul>
  72. <li>
  73. <a href="" title="Download" class="green" data-name="download">
  74. <img src="css/icons/download.svg" class="icon" alt="🔗">
  75. </a>
  76. </li>
  77. <li>
  78. <a href="" title="Edit" class="blue" data-name="edit">
  79. <img src="css/icons/edit.svg" class="icon" alt="✏️">
  80. </a>
  81. </li>
  82. <li>
  83. <a href="" title="Delete" class="red" data-name="delete">
  84. <img src="css/icons/delete.svg" class="icon" alt="❌">
  85. </a>
  86. </li>
  87. </ul>
  88. </article>
  89. </section>
  90. <section id="editcollectionscene" class="container hidden">
  91. <h1>Edit Collection</h1>
  92. <p>Editing collection <span class="title" data-name="title">title</span>
  93. </p>
  94. <form> Type: <br>
  95. <select data-name="type">
  96. <option value="ADDRESSBOOK">addressbook</option>
  97. <option value="CALENDAR_JOURNAL_TASKS">calendar, journal and tasks</option>
  98. <option value="CALENDAR_JOURNAL">calendar and journal</option>
  99. <option value="CALENDAR_TASKS">calendar and tasks</option>
  100. <option value="JOURNAL_TASKS">journal and tasks</option>
  101. <option value="CALENDAR">calendar</option>
  102. <option value="JOURNAL">journal</option>
  103. <option value="TASKS">tasks</option>
  104. <option value="WEBCAL">webcal</option>
  105. </select>
  106. <label for="displayname">Title:</label>
  107. <input data-name="displayname" type="text">
  108. <label for="description">Description:</label>
  109. <input data-name="description" type="text">
  110. <label for="source">Source:</label>
  111. <input data-name="source" type="url">
  112. <label for="color">Color:</label>
  113. <input data-name="color" type="color">
  114. <br>
  115. <span class="error hidden" data-name="error"></span>
  116. <br>
  117. <button type="submit" class="green" data-name="submit">Save</button>
  118. <button type="button" class="red" data-name="cancel">Cancel</button>
  119. </form>
  120. <span class="error hidden" data-name="error"></span>
  121. <br>
  122. </section>
  123. <section id="createcollectionscene" class="container hidden">
  124. <h1>Create a new Collection</h1>
  125. <p>Enter the details of your new collection.</p>
  126. <form> Type: <br>
  127. <select data-name="type">
  128. <option value="ADDRESSBOOK">Address book</option>
  129. <option value="CALENDAR_JOURNAL_TASKS">Calendar, journal and tasks</option>
  130. <option value="CALENDAR_JOURNAL">Calendar and journal</option>
  131. <option value="CALENDAR_TASKS">Calendar and tasks</option>
  132. <option value="JOURNAL_TASKS">Journal and tasks</option>
  133. <option value="CALENDAR">Calendar</option>
  134. <option value="JOURNAL">Journal</option>
  135. <option value="TASKS">Tasks</option>
  136. <option value="WEBCAL">Webcal</option>
  137. </select>
  138. <label for="href">HREF:</label>
  139. <input data-name="href" type="text">
  140. <label for="displayname">Title:</label>
  141. <input data-name="displayname" type="text">
  142. <label for="description">Description:</label>
  143. <input data-name="description" type="text">
  144. <label for="source">Source:</label>
  145. <input data-name="source" type="url">
  146. <label for="color">Color:</label>
  147. <input data-name="color" type="color">
  148. <br>
  149. <span class="error" data-name="error"></span>
  150. <br>
  151. <button type="submit" class="green" data-name="submit">Create</button>
  152. <button type="button" class="red" data-name="cancel">Cancel</button>
  153. </form>
  154. <span class="error hidden" data-name="error"></span>
  155. <br>
  156. </section>
  157. <section id="uploadcollectionscene" class="container hidden">
  158. <h1>Upload Collection</h1>
  159. <ul>
  160. <li data-name="filetemplate" class="hidden"> Uploading <span data-name="name">name</span>
  161. <br>
  162. <span class="successmessage" data-name="success">Uploaded Successfully!</span>
  163. <span class="error" data-name="error"></span>
  164. </li>
  165. </ul>
  166. <div data-name="pending" class="hidden">
  167. <img src="css/loading.svg" class="loading" alt="Please wait..."/>
  168. </div>
  169. <form>
  170. <label for="uploadfile">File:</label>
  171. <input data-name="uploadfile" type="file" accept=".ics, .vcf" multiple>
  172. <label for="href">HREF:</label>
  173. <input data-name="href" type="text">
  174. <small data-name="hreflimitmsg" class="hidden">You can only specify the HREF if you upload 1 file.</small>
  175. <button type="submit" class="green" data-name="submit">Upload</button>
  176. <button type="button" class="red" data-name="close">Close</button>
  177. </form>
  178. <span class="error hidden" data-name="error"></span>
  179. <br>
  180. </section>
  181. <section id="deletecollectionscene" class="container hidden">
  182. <h1>Delete Collection</h1>
  183. <p>To delete the collection <span class="title" data-name="title">title</span> please enter the phrase <strong data-name="deleteconfirmationtext"></strong> in the box below:</p>
  184. <input type="text" class="deleteconfirmationtxt" data-name="confirmationtxt" />
  185. <p class="red">WARNING: This action cannot be reversed.</p>
  186. <form>
  187. <button type="button" class="red" data-name="delete">Delete</button>
  188. <button type="button" class="blue" data-name="cancel">Cancel</button>
  189. </form>
  190. <span class="error hidden" data-name="error"></span>
  191. <br>
  192. </section>
  193. </main>
  194. </body>
  195. </html>