+ $thread_link_uri ='';
+ $thread_name = '';
+ }
+ $sort = $aMailbox['SORT'];
+
+ /* FIX ME ADD CHECKBOX CONTROL. No checkbox => no buttons */
+
+
+
+ /* future admin control over displayable buttons */
+ $aAdminControl = array(
+ 'markFlagged' => 1,
+ 'markUnflagged' => 1,
+ 'markRead' => 1,
+ 'markUnread' => 1,
+ 'forward' => 1,
+ 'delete' => 1,
+ 'undeleteButton'=> 1,
+ 'bypass_trash' => 1,
+ 'expungeButton' => 1,
+ 'moveButton' => 1,
+ 'copyButton' => 1
+ );
+
+ /* user prefs control */
+ $aUserControl = array (
+
+ 'markFlagged' => $show_flag_buttons,
+ 'markUnflagged' => $show_flag_buttons,
+ 'markRead' => 1,
+ 'markUnread' => 1,
+ 'forward' => 1,
+ 'delete' => 1,
+ 'undeleteButton'=> 1,
+ 'bypass_trash' => 1,
+ 'expungeButton' => 1,
+ 'moveButton' => 1,
+ 'copyButton' => $show_copy_buttons
+
+ );
+
+ $showDelete = ($aMailbox['RIGHTS'] != 'READ-ONLY' &&
+ in_array('\\deleted',$aMailbox['PERMANENTFLAGS'], true)) ? true : false;
+ $showByPassTrash = (($aMailbox['AUTO_EXPUNGE'] && $aMailbox['RIGHTS'] != 'READ-ONLY' &&
+ in_array('\\deleted',$aMailbox['PERMANENTFLAGS'], true)) &&
+ $trash_folder) ? true : false; //
+
+ $showUndelete = (!$aMailbox['AUTO_EXPUNGE'] && $aMailbox['RIGHTS'] != 'READ-ONLY' &&
+ in_array('\\deleted',$aMailbox['PERMANENTFLAGS'], true) && !$trash_folder) ? true : false;
+ $showMove = ($aMailbox['RIGHTS'] != 'READ-ONLY') ? true : false;
+ $showExpunge = (!$aMailbox['AUTO_EXPUNGE'] && $aMailbox['RIGHTS'] != 'READ-ONLY' &&
+ in_array('\\deleted',$aMailbox['PERMANENTFLAGS'], true)) ? true : false;
+
+ /* Button options that depend on IMAP server and selected folder */
+ $aImapControl = array (
+ 'markUnflagged' => in_array('\\flagged',$aMailbox['PERMANENTFLAGS'], true),
+ 'markFlagged' => in_array('\\flagged',$aMailbox['PERMANENTFLAGS'], true),
+ 'markRead' => in_array('\\seen',$aMailbox['PERMANENTFLAGS'], true),
+ 'markUnread' => in_array('\\seen',$aMailbox['PERMANENTFLAGS'], true),
+ 'forward' => 1,
+ 'delete' => $showDelete,
+ 'undeleteButton'=> $showUndelete,
+ 'bypass_trash' => $showByPassTrash,
+ 'expungeButton' => $showExpunge,
+ 'moveButton' => $showMove,
+ 'copyButton' => 1
+ );
+ /* Button strings */
+ $aButtonStrings = array(
+ 'markFlagged' => _("Flag"),
+ 'markUnflagged' => _("Unflag"),
+ 'markRead' => _("Read"),
+ 'markUnread' => _("Unread"),
+ 'forward' => _("Forward"),
+ 'delete' => _("Delete"),
+ 'undeleteButton' => _("Undelete"),
+ 'bypass_trash' => _("Bypass Trash"),
+ 'expungeButton' => _("Expunge"),
+ 'moveButton' => _("Move"),
+ 'copyButton' => _("Copy")
+ );
+ /* Button access keys */
+ global $accesskey_mailbox_flag, $accesskey_mailbox_unflag,
+ $accesskey_mailbox_read, $accesskey_mailbox_unread,
+ $accesskey_mailbox_forward, $accesskey_mailbox_delete,
+ $accesskey_mailbox_undelete, $accesskey_mailbox_bypass_trash,
+ $accesskey_mailbox_expunge, $accesskey_mailbox_move,
+ $accesskey_mailbox_copy, $accesskey_mailbox_move_to;
+ $aButtonAccessKeys = array(
+ 'markFlagged' => $accesskey_mailbox_flag,
+ 'markUnflagged' => $accesskey_mailbox_unflag,
+ 'markRead' => $accesskey_mailbox_read,
+ 'markUnread' => $accesskey_mailbox_unread,
+ 'forward' => $accesskey_mailbox_forward,
+ 'delete' => $accesskey_mailbox_delete,
+ 'undeleteButton' => $accesskey_mailbox_undelete,
+ 'bypass_trash' => $accesskey_mailbox_bypass_trash,
+ 'expungeButton' => $accesskey_mailbox_expunge,
+ 'moveButton' => $accesskey_mailbox_move,
+ 'copyButton' => $accesskey_mailbox_copy,
+ );
+
+
+ /**
+ * Register buttons in order to an array
+ * The key is the "name", the first element of the value array is the "value", second argument is the type.
+ */
+ $aFormElements = array();
+ foreach($aAdminControl as $k => $v) {
+ if ($v & $aUserControl[$k] & $aImapControl[$k]) {
+ switch ($k) {
+ case 'markFlagged':
+ case 'markUnflagged':
+ case 'markRead':
+ case 'markUnread':
+ case 'delete':
+ case 'undeleteButton':
+ case 'expungeButton':
+ case 'forward':
+ $aFormElements[$k]
+ = array('value' => $aButtonStrings[$k], 'type' => 'submit', 'accesskey' => (isset($aButtonAccessKeys[$k]) ? $aButtonAccessKeys[$k] : 'NONE'));
+ break;
+ case 'bypass_trash':
+ $aFormElements[$k]
+ = array('value' => $aButtonStrings[$k], 'type' => 'checkbox', 'accesskey' => (isset($aButtonAccessKeys[$k]) ? $aButtonAccessKeys[$k] : 'NONE'));
+ break;
+ case 'moveButton':
+ case 'copyButton':
+ $aFormElements['targetMailbox']
+ = array('options_list' => sqimap_mailbox_option_list($imapConnection, array(strtolower($lastTargetMailbox)), 0, $boxes),
+ 'type' => 'select',
+ 'accesskey' => $accesskey_mailbox_move_to);
+ $aFormElements['mailbox']
+ = array('value' => $aMailbox['NAME'], 'type' => 'hidden');
+ $aFormElements['startMessage']
+ = array('value' => $aMailbox['PAGEOFFSET'], 'type' => 'hidden');
+ $aFormElements[$k]
+ = array('value' => $aButtonStrings[$k], 'type' => 'submit', 'accesskey' => (isset($aButtonAccessKeys[$k]) ? $aButtonAccessKeys[$k] : 'NONE'));
+ break;
+ }
+ }
+ $aFormElements['account'] = array('value' => $iAccount,'type' => 'hidden');