Added a background color and theme

nodejs
Aravind142857 1 year ago
parent 0f9e793a29
commit d1c6aeb6cd

File diff suppressed because it is too large Load Diff

@ -1,621 +1,354 @@
<!DOCTYPE html>
<html lang="en" class="bg-white">
<html lang="en" class="bg-black">
<head>
<meta charset="UTF-8">
<title>Home</title>
<link rel="stylesheet" href="css/output.css">
</head>
<body class="mx-[10%] bg-white">
<main class="m-10 h-auto w-auto dark:bg-white">
<nav class="flex items-center opacity-100 lg:justify-between sm:justify-center flex-wrap bg-gray-500 dark:bg-gray-500 p-6 shadow-lg shadow-black/50 sticky top-4 opacity-100 mb-24"> <!--dark:bg-black-->
<div class="block lg:hidden cursor-pointer flex:none mr-4" id="HamburgerInactive">
<button id="btn" class="flex flex-col items-center px-3 py-[0.4375rem] border rounded text-teal-200 border-teal-400">
<span class="block h-0.5 w-5 mb-1 origin-center rounded-full bg-teal-200"></span>
<span class="block h-0.5 w-5 mb-1 origin-center rounded-full bg-teal-200"></span>
<span class="block h-0.5 w-5 origin-center rounded-full bg-teal-200"></span>
</button>
</div>
<div id="HamburgerActive" class="hidden lg:hidden flex:none cursor-pointer mr-4 block">
<button class="space-y-2 px-3 py-2 border rounded text-teal-200 border-teal-400" >
<span class="block h-0.5 w-5 origin-center rounded-full bg-teal-200 translate-y-1.5 rotate-45"></span>
<span class="block h-0.5 w-5 origin-center rounded-full bg-teal-200 -translate-y-1 -rotate-45"></span>
<span class="hidden h-0.5 w-5 origin-center rounded-full bg-white"></span>
</button>
</div>
<div class="flex items-center flex-shrink-0 text-white mr-6 w-full lg:w-auto flex-1 lg:flex-none justify-center">
<svg id="logo" class="fill-current h-8 w-8 mr-2" width="54" height="54" viewBox="0 0 54 54" xmlns="http://www.w3.org/2000/svg"><path d="M13.5 22.1c1.8-7.2 6.3-10.8 13.5-10.8 10.8 0 12.15 8.1 17.55 9.45 3.6.9 6.75-.45 9.45-4.05-1.8 7.2-6.3 10.8-13.5 10.8-10.8 0-12.15-8.1-17.55-9.45-3.6-.9-6.75.45-9.45 4.05zM0 38.3c1.8-7.2 6.3-10.8 13.5-10.8 10.8 0 12.15 8.1 17.55 9.45 3.6.9 6.75-.45 9.45-4.05-1.8 7.2-6.3 10.8-13.5 10.8-10.8 0-12.15-8.1-17.55-9.45-3.6-.9-6.75.45-9.45 4.05z"/></svg>
<span class="font-semibold text-xl tracking-tight">G-Link</span>
</div>
<div id="menu-options" class="bg-gray-500 w-full lg:block flex-grow lg:flex lg:items-center lg:w-auto hidden mr-4">
<div class="text-sm lg:flex-grow">
<a href="#head" class="block mt-4 lg:inline-block lg:mt-0 text-teal-200 hover:text-black mr-4 hover:bg-gray-200 hover:border hover:border-gray-200 hover:rounded text-teal-200 py-1 px-3">
A
</a>
<a href="#head" class="block mt-4 lg:inline-block lg:mt-0 text-teal-200 hover:text-black mr-4 hover:bg-gray-200 hover:border hover:border-gray-200 hover:rounded text-teal-200 py-1 px-3">
B
</a>
<a href="#head" class="block mt-4 lg:inline-block lg:mt-0 text-teal-200 hover:text-black mr-4 hover:bg-gray-200 hover:border hover:border-gray-200 hover:rounded text-teal-200 py-1 px-3">
C
</a>
<a href="/" class="block mt-4 lg:inline-block lg:mt-0 bg-blue-600 brightness-125 border border-blue-500 rounded text-teal-200 hover:text-black py-1 px-3">
Products (Form)
</a>
<body class="mx-[10%]">
<main class="m-10 h-auto w-auto ">
<!-- previous navbar start-->
<div class="hidden">
<!-- <nav class="flex items-center opacity-100 lg:justify-between sm:justify-center flex-wrap bg-gray-500 dark:bg-gray-500 p-6 shadow-lg shadow-black/50 sticky top-4 opacity-100 mb-24"> &lt;!&ndash;dark:bg-black&ndash;&gt;-->
<!-- <div class="block lg:hidden cursor-pointer flex:none mr-4" id="HamburgerInactive">-->
<!-- <button id="btn" class="flex flex-col items-center px-3 py-[0.4375rem] border rounded text-teal-200 border-teal-400">-->
<!-- <span class="block h-0.5 w-5 mb-1 origin-center rounded-full bg-teal-200"></span>-->
<!-- <span class="block h-0.5 w-5 mb-1 origin-center rounded-full bg-teal-200"></span>-->
<!-- <span class="block h-0.5 w-5 origin-center rounded-full bg-teal-200"></span>-->
<!-- </button>-->
<!-- </div>-->
<!-- <div id="HamburgerActive" class="hidden lg:hidden flex:none cursor-pointer mr-4 block">-->
<!-- <button class="space-y-2 px-3 py-2 border rounded text-teal-200 border-teal-400" >-->
<!-- <span class="block h-0.5 w-5 origin-center rounded-full bg-teal-200 translate-y-1.5 rotate-45"></span>-->
<!-- <span class="block h-0.5 w-5 origin-center rounded-full bg-teal-200 -translate-y-1 -rotate-45"></span>-->
<!-- <span class="hidden h-0.5 w-5 origin-center rounded-full bg-white"></span>-->
<!-- </button>-->
<!-- </div>-->
<!-- <div class="flex items-center flex-shrink-0 text-white mr-6 w-full lg:w-auto flex-1 lg:flex-none justify-center">-->
<!-- <svg id="logo" class="fill-current h-8 w-8 mr-2" width="54" height="54" viewBox="0 0 54 54" xmlns="http://www.w3.org/2000/svg"><path d="M13.5 22.1c1.8-7.2 6.3-10.8 13.5-10.8 10.8 0 12.15 8.1 17.55 9.45 3.6.9 6.75-.45 9.45-4.05-1.8 7.2-6.3 10.8-13.5 10.8-10.8 0-12.15-8.1-17.55-9.45-3.6-.9-6.75.45-9.45 4.05zM0 38.3c1.8-7.2 6.3-10.8 13.5-10.8 10.8 0 12.15 8.1 17.55 9.45 3.6.9 6.75-.45 9.45-4.05-1.8 7.2-6.3 10.8-13.5 10.8-10.8 0-12.15-8.1-17.55-9.45-3.6-.9-6.75.45-9.45 4.05z"/></svg>-->
<!-- <span class="font-semibold text-xl tracking-tight">G-Link</span>-->
<!-- </div>-->
<!-- <div id="menu-options" class="bg-gray-500 w-full lg:block flex-grow lg:flex lg:items-center lg:w-auto hidden mr-4">-->
<!-- <div class="text-sm lg:flex-grow lg:flex">-->
<!-- <a class="block mt-4 lg:inline-block lg:mt-0 text-teal-200 hover:text-black mr-4 hover:bg-gray-200 hover:border hover:border-gray-200 hover:rounded text-teal-200 py-1 px-3">-->
<!-- A-->
<!-- </a>-->
<!-- <a class="block mt-4 lg:inline-block lg:mt-0 text-teal-200 hover:text-black mr-4 hover:bg-gray-200 hover:border hover:border-gray-200 hover:rounded text-teal-200 py-1 px-3">-->
<!-- B-->
<!-- </a>-->
<!-- <a class="block mt-4 lg:inline-block lg:mt-0 text-teal-200 hover:text-black mr-4 hover:bg-gray-200 hover:border hover:border-gray-200 hover:rounded text-teal-200 py-1 px-3">-->
<!-- C-->
<!-- </a>-->
<!-- <a href="/" class="block mt-4 lg:inline-block lg:mt-0 bg-blue-600 brightness-125 border border-blue-500 rounded text-teal-200 hover:text-black py-1 px-3">-->
<!-- Products (Form)-->
<!-- </a>-->
<!-- </div>-->
<!-- <div>-->
<!-- <a href="signup.html" class="inline-block <%= signup %> text-sm px-4 py-2 leading-none border rounded text-white border-white hover:border-transparent hover:text-teal-500 hover:bg-white mt-4 lg:mt-0 mr-4">-->
<!-- signup-->
<!-- </a>-->
<!-- </div>-->
<!-- <div>-->
<!-- <a href="<%= loc %>" class="inline-block text-sm px-4 py-2 leading-none border rounded text-white border-white hover:border-transparent hover:text-teal-500 hover:bg-white mt-4 lg:mt-0">-->
<!-- <%= tagline %>-->
<!-- </a>-->
<!-- </div>-->
<!-- </div>-->
<!--&lt;!&ndash; <div class="w-9 h-9 rounded-full bg-emerald-800 cursor-pointer outline outline-offset-2 outline-4 outline-white hover:bg-emerald-700">&ndash;&gt;-->
<!--&lt;!&ndash; <button class="w-full h-full bg-white rounded-full" id="dropdownDefaultButton" data-dropdown-toggle="dropdown"></button>&ndash;&gt;-->
<!--&lt;!&ndash; </div>&ndash;&gt;-->
<!--&lt;!&ndash; <div class="group relative cursor-pointer py-2">&ndash;&gt;-->
<!--&lt;!&ndash; <div class="w-44 flex items-center justify-between space-x-5 bg-white px-4 bg-gradient-to-tl from-purple-700 to-pink-500 rounded-lg group group-hover:from-purple-500 group-hover:to-pink-500">&ndash;&gt;-->
<!--&lt;!&ndash; <a class="menu-hover my-2 py-2 text-base font-medium text-white lg:mx-4 font-bold uppercase group-hover:scale-105 transition-transform" onClick="">&ndash;&gt;-->
<!--&lt;!&ndash; Profile&ndash;&gt;-->
<!--&lt;!&ndash; </a>&ndash;&gt;-->
<!--&lt;!&ndash; <span class="group-hover:hidden">&ndash;&gt;-->
<!--&lt;!&ndash; <svg&ndash;&gt;-->
<!--&lt;!&ndash; fill="none"&ndash;&gt;-->
<!--&lt;!&ndash; viewBox="0 0 24 24"&ndash;&gt;-->
<!--&lt;!&ndash; stroke-width="1.5"&ndash;&gt;-->
<!--&lt;!&ndash; stroke="white"&ndash;&gt;-->
<!--&lt;!&ndash; class="h-6 w-6"&ndash;&gt;-->
<!--&lt;!&ndash; >&ndash;&gt;-->
<!--&lt;!&ndash; <path&ndash;&gt;-->
<!--&lt;!&ndash; stroke-linecap="round"&ndash;&gt;-->
<!--&lt;!&ndash; stroke-linejoin="round"&ndash;&gt;-->
<!--&lt;!&ndash; d="M19.5 8.25l-7.5 7.5l-7.5-7.5"&ndash;&gt;-->
<!--&lt;!&ndash; />&ndash;&gt;-->
<!--&lt;!&ndash; </svg>&ndash;&gt;-->
<!--&lt;!&ndash; </span>&ndash;&gt;-->
<!--&lt;!&ndash; <span class="invisible group-hover:visible">&ndash;&gt;-->
<!--&lt;!&ndash; <svg&ndash;&gt;-->
<!--&lt;!&ndash; fill="none"&ndash;&gt;-->
<!--&lt;!&ndash; viewBox="0 0 24 24"&ndash;&gt;-->
<!--&lt;!&ndash; stroke-width="1.5"&ndash;&gt;-->
<!--&lt;!&ndash; stroke="white"&ndash;&gt;-->
<!--&lt;!&ndash; class="h-6 w-6"&ndash;&gt;-->
<!--&lt;!&ndash; >&ndash;&gt;-->
<!--&lt;!&ndash; <path&ndash;&gt;-->
<!--&lt;!&ndash; stroke-linecap="round"&ndash;&gt;-->
<!--&lt;!&ndash; stroke-linejoin="round"&ndash;&gt;-->
<!--&lt;!&ndash; d="M19.5 15.25l-7.5 -7.5l-7.5 7.5"&ndash;&gt;-->
<!--&lt;!&ndash; />&ndash;&gt;-->
<!--&lt;!&ndash; </svg>&ndash;&gt;-->
<!--&lt;!&ndash; </span>&ndash;&gt;-->
<!--&lt;!&ndash; </div>&ndash;&gt;-->
<!--&lt;!&ndash; <div&ndash;&gt;-->
<!--&lt;!&ndash; class="invisible absolute z-50 flex w-full flex-col bg-gray-100 py-1 px-4 divide-y-1 divide-gray-300 text-gray-800 shadow-xl group-hover:visible"&ndash;&gt;-->
<!--&lt;!&ndash; onClick=""&ndash;&gt;-->
<!--&lt;!&ndash; >&ndash;&gt;-->
<!--&lt;!&ndash; <a&ndash;&gt;-->
<!--&lt;!&ndash; class="my-2 block border-b border-gray-100 py-1 font-semibold text-gray-500 hover:text-black md:mx-2"&ndash;&gt;-->
<!--&lt;!&ndash; >A</a&ndash;&gt;-->
<!--&lt;!&ndash; >&ndash;&gt;-->
<!--&lt;!&ndash; <a&ndash;&gt;-->
<!--&lt;!&ndash; class="my-2 block border-b border-gray-100 py-1 font-semibold text-gray-500 hover:text-black md:mx-2"&ndash;&gt;-->
<!--&lt;!&ndash; >B</a&ndash;&gt;-->
<!--&lt;!&ndash; >&ndash;&gt;-->
<!--&lt;!&ndash; <a&ndash;&gt;-->
<!--&lt;!&ndash; class="my-2 block border-b border-gray-100 py-1 font-semibold text-gray-500 hover:text-black md:mx-2"&ndash;&gt;-->
<!--&lt;!&ndash; >C</a>&ndash;&gt;-->
<!--&lt;!&ndash; <a&ndash;&gt;-->
<!--&lt;!&ndash; class="my-2 block border-b border-gray-100 py-1 font-semibold text-gray-500 hover:text-black md:mx-2"&ndash;&gt;-->
<!--&lt;!&ndash; >D</a>&ndash;&gt;-->
<!--&lt;!&ndash; </div>&ndash;&gt;-->
<!--&lt;!&ndash; </div>&ndash;&gt;-->
<!-- <script>-->
<!-- let active = document.getElementById("HamburgerActive");-->
<!-- let inactive = document.getElementById("HamburgerInactive");-->
<!-- let options = document.querySelector("#menu-options");-->
<!-- active.addEventListener("click", ()=>{-->
<!-- active.classList.add("hidden");-->
<!-- inactive.classList.remove("hidden");-->
<!-- options.classList.toggle("hidden");-->
<!-- })-->
<!-- inactive.addEventListener("mouseup", ()=>{-->
<!-- inactive.classList.add("hidden");-->
<!-- active.classList.remove("hidden");-->
<!-- options.classList.toggle("hidden");-->
<!-- });-->
<!-- </script>-->
<!-- </nav>-->
</div>
<!-- previous navbar end-->
<!-- New navbar start-->
<div class="navbar bg-base-100 rounded-lg shadow-xl shadow-black/50 z-[4] sticky top-0 mb-10">
<div class="flex-1 lg:ml-4 ml-2 my-2">
<!--Hamburger menu-->
<div class="lg:hidden" >
<ul class="menu menu-horizontal px-1">
<label class="btn btn-circle swap swap-rotate ">
<input type="checkbox" class="opacity-0 w-full h-full "/>
<svg class="swap-off fill-emerald-400 brightness-125" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 512 512"><path d="M64,384H448V341.33H64Zm0-106.67H448V234.67H64ZM64,128v42.67H448V128Z"/></svg>
<div class="dropdown dropdown-open swap-on">
<svg class="fill-emerald-400 brightness-125" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 512 512"><polygon points="400 145.49 366.51 112 256 222.51 145.49 112 112 145.49 222.51 256 112 366.51 145.49 400 256 289.49 366.51 400 400 366.51 289.49 256 400 145.49"/></svg>
<ul tabindex="0" class="menu dropdown-content z-[1] p-2 shadow bg-base-100 rounded-box w-36 mt-4">
<li><a class="text-emerald-400 brightness-125">Create</a></li>
<li><a class="text-emerald-400 brightness-125">Signup</a></li>
<li><a class="text-emerald-400 brightness-125">Login</a></li>
</ul>
</div>
</label>
</ul>
</div>
<!-- Hamburger Menu ended -->
<div>
<a href="signup.html" class="inline-block <%= signup %> text-sm px-4 py-2 leading-none border rounded text-white border-white hover:border-transparent hover:text-teal-500 hover:bg-white mt-4 lg:mt-0 mr-4">
signup
</a>
<div class="flex lg:justify-start lg:items-start justify-center items-center lg:w-auto w-full">
<a class="btn btn-ghost normal-case text-xl text-emerald-400 brightness-125"><img src="images/GLink-Logo-alt.svg" class="h-full "></a>
</div>
<div>
<a href="<%= loc %>" class="inline-block text-sm px-4 py-2 leading-none border rounded text-white border-white hover:border-transparent hover:text-teal-500 hover:bg-white mt-4 lg:mt-0">
<%= tagline %>
</a>
<div class="w-full justify-center items-center lg:flex hidden">
<a class="btn btn-outline btn-success brightness-125 lg:text-xl text-sm" href="/">Create</a>
</div>
</div>
<div class="w-9 h-9 rounded-full bg-emerald-800 cursor-pointer outline outline-offset-2 outline-4 outline-white hover:bg-emerald-700">
<button class="w-full h-full bg-white rounded-full" id="dropdownDefaultButton" data-dropdown-toggle="dropdown">
</button>
<div class="justify-center items-center lg:flex mr-10 my-2 hidden">
<a class="btn btn-outline btn-success brightness-125 lg:text-xl text-sm" href="signup.html">Signup</a>
</div>
<div class="group relative cursor-pointer py-2">
<div class="w-44 flex items-center justify-between space-x-5 bg-white px-4 bg-gradient-to-tl from-purple-700 to-pink-500 rounded-lg group group-hover:from-purple-500 group-hover:to-pink-500">
<a class="menu-hover my-2 py-2 text-base font-medium text-white lg:mx-4 font-bold uppercase group-hover:scale-105 transition-transform" onClick="">
Profile
</a>
<span class="group-hover:hidden">
<svg
fill="none"
viewBox="0 0 24 24"
stroke-width="1.5"
stroke="white"
class="h-6 w-6"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M19.5 8.25l-7.5 7.5l-7.5-7.5"
/>
</svg>
</span>
<span class="invisible group-hover:visible">
<svg
fill="none"
viewBox="0 0 24 24"
stroke-width="1.5"
stroke="white"
class="h-6 w-6"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M19.5 15.25l-7.5 -7.5l-7.5 7.5"
/>
</svg>
</span>
</div>
<div
class="invisible absolute z-50 flex w-full flex-col bg-gray-100 py-1 px-4 divide-y-1 divide-gray-300 text-gray-800 shadow-xl group-hover:visible"
onClick=""
>
<a
class="my-2 block border-b border-gray-100 py-1 font-semibold text-gray-500 hover:text-black md:mx-2"
>A</a
>
<a
class="my-2 block border-b border-gray-100 py-1 font-semibold text-gray-500 hover:text-black md:mx-2"
>B</a
>
<a
class="my-2 block border-b border-gray-100 py-1 font-semibold text-gray-500 hover:text-black md:mx-2"
>C</a>
<a
class="my-2 block border-b border-gray-100 py-1 font-semibold text-gray-500 hover:text-black md:mx-2"
>D</a>
</div>
</div>
<script>
let active = document.getElementById("HamburgerActive");
let inactive = document.getElementById("HamburgerInactive");
let options = document.querySelector("#menu-options");
active.addEventListener("click", ()=>{
active.classList.add("hidden");
inactive.classList.remove("hidden");
options.classList.toggle("hidden");
})
inactive.addEventListener("mouseup", ()=>{
inactive.classList.add("hidden");
active.classList.remove("hidden");
options.classList.toggle("hidden");
});
</script>
</nav>
<div class="overflow-x-auto">
<table class="table text-amber-950 italic my-4">
<!-- head -->
<thead>
<tr class="text-amber-950 text-center">
<th></th>
<th>gLink</th>
<th>URL</th>
<th>Edit</th>
<th>Delete</th>
</tr>
</thead>
<tbody>
<!-- row 1 -->
<tr class="data_row text-center" >
<th>1</th>
<td><input type="text" class="glink_str text-center italic border-none rounded-lg focus:shadow-lg" readonly value="Link 1"></td>
<td><input type="text" class="url_str italic text-center border-none rounded-lg focus:shadow-lg" readonly value="https://www.example.com"></td>
<td>
<button class="edit_btn btn bg-transparent hover:bg-transparent border-none p-0 m-0" onclick = " ">
<svg width="24"
height="24"
fill="blue"
class="bi bi-pencil"
viewBox="0 0 16 16">
<path d="M12.146.146a.5.5 0 0 1 .708 0l3 3a.5.5 0 0 1 0 .708l-10 10a.5.5 0 0 1-.168.11l-5 2a.5.5 0 0 1-.65-.65l2-5a.5.5 0 0 1 .11-.168l10-10zM11.207 2.5 13.5 4.793 14.793 3.5 12.5 1.207 11.207 2.5zm1.586 3L10.5 3.207 4 9.707V10h.5a.5.5 0 0 1 .5.5v.5h.5a.5.5 0 0 1 .5.5v.5h.293l6.5-6.5zm-9.761 5.175-.106.106-1.528 3.821 3.821-1.528.106-.106A.5.5 0 0 1 5 12.5V12h-.5a.5.5 0 0 1-.5-.5V11h-.5a.5.5 0 0 1-.468-.325z"/>
</svg></button>
<button class="save_btn btn mx-8 bg-transparent hover:bg-transparent border-none p-0 m-0 hidden">
<div class="inline-block rotate-45 h-[24px] w-[12px] border-b-4 border-b-green-500 border-r-green-500 border-r-4 hover:border-b-green-300 hover:border-r-green-300"></div>
</button>
<button class="cancel_btn btn bg-transparent hover:bg-transparent border-none p-0 m-0 hidden">
<div class="w-[24px] h-[24px] before:absolute before:content-[' '] before:h-[32px] before:w-[2px] before:bg-red-600 before:rotate-45 after:absolute after:content-[' '] after:h-[32px] after:w-[2px] after:bg-red-600 after:-rotate-45 hover:before:bg-red-400 hover:after:bg-red-400"></div>
</button></td>
<!-- <script>-->
<!-- // var url_value = document.getElementById("url1").value;-->
<!-- // var glink_value = document.getElementById("link1").value;-->
<!-- // function toggle1() {-->
<!-- // let txt = document.getElementById("link1");-->
<!-- // let url = document.getElementById("url1");-->
<!-- // let edit = document.getElementById("edit-icon");-->
<!-- // let save = document.getElementById("save-icon");-->
<!-- // let cancel = document.getElementById("cancel-icon");-->
<!-- // if (txt.readOnly) {-->
<!-- // url_value = url.value;-->
<!-- // glink_value = txt.value;-->
<!-- // txt.readOnly = false;-->
<!-- // url.readOnly = false;-->
<!-- // txt.classList.add("outline-none", "ring-4", "ring-blue-500/50", "shadow-lg", "focus:outline-none", "focus:ring-4", "focus:ring-blue-500/50", "focus:shadow-lg");-->
<!-- // url.classList.add("outline-none", "ring-4", "ring-blue-500/50", "shadow-lg", "focus:outline-none", "focus:ring-4", "focus:ring-blue-500/50", "focus:shadow-lg");-->
<!-- // edit.classList.add("hidden");-->
<!-- // save.classList.remove("hidden");-->
<!-- // cancel.classList.remove("hidden");-->
<!-- // txt.focus();-->
<!-- // } else {-->
<!-- // txt.readOnly = true;-->
<!-- // url.readOnly = true;-->
<!-- // txt.classList.remove("outline-none", "ring-4", "ring-blue-500/50", "shadow-lg", "focus:outline-none", "focus:ring-4", "focus:ring-blue-500/50", "focus:shadow-lg");-->
<!-- // url.classList.remove("outline-none", "ring-4", "ring-blue-500/50", "shadow-lg", "focus:outline-none", "focus:ring-4", "focus:ring-blue-500/50", "focus:shadow-lg");-->
<!-- // edit.classList.remove("hidden");-->
<!-- // save.classList.add("hidden");-->
<!-- // cancel.classList.add("hidden");-->
<!-- // }-->
<!-- // }-->
<!-- // function cancel1() {-->
<!-- // document.getElementById("link1").value = glink_value;-->
<!-- // document.getElementById("url1").value = url_value;-->
<!-- // document.getElementById("link1").classList.remove("outline-none", "ring-4", "ring-blue-500/50", "shadow-lg", "focus:outline-none", "focus:ring-4", "focus:ring-blue-500/50", "focus:shadow-lg");-->
<!-- // document.getElementById("url1").classList.remove("outline-none", "ring-4", "ring-blue-500/50", "shadow-lg", "focus:outline-none", "focus:ring-4", "focus:ring-blue-500/50", "focus:shadow-lg");-->
<!-- // document.getElementById("edit-icon").classList.remove("hidden");-->
<!-- // document.getElementById("save-icon").classList.add("hidden");-->
<!-- // document.getElementById("cancel-icon").classList.add("hidden");-->
<!-- // }-->
<!-- </script>-->
<!--currentColor-->
<td>
<button class="delete_btn btn bg-transparent hover:bg-transparent border-none p-0 m-0">
<svg xmlns="http://www.w3.org/2000/svg" fill="red" x="0px" y="0px" viewBox="0 0 25 24.8" width="25" height="24" xml:space="preserve" class= "group icon-trashcan ct-delete" data-ember-action="" data-ember-action-1015="1015">
<g class="trashcan-open invisible group-hover:visible">
<path d="M18.7,24.4H5.9L4.9,7h14.9L18.7,24.4z M7.6,22.6H17l0.8-13.7h-11L7.6,22.6z"></path>
<polygon points="13.6,10.3 13.1,21.2 14.9,21.2 15.4,10.3 "></polygon>
<polygon points="11.5,21.2 11,10.3 9.2,10.3 9.7,21.2 "></polygon>
<path d="M19.1,0.7l-4.7,0.9l-0.8-1.4L8.2,1.3L8,3l-4.7,1l0.2,4.7l17.3-3.5L19.1,0.7z
M8.8,1.9l4.4 -1.0 l0.5,0.8
L8.7,2.8z
<div class="flex-none my-2">
M5.2,6.4l0-1L18,2.8l0.3,0.9L5.2,6.4z"></path>
</g>
<g class="trashcan-closed group-hover:invisible">
<path d="M6.8,8.8h11L17,22.6
H7.6L6.8,8.8z
M4.9,7l1,17.4h12.8
l1-17.4
H4.9z"></path>
<polygon points="13.6,10.3 13.1,21.2 14.9,21.2 15.4,10.3 "></polygon>
<polygon points="11.5,21.2 11,10.3 9.2,10.3 9.7,21.2 "></polygon>
<path d="M20.4,4h-4.8l-0.5-1.6
H9.5L9,4
H4.2
L3.5,8.6h17.6
L20.4,4z
M9.9,3.2h4.8
L14.9,3.9h-5.2z
M5.6,6.7l0.2-1 h13l0.2,1
H5.6z"></path>
</g>
</svg>
</button>
</td>
</tr>
<tr class="notification_row text-center w-full hidden">
<td colspan="5"><div class="alert alert-error text-lg">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" class="stroke-current shrink-0 w-8 h-8"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg>
<span>You have just deleted a row. Press <button class="undo_btn btn bg-transparent m-0 p-0 h-fit hover:bg-transparent border-none"><kbd class="px-2 py-1.5 text-xs font-semibold text-gray-800 bg-gray-100 border border-gray-200 rounded-lg dark:bg-gray-600 dark:text-gray-100 dark:border-gray-500">undo</kbd></button> to undo the action</span>
<button class="close_btn btn bg-transparent hover:bg-transparent broder-none p-0 m-0 "><svg xmlns="http://www.w3.org/2000/svg" class="stroke-current shrink-0 h-8 w-8" fill="none" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2m7-2a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></button>
</div></td>
</tr>
</tbody>
<!--<script>
// function delete1() {
// let row = document.getElementById("row1");
// let notification = document.getElementById("notification1");
// row.classList.add("hidden");
// notification.classList.remove("hidden");
// setTimeout(function(){
// notification.classList.add("hidden");
// }, 4000);
// }
// function close1() {
// let notification = document.getElementById("notification1");
// notification.classList.add("hidden");
// }
// function undo1() {
// let row = document.getElementById("row1");
// let notification = document.getElementById("notification1");
// row.classList.remove("hidden");
// notification.classList.add("hidden");
// }
</script>-->
<!-- row 2 -->
<tbody>
<tr class="data_row text-center">
<th>2</th>
<td><input type="text" class="glink_str text-center italic border-none focus:outline-none focus:ring-4 rounded-lg focus:ring-blue-500/50 focus:shadow-lg"id="link2" readonly value="Link 1"></td>
<td><input type="text" class="url_str italic text-center border-none focus:outline-none focus:ring-4 rounded-lg focus:ring-blue-500/50 focus:shadow-lg"id="url2" readonly value="https://www.example.com"></td>
<td><button class="edit_btn btn bg-transparent hover:bg-transparent border-none p-0 m-0"><!--onclick="toggle1()-->
<svg width="24"
height="24"
fill="blue"
class="bi bi-pencil"
viewBox="0 0 16 16">
<path d="M12.146.146a.5.5 0 0 1 .708 0l3 3a.5.5 0 0 1 0 .708l-10 10a.5.5 0 0 1-.168.11l-5 2a.5.5 0 0 1-.65-.65l2-5a.5.5 0 0 1 .11-.168l10-10zM11.207 2.5 13.5 4.793 14.793 3.5 12.5 1.207 11.207 2.5zm1.586 3L10.5 3.207 4 9.707V10h.5a.5.5 0 0 1 .5.5v.5h.5a.5.5 0 0 1 .5.5v.5h.293l6.5-6.5zm-9.761 5.175-.106.106-1.528 3.821 3.821-1.528.106-.106A.5.5 0 0 1 5 12.5V12h-.5a.5.5 0 0 1-.5-.5V11h-.5a.5.5 0 0 1-.468-.325z"/>
</svg></button>
<button class="save_btn btn mx-8 bg-transparent hover:bg-transparent border-none p-0 m-0 hidden">
<div class="inline-block rotate-45 h-[24px] w-[12px] border-b-4 border-b-green-500 border-r-green-500 border-r-4 hover:border-b-green-300 hover:border-r-green-300"></div>
</button>
<button class="cancel_btn btn bg-transparent hover:bg-transparent border-none p-0 m-0 hidden">
<div class="w-[24px] h-[24px] before:absolute before:content-[' '] before:h-[32px] before:w-[2px] before:bg-red-600 before:rotate-45 after:absolute after:content-[' '] after:h-[32px] after:w-[2px] after:bg-red-600 after:-rotate-45 hover:before:bg-red-400 hover:after:bg-red-400"></div>
</button></td></td>
<td>
<button class="delete_btn btn bg-transparent hover:bg-transparent border-none p-0 m-0">
<svg xmlns="http://www.w3.org/2000/svg" fill="red" x="0px" y="0px" viewBox="0 0 25 24.8" width="25" height="24" xml:space="preserve" class= "group icon-trashcan ct-delete" data-ember-action="" data-ember-action-1015="1015">
<g class="trashcan-open invisible group-hover:visible">
<path d="M18.7,24.4H5.9L4.9,7h14.9L18.7,24.4z M7.6,22.6H17l0.8-13.7h-11L7.6,22.6z"></path>
<polygon points="13.6,10.3 13.1,21.2 14.9,21.2 15.4,10.3 "></polygon>
<polygon points="11.5,21.2 11,10.3 9.2,10.3 9.7,21.2 "></polygon>
<path d="M19.1,0.7l-4.7,0.9l-0.8-1.4L8.2,1.3L8,3l-4.7,1l0.2,4.7l17.3-3.5L19.1,0.7z
M8.8,1.9l4.4 -1.0 l0.5,0.8
L8.7,2.8z
M5.2,6.4l0-1L18,2.8l0.3,0.9L5.2,6.4z"></path>
</g>
<g class="trashcan-closed group-hover:invisible">
<path d="M6.8,8.8h11L17,22.6
H7.6L6.8,8.8z
M4.9,7l1,17.4h12.8
l1-17.4
H4.9z"></path>
<polygon points="13.6,10.3 13.1,21.2 14.9,21.2 15.4,10.3 "></polygon>
<polygon points="11.5,21.2 11,10.3 9.2,10.3 9.7,21.2 "></polygon>
<path d="M20.4,4h-4.8l-0.5-1.6
H9.5L9,4
H4.2
L3.5,8.6h17.6
L20.4,4z
M9.9,3.2h4.8
L14.9,3.9h-5.2z
M5.6,6.7l0.2-1 h13l0.2,1
H5.6z"></path>
</g>
</svg>
</button>
</td>
</tr>
<tr class="notification_row text-center w-full hidden">
<td colspan="5"><div class="alert alert-error text-lg">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" class="stroke-current shrink-0 w-8 h-8"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg>
<span>You have just deleted a row. Press <button class="undo_btn btn bg-transparent m-0 p-0 h-fit hover:bg-transparent border-none"><kbd class="px-2 py-1.5 text-xs font-semibold text-gray-800 bg-gray-100 border border-gray-200 rounded-lg dark:bg-gray-600 dark:text-gray-100 dark:border-gray-500">undo</kbd></button> to undo the action</span>
<button class="close_btn btn bg-transparent hover:bg-transparent broder-none p-0 m-0 "><svg xmlns="http://www.w3.org/2000/svg" class="stroke-current shrink-0 h-8 w-8" fill="none" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2m7-2a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></button>
</div></td>
</tr>
</tbody>
<!-- row 3 -->
<tbody>
<tr class="data_row text-center">
<th>3</th>
<td><input type="text" class="glink_str text-center italic border-none focus:outline-none focus:ring-4 rounded-lg focus:ring-blue-500/50 focus:shadow-lg"id="link3" readonly value="Link 1"></td>
<td><input type="text" class="url_str italic text-center border-none focus:outline-none focus:ring-4 rounded-lg focus:ring-blue-500/50 focus:shadow-lg"id="url3" readonly value="https://www.example.com"></td>
<td><button class="edit_btn btn bg-transparent hover:bg-transparent border-none p-0 m-0"><!--onclick="toggle1()-->
<svg width="24"
height="24"
fill="blue"
class="bi bi-pencil"
viewBox="0 0 16 16">
<path d="M12.146.146a.5.5 0 0 1 .708 0l3 3a.5.5 0 0 1 0 .708l-10 10a.5.5 0 0 1-.168.11l-5 2a.5.5 0 0 1-.65-.65l2-5a.5.5 0 0 1 .11-.168l10-10zM11.207 2.5 13.5 4.793 14.793 3.5 12.5 1.207 11.207 2.5zm1.586 3L10.5 3.207 4 9.707V10h.5a.5.5 0 0 1 .5.5v.5h.5a.5.5 0 0 1 .5.5v.5h.293l6.5-6.5zm-9.761 5.175-.106.106-1.528 3.821 3.821-1.528.106-.106A.5.5 0 0 1 5 12.5V12h-.5a.5.5 0 0 1-.5-.5V11h-.5a.5.5 0 0 1-.468-.325z"/>
</svg></button>
<button class="save_btn btn mx-8 bg-transparent hover:bg-transparent border-none p-0 m-0 hidden">
<div class="inline-block rotate-45 h-[24px] w-[12px] border-b-4 border-b-green-500 border-r-green-500 border-r-4 hover:border-b-green-300 hover:border-r-green-300"></div>
</button>
<button class="cancel_btn btn bg-transparent hover:bg-transparent border-none p-0 m-0 hidden" >
<div class="w-[24px] h-[24px] before:absolute before:content-[' '] before:h-[32px] before:w-[2px] before:bg-red-600 before:rotate-45 after:absolute after:content-[' '] after:h-[32px] after:w-[2px] after:bg-red-600 after:-rotate-45 hover:before:bg-red-400 hover:after:bg-red-400"></div>
</button></td></td>
<td>
<button class="delete_btn btn bg-transparent hover:bg-transparent border-none p-0 m-0">
<svg xmlns="http://www.w3.org/2000/svg" fill="red" x="0px" y="0px" viewBox="0 0 25 24.8" width="25" height="24" xml:space="preserve" class= "group icon-trashcan ct-delete" data-ember-action="" data-ember-action-1015="1015">
<g class="trashcan-open invisible group-hover:visible">
<path d="M18.7,24.4H5.9L4.9,7h14.9L18.7,24.4z M7.6,22.6H17l0.8-13.7h-11L7.6,22.6z"></path>
<polygon points="13.6,10.3 13.1,21.2 14.9,21.2 15.4,10.3 "></polygon>
<polygon points="11.5,21.2 11,10.3 9.2,10.3 9.7,21.2 "></polygon>
<path d="M19.1,0.7l-4.7,0.9l-0.8-1.4L8.2,1.3L8,3l-4.7,1l0.2,4.7l17.3-3.5L19.1,0.7z
<div class="dropdown dropdown-end">
<label tabindex="0" class="btn btn-ghost btn-circle avatar border border-2 border-emerald-500 brightness-125 hover:border-none hover:ring-2 hover:ring-emerald-400 focus:ring-2 focus:ring-emerald-400">
<div class="w-10 rounded-full cursor-pointer ">
<div class="w-full h-full bg-white rounded-full text-center"></div>
</div>
</label>
<ul tabindex="0" class="menu menu-sm dropdown-content mt-3 z-[1] p-2 shadow bg-base-100 rounded-box w-36">
<li><a href="links.html">My Links</a></li>
<li><a>Logout</a></li>
</ul>
</div>
</div>
</div>
<!-- Navbar ended -->
<!-- Old hero start -->
<div class="hidden">
<!-- <div class="flex lg:flex-row flex-col w-full mb-24 justify-center items-center">-->
<!-- <div class="h-96 lg:w-auto sm:w-full flex flex-col flex-grow mb-24">-->
<!-- <div class="w-full flex items-center justify-center mb-6 border-8 border-black">-->
<!-- <h1 class="text-4xl md:text-5xl lg:text-6xl m-5 text-center">Create and Share Geo-Restricted Links</h1>-->
<!-- </div>-->
<!-- <div class="h-72 w-full flex items-center justify-center text-2xl border-8 border-black">-->
<!-- <p>-->
<!-- Insert description or whatever ...-->
<!-- </p>-->
<!-- </div>-->
<!-- </div>-->
<!--&lt;!&ndash; <img class="w-auto flex-grow-0 h-96 w-96" src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTGpfMagCsgrJkELG_GOjtxqssEPXd-3vr2PmPdaB-0Y5Rp-bv1VOouyoXmG2QxZWHpdYI&usqp=CAU">&ndash;&gt;-->
<!-- <div class="relative items-center w-auto h-auto sm:w-full flex-grow-0">-->
<!-- <div class="absolute inset-y-0 left-0 flex items-center pl-3 pointer-events-none">-->
<!-- <svg aria-hidden="true" class="w-5 h-5 text-gray-500 dark:text-gray-400" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"></path></svg>-->
<!-- </div>-->
<!-- <div class="absolute inset-y-0 left-0 flex items-center w-full pl-10 pointer-events-none">-->
<!-- <div type="search" id="default-search" class="block w-full p-2 pl-6 text-sm text-gray-900 border border-gray-300 rounded-lg bg-gray-50 focus:ring-blue-500 focus:border-blue-500">-->
<!-- <div class="typewriter bg-transparent w-fit h-auto justify-center items-center mx-auto">-->
<!-- <h1 class="text-2xl text-center overflow-x-hidden border-r border-r-2 border-r-orange-600 whitespace-nowrap m-auto tracking-wider "></h1>-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
<!-- <style>-->
<!-- .typewriter h1{-->
<!-- background: transparent;-->
<!-- overflow: hidden; /* Ensures the content is not revealed until the animation */-->
<!-- border-right: .15em solid orange; /* The typwriter cursor */-->
<!-- white-space: nowrap; /* Keeps the content on a single line */-->
<!-- margin: auto; /* Gives that scrolling effect as the typing happens */-->
<!-- letter-spacing: .15em; /* Adjust as needed */-->
<!-- content: "";-->
<!-- animation:-->
<!-- typing 9s steps(40, start) 0s infinite,-->
<!-- blink-caret .95s step-end 0s infinite;-->
<!-- }-->
M8.8,1.9l4.4 -1.0 l0.5,0.8
L8.7,2.8z
<!-- /* The typing effect */-->
<!-- @keyframes typing {-->
<!-- 0% { width: 0}-->
<!-- 30% { width: 100% }-->
<!-- 40% { width: 100% }-->
<!-- 55% { width: 0 }-->
<!-- 65% { width: 0}-->
<!-- 95% {width: 100%}-->
<!-- 100% {width: 100%}-->
<!-- }-->
M5.2,6.4l0-1L18,2.8l0.3,0.9L5.2,6.4z"></path>
</g>
<g class="trashcan-closed group-hover:invisible">
<path d="M6.8,8.8h11L17,22.6
H7.6L6.8,8.8z
M4.9,7l1,17.4h12.8
l1-17.4
H4.9z"></path>
<polygon points="13.6,10.3 13.1,21.2 14.9,21.2 15.4,10.3 "></polygon>
<polygon points="11.5,21.2 11,10.3 9.2,10.3 9.7,21.2 "></polygon>
<path d="M20.4,4h-4.8l-0.5-1.6
H9.5L9,4
H4.2
L3.5,8.6h17.6
L20.4,4z
<!-- /* The typewriter cursor effect */-->
<!-- @keyframes blink-caret {-->
<!-- from, to { border-color: transparent }-->
<!-- 50% { border-color: orange; }-->
<!-- }-->
<!-- .typewriter h1::after {-->
<!-- animation: change 9s steps(40, start) 0s infinite;-->
<!-- }-->
<!-- @keyframes change {-->
<!-- 0% {content: "netflix.com"}-->
<!-- 60% {content: "netflix.com"}-->
<!-- 65% {content: "glink.com/video"}-->
<!-- 100% {content: "glink.com/video"}-->
<!-- }-->
<!-- </style>-->
M9.9,3.2h4.8
L14.9,3.9h-5.2z
<!-- </div>-->
</div>
<!-- Old hero end -->
<!-- New hero start -->
<div class="hero py-16 h-auto bg-primary rounded-lg my-8 shadow-lg shadow-primary">
<div class="hero-content flex-col-reverse lg:flex-row-reverse">
<div class="relative items-center w-auto h-auto sm:w-full flex-grow-0 mt-8 lg:mt-0 justify-center mx-auto">
<!-- <div class="absolute inset-y-0 left-0 flex items-center pl-3 pointer-events-none">-->
<!-- <svg class="w-5 h-5 text-gray-500 dark:text-gray-400" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"></path></svg>-->
<!-- </div>-->
<div class="absolute inset-y-0 left-0 flex items-center w-full lg:pl-10 pointer-events-none">
<div type="search" id="default-search" class="block w-full p-2 pl-6 text-sm text-gray-900 ring-4 border-none ring-emerald-400 shadow-lg shadow-emerald-400/50 rounded-lg bg-gray-50">
<div class="typewriter bg-transparent w-fit h-auto justify-center items-center mx-auto">
<h1 class="text-2xl text-center overflow-x-hidden border-r border-r-2 border-r-orange-600 whitespace-nowrap m-auto tracking-wider "></h1>
</div>
</div>
</div>
</div>
<style>
.typewriter h1{
background: transparent;
overflow: hidden; /* Ensures the content is not revealed until the animation */
border-right: .15em solid orange; /* The typwriter cursor */
white-space: nowrap; /* Keeps the content on a single line */
margin: auto; /* Gives that scrolling effect as the typing happens */
letter-spacing: .15em; /* Adjust as needed */
content: "";
animation:
typing 9s steps(40, start) 0s infinite,
blink-caret .95s step-end 0s infinite;
}
M5.6,6.7l0.2-1 h13l0.2,1
H5.6z"></path>
</g>
</svg>
</button>
</td>
</tr>
<tr class="notification_row text-center w-full hidden">
<td colspan="5"><div class="alert alert-error text-lg">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" class="stroke-current shrink-0 w-8 h-8"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg>
<span>You have just deleted a row. Press <button class="undo_btn btn bg-transparent m-0 p-0 h-fit hover:bg-transparent border-none"><kbd class="px-2 py-1.5 text-xs font-semibold text-gray-800 bg-gray-100 border border-gray-200 rounded-lg dark:bg-gray-600 dark:text-gray-100 dark:border-gray-500">undo</kbd></button> to undo the action</span>
<button class="close_btn btn bg-transparent hover:bg-transparent broder-none p-0 m-0 "><svg xmlns="http://www.w3.org/2000/svg" class="stroke-current shrink-0 h-8 w-8" fill="none" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2m7-2a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></button>
</div></td>
</tr>
</tbody>
<script>
let allButtons = document.getElementsByClassName('btn');
for (let btn of allButtons) {
var url_value;
var glink_value;
/* The typing effect */
@keyframes typing {
0% { width: 0}
30% { width: 100% }
40% { width: 100% }
55% { width: 0 }
65% { width: 0}
95% {width: 100%}
100% {width: 100%}
}
btn.addEventListener('click', () => {
if (btn.classList.contains("close_btn")) {
let notificationRow = btn.parentElement.parentElement.parentElement;
notificationRow.classList.add("hidden");
} else if (btn.classList.contains("undo_btn")) {
let notificationRow = btn.parentElement.parentElement.parentElement.parentElement;
let row = notificationRow.parentElement.getElementsByClassName("data_row")[0];
row.classList.remove("hidden");
notificationRow.classList.add("hidden");
}
else {
var clickedElement = btn;
var clickedRow = clickedElement.parentElement.parentElement;
let txt = clickedRow.getElementsByClassName("glink_str")[0];
let url = clickedRow.getElementsByClassName("url_str")[0];
let edit = clickedRow.getElementsByClassName("edit_btn")[0];
let save = clickedRow.getElementsByClassName("save_btn")[0];
let cancel = clickedRow.getElementsByClassName("cancel_btn")[0];
if (btn.classList.contains("edit_btn") || btn.classList.contains("save_btn")) {
if (txt.readOnly) {
url_value = url.value;
glink_value = txt.value;
txt.readOnly = false;
url.readOnly = false;
txt.classList.add("outline-none", "ring-4", "ring-blue-500/50", "shadow-lg", "focus:outline-none", "focus:ring-4", "focus:ring-blue-500/50", "focus:shadow-lg");
url.classList.add("outline-none", "ring-4", "ring-blue-500/50", "shadow-lg", "focus:outline-none", "focus:ring-4", "focus:ring-blue-500/50", "focus:shadow-lg");
edit.classList.add("hidden");
save.classList.remove("hidden");
cancel.classList.remove("hidden");
txt.focus();
} else {
txt.readOnly = true;
url.readOnly = true;
txt.classList.remove("outline-none", "ring-4", "ring-blue-500/50", "shadow-lg", "focus:outline-none", "focus:ring-4", "focus:ring-blue-500/50", "focus:shadow-lg");
url.classList.remove("outline-none", "ring-4", "ring-blue-500/50", "shadow-lg", "focus:outline-none", "focus:ring-4", "focus:ring-blue-500/50", "focus:shadow-lg");
edit.classList.remove("hidden");
save.classList.add("hidden");
cancel.classList.add("hidden");
}
/* The typewriter cursor effect */
@keyframes blink-caret {
from, to { border-color: transparent }
50% { border-color: orange; }
}
if (btn.classList.contains("cancel_btn")) {
txt.value = glink_value;
url.value = url_value;
txt.readOnly = true;
url.readOnly = true;
txt.classList.remove("outline-none", "ring-4", "ring-blue-500/50", "shadow-lg", "focus:outline-none", "focus:ring-4", "focus:ring-blue-500/50", "focus:shadow-lg");
url.classList.remove("outline-none", "ring-4", "ring-blue-500/50", "shadow-lg", "focus:outline-none", "focus:ring-4", "focus:ring-blue-500/50", "focus:shadow-lg");
edit.classList.remove("hidden");
save.classList.add("hidden");
cancel.classList.add("hidden");
.typewriter h1::after {
animation: change 9s steps(40, start) 0s infinite;
}
if (btn.classList.contains("delete_btn")) {
let row = clickedRow;
let notification = row.parentElement.getElementsByClassName("notification_row")[0];
row.classList.add("hidden");
notification.classList.remove("hidden");
setTimeout(function () {
notification.classList.add("hidden");
}, 4000);
@keyframes change {
0% {content: "netflix.com"}
60% {content: "netflix.com"}
65% {content: "glink.com/video"}
100% {content: "glink.com/video"}
}
}
});
}
// function toggle(event) {
// var clickedElement = event.target;
// var clickedRow = clickedElement.parentElement.parentElement.parentElement;
// console.log(clickedRow);
// console.log(clickedElement.parentElement);
// console.log(clickedElement);
// clickedRow.classList.add("hidden");
// let txt = document.getElementById("link1");
// let url = document.getElementById("url1");
// let edit = document.getElementById("edit-icon");
// let save = document.getElementById("save-icon");
// let cancel = document.getElementById("cancel-icon");
// if (txt.readOnly) {
// url_value = url.value;
// glink_value = txt.value;
// txt.readOnly = false;
// url.readOnly = false;
// txt.classList.add("outline-none", "ring-4", "ring-blue-500/50", "shadow-lg", "focus:outline-none", "focus:ring-4", "focus:ring-blue-500/50", "focus:shadow-lg");
// url.classList.add("outline-none", "ring-4", "ring-blue-500/50", "shadow-lg", "focus:outline-none", "focus:ring-4", "focus:ring-blue-500/50", "focus:shadow-lg");
// edit.classList.add("hidden");
// save.classList.remove("hidden");
// cancel.classList.remove("hidden");
// txt.focus();
// } else {
// txt.readOnly = true;
// url.readOnly = true;
// txt.classList.remove("outline-none", "ring-4", "ring-blue-500/50", "shadow-lg", "focus:outline-none", "focus:ring-4", "focus:ring-blue-500/50", "focus:shadow-lg");
// url.classList.remove("outline-none", "ring-4", "ring-blue-500/50", "shadow-lg", "focus:outline-none", "focus:ring-4", "focus:ring-blue-500/50", "focus:shadow-lg");
// edit.classList.remove("hidden");
// save.classList.add("hidden");
// cancel.classList.add("hidden");
// }
// }
// function cancel1() {
// document.getElementById("link1").value = glink_value;
// document.getElementById("url1").value = url_value;
// document.getElementById("link1").classList.remove("outline-none", "ring-4", "ring-blue-500/50", "shadow-lg", "focus:outline-none", "focus:ring-4", "focus:ring-blue-500/50", "focus:shadow-lg");
// document.getElementById("url1").classList.remove("outline-none", "ring-4", "ring-blue-500/50", "shadow-lg", "focus:outline-none", "focus:ring-4", "focus:ring-blue-500/50", "focus:shadow-lg");
// document.getElementById("edit-icon").classList.remove("hidden");
// document.getElementById("save-icon").classList.add("hidden");
// document.getElementById("cancel-icon").classList.add("hidden");
// }
</script>
</table>
</div>
</style>
<div class="flex lg:flex-row flex-col w-full mb-24 justify-center items-center">
<div class="h-96 lg:w-auto sm:w-full flex flex-col flex-grow mb-24">
<div class="w-full flex items-center justify-center mb-6 border-8 border-black">
<h1 class="text-4xl md:text-5xl lg:text-6xl m-5 text-center">Create and Share Geo-Restricted Links</h1>
</div>
<div class="h-72 w-full flex items-center justify-center text-2xl border-8 border-black">
<p>
Insert description or whatever ...
</p>
</div>
</div>
<!-- <img class="w-auto flex-grow-0 h-96 w-96" src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTGpfMagCsgrJkELG_GOjtxqssEPXd-3vr2PmPdaB-0Y5Rp-bv1VOouyoXmG2QxZWHpdYI&usqp=CAU">-->
<div class="relative items-center w-auto h-auto sm:w-full flex-grow-0">
<div class="absolute inset-y-0 left-0 flex items-center pl-3 pointer-events-none">
<svg aria-hidden="true" class="w-5 h-5 text-gray-500 dark:text-gray-400" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"></path></svg>
</div>
<div class="absolute inset-y-0 left-0 flex items-center w-full pl-10 pointer-events-none">
<div type="search" id="default-search" class="block w-full p-2 pl-6 text-sm text-gray-900 border border-gray-300 rounded-lg bg-gray-50 focus:ring-blue-500 focus:border-blue-500">
<div class="typewriter bg-transparent w-fit h-auto justify-center items-center mx-auto">
<h1 class="text-2xl text-center overflow-x-hidden border-r border-r-2 border-r-orange-600 whitespace-nowrap m-auto tracking-wider "></h1>
</div>
<div>
<h1 class="text-5xl font-bold text-emerald-400">Create and share geo-restricted links</h1>
<p class="py-6 text-gray-300">GLinkZip enables you to generate and distribute geo-restricted URLs for private, secure access.</p>
<div class="flex justify-center items-center">
<button class="btn btn-success text-xl hover:shadow-lg hover:shadow-emerald-400/50">Get Started</button>
</div>
</div>
</div>
</div>
</div>
<style>
.typewriter h1{
background: transparent;
overflow: hidden; /* Ensures the content is not revealed until the animation */
border-right: .15em solid orange; /* The typwriter cursor */
white-space: nowrap; /* Keeps the content on a single line */
margin: auto; /* Gives that scrolling effect as the typing happens */
letter-spacing: .15em; /* Adjust as needed */
content: "";
animation:
typing 9s steps(40, start) 0s infinite,
blink-caret .95s step-end 0s infinite;
}
/* The typing effect */
@keyframes typing {
0% { width: 0}
30% { width: 100% }
40% { width: 100% }
55% { width: 0 }
65% { width: 0}
95% {width: 100%}
100% {width: 100%}
}
/* The typewriter cursor effect */
@keyframes blink-caret {
from, to { border-color: transparent }
50% { border-color: orange; }
}
.typewriter h1::after {
animation: change 9s steps(40, start) 0s infinite;
}
@keyframes change {
0% {content: "netflix.com"}
60% {content: "netflix.com"}
65% {content: "glink.com/video"}
100% {content: "glink.com/video"}
}
</style>
</div>
<div class="flex lg:flex-col h-auto flex-col w-full mb-24 border-8 border-black">
<div class="w-full justify-center items-center flex border-8 border-black">
<p class="text-4xl md:text-5xl lg:text-6xl">
<!-- New hero end -->
<div class="flex lg:flex-col flex-col w-full mb-24 bg-primary rounded-lg shadow-lg shadow-primary">
<div class="w-full my-12 justify-center items-center flex">
<p class="text-4xl md:text-5xl lg:text-6xl text-emerald-400 font-bold brightness-125">
How it works
</p>
</div>
<div class="flex lg:flex-row flex-col justify-between items-center h-auto w-auto mx-5 mb-5">
<div class="flex flex-col items-center h-full lg:w-1/3 w-full">
<img src="" alt="pic2" class="bg-black flex-grow m-5 w-full rounded">
<p class="text-xl">
<div class="flex lg:flex-row flex-col items-start h-auto w-auto mx-5 mb-5">
<div class="flex flex-col items-center h-full lg:w-1/3 w-full pt-0">
<img src="images/step1.png" alt="pic2" class="bg-black flex-grow m-5 w-full rounded">
<h1 class="text-5xl text-success">
Step 1
</p>
</h1>
<p class="py-6 text-gray-300">Create the GLink. You can either create a regular shortened URL, or a geo-restricted one, in which case you can restrict it to a specific radius around your current location.</p>
</div>
<div class="flex flex-col items-center h-full lg:w-1/3 w-full">
<div class="flex flex-col items-center h-full lg:w-1/3 w-full pt-0">
<img src="" alt="pic2" class="bg-black flex-grow m-5 w-full rounded">
<p class="text-xl">
<h1 class="text-5xl text-success">
Step 2
</p>
</h1>
<p class="py-6 text-gray-300">
Distribute the GLink. If you created a regular link i.e. with no restrictions, then the service works similar to other link shorteners, like TinyURL or Bitly.
</p>
</div>
<div class="flex flex-col items-center h-full lg:w-1/3 w-full">
<div class="flex flex-col items-center h-full lg:w-1/3 w-full pt-0 flex-grow flex-shrink-0">
<img src="" alt="pic2" class="bg-black flex-grow m-5 w-full rounded">
<p class="text-xl">
<h1 class="text-5xl text-success ">
Step 3
</p>
</h1>
<p class="py-6 text-gray-300">
If the link is geo-restricted, then anyone who accesses it will have to provide their location co-ordinates for authorization.
</p>
</div>
</div>
</div>

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 263 KiB

@ -0,0 +1,587 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="105.12777mm"
height="63.852776mm"
viewBox="0 0 105.12777 63.852776"
version="1.1"
id="svg5"
xml:space="preserve"
inkscape:export-filename="GLink-Logo.svg"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
showgrid="false" /><defs
id="defs2" /><g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-34.674862,-101.01991)"><image
width="105.12778"
height="63.852776"
preserveAspectRatio="none"
style="image-rendering:optimizeQuality"
xlink:href="data:image/png;base64,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
vuf63oi9LftY++r2W+2vOsA4UNaANExp6G3MbuxsSm3qOBh+sKXZp/nAIadD2w6bHa48ontk8VHK
0blH+48VH+s7LjnecyLrxKOW8S13To46ebU1rrX9VMSps6dDTp88wz5z7Kzv2cPnvM8dPM8633jB
40JDm3vbgd/dfz/Q7tHecNHzYtMlr0vNHSM7jl72v3ziStCV01e5Vy9ci77WcT3p+s0bY2503hTc
fHYr79ar20W3P9+ZdZdwt+ye5r2K+0b3q/+w+6O+06PzyIOgB20PEx7eecR/9OJxweMvXXOf0J5U
PDV9WvPM5dnh7pDuS89HP+96IXnxuaf0T60/q17avtz/V8Bfbb2jerteSV/1v174xuDNtrdub1v6
Yvvuv8t/9/l92QeDD9s/sj6e+ZTy6ennSV9IX1Z/tfva/C3i293+/P5+CU/KU/wKYLChmZkAvN4G
AC0VAAbcn1FGK/d/CkOUe1YFAv8JK/eICvMAoA7+v8f1wL+bGwDs3gK3X1BfYwwAsTQAEr0A6uo6
2Ab2aop9pdyIcB+wMfRrRn4G+Dem3HP+kPfPZyBXdQM/n/8FIJx8LV8UOgcAAAAJcEhZcwAAFiUA
ABYlAUlSJPAAAGz3SURBVHhe7Z0HfBzVtf/vzBatepfcLVfccKFjqjHF1ACmhhpC+iMvpLy890/y
kryQ9gIvJEBCLyYJxXEIvRiwabYxuPcquUpW79o2M/9z5ZUjy5J2Znbmzuzubz6fRcK65dzvvTtz
5txzz2EMFwiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiA
AAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiA
AAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiA
AAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiA
AAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiA
AAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiA
AAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiA
AAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiA
AAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiA
AAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiA
AAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiA
AAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiA
AAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiA
AAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiA
AAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAQFoQkNJi
lBgkCIBA2hA4tDcyqrlWGdJcpw7paFZLOtvUwlCXlhONaH6mMcnjlSK+gNSZmSO1ZOfLjfnFntqC
UrmmZLh3VyBbjqQNKAwUBEDAUgJQqCzFicZAAAREEYiEVc+ezZET6DNz77bwzIM7ozMO7oqMrjug
DCcZjNzbVCqv5BbKjcPGevcOG+fbNWKib93oyb7Vo6f4V+WXeBpEjQn9gAAIJC8BIzed5B0lJAcB
EEgJAjVVkYqtK0Ozt68OnbNzbfiMqk2RqXYOrHSE58C4Gf71E0/IeP+4kzM+nDArY6Wd/aFtEACB
5CUAhSp55w6Sg0BaEGiqjZau/zB4/oaPg/M2fhw6v/GQMsyJgXt9LDLtjMBHx58ZeHP6WYG3yXq1
wQk50CcIgIA7CUChcue8QCoQSHsCZIU6ZfV7XZeueb/r2sqNkcluAlI0xHNo1pzAayfMzXz55Iuy
XnWTbJAFBEDAGQJQqJzhjl5BAAQGILDxk+CFn77RecvKt7quaKpV8syCypweZjlndrGMcVHmyVGZ
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
CIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAA
CIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAA
CIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAA
CIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAA
CIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAA
CIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAA
CIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAA
CIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAA
CIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAA
CIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAA
CIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAA
CIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAA
CIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAA
CIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAA
CIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAA
CIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAA
CIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAA
CIAACIAACIAACIAACIAACIAACIAACIAACIAACIBAahH4/0IlLQvNgj+/AAAAAElFTkSuQmCC
"
id="image177"
x="34.674862"
y="101.01991" /></g></svg>

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

@ -0,0 +1,349 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>My Links</title>
<link rel="stylesheet" href="css/output.css">
</head>
<body class="mx-[10%]">
<main class="m-10 h-auto w-auto ">
<!-- Navbar start -->
<div class="navbar bg-base-100 rounded-lg shadow-xl shadow-black/50 z-[4] sticky top-0 mb-10">
<div class="flex-1 lg:ml-4 ml-2 my-2">
<!--Hamburger menu-->
<div class="lg:hidden" >
<ul class="menu menu-horizontal px-1">
<label class="btn btn-circle swap swap-rotate ">
<input type="checkbox" class="opacity-0 w-full h-full "/>
<svg class="swap-off fill-emerald-400 brightness-125" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 512 512"><path d="M64,384H448V341.33H64Zm0-106.67H448V234.67H64ZM64,128v42.67H448V128Z"/></svg>
<div class="dropdown dropdown-open swap-on">
<svg class="fill-emerald-400 brightness-125" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 512 512"><polygon points="400 145.49 366.51 112 256 222.51 145.49 112 112 145.49 222.51 256 112 366.51 145.49 400 256 289.49 366.51 400 400 366.51 289.49 256 400 145.49"/></svg>
<ul tabindex="0" class="menu dropdown-content z-[1] p-2 shadow bg-base-100 rounded-box w-36 mt-4">
<li><a class="text-emerald-400 brightness-125">Create</a></li>
<li><a class="text-emerald-400 brightness-125">Signup</a></li>
<li><a class="text-emerald-400 brightness-125">Login</a></li>
</ul>
</div>
</label>
</ul>
</div>
<!-- Hamburger Menu ended -->
<div class="flex lg:justify-start lg:items-start justify-center items-center lg:w-auto w-full">
<a class="btn btn-ghost normal-case text-xl text-emerald-400 brightness-125"><img src="images/GLink-Logo-alt.svg" class="h-full "></a>
</div>
<div class="w-full justify-center items-center lg:flex hidden">
<a class="btn btn-outline btn-success brightness-125 lg:text-xl text-sm" href="/">Create</a>
</div>
</div>
<div class="justify-center items-center lg:flex mr-10 my-2 hidden">
<a class="btn btn-outline btn-success brightness-125 lg:text-xl text-sm" href="signup.html">Signup</a>
</div>
<div class="flex-none my-2">
<div class="dropdown dropdown-end">
<label tabindex="0" class="btn btn-ghost btn-circle avatar border border-2 border-emerald-500 brightness-125 hover:border-none hover:ring-2 hover:ring-emerald-400 focus:ring-2 focus:ring-emerald-400">
<div class="w-10 rounded-full cursor-pointer ">
<div class="w-full h-full bg-white rounded-full text-center"></div>
</div>
</label>
<ul tabindex="0" class="menu menu-sm dropdown-content mt-3 z-[1] p-2 shadow bg-base-100 rounded-box w-36">
<li><a>My Links</a></li>
<li><a>Logout</a></li>
</ul>
</div>
</div>
</div>
<!-- Navbar end -->
<!-- Table start -->
<div class="overflow-x-auto">
<table class="table text-emerald-400 brightness-125 italic my-4">
<!-- head -->
<thead>
<tr class="text-emerald-400 brightness-125 text-xl font-bold text-center">
<th></th>
<th>gLink</th>
<th>URL</th>
<th>Edit</th>
<th>Delete</th>
</tr>
</thead>
<tbody>
<!-- row 1 -->
<tr class="data_row text-center" >
<th>1</th>
<td><input type="text" class="input input-bordered input-success glink_str text-center italic border-none rounded-lg focus:shadow-lg" readonly value="Link 1"></td>
<td><input type="text" class="input input-bordered input-success url_str italic text-center border-none rounded-lg focus:shadow-lg" readonly value="https://www.example.com"></td>
<td>
<button class="edit_btn btn bg-transparent hover:bg-transparent border-none p-0 m-0" onclick = " ">
<svg width="24"
height="24"
fill="blue"
class="bi bi-pencil"
viewBox="0 0 16 16">
<path d="M12.146.146a.5.5 0 0 1 .708 0l3 3a.5.5 0 0 1 0 .708l-10 10a.5.5 0 0 1-.168.11l-5 2a.5.5 0 0 1-.65-.65l2-5a.5.5 0 0 1 .11-.168l10-10zM11.207 2.5 13.5 4.793 14.793 3.5 12.5 1.207 11.207 2.5zm1.586 3L10.5 3.207 4 9.707V10h.5a.5.5 0 0 1 .5.5v.5h.5a.5.5 0 0 1 .5.5v.5h.293l6.5-6.5zm-9.761 5.175-.106.106-1.528 3.821 3.821-1.528.106-.106A.5.5 0 0 1 5 12.5V12h-.5a.5.5 0 0 1-.5-.5V11h-.5a.5.5 0 0 1-.468-.325z"/>
</svg></button>
<button class="save_btn btn mx-8 bg-transparent hover:bg-transparent border-none p-0 m-0 hidden">
<div class="inline-block rotate-45 h-[24px] w-[12px] border-b-4 border-b-green-500 border-r-green-500 border-r-4 hover:border-b-green-300 hover:border-r-green-300"></div>
</button>
<button class="cancel_btn btn bg-transparent hover:bg-transparent border-none p-0 m-0 hidden">
<div class="w-[24px] h-[24px] before:absolute before:content-[' '] before:h-[32px] before:w-[2px] before:bg-red-600 before:rotate-45 after:absolute after:content-[' '] after:h-[32px] after:w-[2px] after:bg-red-600 after:-rotate-45 hover:before:bg-red-400 hover:after:bg-red-400"></div>
</button></td>
<td>
<button class="delete_btn btn bg-transparent hover:bg-transparent border-none p-0 m-0">
<svg xmlns="http://www.w3.org/2000/svg" fill="red" x="0px" y="0px" viewBox="0 0 25 24.8" width="25" height="24" xml:space="preserve" class= "group icon-trashcan ct-delete" data-ember-action="" data-ember-action-1015="1015">
<g class="trashcan-open invisible group-hover:visible">
<path d="M18.7,24.4H5.9L4.9,7h14.9L18.7,24.4z M7.6,22.6H17l0.8-13.7h-11L7.6,22.6z"></path>
<polygon points="13.6,10.3 13.1,21.2 14.9,21.2 15.4,10.3 "></polygon>
<polygon points="11.5,21.2 11,10.3 9.2,10.3 9.7,21.2 "></polygon>
<path d="M19.1,0.7l-4.7,0.9l-0.8-1.4L8.2,1.3L8,3l-4.7,1l0.2,4.7l17.3-3.5L19.1,0.7z
M8.8,1.9l4.4 -1.0 l0.5,0.8
L8.7,2.8z
M5.2,6.4l0-1L18,2.8l0.3,0.9L5.2,6.4z"></path>
</g>
<g class="trashcan-closed group-hover:invisible">
<path d="M6.8,8.8h11L17,22.6
H7.6L6.8,8.8z
M4.9,7l1,17.4h12.8
l1-17.4
H4.9z"></path>
<polygon points="13.6,10.3 13.1,21.2 14.9,21.2 15.4,10.3 "></polygon>
<polygon points="11.5,21.2 11,10.3 9.2,10.3 9.7,21.2 "></polygon>
<path d="M20.4,4h-4.8l-0.5-1.6
H9.5L9,4
H4.2
L3.5,8.6h17.6
L20.4,4z
M9.9,3.2h4.8
L14.9,3.9h-5.2z
M5.6,6.7l0.2-1 h13l0.2,1
H5.6z"></path>
</g>
</svg>
</button>
</td>
</tr>
<tr class="notification_row text-center w-full hidden">
<td colspan="5"><div class="alert alert-error text-lg">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" class="stroke-current shrink-0 w-8 h-8"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg>
<span>You have just deleted a row. Press <button class="undo_btn btn bg-transparent m-0 p-0 h-fit hover:bg-transparent border-none"><kbd class="px-2 py-1.5 text-xs font-semibold text-gray-800 bg-gray-100 border border-gray-200 rounded-lg dark:bg-gray-600 dark:text-gray-100 dark:border-gray-500">undo</kbd></button> to undo the action</span>
<button class="close_btn btn bg-transparent hover:bg-transparent broder-none p-0 m-0 "><svg xmlns="http://www.w3.org/2000/svg" class="stroke-black shrink-0 h-8 w-8" fill="none" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2m7-2a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></button>
</div></td>
</tr>
</tbody>
<!-- row 2 -->
<tbody>
<tr class="data_row text-center" >
<th>2</th>
<td><input type="text" class="input input-bordered input-success glink_str text-center italic border-none rounded-lg focus:shadow-lg" readonly value="Link 1"></td>
<td><input type="text" class="input input-bordered input-success url_str italic text-center border-none rounded-lg focus:shadow-lg" readonly value="https://www.example.com"></td>
<td>
<button class="edit_btn btn bg-transparent hover:bg-transparent border-none p-0 m-0" onclick = " ">
<svg width="24"
height="24"
fill="blue"
class="bi bi-pencil"
viewBox="0 0 16 16">
<path d="M12.146.146a.5.5 0 0 1 .708 0l3 3a.5.5 0 0 1 0 .708l-10 10a.5.5 0 0 1-.168.11l-5 2a.5.5 0 0 1-.65-.65l2-5a.5.5 0 0 1 .11-.168l10-10zM11.207 2.5 13.5 4.793 14.793 3.5 12.5 1.207 11.207 2.5zm1.586 3L10.5 3.207 4 9.707V10h.5a.5.5 0 0 1 .5.5v.5h.5a.5.5 0 0 1 .5.5v.5h.293l6.5-6.5zm-9.761 5.175-.106.106-1.528 3.821 3.821-1.528.106-.106A.5.5 0 0 1 5 12.5V12h-.5a.5.5 0 0 1-.5-.5V11h-.5a.5.5 0 0 1-.468-.325z"/>
</svg></button>
<button class="save_btn btn mx-8 bg-transparent hover:bg-transparent border-none p-0 m-0 hidden">
<div class="inline-block rotate-45 h-[24px] w-[12px] border-b-4 border-b-green-500 border-r-green-500 border-r-4 hover:border-b-green-300 hover:border-r-green-300"></div>
</button>
<button class="cancel_btn btn bg-transparent hover:bg-transparent border-none p-0 m-0 hidden">
<div class="w-[24px] h-[24px] before:absolute before:content-[' '] before:h-[32px] before:w-[2px] before:bg-red-600 before:rotate-45 after:absolute after:content-[' '] after:h-[32px] after:w-[2px] after:bg-red-600 after:-rotate-45 hover:before:bg-red-400 hover:after:bg-red-400"></div>
</button></td>
<td>
<button class="delete_btn btn bg-transparent hover:bg-transparent border-none p-0 m-0">
<svg xmlns="http://www.w3.org/2000/svg" fill="red" x="0px" y="0px" viewBox="0 0 25 24.8" width="25" height="24" xml:space="preserve" class= "group icon-trashcan ct-delete" data-ember-action="" data-ember-action-1015="1015">
<g class="trashcan-open invisible group-hover:visible">
<path d="M18.7,24.4H5.9L4.9,7h14.9L18.7,24.4z M7.6,22.6H17l0.8-13.7h-11L7.6,22.6z"></path>
<polygon points="13.6,10.3 13.1,21.2 14.9,21.2 15.4,10.3 "></polygon>
<polygon points="11.5,21.2 11,10.3 9.2,10.3 9.7,21.2 "></polygon>
<path d="M19.1,0.7l-4.7,0.9l-0.8-1.4L8.2,1.3L8,3l-4.7,1l0.2,4.7l17.3-3.5L19.1,0.7z
M8.8,1.9l4.4 -1.0 l0.5,0.8
L8.7,2.8z
M5.2,6.4l0-1L18,2.8l0.3,0.9L5.2,6.4z"></path>
</g>
<g class="trashcan-closed group-hover:invisible">
<path d="M6.8,8.8h11L17,22.6
H7.6L6.8,8.8z
M4.9,7l1,17.4h12.8
l1-17.4
H4.9z"></path>
<polygon points="13.6,10.3 13.1,21.2 14.9,21.2 15.4,10.3 "></polygon>
<polygon points="11.5,21.2 11,10.3 9.2,10.3 9.7,21.2 "></polygon>
<path d="M20.4,4h-4.8l-0.5-1.6
H9.5L9,4
H4.2
L3.5,8.6h17.6
L20.4,4z
M9.9,3.2h4.8
L14.9,3.9h-5.2z
M5.6,6.7l0.2-1 h13l0.2,1
H5.6z"></path>
</g>
</svg>
</button>
</td>
</tr>
<tr class="notification_row text-center w-full hidden">
<td colspan="5"><div class="alert alert-error text-lg">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" class="stroke-current shrink-0 w-8 h-8"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg>
<span>You have just deleted a row. Press <button class="undo_btn btn bg-transparent m-0 p-0 h-fit hover:bg-transparent border-none"><kbd class="px-2 py-1.5 text-xs font-semibold text-gray-800 bg-gray-100 border border-gray-200 rounded-lg dark:bg-gray-600 dark:text-gray-100 dark:border-gray-500">undo</kbd></button> to undo the action</span>
<button class="close_btn btn bg-transparent hover:bg-transparent broder-none p-0 m-0 "><svg xmlns="http://www.w3.org/2000/svg" class="stroke-black shrink-0 h-8 w-8" fill="none" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2m7-2a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></button>
</div></td>
</tr>
</tbody>
<!-- row 3 -->
<tbody>
<tr class="data_row text-center" >
<th>3</th>
<td><input type="text" class="input input-bordered input-success glink_str text-center italic border-none rounded-lg focus:shadow-lg" readonly value="Link 1"></td>
<td><input type="text" class="input input-bordered input-success url_str italic text-center border-none rounded-lg focus:shadow-lg" readonly value="https://www.example.com"></td>
<td>
<button class="edit_btn btn bg-transparent hover:bg-transparent border-none p-0 m-0" onclick = " ">
<svg width="24"
height="24"
fill="blue"
class="bi bi-pencil"
viewBox="0 0 16 16">
<path d="M12.146.146a.5.5 0 0 1 .708 0l3 3a.5.5 0 0 1 0 .708l-10 10a.5.5 0 0 1-.168.11l-5 2a.5.5 0 0 1-.65-.65l2-5a.5.5 0 0 1 .11-.168l10-10zM11.207 2.5 13.5 4.793 14.793 3.5 12.5 1.207 11.207 2.5zm1.586 3L10.5 3.207 4 9.707V10h.5a.5.5 0 0 1 .5.5v.5h.5a.5.5 0 0 1 .5.5v.5h.293l6.5-6.5zm-9.761 5.175-.106.106-1.528 3.821 3.821-1.528.106-.106A.5.5 0 0 1 5 12.5V12h-.5a.5.5 0 0 1-.5-.5V11h-.5a.5.5 0 0 1-.468-.325z"/>
</svg></button>
<button class="save_btn btn mx-8 bg-transparent hover:bg-transparent border-none p-0 m-0 hidden">
<div class="inline-block rotate-45 h-[24px] w-[12px] border-b-4 border-b-green-500 border-r-green-500 border-r-4 hover:border-b-green-300 hover:border-r-green-300"></div>
</button>
<button class="cancel_btn btn bg-transparent hover:bg-transparent border-none p-0 m-0 hidden">
<div class="w-[24px] h-[24px] before:absolute before:content-[' '] before:h-[32px] before:w-[2px] before:bg-red-600 before:rotate-45 after:absolute after:content-[' '] after:h-[32px] after:w-[2px] after:bg-red-600 after:-rotate-45 hover:before:bg-red-400 hover:after:bg-red-400"></div>
</button></td>
<td>
<button class="delete_btn btn bg-transparent hover:bg-transparent border-none p-0 m-0">
<svg xmlns="http://www.w3.org/2000/svg" fill="red" x="0px" y="0px" viewBox="0 0 25 24.8" width="25" height="24" xml:space="preserve" class= "group icon-trashcan ct-delete" data-ember-action="" data-ember-action-1015="1015">
<g class="trashcan-open invisible group-hover:visible">
<path d="M18.7,24.4H5.9L4.9,7h14.9L18.7,24.4z M7.6,22.6H17l0.8-13.7h-11L7.6,22.6z"></path>
<polygon points="13.6,10.3 13.1,21.2 14.9,21.2 15.4,10.3 "></polygon>
<polygon points="11.5,21.2 11,10.3 9.2,10.3 9.7,21.2 "></polygon>
<path d="M19.1,0.7l-4.7,0.9l-0.8-1.4L8.2,1.3L8,3l-4.7,1l0.2,4.7l17.3-3.5L19.1,0.7z
M8.8,1.9l4.4 -1.0 l0.5,0.8
L8.7,2.8z
M5.2,6.4l0-1L18,2.8l0.3,0.9L5.2,6.4z"></path>
</g>
<g class="trashcan-closed group-hover:invisible">
<path d="M6.8,8.8h11L17,22.6
H7.6L6.8,8.8z
M4.9,7l1,17.4h12.8
l1-17.4
H4.9z"></path>
<polygon points="13.6,10.3 13.1,21.2 14.9,21.2 15.4,10.3 "></polygon>
<polygon points="11.5,21.2 11,10.3 9.2,10.3 9.7,21.2 "></polygon>
<path d="M20.4,4h-4.8l-0.5-1.6
H9.5L9,4
H4.2
L3.5,8.6h17.6
L20.4,4z
M9.9,3.2h4.8
L14.9,3.9h-5.2z
M5.6,6.7l0.2-1 h13l0.2,1
H5.6z"></path>
</g>
</svg>
</button>
</td>
</tr>
<tr class="notification_row text-center w-full hidden">
<td colspan="5"><div class="alert alert-error text-lg">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" class="stroke-current shrink-0 w-8 h-8"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg>
<span>You have just deleted a row. Press <button class="undo_btn btn bg-transparent m-0 p-0 h-fit hover:bg-transparent border-none"><kbd class="px-2 py-1.5 text-xs font-semibold text-gray-800 bg-gray-100 border border-gray-200 rounded-lg dark:bg-gray-600 dark:text-gray-100 dark:border-gray-500">undo</kbd></button> to undo the action</span>
<button class="close_btn btn bg-transparent hover:bg-transparent broder-none p-0 m-0 "><svg xmlns="http://www.w3.org/2000/svg" class="stroke-black shrink-0 h-8 w-8" fill="none" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2m7-2a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></button>
</div></td>
</tr>
</tbody>
<script>
let allButtons = document.getElementsByClassName('btn');
for (let btn of allButtons) {
var url_value;
var glink_value;
btn.addEventListener('click', () => {
if (btn.classList.contains("close_btn")) {
let notificationRow = btn.parentElement.parentElement.parentElement;
notificationRow.classList.add("hidden");
} else if (btn.classList.contains("undo_btn")) {
let notificationRow = btn.parentElement.parentElement.parentElement.parentElement;
let row = notificationRow.parentElement.getElementsByClassName("data_row")[0];
row.classList.remove("hidden");
notificationRow.classList.add("hidden");
}
else {
var clickedElement = btn;
var clickedRow = clickedElement.parentElement.parentElement;
let txt = clickedRow.getElementsByClassName("glink_str")[0];
let url = clickedRow.getElementsByClassName("url_str")[0];
let edit = clickedRow.getElementsByClassName("edit_btn")[0];
let save = clickedRow.getElementsByClassName("save_btn")[0];
let cancel = clickedRow.getElementsByClassName("cancel_btn")[0];
if (btn.classList.contains("edit_btn") || btn.classList.contains("save_btn")) {
if (txt.readOnly) {
url_value = url.value;
glink_value = txt.value;
txt.readOnly = false;
url.readOnly = false;
txt.classList.add("outline-none", "ring-4", "ring-emerald-400", "shadow-lg", "focus:outline-none", "focus:ring-4", "focus:ring-emerald-400", "focus:shadow-lg");
url.classList.add("outline-none", "ring-4", "ring-emerald-400", "shadow-lg", "focus:outline-none", "focus:ring-4", "focus:ring-emerald-400", "focus:shadow-lg");
edit.classList.add("hidden");
save.classList.remove("hidden");
cancel.classList.remove("hidden");
txt.focus();
} else {
txt.readOnly = true;
url.readOnly = true;
txt.classList.remove("outline-none", "ring-4", "ring-emerald-400", "shadow-lg", "focus:outline-none", "focus:ring-4", "focus:ring-emerald-400", "focus:shadow-lg");
url.classList.remove("outline-none", "ring-4", "ring-emerald-400", "shadow-lg", "focus:outline-none", "focus:ring-4", "focus:ring-emerald-400", "focus:shadow-lg");
edit.classList.remove("hidden");
save.classList.add("hidden");
cancel.classList.add("hidden");
}
}
if (btn.classList.contains("cancel_btn")) {
txt.value = glink_value;
url.value = url_value;
txt.readOnly = true;
url.readOnly = true;
txt.classList.remove("outline-none", "ring-4", "ring-blue-500/50", "shadow-lg", "focus:outline-none", "focus:ring-4", "focus:ring-blue-500/50", "focus:shadow-lg");
url.classList.remove("outline-none", "ring-4", "ring-blue-500/50", "shadow-lg", "focus:outline-none", "focus:ring-4", "focus:ring-blue-500/50", "focus:shadow-lg");
edit.classList.remove("hidden");
save.classList.add("hidden");
cancel.classList.add("hidden");
}
if (btn.classList.contains("delete_btn")) {
let row = clickedRow;
let notification = row.parentElement.getElementsByClassName("notification_row")[0];
row.classList.add("hidden");
notification.classList.remove("hidden");
setTimeout(function () {
notification.classList.add("hidden");
}, 4000);
}
}
});
}
</script>
</table>
</div>
<!-- Table end -->
</main>
</body>
</html>
Loading…
Cancel
Save