Admin Panel
tests / ci (push) Canceled after 0s

This commit is contained in:
2026-09-29 14:57:37 +07:00
parent 04fbddba13
commit 8c6dad2a31
94 changed files with 4864 additions and 1151 deletions
+10 -7
View File
@@ -1,4 +1,3 @@
import { clientCount, projects } from '@/data/projects';
import type { ProjectSector } from '@/data/projects';
import type { Localized } from '@/hooks/use-locale';
@@ -25,10 +24,11 @@ const id = {
'Berdiri tahun 1985 sebagai perusahaan trading terkemuka di sektor Oil & Gas dan Industri Baja (Steel), lalu sejak 2002 bertransformasi menjadi konsultan IT.',
},
{
value: `${clientCount}`,
value: '{clients}',
unit: 'Klien',
label: 'Klien • Portofolio',
description: `${projects.length} proyek sistem informasi untuk instansi pemerintahan, BUMN, dan perusahaan swasta.`,
description:
'{projects} proyek sistem informasi untuk instansi pemerintahan, BUMN, dan perusahaan swasta.',
},
],
},
@@ -54,7 +54,8 @@ const id = {
year: '2002',
icon: 'precision_manufacturing',
title: 'Evolusi Teknologi Informasi (TI)',
description: `Pada tahun 2002 perusahaan bertransformasi menjadi konsultan Sistem Informasi dan Teknologi Informasi, dengan fokus pada perancangan, pembangunan, dan implementasi aplikasi bisnis. Sejak itu PAJ telah menangani ${projects.length} proyek untuk ${clientCount} klien pemerintahan, BUMN, dan swasta — mulai dari sistem pemantauan harga Kementerian Perdagangan hingga layanan perizinan investasi BKPM.`,
description:
'Pada tahun 2002 perusahaan bertransformasi menjadi konsultan Sistem Informasi dan Teknologi Informasi, dengan fokus pada perancangan, pembangunan, dan implementasi aplikasi bisnis. Sejak itu PAJ telah menangani {projects} proyek untuk {clients} klien pemerintahan, BUMN, dan swasta — mulai dari sistem pemantauan harga Kementerian Perdagangan hingga layanan perizinan investasi BKPM.',
note: {
icon: 'data_object',
label: 'Automated Business Applications',
@@ -215,10 +216,11 @@ const en: typeof id = {
'Founded in 1985 as a leading trading company in the Oil & Gas and Steel industries, and an IT consultant since its transformation in 2002.',
},
{
value: `${clientCount}`,
value: '{clients}',
unit: 'Clients',
label: 'Clients • Portfolio',
description: `${projects.length} information systems projects for government, state-owned, and private organizations.`,
description:
'{projects} information systems projects for government, state-owned, and private organizations.',
},
],
},
@@ -244,7 +246,8 @@ const en: typeof id = {
year: '2002',
icon: 'precision_manufacturing',
title: 'Evolution into Information Technology',
description: `In 2002, the company transformed into an Information Systems and Information Technology consultant, focused on designing, building, and implementing business applications. Since then, PAJ has delivered ${projects.length} projects for ${clientCount} government, state-owned, and private clients — from the Ministry of Trade’s price monitoring systems to BKPM’s investment licensing services.`,
description:
'In 2002, the company transformed into an Information Systems and Information Technology consultant, focused on designing, building, and implementing business applications. Since then, PAJ has delivered {projects} projects for {clients} government, state-owned, and private clients — from the Ministry of Trade’s price monitoring systems to BKPM’s investment licensing services.',
note: {
icon: 'data_object',
label: 'Automated Business Applications',
+8 -19
View File
@@ -1,5 +1,4 @@
import type { ProjectProgram } from '@/data/projects';
import { clientCount, projects } from '@/data/projects';
import type { Localized } from '@/hooks/use-locale';
const id = {
@@ -11,8 +10,8 @@ const id = {
'“Kami mengucapkan terima kasih atas kepercayaan dan dukungan Anda sebagai klien kami. Sebagai tim konsultan IT di PT Probindo Artika Jaya (PAJ), kami berkomitmen untuk menyediakan solusi teknologi informasi yang berkualitas tinggi, tailor-fit, dan memberikan nilai tambah nyata bagi kesinambungan bisnis Anda.”',
stats: [
{
value: `${clientCount} Klien`,
caption: `${projects.length} Proyek Pemerintahan, BUMN & Swasta`,
value: '{clients} Klien',
caption: '{projects} Proyek Pemerintahan, BUMN & Swasta',
},
{ value: '20+ Thn', caption: 'Konsultan IT Sejak 2002' },
{ value: '99.8%', caption: 'Tingkat Retensi & Kepuasan' },
@@ -22,7 +21,8 @@ const id = {
heritage: {
eyebrow: 'Konsultan IT Sejak 2002',
title: 'Fondasi Sistem Informasi untuk Pemerintahan, BUMN & Swasta',
description: `Sejak bertransformasi menjadi konsultan sistem informasi pada 2002, PAJ telah menangani ${projects.length} proyek untuk ${clientCount} klien — mulai dari sistem pemantauan harga dan layanan perizinan investasi di kementerian, hingga implementasi ERP dan sistem akuntansi di perusahaan swasta. Setiap solusi dirancang mengikuti alur kerja riil klien, bukan sekadar perangkat lunak generik.`,
description:
'Sejak bertransformasi menjadi konsultan sistem informasi pada 2002, PAJ telah menangani {projects} proyek untuk {clients} klien — mulai dari sistem pemantauan harga dan layanan perizinan investasi di kementerian, hingga implementasi ERP dan sistem akuntansi di perusahaan swasta. Setiap solusi dirancang mengikuti alur kerja riil klien, bukan sekadar perangkat lunak generik.',
scsrTitle: 'Pendampingan Berkelanjutan',
scsrText:
'Banyak sistem kami dikembangkan, dipelihara, dan diperbarui selama bertahun-tahun bersama klien yang sama — seperti sistem pemantauan harga bahan pokok (SP2KP) yang kami tangani sejak 2013.',
@@ -136,12 +136,6 @@ const id = {
description:
'Apresiasi nyata atas komitmen tanpa henti dari tim konsultan teknis PT Probindo Artika Jaya.',
rating: 'Rating 5 dari 5',
items: [] as {
initials: string;
quote: string;
role: string;
organization: string;
}[],
},
reliability: {
eyebrow: 'Reliability Index & Audit Trail',
@@ -181,8 +175,8 @@ const en: typeof id = {
'“Thank you for your trust and support as our client. As the IT consulting team at PT Probindo Artika Jaya (PAJ), we are committed to delivering high-quality, tailor-fit information technology solutions that add real value to the continuity of your business.”',
stats: [
{
value: `${clientCount} Clients`,
caption: `${projects.length} Government, SOE & Private Projects`,
value: '{clients} Clients',
caption: '{projects} Government, SOE & Private Projects',
},
{
value: '20+ Yrs',
@@ -195,7 +189,8 @@ const en: typeof id = {
heritage: {
eyebrow: 'IT Consultant Since 2002',
title: 'Information Systems Foundations for Government, SOEs & Private Companies',
description: `Since becoming an information systems consultant in 2002, PAJ has delivered ${projects.length} projects for ${clientCount} clients — from price monitoring and investment licensing systems for ministries to ERP and accounting systems for private companies. Every solution follows the client’s real workflow, not generic software.`,
description:
'Since becoming an information systems consultant in 2002, PAJ has delivered {projects} projects for {clients} clients — from price monitoring and investment licensing systems for ministries to ERP and accounting systems for private companies. Every solution follows the client’s real workflow, not generic software.',
scsrTitle: 'Long-Term Support',
scsrText:
'Many of our systems have been developed, maintained, and upgraded for years with the same clients — such as the staple goods price monitoring system (SP2KP) we have worked on since 2013.',
@@ -303,12 +298,6 @@ const en: typeof id = {
description:
'Genuine appreciation for the unwavering commitment of PT Probindo Artika Jaya’s technical consultants.',
rating: 'Rated 5 out of 5',
items: [] as {
initials: string;
quote: string;
role: string;
organization: string;
}[],
},
reliability: {
eyebrow: 'Reliability Index & Audit Trail',
+40 -8
View File
@@ -40,6 +40,7 @@ const id = {
clients: 'Daftar Klien Industri',
audit: 'Permintaan Audit Sistem',
offices: 'Lokasi Kantor PAJ',
admin: 'Admin Panel',
},
rights: 'Hak Cipta Dilindungi Undang-Undang.',
location: 'Jakarta Selatan, Indonesia',
@@ -142,6 +143,19 @@ const id = {
badge: 'KONSULTASI TEKNIS & AUDIT INFRASTRUKTUR',
tel: 'Telp',
},
login: {
pageTitle: 'Masuk Admin Panel',
title: 'Masuk ke Admin Panel',
description: 'Masukkan email dan password akun admin Anda.',
email: 'Email',
emailPlaceholder: 'nama@probindo.com',
password: 'Password',
passwordPlaceholder: 'Password',
forgot: 'Lupa password?',
remember: 'Ingat saya',
submit: 'Masuk',
back: 'Kembali ke website',
},
};
const en: typeof id = {
@@ -172,6 +186,7 @@ const en: typeof id = {
clients: 'Industry Clients',
audit: 'Request a System Audit',
offices: 'PAJ Office Locations',
admin: 'Admin Panel',
},
rights: 'All rights reserved.',
location: 'South Jakarta, Indonesia',
@@ -274,15 +289,32 @@ const en: typeof id = {
badge: 'TECHNICAL CONSULTATION & INFRASTRUCTURE AUDIT',
tel: 'Tel',
},
login: {
pageTitle: 'Admin Panel Login',
title: 'Log in to the Admin Panel',
description: 'Enter the email and password of your admin account.',
email: 'Email',
emailPlaceholder: 'name@probindo.com',
password: 'Password',
passwordPlaceholder: 'Password',
forgot: 'Forgot password?',
remember: 'Remember me',
submit: 'Log in',
back: 'Back to website',
},
};
export const common: Localized<typeof id> = { id, en };
/** Options for the "service needed" select in every consultation form. */
export const serviceOptions = (content: typeof id) => [
...content.services.map((service, index) => ({
value: `service-${index + 1}`,
label: `${index + 1}. ${service.expansion ? `${service.title} (${service.expansion})` : service.title}`,
})),
...content.extraServiceOptions,
];
/**
* Options for the "service needed" select in every consultation form. The
* submitted value is the label itself, so the admin inbox reads naturally.
*/
export const serviceOptions = (content: typeof id) =>
[
...content.services.map(
(service, index) =>
`${index + 1}. ${service.expansion ? `${service.title} (${service.expansion})` : service.title}`,
),
...content.extraServiceOptions.map((option) => option.label),
].map((label) => ({ value: label, label }));
+10 -9
View File
@@ -1,4 +1,3 @@
import { clientCount, projects } from '@/data/projects';
import type { Localized } from '@/hooks/use-locale';
const id = {
@@ -11,7 +10,7 @@ const id = {
primaryAction: 'Jadwalkan Konsultasi',
secondaryAction: 'Lihat Layanan Kami',
trustBefore: 'Dipercaya oleh',
trustLink: `${clientCount} klien`,
trustLink: '{clients} klien',
trustAfter: 'dari instansi pemerintahan, BUMN, dan perusahaan swasta.',
},
console: {
@@ -59,9 +58,10 @@ const id = {
},
{
label: 'Klien • Portofolio',
value: `${clientCount}`,
value: '{clients}',
unit: 'Klien',
description: `${projects.length} proyek sistem informasi untuk instansi pemerintahan, BUMN, dan perusahaan swasta.`,
description:
'{projects} proyek sistem informasi untuk instansi pemerintahan, BUMN, dan perusahaan swasta.',
},
{
label: 'Layanan • Keandalan',
@@ -82,7 +82,7 @@ const id = {
eyebrow: 'Klien & Rekam Jejak Proyek',
description:
'Dipercaya instansi pemerintahan, BUMN, dan perusahaan swasta untuk membangun dan memelihara sistem informasinya.',
since: `${projects.length} PROYEK • ${clientCount} KLIEN • SEJAK 2002`,
since: '{projects} PROYEK • {clients} KLIEN • SEJAK 2002',
more: 'Lihat semua klien & proyek',
},
profile: {
@@ -147,7 +147,7 @@ const en: typeof id = {
primaryAction: 'Schedule a Consultation',
secondaryAction: 'Explore Our Services',
trustBefore: 'Trusted by',
trustLink: `${clientCount} clients`,
trustLink: '{clients} clients',
trustAfter:
'across government, state-owned, and private organizations.',
},
@@ -196,9 +196,10 @@ const en: typeof id = {
},
{
label: 'Clients • Portfolio',
value: `${clientCount}`,
value: '{clients}',
unit: 'Clients',
description: `${projects.length} information systems projects for government, state-owned, and private organizations.`,
description:
'{projects} information systems projects for government, state-owned, and private organizations.',
},
{
label: 'Services • Reliability',
@@ -219,7 +220,7 @@ const en: typeof id = {
eyebrow: 'Clients & Project Track Record',
description:
'Trusted by government institutions, state-owned enterprises, and private companies to build and maintain their information systems.',
since: `${projects.length} PROJECTS • ${clientCount} CLIENTS • SINCE 2002`,
since: '{projects} PROJECTS • {clients} CLIENTS • SINCE 2002',
more: 'See all clients & projects',
},
profile: {