Siirrä allekirjoitukset Asiakaspalvelu-välilehdelle + postilaatikoiden piilotus

- Uusi "Omat asetukset" -näkymä Asiakaspalvelu-tabiin (allekirjoitukset + mailbox-näkyvyys)
- Uusi user_hidden_mailboxes-taulu piilotettavien postilaatikoiden tallennukseen
- API: profile_update + check_auth tukevat hidden_mailboxes-listaa
- Tikettilista suodattaa piilotettujen mailboxien tiketit automaattisesti
- Reply-formin mailbox-dropdown piilottaa piilotetut postilaatikot
- Allekirjoitukset poistettu Oma profiili -modalista (siirretty Asiakaspalvelu-asetuksiin)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-11 22:33:38 +02:00
parent ead68715ee
commit 150c774bb3
4 changed files with 154 additions and 35 deletions

21
db.php
View File

@@ -159,6 +159,13 @@ function initDatabase(): void {
UNIQUE KEY udx_user_mailbox (user_id, mailbox_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4",
"CREATE TABLE IF NOT EXISTS user_hidden_mailboxes (
user_id VARCHAR(20) NOT NULL,
mailbox_id VARCHAR(20) NOT NULL,
PRIMARY KEY (user_id, mailbox_id),
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4",
"CREATE TABLE IF NOT EXISTS config (
config_key VARCHAR(100) PRIMARY KEY,
config_value TEXT
@@ -776,6 +783,8 @@ function dbGetUser(string $id): ?array {
}
$u['signatures'] = $sigs;
$u['hidden_mailboxes'] = _dbFetchColumn("SELECT mailbox_id FROM user_hidden_mailboxes WHERE user_id = ?", [$id]);
return $u;
}
@@ -797,6 +806,8 @@ function dbGetUserByUsername(string $username): ?array {
}
$u['signatures'] = $sigs;
$u['hidden_mailboxes'] = _dbFetchColumn("SELECT mailbox_id FROM user_hidden_mailboxes WHERE user_id = ?", [$u['id']]);
return $u;
}
@@ -838,6 +849,16 @@ function dbSaveUser(array $user): void {
}
}
// Piilotetut postilaatikot
if (array_key_exists('hidden_mailboxes', $user)) {
_dbExecute("DELETE FROM user_hidden_mailboxes WHERE user_id = ?", [$user['id']]);
if (!empty($user['hidden_mailboxes'])) {
foreach ($user['hidden_mailboxes'] as $mbId) {
_dbExecute("INSERT IGNORE INTO user_hidden_mailboxes (user_id, mailbox_id) VALUES (?, ?)", [$user['id'], $mbId]);
}
}
}
$db->commit();
} catch (Exception $e) {
$db->rollback();