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" />
|
||||
</div>
|
||||
<div>
|
||||
<h1 className="text-lg font-semibold text-neutral-900">Pelagia Portal</h1>
|
||||
<p className="text-xs text-neutral-500">Purchase Order Management</p>
|
||||
<h1 className="text-lg font-semibold text-neutral-900">PPMS</h1>
|
||||
<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>
|
||||
|
||||
|
|
|
|||
|
|
@ -140,7 +140,7 @@ export async function GET(request: NextRequest, { params }: Props) {
|
|||
|
||||
if (format === "xlsx") {
|
||||
const wb = new ExcelJS.Workbook();
|
||||
wb.creator = "Pelagia Portal";
|
||||
wb.creator = "PPMS — Pelagia Payment Management System";
|
||||
const ws = wb.addWorksheet(po.poNumber.replace(/\//g, "-"), {
|
||||
pageSetup: { paperSize: 9, orientation: "portrait", fitToPage: true, fitToWidth: 1, fitToHeight: 0 },
|
||||
});
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ export async function GET(request: NextRequest) {
|
|||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<title>PO Export — Pelagia Portal</title>
|
||||
<title>PO Export — PPMS</title>
|
||||
<style>
|
||||
body { font-family: Arial, sans-serif; font-size: 11px; margin: 20px; color: #111; }
|
||||
h1 { font-size: 16px; margin-bottom: 4px; }
|
||||
|
|
@ -77,7 +77,7 @@ export async function GET(request: NextRequest) {
|
|||
<div class="no-print">
|
||||
<button onclick="window.print()" style="padding:6px 16px;font-size:13px;cursor:pointer;">Print / Save as PDF</button>
|
||||
</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>
|
||||
<table>
|
||||
<thead>
|
||||
|
|
|
|||
|
|
@ -16,10 +16,10 @@ const jetbrainsMono = JetBrains_Mono({
|
|||
|
||||
export const metadata: Metadata = {
|
||||
title: {
|
||||
default: "Pelagia Portal",
|
||||
template: "%s | Pelagia Portal",
|
||||
default: "PPMS",
|
||||
template: "%s | PPMS",
|
||||
},
|
||||
description: "Purchase Order Management System",
|
||||
description: "PPMS — Pelagia Payment Management System",
|
||||
};
|
||||
|
||||
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">
|
||||
<Anchor className="h-4 w-4 text-white" />
|
||||
</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>
|
||||
|
||||
<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>
|
||||
</Section>
|
||||
<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>
|
||||
</EmailLayout>
|
||||
);
|
||||
|
|
|
|||
|
|
@ -29,15 +29,15 @@ export function EmailLayout({ children, previewText }: EmailLayoutProps) {
|
|||
>
|
||||
<Section style={{ borderBottom: "2px solid #2563eb", paddingBottom: "12px", marginBottom: "24px" }}>
|
||||
<Text style={{ fontSize: "20px", fontWeight: "700", color: "#1d4ed8", margin: 0 }}>
|
||||
Pelagia Portal
|
||||
PPMS
|
||||
</Text>
|
||||
</Section>
|
||||
{children}
|
||||
</Section>
|
||||
<Section style={{ padding: "16px 0" }}>
|
||||
<Text style={{ fontSize: "12px", color: "#9ca3af", textAlign: "center" }}>
|
||||
This message was sent by Pelagia Portal. You received it because you are a
|
||||
stakeholder on this purchase order.
|
||||
This message was sent by PPMS (Pelagia Payment Management System). You received it
|
||||
because you are a stakeholder on this purchase order.
|
||||
</Text>
|
||||
</Section>
|
||||
</Container>
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ export function PaymentProcessedEmail({ po }: Props) {
|
|||
)}
|
||||
</Section>
|
||||
<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.
|
||||
</Text>
|
||||
</EmailLayout>
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ export function PoSubmittedEmail({ po, submitterName }: Props) {
|
|||
<Text style={{ margin: 0, fontSize: "15px", color: "#111827" }}>{submitterName}</Text>
|
||||
</Section>
|
||||
<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>
|
||||
</EmailLayout>
|
||||
);
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ export function VendorIdNeededEmail({ po }: Props) {
|
|||
<Text style={{ margin: 0 }}>{po.title}</Text>
|
||||
</Section>
|
||||
<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.
|
||||
</Text>
|
||||
</EmailLayout>
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import type { PurchaseOrder, User } from "@prisma/client";
|
|||
|
||||
const isDev = process.env.NODE_ENV === "development";
|
||||
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 =
|
||||
| "PO_SUBMITTED"
|
||||
|
|
@ -173,7 +173,7 @@ function buildHtml(
|
|||
<html>
|
||||
<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;">
|
||||
<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>
|
||||
<p style="margin:0 0 16px;">Hi ${recipient.name},</p>
|
||||
<p style="margin:0 0 24px;">${buildEmailBody(event, po, note)}</p>
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue