Skip to content

Commit fc00902

Browse files
committed
fix(frontend): prevent archiving already archived messages
1 parent 8ea39f8 commit fc00902

File tree

4 files changed

+16
-18
lines changed

4 files changed

+16
-18
lines changed

modules/core/hm-mailbox.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -633,7 +633,7 @@ public function select_folder($folder) {
633633

634634
public function is_archive_folder($id, $user_config, $current_folder) {
635635
if ($this->is_imap()) {
636-
return $this->connection->is_archive_folder($id, $user_config, $current_folder);
636+
return is_imap_archive_folder($id, $user_config, $current_folder);
637637
}
638638
return false;
639639
}

modules/imap/functions.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1651,3 +1651,17 @@ function save_sent_msg($handler, $imap_id, $mailbox, $imap_details, $msg, $msg_i
16511651
}
16521652
return [$uid, $sent_folder];
16531653
}}
1654+
1655+
if (!hm_exists('is_imap_archive_folder')) {
1656+
function is_imap_archive_folder($server_id, $user_config, $current_folder) {
1657+
$special_folders = $user_config->get('special_imap_folders', array());
1658+
1659+
if (isset($special_folders[$server_id]['archive'])) {
1660+
$archive_folder = $special_folders[$server_id]['archive'];
1661+
if (bin2hex($archive_folder) == $current_folder) {
1662+
return true;
1663+
}
1664+
}
1665+
1666+
return false;
1667+
}}

modules/imap/hm-imap.php

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2668,15 +2668,5 @@ public function server_support_children_capability() {
26682668
return false;
26692669
}
26702670

2671-
public function is_archive_folder($id, $user_config, $current_folder) {
2672-
2673-
if (isset($user_config->get('special_imap_folders', array())[$id]['archive'])) {
2674-
$archive_folder = $user_config->get('special_imap_folders', array())[$id]['archive'];
2675-
if (bin2hex($archive_folder) == $current_folder) {
2676-
return true;
2677-
}
2678-
}
2679-
return false;
2680-
}
26812671
}
26822672
}

modules/imap/output_modules.php

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -385,14 +385,8 @@ protected function output() {
385385
$txt .= '<a class="delete_link hlink text-decoration-none btn btn-sm btn-outline-secondary" id="delete_message" href="#">'.$this->trans('Delete').'</a>';
386386
$txt .= '<div class="position-relative"><a class="hlink text-decoration-none btn btn-sm btn-outline-secondary dropdown-toggle" id="copy_message" href="#" data-bs-toggle="dropdown">'.$this->trans('Copy').'</a><div class="move_to_location dropdown-menu" data-bs-auto-close="outside"></div></div>';
387387
$txt .= '<div class="position-relative"><a class="hlink text-decoration-none btn btn-sm btn-outline-secondary dropdown-toggle" id="move_message" href="#" data-bs-toggle="dropdown">'.$this->trans('Move').'</a><div class="move_to_location dropdown-menu" data-bs-auto-close="outside"></div></div>';
388-
$txt .= '<a class="archive_link hlink text-decoration-none btn btn-sm btn-outline-secondary" id="archive_message" href="#">'.$this->trans('Archive').'</a>';
389-
$txt .= '<a class="hlink text-decoration-none" id="unread_message" href="#">'.$this->trans('Unread').'</a>';
390-
$txt .= '<a class="delete_link hlink text-decoration-none" id="delete_message" href="#">'.$this->trans('Delete').'</a>';
391-
$txt .= '<div class="position-relative"><a class="hlink" id="copy_message" href="#">'.$this->trans('Copy').'</a><div class="move_to_location"></div></div>';
392-
$txt .= '<div class="position-relative"><a class="hlink" id="move_message" href="#">'.$this->trans('Move').'</a><div class="move_to_location"></div></div>';
393-
394388
if (!$this->get('is_archive_folder')) {
395-
$txt .= '<a class="archive_link hlink text-decoration-none" id="archive_message" href="#">'.$this->trans('Archive').'</a>';
389+
$txt .= '<a class="archive_link hlink text-decoration-none btn btn-sm btn-outline-secondary" id="archive_message" href="#">'.$this->trans('Archive').'</a>';
396390
}
397391

398392
if($this->get('tags')){

0 commit comments

Comments
 (0)