Improve paste-to-upload UX with a modal dialog; drop media file preview in My Projects

This commit is contained in:
2026-07-08 14:27:07 +02:00
parent 0ccbef45a1
commit 8ec6e3fd50
7 changed files with 108 additions and 53 deletions
+4 -5
View File
@@ -19,7 +19,10 @@
<label class="text-white">Current Logo</label><br />
<img id="logoPreview" src="@Model.existingImage" alt="@Model.TitleEN" style="@(string.IsNullOrWhiteSpace(Model.existingImage) ? "display:none;" : "")width:64px;height:64px;object-fit:contain;background:#fff;border-radius:6px;padding:4px;" />
<input id="logoFile" type="file" name="logoFile" class="form-control bg-dark text-white mt-2" accept="image/*" />
<small class="text-muted">Leave empty to keep the current logo. You can also paste (Ctrl+V) an image directly.</small>
<button type="button" class="btn btn-outline-light btn-sm mt-2" onclick="PasteImageModal.open('#logoFile', '#logoPreview')">
<i class="fa-solid fa-paste me-1"></i>Paste image
</button>
<small class="text-muted d-block mt-1">Leave empty to keep the current logo.</small>
</div>
<div class="mb-3">
@@ -56,7 +59,3 @@
<button class="btn btn-success">Save</button>
}
<script>
enablePasteUpload('#logoFile', '#logoPreview');
</script>
+4 -4
View File
@@ -100,9 +100,11 @@ else
<!-- FILE UPLOAD -->
<div id="fileWrap" class="mb-2">
<label class="text-white">Upload</label>
<img id="mediaFilePreview" style="display:none;max-width:160px;max-height:120px;object-fit:contain;background:#fff;border-radius:6px;padding:4px;" class="mb-2 d-block" />
<input id="mediaFile" type="file" name="mediaFile" class="form-control bg-dark text-white" />
<small class="text-muted">Upload image/document files. You can also paste (Ctrl+V) an image directly.</small>
<button type="button" class="btn btn-outline-light btn-sm mt-2" onclick="PasteImageModal.open('#mediaFile')">
<i class="fa-solid fa-paste me-1"></i>Paste image
</button>
<small class="text-muted d-block mt-1">Upload image/document files.</small>
</div>
<div class="mb-3">
@@ -137,7 +139,5 @@ else
sel.addEventListener("change", sync);
sync();
})();
enablePasteUpload('#mediaFile', '#mediaFilePreview');
</script>
+5 -6
View File
@@ -14,9 +14,12 @@
<div class="mb-3">
<label class="text-white">Logo</label>
<img id="logoPreview" style="display:none;width:64px;height:64px;object-fit:contain;background:#fff;border-radius:6px;padding:4px;" class="mb-2" />
<img id="logoPreview" style="display:none;width:64px;height:64px;object-fit:contain;background:#fff;border-radius:6px;padding:4px;" class="mb-2 d-block" />
<input id="logoFile" type="file" name="logoFile" class="form-control bg-dark text-white" accept="image/*" />
<small class="text-muted">PNG, JPG, WEBP or GIF. You can also paste (Ctrl+V) an image directly.</small>
<button type="button" class="btn btn-outline-light btn-sm mt-2" onclick="PasteImageModal.open('#logoFile', '#logoPreview')">
<i class="fa-solid fa-paste me-1"></i>Paste image
</button>
<small class="text-muted d-block mt-1">PNG, JPG, WEBP or GIF.</small>
</div>
<div class="mb-3">
@@ -54,7 +57,3 @@
<button class="btn btn-success">Save</button>
}
<script>
enablePasteUpload('#logoFile', '#logoPreview');
</script>
+5 -4
View File
@@ -100,9 +100,11 @@ else
<!-- FILE UPLOAD -->
<div id="fileWrap" class="mb-2">
<label class="text-white">Upload</label>
<img id="mediaFilePreview" style="display:none;max-width:160px;max-height:120px;object-fit:contain;background:#fff;border-radius:6px;padding:4px;" class="mb-2 d-block" />
<input id="mediaFile" type="file" name="mediaFile" class="form-control bg-dark text-white" />
<small class="text-muted">Upload image/document files. You can also paste (Ctrl+V) an image directly.</small>
<button type="button" class="btn btn-outline-light btn-sm mt-2" onclick="PasteImageModal.open('#mediaFile')">
<i class="fa-solid fa-paste me-1"></i>Paste image
</button>
<small class="text-muted d-block mt-1">Upload image/document files.</small>
</div>
<div class="mb-3">
@@ -136,5 +138,4 @@ else
sel.addEventListener("change", sync);
sync();
})();
enablePasteUpload('#mediaFile', '#mediaFilePreview');</script>
</script>
+4 -5
View File
@@ -21,7 +21,10 @@
<label class="text-white">New wallpaper image</label>
<img id="wallpaperPreview" style="display:none;max-width:100%;max-height:300px;border-radius:8px;" class="mb-2 d-block" />
<input id="wallpaperFile" type="file" name="wallpaperFile" class="form-control bg-dark text-white" accept="image/*" />
<small class="text-muted">PNG, JPG, WEBP or GIF. You can also paste (Ctrl+V) an image directly.</small>
<button type="button" class="btn btn-outline-light btn-sm mt-2" onclick="PasteImageModal.open('#wallpaperFile', '#wallpaperPreview')">
<i class="fa-solid fa-paste me-1"></i>Paste image
</button>
<small class="text-muted d-block mt-1">PNG, JPG, WEBP or GIF.</small>
</div>
<button class="btn btn-success">Upload New Wallpaper</button>
@@ -32,7 +35,3 @@
@Html.AntiForgeryToken()
<button type="submit" class="btn btn-secondary mt-2">Reset to Default</button>
}
<script>
enablePasteUpload('#wallpaperFile', '#wallpaperPreview');
</script>