rebrand: Pelagia Portal → PPMS (Pelagia Payment Management System)
Rename the application to PPMS across all user-facing surfaces:
- Browser title / metadata
- Login page (with tagline: "PMS — it runs the ship.")
- Sidebar logo text
- Email header, footer, and body copy in all transactional emails
- PDF/XLSX workbook creator field
- Reports export page title and heading
- Notifier FROM display name and default email domain
Legal company name ("Pelagia Marine Services Pvt. Ltd.") on PO documents
is unchanged — that is the issuing entity, not the application brand.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
8322f33880
commit
a5fb7d088c
11 changed files with 19 additions and 18 deletions
|
|
@ -43,8 +43,9 @@ export default function LoginPage() {
|
||||||
<Anchor className="h-5 w-5 text-white" />
|
<Anchor className="h-5 w-5 text-white" />
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<h1 className="text-lg font-semibold text-neutral-900">Pelagia Portal</h1>
|
<h1 className="text-lg font-semibold text-neutral-900">PPMS</h1>
|
||||||
<p className="text-xs text-neutral-500">Purchase Order Management</p>
|
<p className="text-xs text-neutral-500">Pelagia Payment Management System</p>
|
||||||
|
<p className="text-xs text-neutral-400 italic">PMS — it runs the ship.</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -140,7 +140,7 @@ export async function GET(request: NextRequest, { params }: Props) {
|
||||||
|
|
||||||
if (format === "xlsx") {
|
if (format === "xlsx") {
|
||||||
const wb = new ExcelJS.Workbook();
|
const wb = new ExcelJS.Workbook();
|
||||||
wb.creator = "Pelagia Portal";
|
wb.creator = "PPMS — Pelagia Payment Management System";
|
||||||
const ws = wb.addWorksheet(po.poNumber.replace(/\//g, "-"), {
|
const ws = wb.addWorksheet(po.poNumber.replace(/\//g, "-"), {
|
||||||
pageSetup: { paperSize: 9, orientation: "portrait", fitToPage: true, fitToWidth: 1, fitToHeight: 0 },
|
pageSetup: { paperSize: 9, orientation: "portrait", fitToPage: true, fitToWidth: 1, fitToHeight: 0 },
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -60,7 +60,7 @@ export async function GET(request: NextRequest) {
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
<title>PO Export — Pelagia Portal</title>
|
<title>PO Export — PPMS</title>
|
||||||
<style>
|
<style>
|
||||||
body { font-family: Arial, sans-serif; font-size: 11px; margin: 20px; color: #111; }
|
body { font-family: Arial, sans-serif; font-size: 11px; margin: 20px; color: #111; }
|
||||||
h1 { font-size: 16px; margin-bottom: 4px; }
|
h1 { font-size: 16px; margin-bottom: 4px; }
|
||||||
|
|
@ -77,7 +77,7 @@ export async function GET(request: NextRequest) {
|
||||||
<div class="no-print">
|
<div class="no-print">
|
||||||
<button onclick="window.print()" style="padding:6px 16px;font-size:13px;cursor:pointer;">Print / Save as PDF</button>
|
<button onclick="window.print()" style="padding:6px 16px;font-size:13px;cursor:pointer;">Print / Save as PDF</button>
|
||||||
</div>
|
</div>
|
||||||
<h1>Purchase Order Report — Pelagia Portal</h1>
|
<h1>Purchase Order Report — PPMS</h1>
|
||||||
<p>Generated: ${new Date().toLocaleString("en-IN")} · ${orders.length} orders</p>
|
<p>Generated: ${new Date().toLocaleString("en-IN")} · ${orders.length} orders</p>
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
|
|
|
||||||
|
|
@ -16,10 +16,10 @@ const jetbrainsMono = JetBrains_Mono({
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: {
|
title: {
|
||||||
default: "Pelagia Portal",
|
default: "PPMS",
|
||||||
template: "%s | Pelagia Portal",
|
template: "%s | PPMS",
|
||||||
},
|
},
|
||||||
description: "Purchase Order Management System",
|
description: "PPMS — Pelagia Payment Management System",
|
||||||
};
|
};
|
||||||
|
|
||||||
export default function RootLayout({
|
export default function RootLayout({
|
||||||
|
|
|
||||||
|
|
@ -79,7 +79,7 @@ export function Sidebar({ userRole }: { userRole: Role }) {
|
||||||
<div className="flex h-8 w-8 items-center justify-center rounded-lg bg-primary-600">
|
<div className="flex h-8 w-8 items-center justify-center rounded-lg bg-primary-600">
|
||||||
<Anchor className="h-4 w-4 text-white" />
|
<Anchor className="h-4 w-4 text-white" />
|
||||||
</div>
|
</div>
|
||||||
<span className="text-sm font-semibold text-neutral-900">Pelagia Portal</span>
|
<span className="text-sm font-semibold text-neutral-900">PPMS</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<nav className="flex-1 overflow-y-auto px-3 py-4 space-y-0.5">
|
<nav className="flex-1 overflow-y-auto px-3 py-4 space-y-0.5">
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ export function EditsRequestedEmail({ po, note }: Props) {
|
||||||
<Text style={{ margin: 0, fontStyle: "italic" }}>{note}</Text>
|
<Text style={{ margin: 0, fontStyle: "italic" }}>{note}</Text>
|
||||||
</Section>
|
</Section>
|
||||||
<Text style={{ fontSize: "14px", color: "#374151" }}>
|
<Text style={{ fontSize: "14px", color: "#374151" }}>
|
||||||
Please log in to Pelagia Portal, make the requested edits, and resubmit the order.
|
Please log in to PPMS, make the requested edits, and resubmit the order.
|
||||||
</Text>
|
</Text>
|
||||||
</EmailLayout>
|
</EmailLayout>
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -29,15 +29,15 @@ export function EmailLayout({ children, previewText }: EmailLayoutProps) {
|
||||||
>
|
>
|
||||||
<Section style={{ borderBottom: "2px solid #2563eb", paddingBottom: "12px", marginBottom: "24px" }}>
|
<Section style={{ borderBottom: "2px solid #2563eb", paddingBottom: "12px", marginBottom: "24px" }}>
|
||||||
<Text style={{ fontSize: "20px", fontWeight: "700", color: "#1d4ed8", margin: 0 }}>
|
<Text style={{ fontSize: "20px", fontWeight: "700", color: "#1d4ed8", margin: 0 }}>
|
||||||
Pelagia Portal
|
PPMS
|
||||||
</Text>
|
</Text>
|
||||||
</Section>
|
</Section>
|
||||||
{children}
|
{children}
|
||||||
</Section>
|
</Section>
|
||||||
<Section style={{ padding: "16px 0" }}>
|
<Section style={{ padding: "16px 0" }}>
|
||||||
<Text style={{ fontSize: "12px", color: "#9ca3af", textAlign: "center" }}>
|
<Text style={{ fontSize: "12px", color: "#9ca3af", textAlign: "center" }}>
|
||||||
This message was sent by Pelagia Portal. You received it because you are a
|
This message was sent by PPMS (Pelagia Payment Management System). You received it
|
||||||
stakeholder on this purchase order.
|
because you are a stakeholder on this purchase order.
|
||||||
</Text>
|
</Text>
|
||||||
</Section>
|
</Section>
|
||||||
</Container>
|
</Container>
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ export function PaymentProcessedEmail({ po }: Props) {
|
||||||
)}
|
)}
|
||||||
</Section>
|
</Section>
|
||||||
<Text style={{ fontSize: "14px", color: "#374151" }}>
|
<Text style={{ fontSize: "14px", color: "#374151" }}>
|
||||||
Please confirm receipt in Pelagia Portal once you have received the goods or services.
|
Please confirm receipt in PPMS once you have received the goods or services.
|
||||||
This will close the purchase order.
|
This will close the purchase order.
|
||||||
</Text>
|
</Text>
|
||||||
</EmailLayout>
|
</EmailLayout>
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ export function PoSubmittedEmail({ po, submitterName }: Props) {
|
||||||
<Text style={{ margin: 0, fontSize: "15px", color: "#111827" }}>{submitterName}</Text>
|
<Text style={{ margin: 0, fontSize: "15px", color: "#111827" }}>{submitterName}</Text>
|
||||||
</Section>
|
</Section>
|
||||||
<Text style={{ fontSize: "14px", color: "#374151" }}>
|
<Text style={{ fontSize: "14px", color: "#374151" }}>
|
||||||
Please log in to Pelagia Portal to review and take action on this order.
|
Please log in to PPMS to review and take action on this order.
|
||||||
</Text>
|
</Text>
|
||||||
</EmailLayout>
|
</EmailLayout>
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ export function VendorIdNeededEmail({ po }: Props) {
|
||||||
<Text style={{ margin: 0 }}>{po.title}</Text>
|
<Text style={{ margin: 0 }}>{po.title}</Text>
|
||||||
</Section>
|
</Section>
|
||||||
<Text style={{ fontSize: "14px", color: "#374151" }}>
|
<Text style={{ fontSize: "14px", color: "#374151" }}>
|
||||||
Please log in to Pelagia Portal, update the vendor details on this order, and the manager
|
Please log in to PPMS, update the vendor details on this order, and the manager
|
||||||
will be notified to continue the review.
|
will be notified to continue the review.
|
||||||
</Text>
|
</Text>
|
||||||
</EmailLayout>
|
</EmailLayout>
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ import type { PurchaseOrder, User } from "@prisma/client";
|
||||||
|
|
||||||
const isDev = process.env.NODE_ENV === "development";
|
const isDev = process.env.NODE_ENV === "development";
|
||||||
const resend = isDev ? null : new Resend(process.env.RESEND_API_KEY);
|
const resend = isDev ? null : new Resend(process.env.RESEND_API_KEY);
|
||||||
const FROM = `${process.env.EMAIL_FROM_NAME ?? "Pelagia Portal"} <${process.env.EMAIL_FROM ?? "noreply@pelagiaportal.com"}>`;
|
const FROM = `${process.env.EMAIL_FROM_NAME ?? "PPMS"} <${process.env.EMAIL_FROM ?? "noreply@ppms.pelagiamarine.com"}>`;
|
||||||
|
|
||||||
export type NotificationEvent =
|
export type NotificationEvent =
|
||||||
| "PO_SUBMITTED"
|
| "PO_SUBMITTED"
|
||||||
|
|
@ -173,7 +173,7 @@ function buildHtml(
|
||||||
<html>
|
<html>
|
||||||
<body style="font-family:Inter,sans-serif;max-width:560px;margin:0 auto;padding:32px 24px;color:#111827;">
|
<body style="font-family:Inter,sans-serif;max-width:560px;margin:0 auto;padding:32px 24px;color:#111827;">
|
||||||
<div style="border-bottom:2px solid #2563eb;padding-bottom:12px;margin-bottom:24px;">
|
<div style="border-bottom:2px solid #2563eb;padding-bottom:12px;margin-bottom:24px;">
|
||||||
<span style="font-size:20px;font-weight:700;color:#1d4ed8;">Pelagia Portal</span>
|
<span style="font-size:20px;font-weight:700;color:#1d4ed8;">PPMS</span>
|
||||||
</div>
|
</div>
|
||||||
<p style="margin:0 0 16px;">Hi ${recipient.name},</p>
|
<p style="margin:0 0 16px;">Hi ${recipient.name},</p>
|
||||||
<p style="margin:0 0 24px;">${buildEmailBody(event, po, note)}</p>
|
<p style="margin:0 0 24px;">${buildEmailBody(event, po, note)}</p>
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue