logo
This commit is contained in:
@@ -17,6 +17,7 @@
|
|||||||
type insertProject = {
|
type insertProject = {
|
||||||
issue_id: string;
|
issue_id: string;
|
||||||
input_by: string;
|
input_by: string;
|
||||||
|
project_start_date?: string;
|
||||||
project_due_date: string;
|
project_due_date: string;
|
||||||
picture_link: string;
|
picture_link: string;
|
||||||
updated_at?: string; // Optional, if not always present
|
updated_at?: string; // Optional, if not always present
|
||||||
@@ -36,6 +37,7 @@
|
|||||||
issue_number: string;
|
issue_number: string;
|
||||||
issue_id: string;
|
issue_id: string;
|
||||||
report_date: string;
|
report_date: string;
|
||||||
|
project_start_date?: string;
|
||||||
project_due_date: string;
|
project_due_date: string;
|
||||||
project_number?: string; // Optional, if not always present
|
project_number?: string; // Optional, if not always present
|
||||||
assigned_name?: string; // Optional, if not always present
|
assigned_name?: string; // Optional, if not always present
|
||||||
@@ -98,8 +100,10 @@
|
|||||||
let showProjectEditModal = false;
|
let showProjectEditModal = false;
|
||||||
let projectEditForm = {
|
let projectEditForm = {
|
||||||
project_number: "",
|
project_number: "",
|
||||||
issue_id: "",
|
issue_desc: "",
|
||||||
project_name: "",
|
project_name: "",
|
||||||
|
project_start_date:"",
|
||||||
|
project_due_date:"",
|
||||||
project_status: "On Progress",
|
project_status: "On Progress",
|
||||||
project_comment: "",
|
project_comment: "",
|
||||||
picture_link: "",
|
picture_link: "",
|
||||||
@@ -111,8 +115,10 @@
|
|||||||
function openProjectEditModal(row) {
|
function openProjectEditModal(row) {
|
||||||
projectEditForm = {
|
projectEditForm = {
|
||||||
project_number: row.project_number || "",
|
project_number: row.project_number || "",
|
||||||
issue_id: row.issue_id || "",
|
issue_desc: row.issue_name || "",
|
||||||
project_name: row.project_name || "",
|
project_name: row.project_name || "",
|
||||||
|
project_start_date: row.project_start_date || "",
|
||||||
|
project_due_date: row.project_due_date || "",
|
||||||
project_status: row.project_status || "On Progress",
|
project_status: row.project_status || "On Progress",
|
||||||
project_comment: row.project_comment || "",
|
project_comment: row.project_comment || "",
|
||||||
picture_link: row.picture_link || "",
|
picture_link: row.picture_link || "",
|
||||||
@@ -155,7 +161,8 @@
|
|||||||
const { data, error } = await supabase
|
const { data, error } = await supabase
|
||||||
.from("vb_employee")
|
.from("vb_employee")
|
||||||
.select("id, employee_name, employee_status")
|
.select("id, employee_name, employee_status")
|
||||||
.eq("employee_status", "Active");
|
.eq("employee_status", "Active")
|
||||||
|
.order("employee_name", { ascending: true });
|
||||||
|
|
||||||
if (error) {
|
if (error) {
|
||||||
console.error("Error fetching employees:", error);
|
console.error("Error fetching employees:", error);
|
||||||
@@ -618,6 +625,8 @@
|
|||||||
project_comment: projectEditForm.project_comment,
|
project_comment: projectEditForm.project_comment,
|
||||||
picture_link: projectEditForm.picture_link,
|
picture_link: projectEditForm.picture_link,
|
||||||
assigned_to: projectEditForm.assigned_to,
|
assigned_to: projectEditForm.assigned_to,
|
||||||
|
project_start_date: projectEditForm.project_start_date,
|
||||||
|
project_due_date: projectEditForm.project_due_date,
|
||||||
updated_at: formattedDate,
|
updated_at: formattedDate,
|
||||||
updated_by: user.id // ✅ real user info
|
updated_by: user.id // ✅ real user info
|
||||||
})
|
})
|
||||||
@@ -1134,59 +1143,75 @@
|
|||||||
{#if showProjectEditModal}
|
{#if showProjectEditModal}
|
||||||
<div class="fixed inset-0 z-50 flex items-center justify-center bg-black bg-opacity-50 overflow-y-auto">
|
<div class="fixed inset-0 z-50 flex items-center justify-center bg-black bg-opacity-50 overflow-y-auto">
|
||||||
<div class="min-h-screen flex items-center justify-center p-4">
|
<div class="min-h-screen flex items-center justify-center p-4">
|
||||||
<div class="bg-white rounded-lg shadow-lg w-full max-w-xl max-h-[90vh] overflow-y-auto p-6 space-y-6">
|
<div class="bg-white rounded-2xl shadow-xl w-full max-w-3xl max-h-[90vh] overflow-y-auto p-8 space-y-6">
|
||||||
|
|
||||||
|
<h2 class="text-2xl font-semibold text-gray-800">🛠️ Edit Project</h2>
|
||||||
|
|
||||||
<h2 class="text-2xl font-semibold">Edit Project</h2>
|
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
|
||||||
|
<!-- Left Column -->
|
||||||
<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
|
|
||||||
<!-- Left -->
|
|
||||||
<div class="space-y-4">
|
<div class="space-y-4">
|
||||||
<div>
|
<div>
|
||||||
<label class="block text-sm font-medium text-gray-700">Project Number</label>
|
<label class="block text-sm font-medium text-gray-700 mb-1">Project Number</label>
|
||||||
<input type="text" value={projectEditForm.project_number} disabled class="w-full border p-2 bg-gray-100 rounded" />
|
<input type="text" value={projectEditForm.project_number} disabled class="w-full border p-2 bg-gray-100 rounded" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<label class="block text-sm font-medium text-gray-700">Issue ID</label>
|
<label class="block text-sm font-medium text-gray-700 mb-1">Issue Description</label>
|
||||||
<input type="text" value={projectEditForm.issue_id} disabled class="w-full border p-2 bg-gray-100 rounded" />
|
<textarea value={projectEditForm.issue_desc} disabled class="w-full border p-2 bg-gray-100 rounded resize-none" rows="3" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<label class="block text-sm font-medium text-gray-700">Project Name</label>
|
<label class="block text-sm font-medium text-gray-700 mb-1">Project Name</label>
|
||||||
<input type="text" bind:value={projectEditForm.project_name} class="w-full border p-2 rounded" />
|
<input type="text" bind:value={projectEditForm.project_name} class="w-full border p-2 rounded" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<label class="block text-sm font-medium text-gray-700">Project Status</label>
|
<label class="block text-sm font-medium text-gray-700 mb-1">Project Status</label>
|
||||||
<select bind:value={projectEditForm.project_status} class="w-full border p-2 rounded">
|
<select bind:value={projectEditForm.project_status} class="w-full border p-2 rounded">
|
||||||
<option value="On Progress">On Progress</option>
|
<option value="On Progress">On Progress</option>
|
||||||
<option value="Done">Done</option>
|
<option value="Done">Done</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<label class="block text-sm font-medium text-gray-700 mb-1">Picture Link</label>
|
||||||
|
<input type="text" bind:value={projectEditForm.picture_link} class="w-full border p-2 rounded" />
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Right -->
|
<!-- Right Column -->
|
||||||
<div class="space-y-4">
|
<div class="space-y-4">
|
||||||
<div>
|
<div>
|
||||||
<label class="block text-sm font-medium text-gray-700">Picture Link</label>
|
<label class="block text-sm font-medium text-gray-700 mb-1">Start Date</label>
|
||||||
<input type="text" bind:value={projectEditForm.picture_link} class="w-full border p-2 rounded" />
|
<input type="date" bind:value={projectEditForm.project_start_date} class="w-full border p-2 rounded" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<label class="block text-sm font-medium text-gray-700">Assigned To</label>
|
<label class="block text-sm font-medium text-gray-700 mb-1">Due Date</label>
|
||||||
<input type="text" bind:value={projectEditForm.assigned_to} class="w-full border p-2 rounded" />
|
<input type="date" bind:value={projectEditForm.project_due_date} class="w-full border p-2 rounded" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<label class="block text-sm font-medium text-gray-700">Project Comment</label>
|
<label class="block text-sm font-medium text-gray-700 mb-1">Assigned To</label>
|
||||||
|
<select bind:value={projectEditForm.assigned_to} class="w-full border p-2 rounded">
|
||||||
|
<option value="">Select Employee</option>
|
||||||
|
{#each employees as emp}
|
||||||
|
<option value={emp.id}>{emp.employee_name}</option>
|
||||||
|
{/each}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<label class="block text-sm font-medium text-gray-700 mb-1">Project Comment</label>
|
||||||
<textarea bind:value={projectEditForm.project_comment} rows="4" class="w-full border p-2 rounded"></textarea>
|
<textarea bind:value={projectEditForm.project_comment} rows="4" class="w-full border p-2 rounded"></textarea>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex justify-end space-x-2 pt-4">
|
<div class="flex justify-end gap-3 pt-4">
|
||||||
<button on:click={saveProjectEdit} class="bg-blue-600 text-white px-4 py-2 rounded hover:bg-blue-700">Save</button>
|
<button on:click={() => showProjectEditModal = false} class="px-4 py-2 rounded border text-gray-700 hover:bg-gray-100">Cancel</button>
|
||||||
<button on:click={() => showProjectEditModal = false} class="px-4 py-2 rounded border">Cancel</button>
|
<button on:click={saveProjectEdit} class="px-4 py-2 bg-blue-600 text-white rounded hover:bg-blue-700">Save</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@@ -1194,3 +1219,4 @@
|
|||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { supabase } from "$lib/supabaseClient";
|
import { supabase } from "$lib/supabaseClient";
|
||||||
import { goto } from "$app/navigation";
|
import { goto } from "$app/navigation";
|
||||||
import logo from "$lib/images/villa.png"; // Confirm this path and image is suitable
|
import logo from "$lib/images/logo.webp"; // Confirm this path and image is suitable
|
||||||
|
|
||||||
let email = "";
|
let email = "";
|
||||||
let password = "";
|
let password = "";
|
||||||
|
|||||||
Reference in New Issue
Block a user