$msg = '';
$get_sig = true;
-$pgp_passphrase_dialog = $pgp_symmetric_passphrase_dialog = $showmenu = $smime_passphrase_dialog = false;
+$showmenu = false;
$cursor_pos = $oldrtemode = $rtemode = $siglocation = null;
/* Set the current identity. */
// TODO
switch ($e->encrypt) {
case 'pgp_symmetric_passphrase_dialog':
- $pgp_symmetric_passphrase_dialog = true;
+ $imp_ui->passphraseDialog('pgp_symm', $imp_compose->getCacheId());
break;
case 'pgp_passphrase_dialog':
- $pgp_passphrase_dialog = true;
+ $imp_ui->passphraseDialog('pgp');
break;
case 'smime_passphrase_dialog':
- $smime_passphrase_dialog = true;
+ $imp_ui->passphraseDialog('smime');
break;
}
break;
}
}
-/* Open the passphrase window here. */
-if ($pgp_passphrase_dialog || $pgp_symmetric_passphrase_dialog) {
- if ($pgp_passphrase_dialog) {
- Horde::addInlineScript(array(
- IMP::passphraseDialogJS('PGPPersonal')
- ), 'dom');
- } else {
- Horde::addInlineScript(array(
- IMP::passphraseDialogJS('PGPSymmetric', array('symmetricid' => 'imp_compose_' . $composeCacheID))
- ), 'dom');
- }
-} elseif ($smime_passphrase_dialog) {
- Horde::addInlineScript(array(
- IMP::passphraseDialogJS('SMIMEPersonal')
- ), 'dom');
-}
-
/* If PGP encryption is set by default, and we have a recipient list on first
* load, make sure we have public keys for all recipients. */
$encrypt_options = $prefs->isLocked('default_encrypt')
require $GLOBALS['registry']->get('templates', 'horde') . '/common-footer.inc';
}
+ /**
+ * Outputs the script necessary to generate the passphrase dialog box.
+ *
+ * @param string $type Either 'pgp', 'pgp_symm', or 'smime'.
+ * @param string $cacheid Compose cache ID (only needed for 'pgp_symm').
+ */
+ public function passphraseDialog($type, $cacheid = null)
+ {
+ switch ($type) {
+ case 'pgp':
+ $js = IMP::passphraseDialogJS('PGPPersonal');
+ break;
+
+ case 'pgp_symm':
+ $js = IMP::passphraseDialogJS('PGPSymmetric', array('symmetricid' => 'imp_compose_' . $cacheid));
+ break;
+
+ case 'smime':
+ $js = IMP::passphraseDialogJS('SMIMEPersonal');
+ break;
+ }
+
+ Horde::addInlineScript(array($js), 'dom');
+ }
+
}