\x89PNG\r\n\x1a\n\x00\x00\x00\x0DIHDR\x00\x00\x00\x01\x00 \x00\x00\x01\x08\x06\x00\x00\x00\x1F\x15\xC4\x89\x00\x00\x00 \x0AIDATx\x9Ccb\x00\x00\x00\x06\x00\x03\x1A\x05\x9D\x00\x00 \x00\x00IEND\xAE\x42\x60\x82 www.csarite.com
KUJUNTI.ID MINISH3LL
Path : /var/www/html/yedekledb24/DatabaseBackupMasterv2/templates/
(S)h3ll Cr3at0r :
F!le Upl0ad :

B-Con CMD Config cPanel C-Rdp D-Log Info Jump Mass Ransom Symlink vHost Zone-H

Current File : /var/www/html/yedekledb24/DatabaseBackupMasterv2/templates/backup_jobs.html


{% extends "base.html" %}

{% block content %}
<div class="container-fluid">
    <div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pt-3 pb-2 mb-3 border-bottom">
        <h1 class="h2">Yedekleme Görevleri</h1>
        <div class="btn-toolbar mb-2 mb-md-0">
            <button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#addBackupJobModal">
                <i class="fas fa-plus"></i> Yedekleme Görevi Ekle
            </button>
        </div>
    </div>

    <!-- Backup Jobs Table -->
    <div class="card">
        <div class="card-body">
            <div class="table-responsive">
                <table class="table table-hover align-middle">
                    <thead>
                        <tr>
                            <th>Durum</th>
                            <th>Adı</th>
                            <th>Veritabanı</th>
                            <th>VT Tipi</th>
                            <th>Depolama</th>
                            <th>Depolama Tipi</th>
                            <th>Zamanlama</th>
                            <th>Son Çalışma</th>
                            <th>İşlemler</th>
                        </tr>
                    </thead>
                    <tbody>
                        {% for job in backup_jobs %}
                        <tr>
                            <td>
                                {% if job.enabled %}
                                    <span class="badge bg-success">Etkin</span>
                                {% else %}
                                    <span class="badge bg-danger">Devre Dışı</span>
                                {% endif %}
                            </td>
                            <td>{{ job.name }}</td>
                            <td>
                                {% for db in db_connections %}
                                    {% if db.id == job.database_id %}
                                        {{ db.name }}
                                    {% endif %}
                                {% endfor %}
                            </td>
                            <td>
                                {% for db in db_connections %}
                                    {% if db.id == job.database_id %}
                                        {% if db.db_type == 'mysql' %}
                                            <span class="badge bg-primary">
                                                <i class="fa-brands fa-mysql me-1"></i>MySQL
                                            </span>
                                        {% elif db.db_type == 'mariadb' %}
                                            <span class="badge bg-info">
                                                <i class="fa-solid fa-server me-1"></i>MariaDB
                                            </span>
                                        {% elif db.db_type == 'postgresql' %}
                                            <span class="badge bg-success">
                                                <i class="fa-solid fa-database me-1"></i>PostgreSQL
                                            </span>
                                        {% endif %}
                                    {% endif %}
                                {% endfor %}
                            </td>
                            <td>
                                {% for storage in storage_targets %}
                                    {% if storage.id == job.storage_id %}
                                        {{ storage.name }}
                                    {% endif %}
                                {% endfor %}
                            </td>
                            <td>
                                {% for storage in storage_targets %}
                                    {% if storage.id == job.storage_id %}
                                        {% if storage.storage_type == 'smb' %}
                                            <span class="badge bg-primary">
                                                <i class="fas fa-share-alt me-1"></i>SMB/CIFS
                                            </span>
                                        {% elif storage.storage_type == 'nfs' %}
                                            <span class="badge bg-info">
                                                <i class="fas fa-network-wired me-1"></i>NFS
                                            </span>
                                        {% elif storage.storage_type == 'ftp' %}
                                            <span class="badge bg-success">
                                                <i class="fas fa-upload me-1"></i>FTP
                                            </span>
                                        {% endif %}
                                    {% endif %}
                                {% endfor %}
                            </td>
                            <td>
                                <span class="badge bg-info">{{ job.schedule_type|capitalize }}</span>
                                <small>{{ job.schedule_value }}</small>
                            </td>
                            <td>
                                {% if job.last_run %}
                                    {{ job.last_run.strftime('%Y-%m-%d %H:%M:%S') }}
                                {% else %}
                                    Hiç Çalışmadı
                                {% endif %}
                            </td>
                            <td>
                                <div class="btn-group" role="group">
                                    <form action="{{ url_for('run_backup_job', job_id=job.id) }}" method="post">
                                        {{ form.csrf_token }}
                                        <button type="submit" class="btn btn-sm btn-outline-primary me-1">
                                            <i class="fas fa-play"></i> Şimdi Çalıştır
                                        </button>
                                    </form>
                                    <form action="{{ url_for('toggle_backup_job', job_id=job.id) }}" method="post">
                                        {{ form.csrf_token }}
                                        <button type="submit" class="btn btn-sm btn-outline-{% if job.enabled %}warning{% else %}success{% endif %} me-1">
                                            <i class="fas {% if job.enabled %}fa-pause{% else %}fa-play{% endif %}"></i> 
                                            {% if job.enabled %}Devre Dışı Bırak{% else %}Etkinleştir{% endif %}
                                        </button>
                                    </form>
                                    <button type="button" class="btn btn-sm btn-outline-danger" 
                                            data-bs-toggle="modal" data-bs-target="#deleteModal{{ job.id }}">
                                        <i class="fas fa-trash"></i> Sil
                                    </button>
                                </div>
                                
                                <!-- Delete Confirmation Modal -->
                                <div class="modal fade" id="deleteModal{{ job.id }}" tabindex="-1" aria-hidden="true">
                                    <div class="modal-dialog">
                                        <div class="modal-content">
                                            <div class="modal-header">
                                                <h5 class="modal-title">Silme İşlemini Onayla</h5>
                                                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
                                            </div>
                                            <div class="modal-body">
                                                <strong>{{ job.name }}</strong> adlı yedekleme görevini silmek istediğinizden emin misiniz?
                                                Bu işlem geri alınamaz.
                                            </div>
                                            <div class="modal-footer">
                                                <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">İptal</button>
                                                <form action="{{ url_for('delete_backup_job', job_id=job.id) }}" method="post">
                                                    <button type="submit" class="btn btn-danger">Sil</button>
                                                </form>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </td>
                        </tr>
                        {% endfor %}
                        
                        {% if not backup_jobs %}
                        <tr>
                            <td colspan="9" class="text-center">Yedekleme görevi bulunamadı</td>
                        </tr>
                        {% endif %}
                    </tbody>
                </table>
            </div>
        </div>
    </div>
</div>

<!-- Add Backup Job Modal -->
<div class="modal fade" id="addBackupJobModal" tabindex="-1" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title">Yedekleme Görevi Ekle</h5>
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
            </div>
            <form method="post" action="{{ url_for('add_backup_job') }}">
                <div class="modal-body">
                    {{ form.csrf_token }}
                    <div class="mb-3">
                        <label for="name" class="form-label">{{ form.name.label }}</label>
                        {{ form.name(class="form-control", placeholder="örn., Günlük MySQL Yedekleme") }}
                    </div>
                    
                    <div class="mb-3">
                        <label for="database_id" class="form-label">{{ form.database_id.label }}</label>
                        {% if db_connections %}
                            {{ form.database_id(class="form-select") }}
                        {% else %}
                            <select class="form-select" disabled>
                                <option>Kullanılabilir veritabanı bağlantısı yok</option>
                            </select>
                            <div class="form-text text-danger">
                                Önce bir veritabanı bağlantısı eklemeniz gerekiyor.
                                <a href="{{ url_for('databases') }}">Buradan ekleyin</a>
                            </div>
                        {% endif %}
                    </div>
                    
                    <div class="mb-3">
                        <label for="storage_id" class="form-label">{{ form.storage_id.label }}</label>
                        {% if storage_targets %}
                            {{ form.storage_id(class="form-select") }}
                        {% else %}
                            <select class="form-select" disabled>
                                <option>Kullanılabilir depolama hedefi yok</option>
                            </select>
                            <div class="form-text text-danger">
                                Önce bir depolama hedefi eklemeniz gerekiyor.
                                <a href="{{ url_for('storage') }}">Buradan ekleyin</a>
                            </div>
                        {% endif %}
                    </div>
                    
                    <div class="mb-3">
                        <label for="schedule_type" class="form-label">{{ form.schedule_type.label }}</label>
                        {{ form.schedule_type(class="form-select", id="scheduleType") }}
                    </div>
                    
                    <div class="mb-3">
                        <label for="schedule_value" class="form-label">{{ form.schedule_value.label }}</label>
                        {{ form.schedule_value(class="form-control", id="scheduleValue") }}
                        <div class="form-text" id="scheduleHelp">
                            Günlük için: SS:DD (örn., 23:00)<br>
                            Haftalık için: gün:SS:DD (örn., pzt:23:00)<br>
                            Aylık için: gün:SS:DD (örn., 1:23:00)<br>
                            Özel için: standart cron ifadesi
                        </div>
                    </div>
                    
                    <div class="mb-3">
                        <label for="retention_days" class="form-label">{{ form.retention_days.label }}</label>
                        {{ form.retention_days(class="form-control", value=30) }}
                    </div>
                    
                    <div class="mb-3 form-check">
                        {{ form.enabled(class="form-check-input", checked=true) }}
                        <label class="form-check-label" for="enabled">{{ form.enabled.label }}</label>
                    </div>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">İptal</button>
                    <button type="submit" class="btn btn-primary" 
                            {% if not db_connections or not storage_targets %}disabled{% endif %}>
                        Yedekleme Görevi Ekle
                    </button>
                </div>
            </form>
        </div>
    </div>
</div>

{% endblock %}

{% block scripts %}
<script>
    // Zamanlama yardım metnini seçime göre güncelle
    document.addEventListener('DOMContentLoaded', function() {
        const scheduleTypeSelect = document.getElementById('scheduleType');
        const scheduleValueInput = document.getElementById('scheduleValue');
        
        if (scheduleTypeSelect && scheduleValueInput) {
            scheduleTypeSelect.addEventListener('change', function() {
                const scheduleType = this.value;
                
                switch (scheduleType) {
                    case 'daily':
                        scheduleValueInput.placeholder = "23:00";
                        scheduleValueInput.value = "23:00";
                        break;
                    case 'weekly':
                        scheduleValueInput.placeholder = "pzt:23:00";
                        scheduleValueInput.value = "pzt:23:00";
                        break;
                    case 'monthly':
                        scheduleValueInput.placeholder = "1:23:00";
                        scheduleValueInput.value = "1:23:00";
                        break;
                    case 'custom':
                        scheduleValueInput.placeholder = "0 23 * * *";
                        scheduleValueInput.value = "0 23 * * *";
                        break;
                }
            });
            
            // İlk değeri ayarlamak için change olayını tetikle
            scheduleTypeSelect.dispatchEvent(new Event('change'));
        }
    });
</script>
{% endblock %}


© KUJUNTI.ID