table.html 4.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>Restic Backups</title>
  5. <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" crossorigin="anonymous">
  6. <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.7.2/font/bootstrap-icons.css" crossorigin="anonymous">
  7. <link rel="stylesheet" href="https://unpkg.com/bootstrap-table@1.21.4/dist/bootstrap-table.min.css" crossorigin="anonymous">
  8. <link rel="stylesheet" href="bootstrap.min.css">
  9. <link rel="stylesheet" href="bootstrap-icons.css">
  10. <link rel="stylesheet" href="bootstrap-table.min.css">
  11. <!-- https://www.lescouleurs.ch/en/the-colours/63-colours/ -->
  12. <style>
  13. .daily1 { background-color: #C4D39B; }
  14. .daily2 { background-color: #ABC17A; }
  15. .daily3 { background-color: #7FA25A; }
  16. .weekly { background-color: rgb(171,189,200); }
  17. .monthly { background-color: rgb(138,181,186); }
  18. .yearly1 { background-color: rgb(205,152,134); }
  19. .yearly2 { background-color: rgb(196,94,58); }
  20. .yearly3 { background-color: rgb(155,55,56); }
  21. .blau { background-color: #3957A5 !important; }
  22. /* .blau { background-color: #5984f2 !important; } */
  23. .violett { background-color: #933b66 !important; }
  24. .forget { background-image: repeating-linear-gradient(45deg, red, red 10px, transparent 10px, transparent 20px); }
  25. </style>
  26. </head>
  27. <body>
  28. <div class="container">
  29. <h1>Backup-Übersicht am {{ today }}</h1>
  30. <h3>/var/lib/restic/snapshots.json vom {{ tmp_restic_json_date }}</h3>
  31. <h4>{{ tmp_restic_forget_date }}</h4>
  32. <br>
  33. <!-- <table id="lastbackup" data-toggle="table" data-striped="true"> -->
  34. <table id="lastbackup" class="bootstrap-table fixed-table-container table">
  35. <thead>
  36. <tr>
  37. <th>
  38. <span title="{{ gigabytes(lastbackup.last_remotefreebytes)
  39. }}GB free">Fill-Level Backupdisk:&nbsp;&nbsp;{{ lastbackup.last_remotefilllevel }}</span>
  40. </th>
  41. <th class="{{ lastbackup.last_backup_color }}">
  42. <span title="{{ lastbackup.last_localfilllevel }} free ({{ gigabytes(lastbackup.last_localfreebytes) }}">
  43. Letzte Backup-Kopie:&nbsp;&nbsp;{{ lastbackup.last_backup_copy }}
  44. </span>
  45. </th>
  46. <th class="{{ lastbackup.next_backup_color }}">
  47. Nächste Backup-Kopie auf: &nbsp;&nbsp;{{ lastbackup.next_backup_color }}
  48. </th>
  49. </tr>
  50. </thead>
  51. </table>
  52. <table id="table" data-toggle="table" data-sort-name="time" data-sort-order="desc" data-search="true" data-sortable="true" data-striped="true">
  53. <thead>
  54. <tr>
  55. <th data-sortable="true" data-filter-control="input" data-field="time">Time</th>
  56. <!-- <th data-sortable="true" data-filter-control="input" data-field="nicetime">nicetime</th> -->
  57. <!-- <th data-field="tree">Tree</th> -->
  58. <!-- <th data-field="paths">Paths</th> -->
  59. <th data-sortable="true" data-filter-control="input" data-field="hostname">Hostname</th>
  60. <!-- <th data-field="username">Username</th> -->
  61. <th data-sortable="true" data-filter-control="input" data-field="short_id">Short ID</th>
  62. <th data-sortable="true" data-filter-control="input" data-field="tags">Tags</th>
  63. <!-- <th data-field="original">Original</th> -->
  64. <!-- <th data-field="id">ID</th> -->
  65. </tr>
  66. </thead>
  67. <tbody>
  68. {% for item in data %}
  69. <tr class="table-row {{ time_class( item.time ) }} {{ forget_pattern( item.mopped ) }}">
  70. <td class="time"><span style="display:none">{{ item.time }}</span><!-- </td>
  71. <td> --><span title="{{ clean_datetime( item.time ) }}">{{ clean_date( item.time ) }}</span></td>
  72. <!-- <td>{{ item.tree }}</td> -->
  73. <!-- <td>{{ item.paths }}</td> -->
  74. <td><span title="{{ item.paths }}">{{ item.hostname }}</span></td>
  75. <!-- <td>{{ item.username }}</td> -->
  76. <td><span title="{{ item.id }}">{{ item.short_id }}</span></td>
  77. <td>{{ item.tags|join(', ') }}</td>
  78. <!-- <td>{{ item.original }}</td> -->
  79. <!-- <td>{{ item.id }}</td> -->
  80. </tr>
  81. {% endfor %}
  82. </tbody>
  83. </table>
  84. </div>
  85. <script src="https://cdn.jsdelivr.net/npm/jquery/dist/jquery.min.js"></script>
  86. <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>
  87. <script src="https://unpkg.com/bootstrap-table@1.21.4/dist/bootstrap-table.min.js"></script>
  88. </body>
  89. </html>