2004-08-23 19:09:10 +02:00
< ? php
/*************************************************************************** \
* eGroupWare - FeLaMiMail *
* http :// www . linux - at - work . de *
* http :// www . phpgw . de *
* http :// www . egroupware . org *
* Written by : Lars Kneschke [ lkneschke @ linux - at - work . de ] *
* ------------------------------------------------- *
* This program is free software ; you can redistribute it and / or modify it *
* under the terms of the GNU General Public License as published by the *
* Free Software Foundation ; either version 2 of the License , or ( at your *
* option ) any later version . *
\ ***************************************************************************/
/* $Id$ */
class uipreferences
{
var $public_functions = array
(
'listFolder' => 'True' ,
'showHeader' => 'True' ,
'getAttachment' => 'True'
);
function uipreferences ()
{
$this -> t = $GLOBALS [ 'phpgw' ] -> template ;
#$this->t->egroupware_hack = False;
$this -> bofelamimail = CreateObject ( 'felamimail.bofelamimail' , $GLOBALS [ 'phpgw' ] -> translation -> charset ());
$this -> uiwidgets = CreateObject ( 'felamimail.uiwidgets' );
$this -> bofelamimail -> openConnection ( '' , OP_HALFOPEN );
$this -> rowColor [ 0 ] = $GLOBALS [ 'phpgw_info' ][ " theme " ][ " bg01 " ];
$this -> rowColor [ 1 ] = $GLOBALS [ 'phpgw_info' ][ " theme " ][ " bg02 " ];
}
function display_app_header ()
{
if ( !@ is_object ( $GLOBALS [ 'phpgw' ] -> js ))
{
$GLOBALS [ 'phpgw' ] -> js = CreateObject ( 'phpgwapi.javascript' );
}
$GLOBALS [ 'phpgw' ] -> js -> validate_file ( 'foldertree' , 'foldertree' );
$GLOBALS [ 'phpgw' ] -> common -> phpgw_header ();
echo parse_navbar ();
}
function listFolder ()
{
// rename a mailbox
2004-09-01 22:52:36 +02:00
if ( isset ( $_POST [ 'newMailboxName' ]))
2004-08-23 19:09:10 +02:00
{
2004-09-01 22:52:36 +02:00
$oldMailboxName = $this -> bofelamimail -> sessionData [ 'preferences' ][ 'mailbox' ];
$newMailboxName = $_POST [ 'newMailboxName' ];
2004-08-23 19:09:10 +02:00
if ( $position = strrpos ( $oldMailboxName , '.' ))
{
$newMailboxName = substr ( $oldMailboxName , 0 , $position + 1 ) . $newMailboxName ;
}
if ( $this -> bofelamimail -> imap_renamemailbox ( $oldMailboxName , $newMailboxName ))
{
$this -> bofelamimail -> sessionData [ 'preferences' ][ 'mailbox' ]
= $newMailboxName ;
$this -> bofelamimail -> saveSessionData ();
}
}
// delete a Folder
2004-09-01 22:52:36 +02:00
if ( isset ( $_POST [ 'deleteFolder' ]) && $this -> bofelamimail -> sessionData [ 'preferences' ][ 'mailbox' ] != 'INBOX' )
2004-08-23 19:09:10 +02:00
{
if ( $this -> bofelamimail -> imap_deletemailbox ( $this -> bofelamimail -> sessionData [ 'preferences' ][ 'mailbox' ]))
{
$this -> bofelamimail -> sessionData [ 'preferences' ][ 'mailbox' ]
= " INBOX " ;
$this -> bofelamimail -> saveSessionData ();
}
}
// create a new Mailbox
2004-09-01 22:52:36 +02:00
if ( isset ( $_POST [ 'newSubFolder' ]))
2004-08-23 19:09:10 +02:00
{
$oldMailboxName = $this -> bofelamimail -> sessionData [ 'preferences' ][ 'mailbox' ] . '.' ;
$oldMailboxName = ( $oldMailboxName == '--topfolderselected--.' ) ? '' : $oldMailboxName ;
2004-09-01 22:52:36 +02:00
$newMailboxName = $oldMailboxName . $_POST [ 'newSubFolder' ];
2004-08-23 19:09:10 +02:00
$this -> bofelamimail -> imap_createmailbox ( $newMailboxName , True );
}
$folderList = $this -> bofelamimail -> getFolderList ();
// check user input BEGIN
// the name of the new current folder
if ( get_var ( 'mailboxName' , array ( 'POST' )) &&
( in_array ( get_var ( 'mailboxName' , array ( 'POST' )), array_flip ( $folderList )) ||
get_var ( 'mailboxName' , array ( 'POST' )) == '--topfolderselected--' ))
{
$this -> bofelamimail -> sessionData [ 'preferences' ][ 'mailbox' ]
= get_var ( 'mailboxName' , array ( 'POST' ));
$this -> bofelamimail -> saveSessionData ();
}
$this -> selectedFolder = $this -> bofelamimail -> sessionData [ 'preferences' ][ 'mailbox' ];
// (un)subscribe to a folder??
2004-09-01 22:52:36 +02:00
if ( isset ( $_POST [ 'folderStatus' ]))
2004-08-23 19:09:10 +02:00
{
2004-09-01 22:52:36 +02:00
$this -> bofelamimail -> subscribe ( $this -> selectedFolder , $_POST [ 'folderStatus' ]);
2004-08-23 19:09:10 +02:00
}
$this -> selectedFolder = $this -> bofelamimail -> sessionData [ 'preferences' ][ 'mailbox' ];
// check user input END
if ( $this -> selectedFolder != '--topfolderselected--' )
$folderStatus = $this -> bofelamimail -> getFolderStatus ( $this -> selectedFolder );
$mailPrefs = $this -> bofelamimail -> getMailPreferences ();
$this -> display_app_header ();
$this -> t -> set_file ( array ( " body " => " preferences_manage_folder.tpl " ));
$this -> t -> set_block ( 'body' , 'main' );
#$this->t->set_block('body','select_row');
$this -> t -> set_block ( 'body' , 'folder_settings' );
$this -> t -> set_block ( 'body' , 'mainFolder_settings' );
$this -> t -> set_block ( 'body' , 'folder_acl' );
$this -> translate ();
#print "<pre>";print_r($folderList);print "</pre>";
// set the default values for the sort links (sort by subject)
$linkData = array
(
'menuaction' => 'felamimail.uipreferences.listFolder'
);
$this -> t -> set_var ( 'form_action' , $GLOBALS [ 'phpgw' ] -> link ( '/index.php' , $linkData ));
// create the link to show folder settings
#$linkData = array
#(
# 'menuaction' => 'felamimail.uipreferences.listFolder',
# 'display' => 'settings'
#);
#$this->t->set_var('settings_url',$GLOBALS['phpgw']->link('/index.php',$linkData));
// create the link to show folder acl
#$linkData = array
#(
# 'menuaction' => 'felamimail.uipreferences.listFolder',
# 'display' => 'acl'
#);
#$this->t->set_var('acl_url',$GLOBALS['phpgw']->link('/index.php',$linkData));
// folder select box
#while(list($key,$value) = @each($folderList))
#{
# $currentFolderStatus = $this->bofelamimail->getFolderStatus($key);
# $this->t->set_var('folder_name',$value);
# $this->t->set_var('folder_value',$key);
# if($this->selectedFolder == $key)
# {
# $this->t->set_var('selected','selected');
# }
# else
# {
# $this->t->set_var('selected','');
# }
# if($currentFolderStatus['subscribed'])
# {
# $this->t->set_var('subscribed','S');
# }
# else
# {
# $this->t->set_var('subscribed','U');
# }
# $this->t->parse('select_rows','select_row',True);
#}
$folderTree = $this -> uiwidgets -> createHTMLFolder
(
$folderList ,
$this -> selectedFolder ,
'folderList' ,
'mailboxName' ,
'IMAP Server' ,
$mailPrefs [ 'username' ] . '@' . $mailPrefs [ 'imapServerAddress' ]
);
$this -> t -> set_var ( 'folder_tree' , $folderTree );
switch ( $_GET [ 'display' ])
{
case 'acl' :
$uiBaseClass = CreateObject ( 'felamimail.uibaseclass' );
#$uiBaseClass->accounts_popup('calendar');
$this -> t -> parse ( 'settings_view' , 'folder_acl' , True );
break ;
case 'settings' :
default :
// selected folder data
if ( $folderStatus [ 'subscribed' ])
{
$this -> t -> set_var ( 'subscribed_checked' , 'checked' );
$this -> t -> set_var ( 'unsubscribed_checked' , '' );
}
else
{
$this -> t -> set_var ( 'subscribed_checked' , '' );
$this -> t -> set_var ( 'unsubscribed_checked' , 'checked' );
}
if ( is_array ( $quota ))
{
$this -> t -> set_var ( 'storage_usage' , $quota [ 'STORAGE' ][ 'usage' ]);
$this -> t -> set_var ( 'storage_limit' , $quota [ 'STORAGE' ][ 'limit' ]);
$this -> t -> set_var ( 'message_usage' , $quota [ 'MESSAGE' ][ 'usage' ]);
$this -> t -> set_var ( 'message_limit' , $quota [ 'MESSAGE' ][ 'limit' ]);
}
else
{
$this -> t -> set_var ( 'storage_usage' , lang ( 'unknown' ));
$this -> t -> set_var ( 'storage_limit' , lang ( 'unknown' ));
$this -> t -> set_var ( 'message_usage' , lang ( 'unknown' ));
$this -> t -> set_var ( 'message_limit' , lang ( 'unknown' ));
}
if ( $this -> selectedFolder != '--topfolderselected--' )
{
$this -> t -> parse ( 'settings_view' , 'folder_settings' , True );
}
else
{
$this -> t -> parse ( 'settings_view' , 'mainFolder_settings' , True );
}
break ;
}
$mailBoxTreeName = '' ;
$mailBoxName = $this -> selectedFolder ;
if ( $position = strrpos ( $this -> selectedFolder , '.' ))
{
$mailBoxTreeName = substr ( $this -> selectedFolder , 0 , $position + 1 );
$mailBoxName = substr ( $this -> selectedFolder , $position + 1 );
}
$this -> t -> set_var ( 'mailboxTreeName' , $mailBoxTreeName );
$this -> t -> set_var ( 'mailboxNameShort' , $mailBoxName );
$this -> t -> set_var ( 'mailboxName' , $mailBoxName );
$this -> t -> set_var ( 'folderName' , $this -> selectedFolder );
$this -> t -> set_var ( 'imap_server' , $mailPrefs [ 'imapServerAddress' ]);
$this -> t -> pparse ( " out " , " main " );
$this -> bofelamimail -> closeConnection ();
}
function translate ()
{
$this -> t -> set_var ( " lang_folder_name " , lang ( 'folder name' ));
$this -> t -> set_var ( " lang_folder_list " , lang ( 'folderlist' ));
$this -> t -> set_var ( " lang_select " , lang ( 'select' ));
$this -> t -> set_var ( " lang_folder_status " , lang ( 'folder status' ));
$this -> t -> set_var ( " lang_subscribed " , lang ( 'subscribed' ));
$this -> t -> set_var ( " lang_unsubscribed " , lang ( 'unsubscribed' ));
$this -> t -> set_var ( " lang_subscribe " , lang ( 'subscribe' ));
$this -> t -> set_var ( " lang_unsubscribe " , lang ( 'unsubscribe' ));
$this -> t -> set_var ( " lang_update " , lang ( 'update' ));
$this -> t -> set_var ( " lang_rename_folder " , lang ( 'rename folder' ));
$this -> t -> set_var ( " lang_create_subfolder " , lang ( 'create subfolder' ));
$this -> t -> set_var ( " lang_delete_folder " , lang ( 'delete folder' ));
$this -> t -> set_var ( " lang_confirm_delete " , addslashes ( lang ( " Do you really want to delete the '%1' folder? " , $this -> bofelamimail -> sessionData [ 'preferences' ][ 'mailbox' ])));
$this -> t -> set_var ( " lang_delete " , lang ( 'delete' ));
$this -> t -> set_var ( " lang_imap_server " , lang ( 'IMAP Server' ));
$this -> t -> set_var ( " lang_folder_settings " , lang ( 'folder settings' ));
$this -> t -> set_var ( " lang_folder_acl " , lang ( 'folder acl' ));
$this -> t -> set_var ( " lang_anyone " , lang ( 'anyone' ));
$this -> t -> set_var ( " lang_reading " , lang ( 'reading' ));
$this -> t -> set_var ( " lang_writing " , lang ( 'writing' ));
$this -> t -> set_var ( " lang_posting " , lang ( 'posting' ));
$this -> t -> set_var ( " lang_none " , lang ( 'none' ));
$this -> t -> set_var ( " lang_rename " , lang ( 'rename' ));
$this -> t -> set_var ( " lang_create " , lang ( 'create' ));
$this -> t -> set_var ( 'lang_open_all' , lang ( " open all " ));
$this -> t -> set_var ( 'lang_close_all' , lang ( " close all " ));
$this -> t -> set_var ( " th_bg " , $GLOBALS [ 'phpgw_info' ][ " theme " ][ " th_bg " ]);
$this -> t -> set_var ( " bg01 " , $GLOBALS [ 'phpgw_info' ][ " theme " ][ " bg01 " ]);
$this -> t -> set_var ( " bg02 " , $GLOBALS [ 'phpgw_info' ][ " theme " ][ " bg02 " ]);
$this -> t -> set_var ( " bg03 " , $GLOBALS [ 'phpgw_info' ][ " theme " ][ " bg03 " ]);
}
}
?>