Mal Sorumlusu kaydetme mantığı değişti
This commit is contained in:
@@ -539,27 +539,6 @@
|
||||
</li>
|
||||
|
||||
{#if user.role === "admin"}
|
||||
<li class="nav-item">
|
||||
<button
|
||||
class="nav-btn"
|
||||
on:click={() => navigateTo("vehicles")}
|
||||
class:active={showVehicles}
|
||||
>
|
||||
<svg
|
||||
width="20"
|
||||
height="20"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
>
|
||||
<path d="M19 9l-7 7-7-7" />
|
||||
<rect x="11" y="5" width="2" height="14" />
|
||||
<path d="M5 5v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V5" />
|
||||
</svg>
|
||||
Araç Yönetimi
|
||||
</button>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<button
|
||||
class="nav-btn"
|
||||
@@ -581,6 +560,27 @@
|
||||
Birlik Yönetimi
|
||||
</button>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<button
|
||||
class="nav-btn"
|
||||
on:click={() => navigateTo("vehicles")}
|
||||
class:active={showVehicles}
|
||||
>
|
||||
<svg
|
||||
width="20"
|
||||
height="20"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
>
|
||||
<path d="M19 9l-7 7-7-7" />
|
||||
<rect x="11" y="5" width="2" height="14" />
|
||||
<path d="M5 5v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V5" />
|
||||
</svg>
|
||||
Araç Yönetimi
|
||||
</button>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<button
|
||||
class="nav-btn"
|
||||
@@ -759,7 +759,7 @@
|
||||
<line x1="3" y1="18" x2="21" y2="18" />
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Ayırıcı -->
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
import { goto } from '$app/navigation';
|
||||
|
||||
let user = null;
|
||||
let goodsManagers = [];
|
||||
let personnel = [];
|
||||
let units = [];
|
||||
let loading = true;
|
||||
let error = '';
|
||||
@@ -19,18 +19,16 @@
|
||||
let showEditModal = false;
|
||||
let selectedManager = null;
|
||||
|
||||
// Form değişkenleri
|
||||
let formData = {
|
||||
full_name: '',
|
||||
rank: '',
|
||||
registration_number: '',
|
||||
tc_kimlik: '',
|
||||
phone: '',
|
||||
unit_id: '',
|
||||
username: '',
|
||||
password: '',
|
||||
is_active: true
|
||||
};
|
||||
// Form değişkenleri
|
||||
let formData = {
|
||||
full_name: '',
|
||||
rank: '',
|
||||
registration_number: '',
|
||||
tc_kimlik: '',
|
||||
phone: '',
|
||||
unit_id: '',
|
||||
is_active: true
|
||||
};
|
||||
|
||||
onMount(async () => {
|
||||
const userData = localStorage.getItem('user');
|
||||
@@ -39,75 +37,76 @@
|
||||
return;
|
||||
}
|
||||
|
||||
user = JSON.parse(userData);
|
||||
await loadGoodsManagers();
|
||||
await loadUnits();
|
||||
user = JSON.parse(userData);
|
||||
await loadUnits();
|
||||
await loadGoodsManagers();
|
||||
});
|
||||
|
||||
async function loadGoodsManagers() {
|
||||
try {
|
||||
const response = await fetch('/api/goods-managers');
|
||||
if (response.ok) {
|
||||
const data = await response.json();
|
||||
goodsManagers = data.goodsManagers;
|
||||
} else {
|
||||
error = 'Personel bilgileri yüklenemedi.';
|
||||
}
|
||||
} catch (err) {
|
||||
error = 'Bağlantı hatası.';
|
||||
console.error('Load goods managers error:', err);
|
||||
} finally {
|
||||
loading = false;
|
||||
async function loadGoodsManagers() {
|
||||
try {
|
||||
const response = await fetch('/api/fuel-personnel');
|
||||
if (response.ok) {
|
||||
const data = await response.json();
|
||||
personnel = data.fuelPersonnel || [];
|
||||
} else {
|
||||
error = 'Personel bilgileri yüklenemedi.';
|
||||
}
|
||||
} catch (err) {
|
||||
error = 'Bağlantı hatası.';
|
||||
console.error('Load personnel error:', err);
|
||||
} finally {
|
||||
loading = false;
|
||||
}
|
||||
}
|
||||
|
||||
async function loadUnits() {
|
||||
try {
|
||||
const response = await fetch('/api/units');
|
||||
if (response.ok) {
|
||||
const data = await response.json();
|
||||
units = data.units || [];
|
||||
}
|
||||
} catch (err) {
|
||||
console.error('Load units error:', err);
|
||||
async function loadUnits() {
|
||||
try {
|
||||
const response = await fetch('/api/units');
|
||||
if (response.ok) {
|
||||
const data = await response.json();
|
||||
units = data.units || [];
|
||||
}
|
||||
} catch (err) {
|
||||
console.error('Load units error:', err);
|
||||
}
|
||||
}
|
||||
|
||||
function resetForm() {
|
||||
formData = {
|
||||
full_name: '',
|
||||
rank: '',
|
||||
registration_number: '',
|
||||
tc_kimlik: '',
|
||||
phone: '',
|
||||
unit_id: '',
|
||||
username: '',
|
||||
password: '',
|
||||
is_active: true
|
||||
};
|
||||
selectedManager = null;
|
||||
}
|
||||
function getUnitName(unitId) {
|
||||
const id = parseInt(unitId);
|
||||
return units.find((unit) => unit.id === id)?.name || 'Belirtilmemiş';
|
||||
}
|
||||
|
||||
function resetForm() {
|
||||
formData = {
|
||||
full_name: '',
|
||||
rank: '',
|
||||
registration_number: '',
|
||||
tc_kimlik: '',
|
||||
phone: '',
|
||||
unit_id: '',
|
||||
is_active: true
|
||||
};
|
||||
selectedManager = null;
|
||||
}
|
||||
|
||||
function openAddModal() {
|
||||
resetForm();
|
||||
showAddModal = true;
|
||||
}
|
||||
|
||||
function openEditModal(manager) {
|
||||
selectedManager = manager;
|
||||
formData = {
|
||||
full_name: manager.full_name,
|
||||
rank: manager.rank,
|
||||
registration_number: manager.registration_number,
|
||||
tc_kimlik: manager.tc_kimlik,
|
||||
phone: manager.phone,
|
||||
email: manager.email,
|
||||
username: manager.username || '',
|
||||
password: '', // Şifre gösterilmez, değiştirilmek istenirse girilir
|
||||
is_active: manager.is_active
|
||||
};
|
||||
showEditModal = true;
|
||||
}
|
||||
function openEditModal(manager) {
|
||||
selectedManager = manager;
|
||||
formData = {
|
||||
full_name: manager.full_name,
|
||||
rank: manager.rank,
|
||||
registration_number: manager.registration_number,
|
||||
tc_kimlik: manager.tc_kimlik,
|
||||
phone: manager.phone,
|
||||
unit_id: manager.unit_id || '',
|
||||
is_active: manager.is_active
|
||||
};
|
||||
showEditModal = true;
|
||||
}
|
||||
|
||||
function closeModal() {
|
||||
showAddModal = false;
|
||||
@@ -115,32 +114,22 @@
|
||||
resetForm();
|
||||
}
|
||||
|
||||
async function handleAddManager() {
|
||||
if (!formData.full_name || !formData.rank || !formData.registration_number || !formData.tc_kimlik || !formData.phone || !formData.unit_id || !formData.username || !formData.password) {
|
||||
error = 'Tüm alanlar zorunludur.';
|
||||
return;
|
||||
}
|
||||
async function handleAddManager() {
|
||||
if (!formData.full_name || !formData.rank || !formData.registration_number || !formData.tc_kimlik || !formData.phone || !formData.unit_id) {
|
||||
error = 'Tüm alanlar zorunludur.';
|
||||
return;
|
||||
}
|
||||
|
||||
if (!/^[0-9]{11}$/.test(formData.tc_kimlik)) {
|
||||
error = 'TC Kimlik numarası 11 haneli olmalıdır.';
|
||||
return;
|
||||
}
|
||||
|
||||
if (!/^[a-zA-Z0-9]{3,20}$/.test(formData.username)) {
|
||||
error = 'Kullanıcı adı 3-20 karakter arası olmalı ve sadece harf ve rakam içermelidir.';
|
||||
return;
|
||||
}
|
||||
|
||||
if (formData.password.length < 6) {
|
||||
error = 'Şifre en az 6 karakter olmalıdır.';
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
const response = await fetch('/api/goods-managers', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
try {
|
||||
const response = await fetch('/api/fuel-personnel', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
body: JSON.stringify(formData),
|
||||
});
|
||||
@@ -160,36 +149,26 @@
|
||||
}
|
||||
}
|
||||
|
||||
async function handleUpdateManager() {
|
||||
if (!formData.full_name || !formData.rank || !formData.registration_number || !formData.tc_kimlik || !formData.phone || !formData.unit_id || !formData.username) {
|
||||
error = 'Kullanıcı adı hariç tüm alanlar zorunludur.';
|
||||
return;
|
||||
}
|
||||
async function handleUpdateManager() {
|
||||
if (!formData.full_name || !formData.rank || !formData.registration_number || !formData.tc_kimlik || !formData.phone || !formData.unit_id) {
|
||||
error = 'Tüm alanlar zorunludur.';
|
||||
return;
|
||||
}
|
||||
|
||||
if (!/^[0-9]{11}$/.test(formData.tc_kimlik)) {
|
||||
error = 'TC Kimlik numarası 11 haneli olmalıdır.';
|
||||
return;
|
||||
}
|
||||
|
||||
if (!/^[a-zA-Z0-9]{3,20}$/.test(formData.username)) {
|
||||
error = 'Kullanıcı adı 3-20 karakter arası olmalı ve sadece harf ve rakam içermelidir.';
|
||||
return;
|
||||
}
|
||||
|
||||
if (formData.password && formData.password.trim().length > 0 && formData.password.length < 6) {
|
||||
error = 'Şifre en az 6 karakter olmalıdır.';
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
const response = await fetch('/api/goods-managers', {
|
||||
method: 'PUT',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
body: JSON.stringify({
|
||||
id: selectedManager.id,
|
||||
...formData
|
||||
try {
|
||||
const response = await fetch('/api/fuel-personnel', {
|
||||
method: 'PUT',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
body: JSON.stringify({
|
||||
id: selectedManager.id,
|
||||
...formData
|
||||
}),
|
||||
});
|
||||
|
||||
@@ -214,7 +193,7 @@
|
||||
}
|
||||
|
||||
try {
|
||||
const response = await fetch('/api/goods-managers', {
|
||||
const response = await fetch('/api/fuel-personnel', {
|
||||
method: 'DELETE',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
@@ -238,7 +217,7 @@
|
||||
|
||||
async function toggleManagerStatus(manager) {
|
||||
try {
|
||||
const response = await fetch('/api/goods-managers', {
|
||||
const response = await fetch('/api/fuel-personnel', {
|
||||
method: 'PUT',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
@@ -301,7 +280,7 @@
|
||||
<div class="spinner"></div>
|
||||
<p>Yükleniyor...</p>
|
||||
</div>
|
||||
{:else if goodsManagers.length === 0}
|
||||
{:else if personnel.length === 0}
|
||||
<div class="empty-state">
|
||||
<div class="empty-icon">
|
||||
<svg width="64" height="64" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
||||
@@ -316,7 +295,7 @@
|
||||
</div>
|
||||
{:else}
|
||||
<div class="managers-grid">
|
||||
{#each goodsManagers as manager (manager.id)}
|
||||
{#each personnel as manager (manager.id)}
|
||||
<div class="manager-card card {manager.is_active ? '' : 'inactive'}">
|
||||
<div class="manager-header">
|
||||
<div class="manager-info">
|
||||
@@ -338,18 +317,14 @@
|
||||
<span class="detail-label">🆔 TC Kimlik:</span>
|
||||
<span class="detail-value">{manager.tc_kimlik}</span>
|
||||
</div>
|
||||
<div class="detail-item">
|
||||
<span class="detail-label">🏢 Birlik:</span>
|
||||
<span class="detail-value">{manager.unit_name || 'Belirtilmemiş'}</span>
|
||||
</div>
|
||||
<div class="detail-item">
|
||||
<span class="detail-label">🏢 Birlik:</span>
|
||||
<span class="detail-value">{getUnitName(manager.unit_id)}</span>
|
||||
</div>
|
||||
<div class="detail-item">
|
||||
<span class="detail-label">📱 İrtibat:</span>
|
||||
<span class="detail-value">{manager.phone}</span>
|
||||
</div>
|
||||
<div class="detail-item">
|
||||
<span class="detail-label">👤 Kullanıcı Adı:</span>
|
||||
<span class="detail-value">{manager.username || 'Belirlenmemiş'}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="manager-actions">
|
||||
@@ -393,7 +368,7 @@
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
<!-- Mal Sorumlusu Ekle Modal -->
|
||||
<!-- Personel Ekle Modal -->
|
||||
{#if showAddModal}
|
||||
<div class="modal-overlay" on:click={closeModal}>
|
||||
<div class="modal" on:click|stopPropagation>
|
||||
@@ -472,31 +447,6 @@
|
||||
{/each}
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="username">Kullanıcı Adı</label>
|
||||
<input
|
||||
id="username"
|
||||
type="text"
|
||||
class="form-input"
|
||||
bind:value={formData.username}
|
||||
placeholder="ibrahim.kara"
|
||||
required
|
||||
/>
|
||||
<small style="color: var(--text-secondary); font-size: 0.8rem; margin-top: 0.25rem; display: block;">
|
||||
Bu kullanıcı adı ile sisteme giriş yapabilecek.
|
||||
</small>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="password">Şifre</label>
|
||||
<input
|
||||
id="password"
|
||||
type="password"
|
||||
class="form-input"
|
||||
bind:value={formData.password}
|
||||
placeholder="En az 6 karakter"
|
||||
required
|
||||
/>
|
||||
</div>
|
||||
<div class="modal-actions">
|
||||
<button type="button" class="btn btn-secondary" on:click={closeModal}>İptal</button>
|
||||
<button type="submit" class="btn btn-primary">Kaydet</button>
|
||||
@@ -585,33 +535,6 @@
|
||||
{/each}
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="edit-username">Kullanıcı Adı</label>
|
||||
<input
|
||||
id="edit-username"
|
||||
type="text"
|
||||
class="form-input"
|
||||
bind:value={formData.username}
|
||||
placeholder="ibrahim.kara"
|
||||
required
|
||||
/>
|
||||
<small style="color: var(--text-secondary); font-size: 0.8rem; margin-top: 0.25rem; display: block;">
|
||||
Bu kullanıcı adı ile sisteme giriş yapabilecek.
|
||||
</small>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="edit-password">Yeni Şifre (Opsiyonel)</label>
|
||||
<input
|
||||
id="edit-password"
|
||||
type="password"
|
||||
class="form-input"
|
||||
bind:value={formData.password}
|
||||
placeholder="Değiştirmek için yeni şifre girin"
|
||||
/>
|
||||
<small style="color: var(--text-secondary); font-size: 0.8rem; margin-top: 0.25rem; display: block;">
|
||||
Boş bırakırsanız mevcut şifre korunur.
|
||||
</small>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="checkbox-label">
|
||||
<input
|
||||
@@ -974,4 +897,4 @@
|
||||
text-align: left;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
|
||||
let user = null;
|
||||
let personnel = [];
|
||||
let units = [];
|
||||
let loading = true;
|
||||
let error = '';
|
||||
let showAddModal = false;
|
||||
@@ -25,6 +26,7 @@
|
||||
registration_number: '',
|
||||
tc_kimlik: '',
|
||||
phone: '',
|
||||
unit_id: '',
|
||||
is_active: true
|
||||
};
|
||||
|
||||
@@ -36,9 +38,25 @@
|
||||
}
|
||||
|
||||
user = JSON.parse(userData);
|
||||
await loadUnits();
|
||||
await loadPersonnel();
|
||||
});
|
||||
|
||||
async function loadUnits() {
|
||||
try {
|
||||
const response = await fetch('/api/units');
|
||||
if (response.ok) {
|
||||
const data = await response.json();
|
||||
units = data.units;
|
||||
} else {
|
||||
error = 'Birlik listesi yüklenemedi.';
|
||||
}
|
||||
} catch (err) {
|
||||
error = 'Bağlantı hatası.';
|
||||
console.error('Load units error:', err);
|
||||
}
|
||||
}
|
||||
|
||||
async function loadPersonnel() {
|
||||
try {
|
||||
const response = await fetch('/api/fuel-personnel');
|
||||
@@ -63,6 +81,7 @@
|
||||
registration_number: '',
|
||||
tc_kimlik: '',
|
||||
phone: '',
|
||||
unit_id: '',
|
||||
is_active: true
|
||||
};
|
||||
selectedPersonnel = null;
|
||||
@@ -81,6 +100,7 @@
|
||||
registration_number: person.registration_number,
|
||||
tc_kimlik: person.tc_kimlik,
|
||||
phone: person.phone,
|
||||
unit_id: person.unit_id || '',
|
||||
is_active: person.is_active
|
||||
};
|
||||
showEditModal = true;
|
||||
@@ -93,7 +113,7 @@
|
||||
}
|
||||
|
||||
async function handleAddPersonnel() {
|
||||
if (!formData.full_name || !formData.rank || !formData.registration_number || !formData.tc_kimlik || !formData.phone) {
|
||||
if (!formData.full_name || !formData.rank || !formData.registration_number || !formData.tc_kimlik || !formData.phone || !formData.unit_id) {
|
||||
error = 'Tüm alanlar zorunludur.';
|
||||
return;
|
||||
}
|
||||
@@ -128,7 +148,7 @@
|
||||
}
|
||||
|
||||
async function handleUpdatePersonnel() {
|
||||
if (!formData.full_name || !formData.rank || !formData.registration_number || !formData.tc_kimlik || !formData.phone) {
|
||||
if (!formData.full_name || !formData.rank || !formData.registration_number || !formData.tc_kimlik || !formData.phone || !formData.unit_id) {
|
||||
error = 'Tüm alanlar zorunludur.';
|
||||
return;
|
||||
}
|
||||
@@ -236,7 +256,7 @@
|
||||
</svg>
|
||||
Geri
|
||||
</button>
|
||||
<h1 class="page-title">Yakıt Personeli</h1>
|
||||
<h1 class="page-title">Personel İşlemleri</h1>
|
||||
</div>
|
||||
<button class="btn btn-primary" on:click={openAddModal}>
|
||||
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
||||
@@ -269,7 +289,7 @@
|
||||
</svg>
|
||||
</div>
|
||||
<h3>Henüz Personel Yok</h3>
|
||||
<p>Sisteme yakıt personeli eklemek için "Yeni Personel Ekle" butonuna tıklayın.</p>
|
||||
<p>Sisteme birlik personeli eklemek için "Yeni Personel Ekle" butonuna tıklayın.</p>
|
||||
<button class="btn btn-primary" on:click={openAddModal}>
|
||||
İlk Personeli Ekle
|
||||
</button>
|
||||
@@ -425,6 +445,20 @@
|
||||
required
|
||||
/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="unit_id">Birlik</label>
|
||||
<select
|
||||
id="unit_id"
|
||||
class="form-input"
|
||||
bind:value={formData.unit_id}
|
||||
required
|
||||
>
|
||||
<option value="">Birlik Seçin</option>
|
||||
{#each units as unit}
|
||||
<option value={unit.id}>{unit.name}</option>
|
||||
{/each}
|
||||
</select>
|
||||
</div>
|
||||
<div class="modal-actions">
|
||||
<button type="button" class="btn btn-secondary" on:click={closeModal}>İptal</button>
|
||||
<button type="submit" class="btn btn-primary">Kaydet</button>
|
||||
@@ -499,6 +533,20 @@
|
||||
required
|
||||
/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="edit-unit_id">Birlik</label>
|
||||
<select
|
||||
id="edit-unit_id"
|
||||
class="form-input"
|
||||
bind:value={formData.unit_id}
|
||||
required
|
||||
>
|
||||
<option value="">Birlik Seçin</option>
|
||||
{#each units as unit}
|
||||
<option value={unit.id}>{unit.name}</option>
|
||||
{/each}
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="checkbox-label">
|
||||
<input
|
||||
|
||||
@@ -29,7 +29,9 @@
|
||||
rank: '',
|
||||
registration_number: '',
|
||||
tc_kimlik: '',
|
||||
phone: ''
|
||||
phone: '',
|
||||
username: '',
|
||||
password: ''
|
||||
}
|
||||
};
|
||||
|
||||
@@ -72,7 +74,9 @@
|
||||
rank: '',
|
||||
registration_number: '',
|
||||
tc_kimlik: '',
|
||||
phone: ''
|
||||
phone: '',
|
||||
username: '',
|
||||
password: ''
|
||||
}
|
||||
};
|
||||
selectedUnit = null;
|
||||
@@ -90,7 +94,15 @@
|
||||
address: unit.address,
|
||||
stk: unit.stk,
|
||||
btk: unit.btk,
|
||||
commander: { ...unit.commander }
|
||||
commander: {
|
||||
full_name: unit.commander.full_name,
|
||||
rank: unit.commander.rank,
|
||||
registration_number: unit.commander.registration_number,
|
||||
tc_kimlik: unit.commander.tc_kimlik,
|
||||
phone: unit.commander.phone,
|
||||
username: unit.commander.username || '',
|
||||
password: unit.commander.password || ''
|
||||
}
|
||||
};
|
||||
showEditModal = true;
|
||||
}
|
||||
@@ -108,8 +120,8 @@
|
||||
}
|
||||
|
||||
const { commander } = formData;
|
||||
if (!commander.full_name || !commander.rank || !commander.registration_number || !commander.tc_kimlik || !commander.phone) {
|
||||
error = 'Birlik sorumlusunun tüm bilgileri zorunludur.';
|
||||
if (!commander.full_name || !commander.rank || !commander.registration_number || !commander.tc_kimlik || !commander.phone || !commander.username || !commander.password) {
|
||||
error = 'Mal sorumlusunun tüm bilgileri zorunludur.';
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -149,8 +161,8 @@
|
||||
}
|
||||
|
||||
const { commander } = formData;
|
||||
if (!commander.full_name || !commander.rank || !commander.registration_number || !commander.tc_kimlik || !commander.phone) {
|
||||
error = 'Birlik sorumlusunun tüm bilgileri zorunludur.';
|
||||
if (!commander.full_name || !commander.rank || !commander.registration_number || !commander.tc_kimlik || !commander.phone || !commander.username || !commander.password) {
|
||||
error = 'Mal sorumlusunun tüm bilgileri zorunludur.';
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -289,7 +301,7 @@
|
||||
</div>
|
||||
|
||||
<div class="commander-section">
|
||||
<h4 class="commander-title">Birlik Sorumlusu</h4>
|
||||
<h4 class="commander-title">Mal Sorumlusu</h4>
|
||||
<div class="commander-info">
|
||||
<div class="commander-details">
|
||||
<p class="commander-name">{unit.commander.rank} {unit.commander.full_name}</p>
|
||||
@@ -382,7 +394,7 @@
|
||||
</div>
|
||||
|
||||
<div class="form-section">
|
||||
<h3>Birlik Sorumlusu</h3>
|
||||
<h3>Mal Sorumlusu</h3>
|
||||
<div class="form-row">
|
||||
<div class="form-group">
|
||||
<label for="commander-name">Adı Soyadı</label>
|
||||
@@ -443,6 +455,30 @@
|
||||
required
|
||||
/>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<div class="form-group">
|
||||
<label for="commander-username">Kullanıcı Adı</label>
|
||||
<input
|
||||
id="commander-username"
|
||||
type="text"
|
||||
class="form-input"
|
||||
bind:value={formData.commander.username}
|
||||
placeholder="kullanici_adi"
|
||||
required
|
||||
/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="commander-password">Şifre</label>
|
||||
<input
|
||||
id="commander-password"
|
||||
type="password"
|
||||
class="form-input"
|
||||
bind:value={formData.commander.password}
|
||||
placeholder="şifre123"
|
||||
required
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal-actions">
|
||||
@@ -514,7 +550,7 @@
|
||||
</div>
|
||||
|
||||
<div class="form-section">
|
||||
<h3>Birlik Sorumlusu</h3>
|
||||
<h3>Mal Sorumlusu</h3>
|
||||
<div class="form-row">
|
||||
<div class="form-group">
|
||||
<label for="edit-commander-name">Adı Soyadı</label>
|
||||
@@ -575,6 +611,30 @@
|
||||
required
|
||||
/>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<div class="form-group">
|
||||
<label for="edit-commander-username">Kullanıcı Adı</label>
|
||||
<input
|
||||
id="edit-commander-username"
|
||||
type="text"
|
||||
class="form-input"
|
||||
bind:value={formData.commander.username}
|
||||
placeholder="kullanici_adi"
|
||||
required
|
||||
/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="edit-commander-password">Şifre</label>
|
||||
<input
|
||||
id="edit-commander-password"
|
||||
type="password"
|
||||
class="form-input"
|
||||
bind:value={formData.commander.password}
|
||||
placeholder="şifre123"
|
||||
required
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal-actions">
|
||||
|
||||
Reference in New Issue
Block a user