home · contact · privacy
To file view, add button to unlink locally.
authorChristian Heller <c.heller@plomlompom.de>
Thu, 26 Dec 2024 02:26:35 +0000 (03:26 +0100)
committerChristian Heller <c.heller@plomlompom.de>
Thu, 26 Dec 2024 02:26:35 +0000 (03:26 +0100)
src/templates/file_data.tmpl
src/ytplom/http.py
src/ytplom/misc.py

index d4dcf8b6f24cc29649ddf945a3c49d6d32414c1e..8564dff3db558b7eea221167f94527b261166b92 100644 (file)
@@ -3,8 +3,9 @@
 
 {% block css %}
 td.top_field { width: 100%; }
-td.flags { text-align: right; }
 td.tag_checkboxes { width: 1em; }
+td.dangerous, div.dangerous { text-align: right; }
+input[type=submit].dangerous { color: red; }
 {% endblock %}
 
 
@@ -64,7 +65,7 @@ td.tag_checkboxes { width: 1em; }
 
 <tr>
 <th>flags:</th>
-<td class="flags">
+<td class="dangerous">
 {% for flag_name in flag_names %}
 {{ flag_name }}: <input type="checkbox" name="flags" value="{{flag_name}}" {% if file.is_flag_set(flag_name) %}checked{% endif %}{% if not allow_edit %} disabled{% endif %}/><br />
 {% endfor %}
@@ -73,7 +74,10 @@ td.tag_checkboxes { width: 1em; }
 
 </table>
 {% if allow_edit %}
-<input type="submit" />
+<input type="submit" name="update" value="update" />
+<div class="dangerous">
+<input class="dangerous" type="submit" name="unlink" value="unlink (locally)" />
+</div>
 </form>
 {% endif %}
 {% endblock %}
index 001438396606f23530822ad8df2d9b7f36feb132..11b29c08835b69b64a922416cb8d7430f7877eb5 100644 (file)
@@ -181,6 +181,8 @@ class _TaskHandler(BaseHTTPRequestHandler):
             return  # … this display filter might have suppressed set tags
         with DbConn() as conn:
             file = VideoFile.get_one(conn, digest)
+            if 'unlink' in postvars.as_dict:
+                file.unlink_locally()
             file.set_flags({FILE_FLAGS[FlagName(name)]
                             for name in postvars.all_for('flags')})
             file.tags = TagSet.from_str_list(postvars.all_for('tags'))
index ddaac97b7043356a35ddf0a1caf9365ef38bd419..7821b1f335eab921a20d80a21b4c46388730e4e9 100644 (file)
@@ -482,7 +482,11 @@ class VideoFile(DbData):
         if self.is_flag_set(FlagName('delete')) and self.present:
             print(f'SYNC: {self.rel_path} set "delete", '
                   'removing from filesystem.')
-            self.full_path.unlink()
+            self.unlink_locally()
+
+    def unlink_locally(self) -> None:
+        """Remove actual file from local filesystem."""
+        self.full_path.unlink()
 
 
 class QuotaLog(DbData):