Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3f8dbef6ad
|
||
|
|
0b9a90fabe
|
||
|
|
5afdd6a8d0 | ||
|
|
f409602e22 | ||
|
|
7d26825c63 | ||
|
|
b346ee6222 | ||
|
|
f498386f96 | ||
|
|
b3b06226ee |
No files matched your search
@@ -47,7 +47,7 @@ module.exports = (users) => {
|
||||
$set: { resetToken: token, resetTokenExpires: expiration }
|
||||
});
|
||||
|
||||
const resetUrl = `http://localhost:${PORT}/reset/${token}`;
|
||||
const resetUrl = `https://rcalculator.sowinski.dev/${PORT}/reset/${token}`;
|
||||
|
||||
const mailSend = {
|
||||
from: process.env.EMAIL_USER,
|
||||
|
||||
@@ -150,6 +150,41 @@ function selectIcon(selectedIcon, assetId="") {
|
||||
`;
|
||||
}
|
||||
|
||||
/**
|
||||
* selectFilter to filter assets by type
|
||||
* @param {button elemenbt} filter
|
||||
*/
|
||||
function selectFilter(filter) {
|
||||
const types = ["other", "saving", "stock"];
|
||||
|
||||
console.log(filter.value);
|
||||
|
||||
types.forEach((type) => {
|
||||
if (filter.value == "all") {
|
||||
document.querySelectorAll(`.${type}-asset`).forEach((preview) => {
|
||||
preview.style.display = "block";
|
||||
});
|
||||
} else if (type != filter.value) {
|
||||
document.querySelectorAll(`.${type}-asset`).forEach((preview) => {
|
||||
preview.style.display = "none";
|
||||
});
|
||||
} else if (type == filter.value) {
|
||||
document.querySelectorAll(`.${type}-asset`).forEach((preview) => {
|
||||
preview.style.display = "block";
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
document.getElementById("dropdown-filters-button").innerHTML = `
|
||||
<span class="inline-flex items-center">
|
||||
${filter.value.charAt(0).toUpperCase() + filter.value.slice(1)} Assets
|
||||
<svg class="w-2.5 h-2.5 ms-2.5" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 10 6">
|
||||
<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m1 1 4 4 4-4"/>
|
||||
</svg>
|
||||
</span>
|
||||
`;
|
||||
}
|
||||
|
||||
/**
|
||||
* toggleYear shows or hides year input
|
||||
* @param {string} type of asset
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="white" viewBox="0 0 24 24" aria-hidden="true">
|
||||
<path d="M10.464 8.746c.227-.18.497-.311.786-.394v2.795a2.252 2.252 0 0 1-.786-.393c-.394-.313-.546-.681-.546-1.004 0-.323.152-.691.546-1.004ZM12.75 15.662v-2.824c.347.085.664.228.921.421.427.32.579.686.579.991 0 .305-.152.671-.579.991a2.534 2.534 0 0 1-.921.42Z" />
|
||||
<path fill-rule="evenodd" d="M12 2.25c-5.385 0-9.75 4.365-9.75 9.75s4.365 9.75 9.75 9.75 9.75-4.365 9.75-9.75S17.385 2.25 12 2.25ZM12.75 6a.75.75 0 0 0-1.5 0v.816a3.836 3.836 0 0 0-1.72.756c-.712.566-1.112 1.35-1.112 2.178 0 .829.4 1.612 1.113 2.178.502.4 1.102.647 1.719.756v2.978a2.536 2.536 0 0 1-.921-.421l-.879-.66a.75.75 0 0 0-.9 1.2l.879.66c.533.4 1.169.645 1.821.75V18a.75.75 0 0 0 1.5 0v-.81a4.124 4.124 0 0 0 1.821-.749c.745-.559 1.179-1.344 1.179-2.191 0-.847-.434-1.632-1.179-2.191a4.122 4.122 0 0 0-1.821-.75V8.354c.29.082.559.213.786.393l.415.33a.75.75 0 0 0 .933-1.175l-.415-.33a3.836 3.836 0 0 0-1.719-.755V6Z" clip-rule="evenodd" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
@@ -1,3 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor" viewBox="0 0 24 24">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="white" viewBox="0 0 24 24">
|
||||
<path fill-rule="evenodd" d="M11.293 3.293a1 1 0 0 1 1.414 0l6 6 2 2a1 1 0 0 1-1.414 1.414L19 12.414V19a2 2 0 0 1-2 2h-3a1 1 0 0 1-1-1v-3h-2v3a1 1 0 0 1-1 1H7a2 2 0 0 1-2-2v-6.586l-.293.293a1 1 0 0 1-1.414-1.414l2-2 6-6Z" clip-rule="evenodd"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 358 B After Width: | Height: | Size: 351 B |
@@ -1,3 +1,3 @@
|
||||
<svg height="30" width="30" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 17 14">
|
||||
<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M1 1h15M1 7h15M1 13h15"></path>
|
||||
</svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="white" viewBox="0 0 24 24">
|
||||
<path stroke="white" stroke-linecap="round" stroke-width="2" d="M5 6h14 M5 14h14 M5 22h14"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 260 B After Width: | Height: | Size: 199 B |
@@ -1,3 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="currentColor" viewBox="0 0 24 24">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" fill="white" viewBox="0 0 24 24">
|
||||
<path d="M13.09 3.294c1.924.95 3.422 1.69 5.472.692a1 1 0 0 1 1.438.9v9.54a1 1 0 0 1-.562.9c-2.981 1.45-5.382.24-7.25-.701a38.739 38.739 0 0 0-.622-.31c-1.033-.497-1.887-.812-2.756-.77-.76.036-1.672.357-2.81 1.396V21a1 1 0 1 1-2 0V4.971a1 1 0 0 1 .297-.71c1.522-1.506 2.967-2.185 4.417-2.255 1.407-.068 2.653.453 3.72.967.225.108.443.216.655.32Z"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 463 B After Width: | Height: | Size: 456 B |
@@ -10,7 +10,7 @@
|
||||
|
||||
<!-- Main display -->
|
||||
<section>
|
||||
<div class="mt-2 max-w-md mx-auto bg-white px-8 py-6 rounded-lg shadow-md flex flex-col justify-center">
|
||||
<div class="my-2 mx-4 md:max-w-md md:mx-auto bg-white px-8 py-6 rounded-lg shadow-md flex flex-col justify-center">
|
||||
<div class="flex flex-row justify-between text-right">
|
||||
<h1 class="text-lg font-medium">Assets:</h1>
|
||||
<h1 class="text-lg font-medium"><%= assets.length %></h1>
|
||||
@@ -24,12 +24,48 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="w-md my-6 max-w-md mx-auto px-4 flex flex-row justify-between">
|
||||
<a href="/home" class="text-center w-sm py-2 mx-2 px-4 border
|
||||
border-transparent rounded-md shadow-sm text-sm font-medium
|
||||
text-white bg-blue-600 hover:bg-blue-700 focus:outline-none">
|
||||
Back to Dashboard
|
||||
</a>
|
||||
<div class="my-6 md:w-md md:mx-auto px-4 flex flex-row justify-between">
|
||||
<button
|
||||
id="dropdown-filters-button"
|
||||
value=""
|
||||
data-dropdown-toggle="dropdown-filters"
|
||||
class="text-center w-sm py-2 mx-2 px-4 border
|
||||
border-transparent rounded-md shadow-sm text-sm font-medium
|
||||
text-white bg-blue-600 hover:bg-blue-700 focus:outline-none cursor-pointer"
|
||||
type="button"
|
||||
>
|
||||
<span class="inline-flex items-center">
|
||||
All Assets
|
||||
<svg class="w-2.5 h-2.5 ms-2.5" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 10 6">
|
||||
<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m1 1 4 4 4-4"/>
|
||||
</svg>
|
||||
</span>
|
||||
</button>
|
||||
<div id="dropdown-filters" class="overflow-y-auto h-40 z-10 hidden divide-y divide-gray-100 rounded-lg shadow-sm w-32 bg-gray-700">
|
||||
<ul id="dropdown-filters-ul" class="py-2 text-sm text-gray-200" aria-labelledby="dropdown-filters-button">
|
||||
<li>
|
||||
<button onclick="selectFilter(this)" type="button" value="all" class="inline-flex w-full px-4 py-2 text-sm text-gray-200 hover:bg-gray-600 hover:text-white" role="menuitem">
|
||||
<span class="inline-flex items-center">All Assets</span>
|
||||
</button>
|
||||
</li>
|
||||
<li>
|
||||
<button onclick="selectFilter(this)" type="button" value="other" class="inline-flex w-full px-4 py-2 text-sm text-gray-200 hover:bg-gray-600 hover:text-white" role="menuitem">
|
||||
<span class="inline-flex items-center">Other Assets</span>
|
||||
</button>
|
||||
</li>
|
||||
<li>
|
||||
<button onclick="selectFilter(this)" type="button" value="saving" class="inline-flex w-full px-4 py-2 text-sm text-gray-200 hover:bg-gray-600 hover:text-white" role="menuitem">
|
||||
<span class="inline-flex items-center">Savings Assets</span>
|
||||
</button>
|
||||
</li>
|
||||
<li>
|
||||
<button onclick="selectFilter(this)" type="button" value="stock" class="inline-flex w-full px-4 py-2 text-sm text-gray-200 hover:bg-gray-600 hover:text-white" role="menuitem">
|
||||
<span class="inline-flex items-center">Stocks Assets</span>
|
||||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<button
|
||||
class="text-center w-sm py-2 py-2 mx-2 px-4 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-blue-600
|
||||
hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 cursor-pointer"
|
||||
@@ -43,7 +79,7 @@
|
||||
<hr class="h-px my-8 bg-gray-500 border-0 mx-10">
|
||||
|
||||
<!-- list each asset and create hidden popup modal for view/edit -->
|
||||
<section class="mt-6">
|
||||
<section class="my-6 mx-4">
|
||||
<% if (assets.length == 0) { %>
|
||||
<div class="max-w-md mx-auto mb-10 rounded-lg shadow-md text-white font-bold bg-red-400 py-4 text-center">
|
||||
You have no assets, create a new asset.
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
<main class="pt-24 pb-14">
|
||||
<!-- Buttons -->
|
||||
<div class="flex justify-end gap-4 px-5 py-6">
|
||||
<div class="flex md:justify-end justify-center gap-4 px-5 py-6 md:py-0">
|
||||
<a href="/assets?popup"
|
||||
id="addAss" class="text-center cursor-pointer min-w-[150px] bg-green-600 px-4 py-2 text-white rounded hover:bg-green-800"
|
||||
type="button">Add Asset</a>
|
||||
@@ -14,15 +14,17 @@
|
||||
<div class="w-full">
|
||||
<div class="mb-12 grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-y-4 gap-x-6">
|
||||
<% if (plans.length === 0) { %>
|
||||
<div class="col-span-1 col-start-2 ml-28 mt-25">
|
||||
<div class="w-86 p-4 bg-white rounded-lg shadow-xl border border-slate-200">
|
||||
<h1 class="text-2xl block text-center font-semibold text-slate-700">Don't have any retirement plans? </h1>
|
||||
<div class="mt-4 flex justify-center items-center">
|
||||
<div class="mt-4 flex justify-center">
|
||||
<a href="/plans" class="cursor-pointer border-2 border-blue-600 bg-blue-600 text-white py-2 px-6
|
||||
rounded-md hover:bg-blue-700 hover:border-blue-700 font-semibold
|
||||
transition-colors duration-200 focus:outline-none ">Make one</a>
|
||||
</div>
|
||||
<div class="flex justify-center md:col-start-2">
|
||||
<div class="col-span-1 mt-25">
|
||||
<div class="w-86 p-4 bg-white rounded-lg shadow-xl border border-slate-200">
|
||||
<h1 class="text-2xl block text-center font-semibold text-slate-700">Don't have any retirement plans? </h1>
|
||||
<div class="mt-4 flex justify-center items-center">
|
||||
<div class="mt-4 flex justify-center">
|
||||
<a href="/plans" class="cursor-pointer border-2 border-blue-600 bg-blue-600 text-white py-2 px-6
|
||||
rounded-md hover:bg-blue-700 hover:border-blue-700 font-semibold
|
||||
transition-colors duration-200 focus:outline-none ">Make one</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -15,16 +15,6 @@
|
||||
</svg>
|
||||
</div>
|
||||
</a>
|
||||
<a href="/settings" class="relative flex flex-col bg-clip-border rounded-xl bg-white text-gray-700 shadow-md">
|
||||
<div class="p-4 flex items-center justify-between">
|
||||
<p class="font-sans text-2xl leading-normal font-normal text-blue-gray-600">
|
||||
Settings
|
||||
</p>
|
||||
<svg class="w-[40px] h-[40px]" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24">
|
||||
<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="m10 16 4-4-4-4"/>
|
||||
</svg>
|
||||
</div>
|
||||
</a>
|
||||
<a href="/aboutUs" class="relative flex flex-col bg-clip-border rounded-xl bg-white text-gray-700 shadow-md">
|
||||
<div class="p-4 flex items-center justify-between">
|
||||
<p class="font-sans text-2xl leading-normal font-normal text-blue-gray-600">
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- Clickable asset list item -->
|
||||
<div class="mt-4 max-w-md mx-auto bg-white rounded-lg shadow-md">
|
||||
<div class="mt-4 max-w-md mx-auto bg-white rounded-lg shadow-md <%= asset.type %>-asset">
|
||||
<button
|
||||
onclick="document.getElementById('<%= asset._id %>-modal').showModal()"
|
||||
style="width: 100%; height: 100%;"
|
||||
|
||||
@@ -87,10 +87,10 @@
|
||||
<li>
|
||||
<div class="text-center">
|
||||
<button class="flex flex-row text-white hover:bg-blue-700 focus:ring-4 font-medium rounded-full text-sm focus:outline-none focus:ring-blue-800" type="button" id="drawer-toggle" data-drawer-target="drawer-navigation" data-drawer-placement="right" aria-controls="drawer-navigation">
|
||||
<svg class="w-[30px] h-[30px] text-white" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" viewBox="0 0 24 24">
|
||||
<svg class="w-[30px] h-[30px] text-white" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="white" viewBox="0 0 24 24">
|
||||
<path fill-rule="evenodd" d="M12 20a7.966 7.966 0 0 1-5.002-1.756l.002.001v-.683c0-1.794 1.492-3.25 3.333-3.25h3.334c1.84 0 3.333 1.456 3.333 3.25v.683A7.966 7.966 0 0 1 12 20ZM2 12C2 6.477 6.477 2 12 2s10 4.477 10 10c0 5.5-4.44 9.963-9.932 10h-.138C6.438 21.962 2 17.5 2 12Zm10-5c-1.84 0-3.333 1.455-3.333 3.25S10.159 13.5 12 13.5c1.84 0 3.333-1.455 3.333-3.25S13.841 7 12 7Z" clip-rule="evenodd"/>
|
||||
</svg>
|
||||
<svg class="w-[30px] h-[30px] text-white" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24">
|
||||
<svg class="w-[30px] h-[30px] text-white" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="white" viewBox="0 0 24 24">
|
||||
<path stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M5 7h14M5 12h14M5 17h14"/>
|
||||
</svg>
|
||||
|
||||
|
||||