summaryrefslogtreecommitdiff
path: root/plugins/archive/archive.js
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/archive/archive.js')
-rw-r--r--plugins/archive/archive.js44
1 files changed, 11 insertions, 33 deletions
diff --git a/plugins/archive/archive.js b/plugins/archive/archive.js
index 6ed4f971a..af2b0d26d 100644
--- a/plugins/archive/archive.js
+++ b/plugins/archive/archive.js
@@ -1,56 +1,34 @@
/*
* Archive plugin script
- * @version 2.1
+ * @version @package_version@
*/
function rcmail_archive(prop)
{
if (!rcmail.env.uid && (!rcmail.message_list || !rcmail.message_list.get_selection().length))
return;
-
- if (!rcmail_is_archive()) {
- if (!rcmail.env.archive_type) {
- // simply move to archive folder (if no partition type is set)
- rcmail.command('move', rcmail.env.archive_folder);
- }
- else {
- // let the server sort the messages to the according subfolders
- rcmail.http_post('plugin.move2archive', rcmail.selection_post_data());
- }
- }
-}
-
-function rcmail_is_archive()
-{
- // check if current folder is an archive folder or one of its children
- if (rcmail.env.mailbox == rcmail.env.archive_folder
- || rcmail.env.mailbox.startsWith(rcmail.env.archive_folder + rcmail.env.delimiter)
- ) {
- return true;
- }
+
+ if (rcmail.env.mailbox != rcmail.env.archive_folder)
+ rcmail.command('moveto', rcmail.env.archive_folder);
}
// callback for app-onload event
if (window.rcmail) {
rcmail.addEventListener('init', function(evt) {
+
// register command (directly enable in message view mode)
- rcmail.register_command('plugin.archive', rcmail_archive, rcmail.env.uid && !rcmail_is_archive());
-
+ rcmail.register_command('plugin.archive', rcmail_archive, (rcmail.env.uid && rcmail.env.mailbox != rcmail.env.archive_folder));
+
// add event-listener to message list
if (rcmail.message_list)
- rcmail.message_list.addEventListener('select', function(list) {
- rcmail.enable_command('plugin.archive', list.get_selection().length > 0 && !rcmail_is_archive());
+ rcmail.message_list.addEventListener('select', function(list){
+ rcmail.enable_command('plugin.archive', (list.get_selection().length > 0 && rcmail.env.mailbox != rcmail.env.archive_folder));
});
-
+
// set css style for archive folder
var li;
if (rcmail.env.archive_folder && (li = rcmail.get_folder_li(rcmail.env.archive_folder, '', true)))
$(li).addClass('archive');
-
- // callback for server response
- rcmail.addEventListener('plugin.move2archive_response', function(result) {
- if (result.update)
- rcmail.command('list'); // refresh list
- });
})
}
+