| <!DOCTYPE html>
|
| <html lang="vi">
|
| <head>
|
| <meta charset="UTF-8" />
|
| <meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
| <title>Upload Videos - Kho truyện Mã A Lềnh</title>
|
| <script src="https://cdn.tailwindcss.com"></script>
|
| <link
|
| rel="stylesheet"
|
| href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"
|
| />
|
| <link
|
| href="https://fonts.googleapis.com/css2?family=Noto+Serif:wght@400;700&display=swap"
|
| rel="stylesheet"
|
| />
|
| <style>
|
| body {
|
| font-family: "Noto Serif", serif;
|
| background-color: #fff9f0;
|
| }
|
| </style>
|
| </head>
|
| <body class="bg-amber-50">
|
| <div class="container mx-auto px-4 py-8 max-w-2xl">
|
| <div class="flex items-center mb-8">
|
| <div class="bg-amber-700 text-white p-3 rounded-lg mr-4">
|
| <i class="fas fa-upload text-2xl"></i>
|
| </div>
|
| <h1 class="text-3xl font-bold text-amber-900">Upload Videos</h1>
|
| </div>
|
|
|
| <div class="bg-white p-6 rounded-xl shadow-lg">
|
| <h2 class="text-xl font-bold mb-4 text-amber-800">
|
| Upload Story Videos
|
| </h2>
|
|
|
| <div class="space-y-6">
|
|
|
| <div class="border border-amber-200 rounded-lg p-4">
|
| <h3 class="font-bold text-amber-900 mb-2">
|
| Chuyện con suối Mường Tiên
|
| </h3>
|
| <div class="mb-4">
|
| <div class="relative">
|
| <input
|
| type="file"
|
| id="video1"
|
| name="video1"
|
| accept="video/*"
|
| class="hidden"
|
| onchange="updateFileName(this, 'video1-name')"
|
| />
|
| <label
|
| for="video1"
|
| class="flex items-center justify-center px-4 py-2 bg-amber-100 text-amber-800 rounded-lg cursor-pointer hover:bg-amber-200 transition w-full"
|
| >
|
| <i class="fas fa-file-video mr-2"></i>
|
| <span>Choose Video File</span>
|
| </label>
|
| <div id="video1-name" class="mt-2 text-sm text-gray-600">
|
| No file chosen
|
| </div>
|
| </div>
|
| </div>
|
| <button
|
| class="upload-btn w-full bg-amber-600 hover:bg-amber-700 text-white font-bold py-2 px-4 rounded-lg transition"
|
| data-video="1"
|
| data-filename="chuyen-con-suoi-muong-tien.mp4"
|
| >
|
| Upload Video
|
| </button>
|
| </div>
|
|
|
|
|
| <div class="border border-amber-200 rounded-lg p-4">
|
| <h3 class="font-bold text-amber-900 mb-2">
|
| Chiếc bánh trong đẩy túi
|
| </h3>
|
| <div class="mb-4">
|
| <div class="relative">
|
| <input
|
| type="file"
|
| id="video2"
|
| name="video2"
|
| accept="video/*"
|
| class="hidden"
|
| onchange="updateFileName(this, 'video2-name')"
|
| />
|
| <label
|
| for="video2"
|
| class="flex items-center justify-center px-4 py-2 bg-amber-100 text-amber-800 rounded-lg cursor-pointer hover:bg-amber-200 transition w-full"
|
| >
|
| <i class="fas fa-file-video mr-2"></i>
|
| <span>Choose Video File</span>
|
| </label>
|
| <div id="video2-name" class="mt-2 text-sm text-gray-600">
|
| No file chosen
|
| </div>
|
| </div>
|
| </div>
|
| <button
|
| class="upload-btn w-full bg-amber-600 hover:bg-amber-700 text-white font-bold py-2 px-4 rounded-lg transition"
|
| data-video="2"
|
| data-filename="chiec-banh-trong-day-tui.mp4"
|
| >
|
| Upload Video
|
| </button>
|
| </div>
|
|
|
|
|
| <div class="border border-amber-200 rounded-lg p-4">
|
| <h3 class="font-bold text-amber-900 mb-2">
|
| Vũng đầm của thần rồng
|
| </h3>
|
| <div class="mb-4">
|
| <div class="relative">
|
| <input
|
| type="file"
|
| id="video3"
|
| name="video3"
|
| accept="video/*"
|
| class="hidden"
|
| onchange="updateFileName(this, 'video3-name')"
|
| />
|
| <label
|
| for="video3"
|
| class="flex items-center justify-center px-4 py-2 bg-amber-100 text-amber-800 rounded-lg cursor-pointer hover:bg-amber-200 transition w-full"
|
| >
|
| <i class="fas fa-file-video mr-2"></i>
|
| <span>Choose Video File</span>
|
| </label>
|
| <div id="video3-name" class="mt-2 text-sm text-gray-600">
|
| No file chosen
|
| </div>
|
| </div>
|
| </div>
|
| <button
|
| class="upload-btn w-full bg-amber-600 hover:bg-amber-700 text-white font-bold py-2 px-4 rounded-lg transition"
|
| data-video="3"
|
| data-filename="vung-dam-cua-than-rong.mp4"
|
| >
|
| Upload Video
|
| </button>
|
| </div>
|
| </div>
|
|
|
| <div class="mt-6 flex justify-between">
|
| <a
|
| href="index.html"
|
| class="flex items-center text-amber-700 hover:text-amber-900 transition"
|
| >
|
| <i class="fas fa-arrow-left mr-2"></i>
|
| <span>Back to Stories</span>
|
| </a>
|
| <div id="upload-status" class="text-green-600 font-bold"></div>
|
| </div>
|
| </div>
|
| </div>
|
|
|
| <script>
|
| function updateFileName(input, targetId) {
|
| const target = document.getElementById(targetId);
|
| if (input.files.length > 0) {
|
| target.textContent = input.files[0].name;
|
| } else {
|
| target.textContent = "No file chosen";
|
| }
|
| }
|
|
|
| document.addEventListener("DOMContentLoaded", function () {
|
| const uploadButtons = document.querySelectorAll(".upload-btn");
|
|
|
| uploadButtons.forEach((button) => {
|
| button.addEventListener("click", function () {
|
| const videoId = this.getAttribute("data-video");
|
| const targetFilename = this.getAttribute("data-filename");
|
| const fileInput = document.getElementById("video" + videoId);
|
| const statusElement = document.getElementById("upload-status");
|
|
|
| if (!fileInput.files.length) {
|
| statusElement.textContent = "Please select a file first.";
|
| statusElement.className = "text-red-600 font-bold";
|
| return;
|
| }
|
|
|
| const file = fileInput.files[0];
|
|
|
|
|
|
|
|
|
| button.textContent = "Uploading...";
|
| button.disabled = true;
|
|
|
|
|
| setTimeout(() => {
|
| button.textContent = "Uploaded!";
|
| button.classList.remove("bg-amber-600", "hover:bg-amber-700");
|
| button.classList.add("bg-green-600", "hover:bg-green-700");
|
|
|
| statusElement.textContent =
|
| 'Video "' + targetFilename + '" has been selected.';
|
| statusElement.className = "text-green-600 font-bold";
|
|
|
|
|
| setTimeout(() => {
|
| button.textContent = "Upload Video";
|
| button.disabled = false;
|
| button.classList.remove("bg-green-600", "hover:bg-green-700");
|
| button.classList.add("bg-amber-600", "hover:bg-amber-700");
|
| }, 3000);
|
| }, 1500);
|
| });
|
| });
|
| });
|
| </script>
|
| </body>
|
| </html>
|
|
|