From d7f9eb573b82ca55c521b68f7cf3ad8de55ab8ba Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Wed, 29 Sep 2010 08:24:01 -0400
Subject: [PATCH] - Add link to identities in compose window (#1486729)

---
 CHANGELOG                             |    1 +
 skins/default/mail.css                |    8 ++++----
 program/localization/en_US/labels.inc |    1 +
 skins/default/templates/compose.html  |    7 +++++--
 program/js/app.js                     |   22 +++++++++++++---------
 5 files changed, 24 insertions(+), 15 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 5d33a00..4be31a2 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -2,6 +2,7 @@
 ===========================
 
 - Messages caching: performance improvements, fixed syncing, fixes related with #1486748
+- Add link to identities in compose window (#1486729)
 
 RELEASE 0.4.1
 -------------
diff --git a/program/js/app.js b/program/js/app.js
index 64cc7c6..e3ad4b0 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -225,17 +225,20 @@
           }
         }
         else if (this.env.action == 'compose') {
-          this.enable_command('send-attachment', 'remove-attachment', 'send', 'toggle-editor', true);
+          this.env.compose_commands = ['send-attachment', 'remove-attachment', 'send', 'toggle-editor'];
+
+          if (this.env.drafts_mailbox)
+            this.env.compose_commands.push('savedraft')
+
+          this.enable_command(this.env.compose_commands, 'identities', true);
 
           if (this.env.spellcheck) {
             this.env.spellcheck.spelling_state_observer = function(s){ ref.set_spellcheck_state(s); };
+            this.env.compose_commands.push('spellcheck')
             this.set_spellcheck_state('ready');
             if ($("input[name='_is_html']").val() == '1')
               this.display_spellcheck_controls(false);
           }
-
-          if (this.env.drafts_mailbox)
-            this.enable_command('savedraft', true);
 
           document.onmouseup = function(e){ return p.doc_mouse_up(e); };
 
@@ -425,8 +428,7 @@
     }
 
     // check input before leaving compose step
-    if (this.task=='mail' && this.env.action=='compose'
-        && (command == 'list' || command == 'mail' || command == 'addressbook' || command == 'settings')) {
+    if (this.task=='mail' && this.env.action=='compose' && $.inArray(command, this.env.compose_commands)<0) {
       if (this.cmp_hash != this.compose_field_hash() && !confirm(this.get_label('notsentwarning')))
         return false;
     }
@@ -974,11 +976,11 @@
         break;
 
       case 'identities':
-        this.goto_url('identities');
+        this.goto_url('settings/identities');
         break;
 
       case 'folders':
-        this.goto_url('folders');
+        this.goto_url('settings/folders');
         break;
 
       // unified command call (command name == function name)
@@ -2942,8 +2944,10 @@
       sig_separator = this.env.sig_above && (this.env.compose_mode == 'reply' || this.env.compose_mode == 'forward') ? '---' : '-- ';
 
     // enable manual signature insert
-    if (this.env.signatures && this.env.signatures[id])
+    if (this.env.signatures && this.env.signatures[id]) {
       this.enable_command('insert-sig', true);
+      this.env.compose_commands.push('insert-sig');
+    }
     else
       this.enable_command('insert-sig', false);
 
diff --git a/program/localization/en_US/labels.inc b/program/localization/en_US/labels.inc
index 0db6dda..3fe75e8 100644
--- a/program/localization/en_US/labels.inc
+++ b/program/localization/en_US/labels.inc
@@ -204,6 +204,7 @@
 $labels['editortype']     = 'Editor type';
 $labels['returnreceipt']  = 'Return receipt';
 
+$labels['editidents']    = 'Edit identities';
 $labels['checkspelling'] = 'Check spelling';
 $labels['resumeediting'] = 'Resume editing';
 $labels['revertto']      = 'Revert to';
diff --git a/skins/default/mail.css b/skins/default/mail.css
index fcc905c..8baf836 100644
--- a/skins/default/mail.css
+++ b/skins/default/mail.css
@@ -1233,16 +1233,16 @@
   display: none;
 }
 
-#formlinks a,
-#formlinks a:visited
+.formlinks a,
+.formlinks a:visited
 {
   color: #999999;
   font-size: 11px;
   text-decoration: none;
 }
 
-#formlinks a,
-#formlinks a:visited
+.formlinks a,
+.formlinks a:visited
 {
   color: #CC0000;
 }
diff --git a/skins/default/templates/compose.html b/skins/default/templates/compose.html
index 1f02a46..2e08b86 100644
--- a/skins/default/templates/compose.html
+++ b/skins/default/templates/compose.html
@@ -53,7 +53,10 @@
         <table border="0" cellspacing="0" cellpadding="1" id="compose-headers">
         <tr>
             <td class="title"><label for="_from"><roundcube:label name="from" /></label></td>
-            <td class="editfield"><roundcube:object name="composeHeaders" part="from" form="form" id="_from" tabindex="1" /></td>
+            <td class="editfield formlinks">
+                <roundcube:object name="composeHeaders" part="from" form="form" id="_from" tabindex="1" />
+                <a href="#identities" onclick="return rcmail.command('identities')"><roundcube:label name="editidents" /></a>
+            </td>
         </tr><tr>
             <td class="title top"><label for="_to"><roundcube:label name="to" /></label></td>
             <td class="editfield"><roundcube:object name="composeHeaders" part="to" form="form" id="_to" cols="70" rows="2" tabindex="2" /></td>
@@ -77,7 +80,7 @@
             <td class="editfield"><roundcube:object name="composeHeaders" part="replyto" form="form" id="_replyto" size="70" tabindex="5" /></td>
         </tr><tr>
             <td></td>
-            <td id="formlinks">
+            <td class="formlinks">
                 <a href="#cc" onclick="return rcmail_ui.show_header_form('cc')" id="cc-link"><roundcube:label name="addcc" /></a>
                 <span class="separator">|</span>
                 <a href="#bcc" onclick="return rcmail_ui.show_header_form('bcc')" id="bcc-link"><roundcube:label name="addbcc" /></a>

--
Gitblit v1.9.1