i18n (Phase C batch 3): radius-settings — tabel NAS/sesi/accounting, modal & JS alert ID/EN
This commit is contained in:
1 parent
136778aa0a
commit
a94c740b16
3 files changed
+129
-49
No files matched your search
+41
-1
@@ -1652,7 +1652,47 @@
|
||||
"mt_title": "2. RADIUS & Isolir Integration Script on MikroTik (RouterOS Terminal)",
|
||||
"mt_desc": "Copy and paste the entire script below into the <strong>MikroTik Terminal</strong> (server IP is auto-filled from the field above):",
|
||||
"save": "Save RADIUS Configuration",
|
||||
"username_hint": "Username = pattern + @ + domain. Example: <span class=\"mono\">budi_santoso@openisp.id</span>"
|
||||
"username_hint": "Username = pattern + @ + domain. Example: <span class=\"mono\">budi_santoso@openisp.id</span>",
|
||||
"nas_empty": "No dedicated NAS registered yet. The server will use the <strong>Global Shared Secret</strong> for all router requests.",
|
||||
"nas_title": "NAS Router List (Network Access Server)",
|
||||
"modal_add": "Add NAS Client RADIUS",
|
||||
"nas_add": "Add NAS Client",
|
||||
"modal_edit": "Edit NAS Client RADIUS",
|
||||
"edit_nas": "Edit NAS",
|
||||
"del_nas": "Delete NAS",
|
||||
"lbl_secret_router": "Router Shared Secret",
|
||||
"th_secret": "Shared Secret",
|
||||
"th_ipnas": "NAS IP Address",
|
||||
"th_shortname": "Shortname",
|
||||
"th_note": "Description",
|
||||
"online_title": "Active RADIUS Sessions (Active Connections)",
|
||||
"confirm_clear": "Clear all active sessions with no update for more than 2 hours?",
|
||||
"clear_stale": "Clear Stale Sessions",
|
||||
"th_framed": "Framed IP",
|
||||
"th_nasip": "NAS IP",
|
||||
"th_up_in": "Upload (In)",
|
||||
"th_down_out": "Download (Out)",
|
||||
"th_duration": "Session Duration",
|
||||
"th_updated": "Update Time",
|
||||
"disconnect_title": "Disconnect Active RADIUS Session",
|
||||
"confirm_disconnect": "Disconnect active RADIUS session for user",
|
||||
"disconnect": "Disconnect",
|
||||
"online_empty": "No online RADIUS sessions connected.",
|
||||
"acct_suffix": "RADIUS (Last 100)",
|
||||
"acct_empty": "No RADIUS accounting log data yet.",
|
||||
"lbl_ipnas": "NAS Router IP Address",
|
||||
"ph_nas_ip": "Example: 192.168.88.1 or 0.0.0.0",
|
||||
"ph_nas_ip2": "Example: 192.168.88.1",
|
||||
"lbl_shortname": "Router Shortname",
|
||||
"ph_shortname": "Example: Main-Router",
|
||||
"ph_secret": "Example: secret123",
|
||||
"ph_note": "Location / Note",
|
||||
"save_nas": "Save NAS Client",
|
||||
"lbl_status_nas": "NAS Client Status",
|
||||
"alert_copied": "MikroTik & RADIUS Isolir setup script copied! Paste it into your MikroTik Terminal.",
|
||||
"alert_copied2": "MikroTik script copied!",
|
||||
"deactivate": "Deactivate",
|
||||
"activate": "Activate"
|
||||
}
|
||||
},
|
||||
"tech": {
|
||||
|
||||
+41
-1
@@ -1653,7 +1653,47 @@
|
||||
"mt_title": "2. Script Integrasi RADIUS & Isolir di MikroTik (RouterOS Terminal)",
|
||||
"mt_desc": "Copy dan pastekan seluruh script di bawah ini ke <strong>Terminal MikroTik</strong> (IP server otomatis terisi dari IP di atas):",
|
||||
"save": "Simpan Konfigurasi RADIUS",
|
||||
"username_hint": "Username = pola + @ + domain. Contoh: <span class=\"mono\">budi_santoso@openisp.id</span>"
|
||||
"username_hint": "Username = pola + @ + domain. Contoh: <span class=\"mono\">budi_santoso@openisp.id</span>",
|
||||
"nas_empty": "Belum ada NAS khusus terdaftar. Server akan menggunakan <strong>Global Shared Secret</strong> untuk semua request router.",
|
||||
"nas_title": "Daftar Router NAS (Network Access Server)",
|
||||
"modal_add": "Tambah NAS Client RADIUS",
|
||||
"nas_add": "Tambah NAS Client",
|
||||
"modal_edit": "Edit NAS Client RADIUS",
|
||||
"edit_nas": "Edit NAS",
|
||||
"del_nas": "Hapus NAS",
|
||||
"lbl_secret_router": "Shared Secret Router",
|
||||
"th_secret": "Shared Secret",
|
||||
"th_ipnas": "IP Address NAS",
|
||||
"th_shortname": "Nama Shortname",
|
||||
"th_note": "Keterangan",
|
||||
"online_title": "Sesi Aktif RADIUS (Active Connections)",
|
||||
"confirm_clear": "Bersihkan semua sesi aktif yang tidak ada pembaruan lebih dari 2 jam?",
|
||||
"clear_stale": "Bersihkan Sesi Usang",
|
||||
"th_framed": "Framed IP",
|
||||
"th_nasip": "NAS IP",
|
||||
"th_up_in": "Upload (In)",
|
||||
"th_down_out": "Download (Out)",
|
||||
"th_duration": "Durasi Sesi",
|
||||
"th_updated": "Waktu Update",
|
||||
"disconnect_title": "Putuskan Sesi Active RADIUS",
|
||||
"confirm_disconnect": "Putuskan sesi aktif RADIUS untuk user",
|
||||
"disconnect": "Putuskan",
|
||||
"online_empty": "Belum ada sesi online RADIUS yang terhubung.",
|
||||
"acct_suffix": "RADIUS (100 Terakhir)",
|
||||
"acct_empty": "Belum ada data log accounting RADIUS.",
|
||||
"lbl_ipnas": "IP Address Router NAS",
|
||||
"ph_nas_ip": "Contoh: 192.168.88.1 atau 0.0.0.0",
|
||||
"ph_nas_ip2": "Contoh: 192.168.88.1",
|
||||
"lbl_shortname": "Nama Singkat Router (Shortname)",
|
||||
"ph_shortname": "Contoh: Router-Utama",
|
||||
"ph_secret": "Contoh: secret123",
|
||||
"ph_note": "Lokasi / Catatan",
|
||||
"save_nas": "Simpan NAS Client",
|
||||
"lbl_status_nas": "Status NAS Client",
|
||||
"alert_copied": "Script setup MikroTik & Isolir RADIUS berhasil disalin! Silakan tempelkan (paste) di Terminal MikroTik Anda.",
|
||||
"alert_copied2": "Script MikroTik berhasil disalin!",
|
||||
"deactivate": "Non-aktifkan",
|
||||
"activate": "Aktifkan"
|
||||
}
|
||||
},
|
||||
"tech": {
|
||||
|
||||
@@ -441,18 +441,18 @@
|
||||
<div id="tab-content-nas" class="tab-pane" style="display:none;">
|
||||
<div class="card mb16">
|
||||
<div class="card-hd" style="display:flex;justify-content:space-between;align-items:center;">
|
||||
<h6 style="margin:0;"><i class="bi bi-router"></i> Daftar Router NAS (Network Access Server)</h6>
|
||||
<button type="button" class="btn btn-p btn-sm" onclick="showModal('addNasModal')"><i class="bi bi-plus-lg"></i> Tambah NAS Client</button>
|
||||
<h6 style="margin:0;"><i class="bi bi-router"></i> <%= t('admin.rds.nas_title','Daftar Router NAS (Network Access Server)') %></h6>
|
||||
<button type="button" class="btn btn-p btn-sm" onclick="showModal('addNasModal')"><i class="bi bi-plus-lg"></i> <%= t('admin.rds.nas_add','Tambah NAS Client') %></button>
|
||||
</div>
|
||||
<div class="card-bd" style="padding:0;">
|
||||
<div class="tbl-wrap">
|
||||
<table class="dtbl">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>IP Address NAS</th>
|
||||
<th>Nama Shortname</th>
|
||||
<th>Shared Secret</th>
|
||||
<th>Keterangan</th>
|
||||
<th><%= t('admin.rds.th_ipnas','IP Address NAS') %></th>
|
||||
<th><%= t('admin.rds.th_shortname','Nama Shortname') %></th>
|
||||
<th><%= t('admin.rds.th_secret','Shared Secret') %></th>
|
||||
<th><%= t('admin.rds.th_note','Keterangan') %></th>
|
||||
<th><%= t('common.status','Status') %></th>
|
||||
<th style="width:140px;text-align:right;"><%= t('common.actions','Aksi') %></th>
|
||||
</tr>
|
||||
@@ -474,14 +474,14 @@
|
||||
</td>
|
||||
<td style="text-align:right;white-space:nowrap;">
|
||||
<form id="ntg-<%= nas.id %>" action="/admin/radius/nas/toggle" method="POST" style="display:none;"><input type="hidden" name="id" value="<%= nas.id %>"></form>
|
||||
<form id="ndl-<%= nas.id %>" action="/admin/radius/nas/delete" method="POST" style="display:none;" onsubmit="return confirm('Hapus NAS <%= nas.nasname %>?')"><input type="hidden" name="id" value="<%= nas.id %>"></form>
|
||||
<form id="ndl-<%= nas.id %>" action="/admin/radius/nas/delete" method="POST" style="display:none;" onsubmit="return confirm('<%= t('admin.rds.del_nas','Hapus NAS') %> <%= nas.nasname %>?')"><input type="hidden" name="id" value="<%= nas.id %>"></form>
|
||||
<div class="act">
|
||||
<button type="button" class="act-btn" title="Aksi" onclick="actToggle(event, this)"><i class="bi bi-three-dots-vertical"></i></button>
|
||||
<div class="act-menu">
|
||||
<button type="submit" form="ntg-<%= nas.id %>" class="act-item <%= nas.is_active ? 'warn' : 'success' %>"><i class="bi bi-<%= nas.is_active ? 'pause-circle' : 'play-circle' %>"></i> <%= nas.is_active ? 'Non-aktifkan' : 'Aktifkan' %></button>
|
||||
<button type="button" class="act-item primary" onclick='openEditNasModal(<%- JSON.stringify(nas).split('<').join('\\u003c') %>)'><i class="bi bi-pencil"></i> Edit NAS</button>
|
||||
<button type="submit" form="ntg-<%= nas.id %>" class="act-item <%= nas.is_active ? 'warn' : 'success' %>"><i class="bi bi-<%= nas.is_active ? 'pause-circle' : 'play-circle' %>"></i> <%= nas.is_active ? t('admin.rds.deactivate','Non-aktifkan') : t('admin.rds.activate','Aktifkan') %></button>
|
||||
<button type="button" class="act-item primary" onclick='openEditNasModal(<%- JSON.stringify(nas).split('<').join('\\u003c') %>)'><i class="bi bi-pencil"></i> <%= t('admin.rds.edit_nas','Edit NAS') %></button>
|
||||
<div class="act-sep"></div>
|
||||
<button type="submit" form="ndl-<%= nas.id %>" class="act-item danger"><i class="bi bi-trash"></i> Hapus NAS</button>
|
||||
<button type="submit" form="ndl-<%= nas.id %>" class="act-item danger"><i class="bi bi-trash"></i> <%= t('admin.rds.del_nas','Hapus NAS') %></button>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
@@ -490,7 +490,7 @@
|
||||
<% } else { %>
|
||||
<tr>
|
||||
<td colspan="6" class="text-center text-muted" style="padding:24px;">
|
||||
Belum ada NAS khusus terdaftar. Server akan menggunakan <strong>Global Shared Secret</strong> untuk semua request router.
|
||||
<%- t('admin.rds.nas_empty','Belum ada NAS khusus terdaftar. Server akan menggunakan <strong>Global Shared Secret</strong> untuk semua request router.') %>
|
||||
</td>
|
||||
</tr>
|
||||
<% } %>
|
||||
@@ -505,11 +505,11 @@
|
||||
<div id="tab-content-online" class="tab-pane">
|
||||
<div class="card mb16">
|
||||
<div class="card-hd" style="display:flex;justify-content:space-between;align-items:center;">
|
||||
<h6 style="margin:0;"><i class="bi bi-wifi"></i> Sesi Aktif RADIUS (Active Connections)</h6>
|
||||
<h6 style="margin:0;"><i class="bi bi-wifi"></i> <%= t('admin.rds.online_title','Sesi Aktif RADIUS (Active Connections)') %></h6>
|
||||
<% if (onlineSessions && onlineSessions.length > 0) { %>
|
||||
<form action="/admin/radius/clear-stale" method="POST" onsubmit="return confirm('Bersihkan semua sesi aktif yang tidak ada pembaruan lebih dari 2 jam?')" style="margin:0;">
|
||||
<form action="/admin/radius/clear-stale" method="POST" onsubmit="return confirm('<%= t('admin.rds.confirm_clear','Bersihkan semua sesi aktif yang tidak ada pembaruan lebih dari 2 jam?') %>')" style="margin:0;">
|
||||
<button type="submit" class="btn btn-w btn-sm" title="Tandai sesi yang sudah tidak ada pembaruan > 2 jam sebagai stopped">
|
||||
<i class="bi bi-clock-history"></i> Bersihkan Sesi Usang
|
||||
<i class="bi bi-clock-history"></i> <%= t('admin.rds.clear_stale','Bersihkan Sesi Usang') %>
|
||||
</button>
|
||||
</form>
|
||||
<% } %>
|
||||
@@ -521,12 +521,12 @@
|
||||
<tr>
|
||||
<th>Username</th>
|
||||
<th><%= t('iso.cust_name','Nama Pelanggan') %></th>
|
||||
<th>Framed IP</th>
|
||||
<th>NAS IP</th>
|
||||
<th>Upload (In)</th>
|
||||
<th>Download (Out)</th>
|
||||
<th>Durasi Sesi</th>
|
||||
<th>Waktu Update</th>
|
||||
<th><%= t('admin.rds.th_framed','Framed IP') %></th>
|
||||
<th><%= t('admin.rds.th_nasip','NAS IP') %></th>
|
||||
<th><%= t('admin.rds.th_up_in','Upload (In)') %></th>
|
||||
<th><%= t('admin.rds.th_down_out','Download (Out)') %></th>
|
||||
<th><%= t('admin.rds.th_duration','Durasi Sesi') %></th>
|
||||
<th><%= t('admin.rds.th_updated','Waktu Update') %></th>
|
||||
<th style="width:110px;text-align:right;"><%= t('common.actions','Aksi') %></th>
|
||||
</tr>
|
||||
</thead>
|
||||
@@ -554,12 +554,12 @@
|
||||
<td><code><%= stStr %></code></td>
|
||||
<td><%= s.updated_at %></td>
|
||||
<td style="text-align:right;white-space:nowrap;">
|
||||
<form action="/admin/radius/disconnect" method="POST" onsubmit="return confirm('Putuskan sesi aktif RADIUS untuk user \'<%= s.username %>\'?')" style="display:inline;">
|
||||
<form action="/admin/radius/disconnect" method="POST" onsubmit="return confirm('<%= t('admin.rds.confirm_disconnect','Putuskan sesi aktif RADIUS untuk user') %> \'<%= s.username %>\'?')" style="display:inline;">
|
||||
<input type="hidden" name="username" value="<%= s.username %>">
|
||||
<input type="hidden" name="session_id" value="<%= s.session_id %>">
|
||||
<input type="hidden" name="nas_ip" value="<%= s.nas_ip %>">
|
||||
<button type="submit" class="btn btn-d btn-sm" title="Putuskan <%= t('admin.rds.tab_sessions','Sesi Active RADIUS') %>">
|
||||
<i class="bi bi-power"></i> Putuskan
|
||||
<button type="submit" class="btn btn-d btn-sm" title="<%= t('admin.rds.disconnect','Putuskan') %> <%= t('admin.rds.tab_sessions','Sesi Active RADIUS') %>">
|
||||
<i class="bi bi-power"></i> <%= t('admin.rds.disconnect','Putuskan') %>
|
||||
</button>
|
||||
</form>
|
||||
</td>
|
||||
@@ -567,7 +567,7 @@
|
||||
<% }); %>
|
||||
<% } else { %>
|
||||
<tr>
|
||||
<td colspan="9" class="text-center text-muted" style="padding:24px;">Belum ada sesi online RADIUS yang terhubung.</td>
|
||||
<td colspan="9" class="text-center text-muted" style="padding:24px;"><%= t('admin.rds.online_empty','Belum ada sesi online RADIUS yang terhubung.') %></td>
|
||||
</tr>
|
||||
<% } %>
|
||||
</tbody>
|
||||
@@ -581,7 +581,7 @@
|
||||
<div id="tab-content-accounting" class="tab-pane" style="display:none;">
|
||||
<div class="card mb16">
|
||||
<div class="card-hd">
|
||||
<h6><i class="bi bi-journal-text"></i> <%= t('admin.rds.tab_log','Log Accounting') %> RADIUS (100 Terakhir)</h6>
|
||||
<h6><i class="bi bi-journal-text"></i> <%= t('admin.rds.tab_log','Log Accounting') %> <%= t('admin.rds.acct_suffix','RADIUS (100 Terakhir)') %></h6>
|
||||
</div>
|
||||
<div class="card-bd" style="padding:0;">
|
||||
<div class="tbl-wrap">
|
||||
@@ -591,7 +591,7 @@
|
||||
<th>ID</th>
|
||||
<th>Username</th>
|
||||
<th>Session ID</th>
|
||||
<th>NAS IP</th>
|
||||
<th><%= t('admin.rds.th_nasip','NAS IP') %></th>
|
||||
<th>Status Type</th>
|
||||
<th>Upload</th>
|
||||
<th>Download</th>
|
||||
@@ -635,7 +635,7 @@
|
||||
<% }); %>
|
||||
<% } else { %>
|
||||
<tr>
|
||||
<td colspan="9" class="text-center text-muted" style="padding:24px;">Belum ada data log accounting RADIUS.</td>
|
||||
<td colspan="9" class="text-center text-muted" style="padding:24px;"><%= t('admin.rds.acct_empty','Belum ada data log accounting RADIUS.') %></td>
|
||||
</tr>
|
||||
<% } %>
|
||||
</tbody>
|
||||
@@ -652,31 +652,31 @@
|
||||
<div class="mo" id="addNasModal">
|
||||
<div class="mb">
|
||||
<div class="mh">
|
||||
<div class="mt"><i class="bi bi-plus-circle"></i> Tambah NAS Client RADIUS</div>
|
||||
<div class="mt"><i class="bi bi-plus-circle"></i> <%= t('admin.rds.modal_add','Tambah NAS Client RADIUS') %></div>
|
||||
<button type="button" class="mc" onclick="closeModal('addNasModal')">×</button>
|
||||
</div>
|
||||
<form action="/admin/radius/nas/add" method="POST">
|
||||
<div class="mbody">
|
||||
<div class="fg">
|
||||
<label class="fl">IP Address Router NAS</label>
|
||||
<input type="text" name="nasname" class="fc" placeholder="Contoh: 192.168.88.1 atau 0.0.0.0" required>
|
||||
<label class="fl"><%= t('admin.rds.lbl_ipnas','IP Address Router NAS') %></label>
|
||||
<input type="text" name="nasname" class="fc" placeholder="<%= t('admin.rds.ph_nas_ip','Contoh: 192.168.88.1 atau 0.0.0.0') %>" required>
|
||||
</div>
|
||||
<div class="fg">
|
||||
<label class="fl">Nama Singkat Router (Shortname)</label>
|
||||
<input type="text" name="shortname" class="fc" placeholder="Contoh: Router-Utama">
|
||||
<label class="fl"><%= t('admin.rds.lbl_shortname','Nama Singkat Router (Shortname)') %></label>
|
||||
<input type="text" name="shortname" class="fc" placeholder="<%= t('admin.rds.ph_shortname','Contoh: Router-Utama') %>">
|
||||
</div>
|
||||
<div class="fg">
|
||||
<label class="fl">Shared Secret Router</label>
|
||||
<input type="text" name="secret" class="fc" placeholder="Contoh: secret123" required>
|
||||
<label class="fl"><%= t('admin.rds.lbl_secret_router','Shared Secret Router') %></label>
|
||||
<input type="text" name="secret" class="fc" placeholder="<%= t('admin.rds.ph_secret','Contoh: secret123') %>" required>
|
||||
</div>
|
||||
<div class="fg">
|
||||
<label class="fl"><%= t('common.note_optional','Keterangan (Opsional)') %></label>
|
||||
<input type="text" name="description" class="fc" placeholder="Lokasi / Catatan">
|
||||
<input type="text" name="description" class="fc" placeholder="<%= t('admin.rds.ph_note','Lokasi / Catatan') %>">
|
||||
</div>
|
||||
</div>
|
||||
<div class="mf">
|
||||
<button type="button" class="btn btn-g" onclick="closeModal('addNasModal')"><%= t('common.cancel','Batal') %></button>
|
||||
<button type="submit" class="btn btn-p"><i class="bi bi-check-lg"></i> Simpan NAS Client</button>
|
||||
<button type="submit" class="btn btn-p"><i class="bi bi-check-lg"></i> <%= t('admin.rds.save_nas','Simpan NAS Client') %></button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
@@ -686,30 +686,30 @@
|
||||
<div class="mo" id="editNasModal">
|
||||
<div class="mb">
|
||||
<div class="mh">
|
||||
<div class="mt"><i class="bi bi-pencil-square"></i> Edit NAS Client RADIUS</div>
|
||||
<div class="mt"><i class="bi bi-pencil-square"></i> <%= t('admin.rds.modal_edit','Edit NAS Client RADIUS') %></div>
|
||||
<button type="button" class="mc" onclick="closeModal('editNasModal')">×</button>
|
||||
</div>
|
||||
<form action="/admin/radius/nas/edit" method="POST">
|
||||
<input type="hidden" name="id" id="edit_nas_id">
|
||||
<div class="mbody">
|
||||
<div class="fg">
|
||||
<label class="fl">IP Address Router NAS</label>
|
||||
<input type="text" name="nasname" id="edit_nas_nasname" class="fc" placeholder="Contoh: 192.168.88.1" required>
|
||||
<label class="fl"><%= t('admin.rds.lbl_ipnas','IP Address Router NAS') %></label>
|
||||
<input type="text" name="nasname" id="edit_nas_nasname" class="fc" placeholder="<%= t('admin.rds.ph_nas_ip2','Contoh: 192.168.88.1') %>" required>
|
||||
</div>
|
||||
<div class="fg">
|
||||
<label class="fl">Nama Singkat Router (Shortname)</label>
|
||||
<input type="text" name="shortname" id="edit_nas_shortname" class="fc" placeholder="Contoh: Router-Utama">
|
||||
<label class="fl"><%= t('admin.rds.lbl_shortname','Nama Singkat Router (Shortname)') %></label>
|
||||
<input type="text" name="shortname" id="edit_nas_shortname" class="fc" placeholder="<%= t('admin.rds.ph_shortname','Contoh: Router-Utama') %>">
|
||||
</div>
|
||||
<div class="fg">
|
||||
<label class="fl">Shared Secret Router</label>
|
||||
<input type="text" name="secret" id="edit_nas_secret" class="fc" placeholder="Contoh: secret123" required>
|
||||
<label class="fl"><%= t('admin.rds.lbl_secret_router','Shared Secret Router') %></label>
|
||||
<input type="text" name="secret" id="edit_nas_secret" class="fc" placeholder="<%= t('admin.rds.ph_secret','Contoh: secret123') %>" required>
|
||||
</div>
|
||||
<div class="fg">
|
||||
<label class="fl"><%= t('common.note_optional','Keterangan (Opsional)') %></label>
|
||||
<input type="text" name="description" id="edit_nas_description" class="fc" placeholder="Lokasi / Catatan">
|
||||
<input type="text" name="description" id="edit_nas_description" class="fc" placeholder="<%= t('admin.rds.ph_note','Lokasi / Catatan') %>">
|
||||
</div>
|
||||
<div class="fg">
|
||||
<label class="fl">Status NAS Client</label>
|
||||
<label class="fl"><%= t('admin.rds.lbl_status_nas','Status NAS Client') %></label>
|
||||
<select name="is_active" id="edit_nas_is_active" class="fs">
|
||||
<option value="1"><%= t('common.active','Aktif') %></option>
|
||||
<option value="0"><%= t('admin.common.non_active','Non-Aktif') %></option>
|
||||
@@ -769,10 +769,10 @@
|
||||
if (!el) return;
|
||||
el.select();
|
||||
navigator.clipboard.writeText(el.value).then(() => {
|
||||
alert('Script setup MikroTik & Isolir RADIUS berhasil disalin! Silakan tempelkan (paste) di Terminal MikroTik Anda.');
|
||||
alert('<%- t('admin.rds.alert_copied','Script setup MikroTik & Isolir RADIUS berhasil disalin! Silakan tempelkan (paste) di Terminal MikroTik Anda.') %>');
|
||||
}).catch(() => {
|
||||
document.execCommand('copy');
|
||||
alert('Script MikroTik berhasil disalin!');
|
||||
alert('<%- t('admin.rds.alert_copied2','Script MikroTik berhasil disalin!') %>');
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user