ReleaseV19+CorvaraRename

This commit is contained in:
Flatlogic Bot 2026-02-21 19:38:12 +00:00
parent a27d7005d7
commit c4ae0a04ea
8 changed files with 42 additions and 42 deletions

View File

@ -184,7 +184,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'PUT') {
$metadata = json_encode([
'is_manual_announcement' => true,
'title' => $data['ann_title'] ?? '',
'color' => $data['ann_color'] ?? '#5865f2',
'color' => $data['ann_color'] ?? '#3c6f7c',
'description' => $content,
'url' => $data['ann_link'] ?? ''
]);
@ -218,7 +218,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'PUT') {
'poll_choice_type' => ($data['allow_multiple'] ?? '0') == '1' ? 'multiple' : 'single',
'is_anonymous' => ($data['is_anonymous'] ?? '0') == '1',
'poll_end_date' => $end_date,
'poll_color' => $data['poll_color'] ?? '#5865f2'
'poll_color' => $data['poll_color'] ?? '#3c6f7c'
]);
}
@ -350,7 +350,7 @@ if (isset($_POST['is_announcement']) && $_POST['is_announcement'] == '1') {
$metadata = json_encode([
'is_manual_announcement' => true,
'title' => $_POST['ann_title'] ?? '',
'color' => $_POST['ann_color'] ?? '#5865f2',
'color' => $_POST['ann_color'] ?? '#3c6f7c',
'description' => $content,
'url' => $_POST['ann_link'] ?? ''
]);
@ -375,7 +375,7 @@ if (isset($_POST['is_announcement']) && $_POST['is_announcement'] == '1') {
'poll_choice_type' => ($_POST['allow_multiple'] ?? '0') == '1' ? 'multiple' : 'single',
'is_anonymous' => ($_POST['is_anonymous'] ?? '0') == '1',
'poll_end_date' => $end_date,
'poll_color' => $_POST['poll_color'] ?? '#5865f2'
'poll_color' => $_POST['poll_color'] ?? '#3c6f7c'
]);
} elseif (!empty($content)) {
$urls = extractUrls($content);

View File

@ -5,7 +5,7 @@
--bg-members: #2b2d31;
--text-primary: #dbdee1;
--text-muted: #949ba4;
--blurple: #5865f2;
--blurple: #3c6f7c;
--hover: #35373c;
--active: #3f4147;
--separator: rgba(255,255,255,0.1);
@ -296,7 +296,7 @@ body {
overflow: hidden;
}
.discord-app {
.corvara-app {
display: flex;
height: 100vh;
width: 100vw;
@ -520,7 +520,7 @@ body {
.form-control:focus {
background-color: var(--bg-servers);
color: var(--text-primary);
box-shadow: 0 0 0 0.25rem rgba(88, 101, 242, 0.25);
box-shadow: 0 0 0 0.25rem rgba(60, 111, 124, 0.25);
}
.form-control:disabled, .form-control[readonly] {
@ -736,17 +736,17 @@ body {
}
.reaction-badge:hover {
border-color: #5865f2;
border-color: #3c6f7c;
background-color: #35373c;
}
.reaction-badge.active {
background-color: rgba(88, 101, 242, 0.15);
border-color: #5865f2;
background-color: rgba(60, 111, 124, 0.15);
border-color: #3c6f7c;
}
.reaction-badge .count {
color: #5865f2;
color: #3c6f7c;
font-weight: bold;
}
@ -1118,7 +1118,7 @@ body {
/* Mentions */
.mention {
background-color: rgba(88, 101, 242, 0.3);
background-color: rgba(60, 111, 124, 0.3);
color: #fff;
font-weight: 500;
padding: 0 2px;
@ -1137,7 +1137,7 @@ body {
/* Pinned Messages */
.message-item.pinned {
background-color: rgba(88, 101, 242, 0.05);
background-color: rgba(60, 111, 124, 0.05);
border-left: 2px solid var(--blurple);
}
@ -1186,7 +1186,7 @@ body {
.pinned-badge {
font-size: 0.7em;
color: var(--blurple);
background-color: rgba(88, 101, 242, 0.1);
background-color: rgba(60, 111, 124, 0.1);
padding: 1px 6px;
border-radius: 10px;
display: inline-flex;
@ -1202,8 +1202,8 @@ body {
/* Announcement Style */
.announcement-style {
background-color: rgba(88, 101, 242, 0.05);
border: 1px solid rgba(88, 101, 242, 0.1);
background-color: rgba(60, 111, 124, 0.05);
border: 1px solid rgba(60, 111, 124, 0.1);
border-radius: 8px;
margin-bottom: 8px;
padding: 12px !important;

View File

@ -936,10 +936,10 @@ document.addEventListener('DOMContentLoaded', () => {
const title = titleEl ? titleEl.innerText : '';
const description = msgItem.dataset.rawContent;
const embedEl = msgItem.querySelector('.rich-embed');
const color = embedEl ? embedEl.style.borderLeftColor : '#5865f2';
const color = embedEl ? embedEl.style.borderLeftColor : '#3c6f7c';
const rgbToHex = (rgb) => {
if (!rgb || !rgb.startsWith('rgb')) return '#5865f2';
if (!rgb || !rgb.startsWith('rgb')) return '#3c6f7c';
const parts = rgb.match(/\d+/g);
return "#" + parts.map(x => {
const hex = parseInt(x).toString(16);
@ -3794,7 +3794,7 @@ document.addEventListener('DOMContentLoaded', () => {
if (endDateContainer) endDateContainer.style.display = 'block';
if (eventBannerPreview) {
eventBannerPreview.style.backgroundImage = 'none';
eventBannerPreview.style.backgroundColor = '#5865f2';
eventBannerPreview.style.backgroundColor = '#3c6f7c';
}
}
});
@ -3931,8 +3931,8 @@ document.addEventListener('DOMContentLoaded', () => {
eventBannerPreview.style.backgroundColor = 'transparent';
} else {
eventBannerPreview.style.backgroundImage = 'none';
eventBannerPreview.style.backgroundColor = data.bannerColor || '#5865f2';
eventBannerColor.value = data.bannerColor || '#5865f2';
eventBannerPreview.style.backgroundColor = data.bannerColor || '#3c6f7c';
eventBannerColor.value = data.bannerColor || '#3c6f7c';
}
const modal = new bootstrap.Modal(addEventModalEl);

View File

@ -663,7 +663,7 @@ class VoiceChannel {
audio.muted = this.isDeafened;
if (!this.isDeafened) audio.volume = this.settings.outputVolume || 1.0;
});
// If we deafen, we usually also mute in Discord
// If we deafen, we usually also mute in Corvara
if (this.isDeafened && !this.isSelfMuted) {
this.setMute(true);
}

View File

@ -29,15 +29,15 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
<meta charset="UTF-8">
<title>Connexion | Corvara</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="../assets/css/discord.css">
<link rel="stylesheet" href="../assets/css/corvara.css">
<style>
body { background-color: #313338; display: flex; align-items: center; justify-content: center; height: 100vh; }
.auth-card { background-color: #2b2d31; padding: 32px; border-radius: 8px; width: 100%; max-width: 480px; box-shadow: 0 2px 10px rgba(0,0,0,0.2); }
.form-label { color: #b5bac1; font-size: 12px; font-weight: bold; text-transform: uppercase; }
.form-control { background-color: #1e1f22; border: none; color: #dbdee1; padding: 10px; }
.form-control:focus { background-color: #1e1f22; color: #dbdee1; box-shadow: none; }
.btn-blurple { background-color: #5865f2; color: white; width: 100%; font-weight: bold; margin-top: 20px; }
.btn-blurple:hover { background-color: #4752c4; color: white; }
.btn-blurple { background-color: #3c6f7c; color: white; width: 100%; font-weight: bold; margin-top: 20px; }
.btn-blurple:hover { background-color: #2e5661; color: white; }
.auth-footer { color: #949ba4; font-size: 14px; margin-top: 10px; }
.auth-footer a { color: #00a8fc; text-decoration: none; }
</style>

View File

@ -56,15 +56,15 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
<meta charset="UTF-8">
<title>Inscription | Corvara</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="../assets/css/discord.css">
<link rel="stylesheet" href="../assets/css/corvara.css">
<style>
body { background-color: #313338; display: flex; align-items: center; justify-content: center; height: 100vh; }
.auth-card { background-color: #2b2d31; padding: 32px; border-radius: 8px; width: 100%; max-width: 480px; box-shadow: 0 2px 10px rgba(0,0,0,0.2); }
.form-label { color: #b5bac1; font-size: 12px; font-weight: bold; text-transform: uppercase; }
.form-control { background-color: #1e1f22; border: none; color: #dbdee1; padding: 10px; }
.form-control:focus { background-color: #1e1f22; color: #dbdee1; box-shadow: none; }
.btn-blurple { background-color: #5865f2; color: white; width: 100%; font-weight: bold; margin-top: 20px; }
.btn-blurple:hover { background-color: #4752c4; color: white; }
.btn-blurple { background-color: #3c6f7c; color: white; width: 100%; font-weight: bold; margin-top: 20px; }
.btn-blurple:hover { background-color: #2e5661; color: white; }
.auth-footer { color: #949ba4; font-size: 14px; margin-top: 10px; }
.auth-footer a { color: #00a8fc; text-decoration: none; }
</style>

View File

@ -32,7 +32,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
<title>Contact Us - Corvara</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="assets/css/discord.css?v=<?php echo time(); ?>">
<link rel="stylesheet" href="assets/css/corvara.css?v=<?php echo time(); ?>">
<style>
body {
background-color: var(--bg-chat);
@ -69,7 +69,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
font-weight: bold;
}
.btn-primary:hover {
background-color: #4752c4;
background-color: #2e5661;
}
</style>
</head>

View File

@ -456,7 +456,7 @@ $projectImageUrl = $_SERVER['PROJECT_IMAGE_URL'] ?? '';
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="assets/css/discord.css?v=<?php echo time(); ?>">
<link rel="stylesheet" href="assets/css/corvara.css?v=<?php echo time(); ?>">
<script src="https://cdn.jsdelivr.net/npm/sortablejs@1.15.0/Sortable.min.js"></script>
<script>
window.currentUserId = <?php echo $current_user_id; ?>;
@ -550,7 +550,7 @@ $projectImageUrl = $_SERVER['PROJECT_IMAGE_URL'] ?? '';
}
.poll-option-row.voted {
border-color: var(--blurple) !important;
background: rgba(88, 101, 242, 0.1) !important;
background: rgba(60, 111, 124, 0.1) !important;
}
.poll-option-row.expired {
opacity: 0.8;
@ -579,7 +579,7 @@ $projectImageUrl = $_SERVER['PROJECT_IMAGE_URL'] ?? '';
</head>
<body data-theme="<?php echo htmlspecialchars($user['theme'] ?: 'dark'); ?>">
<div class="discord-app">
<div class="corvara-app">
<!-- Servers Sidebar -->
<div class="servers-sidebar">
<a href="index.php?server_id=dms" class="server-icon <?php echo $active_server_id == 'dms' ? 'active' : ''; ?>" title="Messages privés">
@ -1023,7 +1023,7 @@ $projectImageUrl = $_SERVER['PROJECT_IMAGE_URL'] ?? '';
data-question="<?php echo htmlspecialchars($m['content']); ?>"
data-options='<?php echo htmlspecialchars(json_encode($meta['poll_options'] ?? [])); ?>'
data-emotes='<?php echo htmlspecialchars(json_encode($meta['poll_emotes'] ?? [])); ?>'
data-color="<?php echo htmlspecialchars($meta['poll_color'] ?? '#5865f2'); ?>"
data-color="<?php echo htmlspecialchars($meta['poll_color'] ?? '#3c6f7c'); ?>"
data-duration="<?php echo !empty($meta['poll_end_date']) ? (strtotime($meta['poll_end_date']) - strtotime($m['created_at'])) : 86400; ?>"
data-multiple="<?php echo ($meta['poll_choice_type'] ?? 'single') === 'multiple' ? '1' : '0'; ?>"
data-anonymous="<?php echo ($meta['is_anonymous'] ?? false) ? '1' : '0'; ?>"
@ -1669,7 +1669,7 @@ $projectImageUrl = $_SERVER['PROJECT_IMAGE_URL'] ?? '';
<button type="button" class="btn border-0 text-muted p-2" id="chat-emoji-btn" title="Sélecteur d'emojis" <?php echo (isset($active_thread) && $active_thread['is_locked']) ? 'disabled style="opacity: 0.5;"' : ''; ?>>
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M8 14s1.5 2 4 2 4-2 4-2"></path><line x1="9" y1="9" x2="9.01" y2="9"></line><line x1="15" y1="9" x2="15.01" y2="9"></line></svg>
</button>
<button type="submit" class="btn border-0 p-2 ms-1" id="chat-send-btn" title="Envoyer (Entrée)" style="color: #5865f2; <?php echo (isset($active_thread) && $active_thread['is_locked']) ? 'display: none;' : ''; ?>">
<button type="submit" class="btn border-0 p-2 ms-1" id="chat-send-btn" title="Envoyer (Entrée)" style="color: #3c6f7c; <?php echo (isset($active_thread) && $active_thread['is_locked']) ? 'display: none;' : ''; ?>">
<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="22" y1="2" x2="11" y2="13"></line><polygon points="22 2 15 22 11 13 2 9 22 2"></polygon></svg>
</button>
</div>
@ -1720,9 +1720,9 @@ $projectImageUrl = $_SERVER['PROJECT_IMAGE_URL'] ?? '';
<div class="mb-3">
<label class="form-label small text-muted text-uppercase fw-bold">Couleur de la bordure</label>
<div class="d-flex gap-2 flex-wrap">
<input type="color" id="announcement-color" class="form-control form-control-color bg-transparent border-0" value="#5865f2" title="Choisir une couleur">
<input type="color" id="announcement-color" class="form-control form-control-color bg-transparent border-0" value="#3c6f7c" title="Choisir une couleur">
<div class="color-presets d-flex gap-2 align-items-center">
<span class="rounded-circle" style="width: 20px; height: 20px; background: #5865f2; cursor: pointer;" onclick="document.getElementById('announcement-color').value='#5865f2'"></span>
<span class="rounded-circle" style="width: 20px; height: 20px; background: #3c6f7c; cursor: pointer;" onclick="document.getElementById('announcement-color').value='#3c6f7c'"></span>
<span class="rounded-circle" style="width: 20px; height: 20px; background: #23a559; cursor: pointer;" onclick="document.getElementById('announcement-color').value='#23a559'"></span>
<span class="rounded-circle" style="width: 20px; height: 20px; background: #f04747; cursor: pointer;" onclick="document.getElementById('announcement-color').value='#f04747'"></span>
<span class="rounded-circle" style="width: 20px; height: 20px; background: #faa61a; cursor: pointer;" onclick="document.getElementById('announcement-color').value='#faa61a'"></span>
@ -2433,7 +2433,7 @@ document.addEventListener('DOMContentLoaded', () => {
<div class="mb-3">
<label class="form-label text-uppercase fw-bold" style="font-size: 0.7em; color: var(--text-muted);">Couleur du thème</label>
<input type="color" name="theme_color" class="form-control form-control-color w-100" value="<?php echo $active_server['theme_color'] ?? '#5865f2'; ?>" title="Choisir la couleur du thème du serveur">
<input type="color" name="theme_color" class="form-control form-control-color w-100" value="<?php echo $active_server['theme_color'] ?? '#3c6f7c'; ?>" title="Choisir la couleur du thème du serveur">
</div>
<div id="server-icon-search-results" class="d-flex flex-wrap gap-2 mb-3 overflow-auto" style="max-height: 150px;"></div>
@ -2564,7 +2564,7 @@ document.addEventListener('DOMContentLoaded', () => {
<!-- Add Event Modal -->
<div class="modal fade" id="addEventModal" tabindex="-1">
<div class="modal-dialog modal-lg">
<div class="modal-content bg-discord text-white">
<div class="modal-content bg-corvara text-white">
<div class="modal-header border-0 pb-0">
<h5 class="modal-title fw-bold" id="event-modal-title">Ajouter un événement</h5>
<button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal"></button>
@ -2582,12 +2582,12 @@ document.addEventListener('DOMContentLoaded', () => {
</div>
<div class="col-md-6">
<label class="form-label text-uppercase small fw-bold text-muted">Ou Couleur de bannière</label>
<input type="color" name="banner_color" id="event-banner-color" class="form-control form-control-color bg-dark border-secondary w-100" value="#5865f2">
<input type="color" name="banner_color" id="event-banner-color" class="form-control form-control-color bg-dark border-secondary w-100" value="#3c6f7c">
</div>
<!-- Preview -->
<div class="col-12">
<div id="event-banner-preview" style="height: 100px; border-radius: 8px; background-color: #5865f2; background-size: cover; background-position: center;"></div>
<div id="event-banner-preview" style="height: 100px; border-radius: 8px; background-color: #3c6f7c; background-size: cover; background-position: center;"></div>
</div>
<!-- Title & Description -->
@ -2853,7 +2853,7 @@ document.addEventListener('DOMContentLoaded', () => {
<div class="col-md-6">
<div class="mb-3">
<label class="form-label text-uppercase fw-bold small text-muted">Couleur d'accentuation</label>
<input type="color" name="poll_color" class="form-control form-control-color bg-dark border-0 w-100" value="#5865f2">
<input type="color" name="poll_color" class="form-control form-control-color bg-dark border-0 w-100" value="#3c6f7c">
</div>
</div>
</div>