i18n (Phase C batch 1): billing/tickets/onu-provision (filter, opsi, hint) ID/EN

This commit is contained in:
oxpoe committed 2026-10-09 07:01:55 +07:00
1 parent 7473997205
commit 8b3fc70c36
5 files changed
+55 -19

No files matched your search

+20 -2
View File
@@ -1539,7 +1539,13 @@
"btn_mass_delete": "Mass Delete", "btn_mass_delete": "Mass Delete",
"btn_del_bill": "Delete Bill", "btn_del_bill": "Delete Bill",
"btn_invoice_pdf": "Invoice PDF", "btn_invoice_pdf": "Invoice PDF",
"period_label": "• Period:" "period_label": "• Period:",
"all_packages": "All Packages",
"all_areas": "All Areas",
"all_routers": "All Routers",
"all_collectors": "All Collectors",
"opt_percent": "Percent (%)",
"opt_amount": "Amount (Rp)"
}, },
"common": { "common": {
"keep_empty": "Leave empty to keep unchanged", "keep_empty": "Leave empty to keep unchanged",
@@ -1560,6 +1566,18 @@
"end_date": "End Date", "end_date": "End Date",
"gross": "Income (Gross)", "gross": "Income (Gross)",
"net": "Net Profit" "net": "Net Profit"
},
"tk": {
"all_techs": "All Technicians",
"general_task": "-- General / Non-Customer Task (Maintenance) --",
"unassigned": "-- Unassigned (Open) --",
"st_open": "Not Handled (Open)",
"st_progress": "In Progress"
},
"onu": {
"select_vendor": "Select Vendor",
"hint_rescan": "Click \"Rescan\" to find unconfigured ONUs",
"hint_reload": "Click \"Reload / Scan\" to monitor configured ONU status via SNMP"
} }
}, },
"tech": { "tech": {
@@ -2798,4 +2816,4 @@
"password": "Password", "password": "Password",
"tech_username": "Technician Username" "tech_username": "Technician Username"
} }
} }
+20 -2
View File
@@ -1540,7 +1540,13 @@
"btn_mass_delete": "Hapus Massal", "btn_mass_delete": "Hapus Massal",
"btn_del_bill": "Hapus Tagihan", "btn_del_bill": "Hapus Tagihan",
"btn_invoice_pdf": "Invoice PDF", "btn_invoice_pdf": "Invoice PDF",
"period_label": "• Periode:" "period_label": "• Periode:",
"all_packages": "Semua Paket",
"all_areas": "Semua Area",
"all_routers": "Semua Router",
"all_collectors": "Semua Kolektor",
"opt_percent": "Persen (%)",
"opt_amount": "Nominal (Rp)"
}, },
"common": { "common": {
"keep_empty": "Biarkan kosong jika tidak diganti", "keep_empty": "Biarkan kosong jika tidak diganti",
@@ -1561,6 +1567,18 @@
"end_date": "Tanggal Akhir", "end_date": "Tanggal Akhir",
"gross": "Pemasukan (Bruto)", "gross": "Pemasukan (Bruto)",
"net": "Laba Bersih" "net": "Laba Bersih"
},
"tk": {
"all_techs": "Semua Teknisi",
"general_task": "-- Tugas Umum / Non-Pelanggan (Maintenance) --",
"unassigned": "-- Belum Ditugaskan (Bebas) --",
"st_open": "Belum Ditangani (Open)",
"st_progress": "Sedang Dikerjakan (In Progress)"
},
"onu": {
"select_vendor": "Pilih Vendor",
"hint_rescan": "Klik \"Scan Ulang\" untuk mencari ONU yang belum terkonfigurasi",
"hint_reload": "Klik \"Muat Ulang / Scan\" untuk memantau status ONU terkonfigurasi via SNMP"
} }
}, },
"tech": { "tech": {
@@ -2799,4 +2817,4 @@
"password": "Password", "password": "Password",
"tech_username": "Username Teknisi" "tech_username": "Username Teknisi"
} }
} }
+6 -6
View File
@@ -65,19 +65,19 @@
<option value="void" <%= filterStatus==='void'?'selected':'' %>><%= t('admin.bill.st_void','Hangus') %></option> <option value="void" <%= filterStatus==='void'?'selected':'' %>><%= t('admin.bill.st_void','Hangus') %></option>
</select> </select>
<select class="fs" name="package_id" style="width:170px"> <select class="fs" name="package_id" style="width:170px">
<option value="">Semua Paket</option> <option value=""><%= t('admin.bill.all_packages','Semua Paket') %></option>
<% (typeof packages !== 'undefined' ? packages : []).forEach(p => { %><option value="<%= p.id %>" <%= String(filterPackage)===String(p.id)?'selected':'' %>><%= p.name %></option><% }) %> <% (typeof packages !== 'undefined' ? packages : []).forEach(p => { %><option value="<%= p.id %>" <%= String(filterPackage)===String(p.id)?'selected':'' %>><%= p.name %></option><% }) %>
</select> </select>
<select class="fs" name="area" style="width:150px"> <select class="fs" name="area" style="width:150px">
<option value="">Semua Area</option> <option value=""><%= t('admin.bill.all_areas','Semua Area') %></option>
<% (typeof areas !== 'undefined' ? areas : []).forEach(a => { %><option value="<%= a %>" <%= filterArea===a?'selected':'' %>><%= a %></option><% }) %> <% (typeof areas !== 'undefined' ? areas : []).forEach(a => { %><option value="<%= a %>" <%= filterArea===a?'selected':'' %>><%= a %></option><% }) %>
</select> </select>
<select class="fs" name="router_id" style="width:150px"> <select class="fs" name="router_id" style="width:150px">
<option value="">Semua Router</option> <option value=""><%= t('admin.bill.all_routers','Semua Router') %></option>
<% (typeof routers !== 'undefined' ? routers : []).forEach(r => { %><option value="<%= r.id %>" <%= String(filterRouter)===String(r.id)?'selected':'' %>><%= r.name %></option><% }) %> <% (typeof routers !== 'undefined' ? routers : []).forEach(r => { %><option value="<%= r.id %>" <%= String(filterRouter)===String(r.id)?'selected':'' %>><%= r.name %></option><% }) %>
</select> </select>
<select class="fs" name="collector_id" style="width:160px"> <select class="fs" name="collector_id" style="width:160px">
<option value="">Semua Kolektor</option> <option value=""><%= t('admin.bill.all_collectors','Semua Kolektor') %></option>
<% (typeof collectors !== 'undefined' ? collectors : []).forEach(k => { %><option value="<%= k.id %>" <%= String(filterCollector)===String(k.id)?'selected':'' %>><%= k.name %></option><% }) %> <% (typeof collectors !== 'undefined' ? collectors : []).forEach(k => { %><option value="<%= k.id %>" <%= String(filterCollector)===String(k.id)?'selected':'' %>><%= k.name %></option><% }) %>
</select> </select>
<button class="btn btn-g btn-sm" type="submit"><i class="bi bi-funnel"></i> <%= t('common.filter', 'Filter') %></button> <button class="btn btn-g btn-sm" type="submit"><i class="bi bi-funnel"></i> <%= t('common.filter', 'Filter') %></button>
@@ -293,8 +293,8 @@
<div class="fg"> <div class="fg">
<label class="fl">Tipe Diskon</label> <label class="fl">Tipe Diskon</label>
<select class="fs" name="discount_type" id="dmType"> <select class="fs" name="discount_type" id="dmType">
<option value="percent">Persen (%)</option> <option value="percent"><%= t('admin.bill.opt_percent','Persen (%)') %></option>
<option value="amount">Nominal (Rp)</option> <option value="amount"><%= t('admin.bill.opt_amount','Nominal (Rp)') %></option>
</select> </select>
</div> </div>
<div class="fg"> <div class="fg">
+3 -3
View File
@@ -146,7 +146,7 @@
<div class="fg"> <div class="fg">
<label class="fl">Vendor OLT</label> <label class="fl">Vendor OLT</label>
<select class="fs" name="vendor" id="oltVendor" required onchange="toggleVendorFields()"> <select class="fs" name="vendor" id="oltVendor" required onchange="toggleVendorFields()">
<option value="">Pilih Vendor</option> <option value=""><%= t('admin.onu.select_vendor','Pilih Vendor') %></option>
<option value="ZTE" <%= oltConfig?.vendor === 'ZTE' ? 'selected' : '' %>>ZTE C300/C320</option> <option value="ZTE" <%= oltConfig?.vendor === 'ZTE' ? 'selected' : '' %>>ZTE C300/C320</option>
<option value="Huawei" <%= oltConfig?.vendor === 'Huawei' ? 'selected' : '' %>>Huawei MA5800</option> <option value="Huawei" <%= oltConfig?.vendor === 'Huawei' ? 'selected' : '' %>>Huawei MA5800</option>
<option value="Fiberhome" <%= oltConfig?.vendor === 'Fiberhome' ? 'selected' : '' %>>Fiberhome AN5516</option> <option value="Fiberhome" <%= oltConfig?.vendor === 'Fiberhome' ? 'selected' : '' %>>Fiberhome AN5516</option>
@@ -236,7 +236,7 @@
<div id="unconfiguredList" style="margin-top:20px"> <div id="unconfiguredList" style="margin-top:20px">
<div class="hint" style="text-align:center;padding:40px"> <div class="hint" style="text-align:center;padding:40px">
<i class="bi bi-info-circle" style="font-size:32px;opacity:0.5"></i> <i class="bi bi-info-circle" style="font-size:32px;opacity:0.5"></i>
<p>Klik "Scan Ulang" untuk mencari ONU yang belum terkonfigurasi</p> <p><%= t('admin.onu.hint_rescan','Klik "Scan Ulang" untuk mencari ONU yang belum terkonfigurasi') %></p>
</div> </div>
</div> </div>
</div> </div>
@@ -256,7 +256,7 @@
<div id="configuredList"> <div id="configuredList">
<div class="hint" style="text-align:center;padding:40px"> <div class="hint" style="text-align:center;padding:40px">
<i class="bi bi-info-circle" style="font-size:32px;opacity:0.5"></i> <i class="bi bi-info-circle" style="font-size:32px;opacity:0.5"></i>
<p>Klik "Muat Ulang / Scan" untuk memantau status ONU terkonfigurasi via SNMP</p> <p><%= t('admin.onu.hint_reload','Klik "Muat Ulang / Scan" untuk memantau status ONU terkonfigurasi via SNMP') %></p>
</div> </div>
</div> </div>
</div> </div>
+6 -6
View File
@@ -64,7 +64,7 @@
<input class="fc" name="search" placeholder="Cari pelanggan / subjek / pesan..." value="<%= (typeof filterSearch!=='undefined'?filterSearch:'') %>"> <input class="fc" name="search" placeholder="Cari pelanggan / subjek / pesan..." value="<%= (typeof filterSearch!=='undefined'?filterSearch:'') %>">
</div> </div>
<select class="fs" name="tech_id" style="width:180px" onchange="this.form.submit()"> <select class="fs" name="tech_id" style="width:180px" onchange="this.form.submit()">
<option value="">Semua Teknisi</option> <option value=""><%= t('admin.tk.all_techs','Semua Teknisi') %></option>
<% (typeof technicians!=='undefined'?technicians:[]).forEach(t => { %><option value="<%= t.id %>" <%= (typeof filterTech!=='undefined' && String(filterTech)===String(t.id))?'selected':'' %>><%= t.name %></option><% }) %> <% (typeof technicians!=='undefined'?technicians:[]).forEach(t => { %><option value="<%= t.id %>" <%= (typeof filterTech!=='undefined' && String(filterTech)===String(t.id))?'selected':'' %>><%= t.name %></option><% }) %>
</select> </select>
<select class="fs" name="status" style="width:160px" onchange="this.form.submit()"> <select class="fs" name="status" style="width:160px" onchange="this.form.submit()">
@@ -160,7 +160,7 @@
<div class="fg"> <div class="fg">
<label class="fl">Pilih Pelanggan (Opsional)</label> <label class="fl">Pilih Pelanggan (Opsional)</label>
<select class="fs" name="customer_id" id="createCustomerId"> <select class="fs" name="customer_id" id="createCustomerId">
<option value="0">-- Tugas Umum / Non-Pelanggan (Maintenance) --</option> <option value="0"><%= t('admin.tk.general_task','-- Tugas Umum / Non-Pelanggan (Maintenance) --') %></option>
<% if (typeof customers !== 'undefined' && customers) { %> <% if (typeof customers !== 'undefined' && customers) { %>
<% customers.forEach(c => { %> <% customers.forEach(c => { %>
<option value="<%= c.id %>"><%= c.name %> (<%= c.phone || '-' %>) - <%= c.address || '' %></option> <option value="<%= c.id %>"><%= c.name %> (<%= c.phone || '-' %>) - <%= c.address || '' %></option>
@@ -179,7 +179,7 @@
<div class="fg"> <div class="fg">
<label class="fl">Tugaskan ke Teknisi (Opsional)</label> <label class="fl">Tugaskan ke Teknisi (Opsional)</label>
<select class="fs" name="technician_id"> <select class="fs" name="technician_id">
<option value="">-- Belum Ditugaskan (Bebas) --</option> <option value=""><%= t('admin.tk.unassigned','-- Belum Ditugaskan (Bebas) --') %></option>
<% if (typeof technicians !== 'undefined' && technicians) { %> <% if (typeof technicians !== 'undefined' && technicians) { %>
<% technicians.forEach(t => { %> <% technicians.forEach(t => { %>
<option value="<%= t.id %>"><%= t.name %> (<%= t.phone || '-' %>)</option> <option value="<%= t.id %>"><%= t.name %> (<%= t.phone || '-' %>)</option>
@@ -190,8 +190,8 @@
<div class="fg"> <div class="fg">
<label class="fl">Status Awal</label> <label class="fl">Status Awal</label>
<select class="fs" name="status"> <select class="fs" name="status">
<option value="open">Belum Ditangani (Open)</option> <option value="open"><%= t('admin.tk.st_open','Belum Ditangani (Open)') %></option>
<option value="in_progress">Sedang Dikerjakan (In Progress)</option> <option value="in_progress"><%= t('admin.tk.st_progress','Sedang Dikerjakan (In Progress)') %></option>
</select> </select>
</div> </div>
</div> </div>
@@ -214,7 +214,7 @@
<div class="fg"> <div class="fg">
<label class="fl"><i class="bi bi-person-badge me-1"></i><%= t('admin.tickets.table.technician', 'Tugaskan ke Teknisi') %></label> <label class="fl"><i class="bi bi-person-badge me-1"></i><%= t('admin.tickets.table.technician', 'Tugaskan ke Teknisi') %></label>
<select class="fs" name="technician_id" id="upTechnicianId"> <select class="fs" name="technician_id" id="upTechnicianId">
<option value="">-- Belum Ditugaskan (Bebas) --</option> <option value=""><%= t('admin.tk.unassigned','-- Belum Ditugaskan (Bebas) --') %></option>
<% if (typeof technicians !== 'undefined' && technicians) { %> <% if (typeof technicians !== 'undefined' && technicians) { %>
<% technicians.forEach(t => { %> <% technicians.forEach(t => { %>
<option value="<%= t.id %>"><%= t.name %> (<%= t.phone || '-' %>)</option> <option value="<%= t.id %>"><%= t.name %> (<%= t.phone || '-' %>)</option>