12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- const nanoid = (length) => {
- const characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
- let id = '';
- for (let i = 0; i < length; i++) {
- const randomIndex = Math.floor(Math.random() * characters.length);
- id += characters[randomIndex];
- }
- return id;
- }
- document.addEventListener("DOMContentLoaded", () => {
- if(Cookies.get("user") == null || Cookies.get("user") == undefined) {
- alert("You need to be logged in to upload videos!");
- window.location.pathname = "/";
- }
- document.getElementById("form").addEventListener("submit", (event) => {
- const data = new FormData(document.getElementById("form"));
- event.preventDefault();
- data.set("uploader", Cookies.get("user"));
- if(data.get("thumbnail").size < 1) return alert("Please enter valid form data");
- if(data.get("video").size < 1) return alert("Please enter valid form data");
- if(data.get("title").trim() == "") return alert("Please enter valid form data");
- axios.post("/api/upload", data, {
- headers: {
- 'Content-Type': 'multipart/form-data'
- },
- onUploadProgress: function(event) {
- const percent = (event.loaded / event.total) * 100
- document.getElementById("progress-bar").setAttribute('value', percent);
- document.getElementById("progress").innerText = `${percent}%`
- },
- }).then(data => {
- if(data.status == 201) {
- alert("Upload successfull!");
- window.location.pathname = `/video/${data.data.id}`
- }
- }).catch(error => {
- if(error.response) {
- alert(error.response.data.message)
- }
- throw new Error(`upload error: ${error}`);
- })
- })
- });
|