]> err.no Git - scalable-opengroupware.org/commitdiff
git-svn-id: http://svn.opengroupware.org/SOGo/inverse/trunk@1172 d1b88da0-ebda-0310...
authorwolfgang <wolfgang@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Mon, 10 Sep 2007 22:25:52 +0000 (22:25 +0000)
committerwolfgang <wolfgang@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Mon, 10 Sep 2007 22:25:52 +0000 (22:25 +0000)
18 files changed:
ChangeLog
NEWS
SoObjects/SOGo/LDAPUserManager.m
UI/Contacts/UIxContactFoldersView.m
UI/MailerUI/UIxMailListView.m
UI/PreferencesUI/English.lproj/Localizable.strings
UI/PreferencesUI/French.lproj/Localizable.strings
UI/PreferencesUI/German.lproj/Localizable.strings
UI/Templates/ContactsUI/UIxContactsListView.wox
UI/Templates/MailerUI/UIxMailEditor.wox
UI/Templates/PreferencesUI/UIxPreferences.wox
UI/WebServerResources/SOGoRootPage.js
UI/WebServerResources/UIxMailEditor.css
UI/WebServerResources/UIxMailEditor.js
UI/WebServerResources/UIxMailToSelection.js
UI/WebServerResources/UIxPreferences.css
UI/WebServerResources/generic.css
UI/WebServerResources/generic.js

index c86e7a5927516cdb69481611fdd864ea57a83bf2..6cf4ed546149a40034faddd3a383689a19285a98 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2007-09-10  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
 
+       * UI/Contacts/UIxContactFoldersView.m ([UIxContactFoldersView
+       -contactSearchAction]): only return the records which have an
+       email set.
+
        * SoObjects/Mailer/SOGoMailObject.m ([SOGoMailObject
        -trashInContext:_ctx]): no longer expunge the mailbox after
        marking a message deleted.
diff --git a/NEWS b/NEWS
index 325e515bb9904c8648a9ecb3ebd0d7109da1ddde..f0c0a1b08b2d9c060afe5440a42a08e57c693e59 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -4,6 +4,7 @@
 - fixed a bug where a false positive happening whenever a wrong user login was
   given during an indirect bind;
 - deleting a message no longer expunges its parent folder;
+- fixed search in message content;
 - countless bugfixes;
 
 0.9.0-20070824
index e79c1f294e36692cb9a377827538a1bcb360c5cd..01ab01a36151300785022951aa664103efa81764 100644 (file)
@@ -420,34 +420,37 @@ static NSString *defaultMailDomain = nil;
   while (userEntry)
     {
       uid = [userEntry objectForKey: @"c_uid"];
-      returnContact = [compactContacts objectForKey: uid];
-      if (!returnContact)
+      if ([uid length])
        {
-         returnContact = [NSMutableDictionary dictionary];
-         [returnContact setObject: uid forKey: @"c_uid"];
-         [compactContacts setObject: returnContact forKey: uid];
-       }
-      if (![[returnContact objectForKey: @"c_name"] length])
-       [returnContact setObject: [userEntry objectForKey: @"c_name"]
-                      forKey: @"c_name"];
-      if (![[returnContact objectForKey: @"cn"] length])
-       [returnContact setObject: [userEntry objectForKey: @"c_cn"]
-                      forKey: @"cn"];
-      emails = [returnContact objectForKey: @"emails"];
-      if (!emails)
-       {
-         emails = [NSMutableArray array];
-         [returnContact setObject: emails forKey: @"emails"];
+         returnContact = [compactContacts objectForKey: uid];
+         if (!returnContact)
+           {
+             returnContact = [NSMutableDictionary dictionary];
+             [returnContact setObject: uid forKey: @"c_uid"];
+             [compactContacts setObject: returnContact forKey: uid];
+           }
+         if (![[returnContact objectForKey: @"c_name"] length])
+           [returnContact setObject: [userEntry objectForKey: @"c_name"]
+                          forKey: @"c_name"];
+         if (![[returnContact objectForKey: @"cn"] length])
+           [returnContact setObject: [userEntry objectForKey: @"c_cn"]
+                          forKey: @"cn"];
+         emails = [returnContact objectForKey: @"emails"];
+         if (!emails)
+           {
+             emails = [NSMutableArray array];
+             [returnContact setObject: emails forKey: @"emails"];
+           }
+         email = [userEntry objectForKey: @"mail"];
+         if (email && ![emails containsObject: email])
+           [emails addObject: email];
+         email = [userEntry objectForKey: @"mozillaSecondEmail"];
+         if (email && ![emails containsObject: email])
+           [emails addObject: email];
+         email = [userEntry objectForKey: @"xmozillasecondemail"];
+         if (email && ![emails containsObject: email])
+           [emails addObject: email];
        }
-      email = [userEntry objectForKey: @"mail"];
-      if (email && ![emails containsObject: email])
-       [emails addObject: email];
-      email = [userEntry objectForKey: @"mozillaSecondEmail"];
-      if (email && ![emails containsObject: email])
-       [emails addObject: email];
-      email = [userEntry objectForKey: @"xmozillasecondemail"];
-      if (email && ![emails containsObject: email])
-       [emails addObject: email];
 
       userEntry = [contacts nextObject];
     }
index ed6dcd9d48b3c61c1834b2ed84c9324306d90970..1509f4a524f3c4cf39e2b25ee11edd900b7edcb6 100644 (file)
 {
   WOResponse *response;
   NSEnumerator *contacts;
-  NSString *responseString;
+  NSString *responseString, *email;
   NSDictionary *contact;
 
   response = [context response];
 
   if ([results count] > 0)
     {
+      [response setStatus: 200];
       contacts = [results objectEnumerator];
       contact = [contacts nextObject];
       if (contact)
        {
-         responseString = [NSString stringWithFormat: @"%@:%@:%@",
-                                    [contact objectForKey: @"c_uid"],
-                                    [contact objectForKey: @"cn"],
-                                    [contact objectForKey: @"c_email"]];
-         [response setStatus: 200];
+         email = [contact objectForKey: @"c_email"];
+         if ([email length])
+           {
+             responseString = [NSString stringWithFormat: @"%@:%@:%@",
+                                        [contact objectForKey: @"c_uid"],
+                                        [contact objectForKey: @"cn"],
+                                        email];
 //       [response setHeader: @"text/plain; charset=iso-8859-1"
 //                 forKey: @"Content-Type"];
-         [response appendContentString: responseString];
+             [response appendContentString: responseString];
+           }
 //       contact = [contacts nextObject];
        }
     }
index c80f48e6373b0612e4339c9aac2171267f1ccb15..46f7505e766c439df86f97e7b2a6cd652826c718 100644 (file)
@@ -140,6 +140,7 @@ static int attachmentFlagSize = 8096;
   flags = [[self message] valueForKey:@"flags"];
   return [flags containsObject:@"seen"];
 }
+
 - (NSString *) messageUidString 
 {
   return [[[self message] valueForKey:@"uid"] stringValue];
@@ -457,29 +458,30 @@ static int attachmentFlagSize = 8096;
 - (void) _setQualifierForCriteria: (NSString *) criteria
                         andValue: (NSString *) value
 {
-  NSMutableString *newQString;
-
   [qualifier release];
 
-  newQString = [NSMutableString stringWithString: @"(NOT flags doesContain: deleted)"];
-  if ([value length] > 0)
-    {
-      if ([criteria isEqualToString: @"subject"])
-       [newQString appendFormat: @" AND (subject doesContain: %@)", value];
-      else if ([criteria isEqualToString: @"sender"])
-       [newQString appendFormat: @" AND (sender doesContain: %@)", value];
-      else if ([criteria isEqualToString: @"subject_or_sender"])
-       [newQString appendFormat: @" AND ((sender doesContain: %@)"
-                   @" OR (from doesContain: %@))",
-                   value, value];
-      else if ([criteria isEqualToString: @"to_or_cc"])
-       [newQString appendFormat: @" AND ((to doesContain: %@)"
-                   @" OR (cc doesContain: %@))",
-                   value, value];
-      else if ([criteria isEqualToString: @"entire_message"])
-       [newQString appendFormat: @" AND (message doesContain: %@)", value];
-    }
-  qualifier = [EOQualifier qualifierWithQualifierFormat: newQString];
+  if ([criteria isEqualToString: @"subject"])
+    qualifier = [EOQualifier qualifierWithQualifierFormat:
+                              @"(subject doesContain: %@)",
+                            value];
+  else if ([criteria isEqualToString: @"sender"])
+    qualifier = [EOQualifier qualifierWithQualifierFormat:
+                              @"(sender doesContain: %@)", value];
+  else if ([criteria isEqualToString: @"subject_or_sender"])
+    qualifier = [EOQualifier qualifierWithQualifierFormat:
+                              @"((sender doesContain: %@)"
+                            @" OR (from doesContain: %@))",
+                            value, value];
+  else if ([criteria isEqualToString: @"to_or_cc"])
+    qualifier = [EOQualifier qualifierWithQualifierFormat:
+                              @"((to doesContain: %@)"
+                            @" OR (cc doesContain: %@))",
+                            value, value];
+  else if ([criteria isEqualToString: @"entire_message"])
+    qualifier = [EOQualifier qualifierWithQualifierFormat:
+                              @"(body doesContain: %@)", value];
+  else
+    qualifier = nil;
 
   [qualifier retain];
 }
@@ -496,8 +498,9 @@ static int attachmentFlagSize = 8096;
   specificMessage = [request formValueForKey: @"pageforuid"];
   searchCriteria = [request formValueForKey: @"search"];
   searchValue = [request formValueForKey: @"value"];
-  [self _setQualifierForCriteria: searchCriteria
-       andValue: searchValue];
+  if ([searchValue length])
+    [self _setQualifierForCriteria: searchCriteria
+         andValue: searchValue];
 
   firstMessageNumber
     = ((specificMessage)
index 2e42755400b9137112c07fba96ed0395f22dce0b..64aa487e7c0ff0cf858c63e7c9e584745f07fb78 100644 (file)
@@ -3,8 +3,7 @@
 "Close" = "Close";
 
 /* tabs */
-"Out of Office" = "Out of Office";
-"Date and Time" = "Date and Time";
+"General" = "General";
 "Calendar Options" = "Calendar Options";
 "Mail Options" = "Mail Options";
 "Password" = "Password";
index 3cf0d7128399fae6d47c39b1530e9da27d1b13a3..a3e625db7f1a9b34e2e213d013662fecebf4c4f4 100644 (file)
@@ -3,8 +3,7 @@
 "Close" = "Fermer";
 
 /* tabs */
-"Out of Office" = "Absence du bureau";
-"Date and Time" = "Date et heure";
+"General" = "Général";
 "Calendar Options" = "Calendrier";
 "Mail Options" = "Courrier";
 "Password" = "Mot de passe";
index 1b0ff7ead0c1404c79421dade8f17d7fdb162ae6..34ac1698115b3fea16643c8f4b2a96257a2c4066 100644 (file)
@@ -3,8 +3,7 @@
 "Close" = "Schließen";
 
 /* tabs */
-"Out of Office" = "Abwesenheit";
-"Date and Time" = "Datum und Zeit";
+"General" = "Allgemein";
 "Calendar Options" = "Kalender";
 "Mail Options" = "E-Mail";
 "Password" = "Passwort";
index cd535d8de640485ee3c32d46089e722e01ff7efa..950cfade25442e880cfad80e74eae9676f0c0106 100644 (file)
@@ -33,6 +33,8 @@
             var:contactid="currentContact.c_uid"
             onclick="return onContactRowClick(event, this);"
             ondblclick="return onContactRowDblClick(event, this);"
+            onmousedown="return false;"
+            onselectstart="return false;"
             oncontextmenu="return onContactContextMenu(event, this);">
             <td><img rsrc:src="abcard.gif"
                /><var:string value="currentContact.displayName" const:escapeHTML="YES" /></td>
index bacdcb53a534b0e1b9c034becc9c2a40a563c281..bfc1976a6e5975232bf8fd481ca65cd24d705db6 100644 (file)
@@ -51,8 +51,8 @@
            class="textField"
            var:value="subject"
            /></span></div>
+    <!-- separator line --><hr/>
     </div>
-    <!-- separator line -->
     <textarea name="text" rows="30" var:value="text" />
     <!-- img rsrc:src="tbird_073_compose.png" alt="screenshot" / -->
   </form>
index c941cf91fdee31f49551a676d41bede3e9eacdf1..8a890c582cb7b256719f21d746570dade37d18de 100644 (file)
   <form id="mainForm" var:href="ownPath">
     <div class="tabsContainer" id="preferencesTabs">
       <ul>
-       <li target="outOfOfficeView"><var:string
-           label:value="Out of Office"/></li>
-       <li target="dateTimeView"><var:string
-           label:value="Date and Time"/></li>
+       <li target="generalView"><var:string
+           label:value="General"/></li>
        <li target="calendarOptionsView"><var:string
            label:value="Calendar Options"/></li>
        <li target="mailOptionsView"><var:string
          <li target="passwordView"><var:string label:value="Password"/></li>
        </var:if>
       </ul>
-      <div id="outOfOfficeView" class="tab">
-       <label><input
-           const:name="inTheOffice" type="radio" const:value="YES"
-           var:selection="inTheOffice"/>
-         <var:string label:value="I'm currently in the office"/></label><br/>
-       <label><input
-           const:name="inTheOffice" type="radio" const:value="NO"
-           var:selection="inTheOffice"/>
-         <var:string label:value="I'm currently out of the office"/></label><br/>
-       <br/>
-       <div id="outOfOfficeMessage">
-         <label><var:string label:value="AutoReply only once to each sender with the following text :"/><br/>
-           <textarea const:name="autoReplyText" var:value="autoReplyText"/>
-         </label>
-       </div>
-      </div>
-      <div id="dateTimeView" class="tab">
+      <div id="generalView" class="tab">
        <label><var:string label:value="Current Time Zone :"/>
            <var:popup list="timeZonesList" item="item"
              string="item" selection="userTimeZone" /></label><br/>
        <label><var:string label:value="Forward messages:"/>
          <var:popup list="messageForwardingList" item="item"
            string="itemMessageForwardingText" selection="userMessageForwarding"/></label><br/>
+       <label><input
+           const:name="inTheOffice" type="radio" const:value="YES"
+           var:selection="inTheOffice"/>
+         <var:string label:value="I'm currently in the office"/></label><br/>
+       <label><input
+           const:name="inTheOffice" type="radio" const:value="NO"
+           var:selection="inTheOffice"/>
+         <var:string label:value="I'm currently out of the office"/></label><br/>
+       <br/>
+       <div id="outOfOfficeMessage">
+         <label><var:string label:value="AutoReply only once to each sender with the following text :"/><br/>
+           <textarea const:name="autoReplyText" var:value="autoReplyText"/>
+         </label>
+       </div>
       </div>
       <var:if condition="shouldDisplayPasswordChange">
        <div id="passwordView" class="tab">
index a225d3eb052e53c590295d90233aa378324336b1..6f4392d0a88ba5f45d72b8064b95bcceb879282d 100644 (file)
@@ -32,7 +32,7 @@ function onLoginClick(event) {
 
 function onLoginCallback(http) {
   if (http.readyState == 4) {
-    if (http.status == 204) {
+    if (isHttpStatus204(http.status)) {
       window.location.href = ApplicationBaseURL + $("userName").value;
     }
   }
index d9cc74eba4cd68bfb0eb995a820c421d6ab49532..94b5f0a8ffe1502fc9bc130db3113d6612d23f56 100644 (file)
@@ -1,49 +1,41 @@
 /* CSS for compose panel */
 
-div#compose_panel div table {
-  padding: 2px;
-}
+div#compose_panel div table
+{ padding: 2px; }
 
 TABLE#compose_table, TABLE#compose_table DIV
-{ 
-  width: 100%;
-}
+{ width: 100%; }
 
 TABLE#compose_label
-{
-  text-align: right;
-}
+{ text-align: right; }
 
 DIV#addressList
-{ height: 8em;
-  margin-bottom: .25em;
+{ clear: left;
+  height: 8em;
+  overflow: auto;
   overflow-y: auto;
   overflow-x: hidden;
 }
 
-DIV.addressListElement
-{ margin: 0px;
-  padding: 0px; }
-
 SPAN.headerField
 { line-height: 1.8em;
-  width: 7em;
-  text-align: right; }
+  float: left;
+  clear: left;
+  text-align: right;
+  min-width: 7em;
+  padding-left: 0.5em; }
 
 SPAN.headerInput INPUT
-{ width: 50%;
-  padding-left: 24px;
+{ padding-left: 24px; /* offset text input */
+  padding-right: 4px;
   background-image: url('/SOGo.woa/WebServerResources/abcard.gif');
   background-repeat: no-repeat;
   background-position: 2px center; }
 
-DIV#subjectRow
-{ margin-left: 9em; }
-
 DIV#subjectRow INPUT
 { background-image: none;
-  width: 50%;
-  padding-left: .5em; }
+  padding-left: 4px; /* offset text input */
+  padding-right: 4px; }
 
 div#compose_internetmarker
 { padding:          8px;
@@ -54,8 +46,7 @@ div#compose_internetmarker
   border-style:     solid; }
 
 div#headerArea
-{ border-top: 1px solid #fff;
-  border-bottom: 1px solid #848284; }
+{ border-top: 1px solid #fff; }
 
 div#attachmentsArea
 { display: none;
@@ -67,6 +58,17 @@ div#attachmentsArea
   padding-left: 5px;
   border-left: 1px solid #888; }
 
+hr
+{ background-color: #848284;
+  border: 0;
+  clear: both;
+  color: #848284;
+  float: left;
+  height: 1px;
+  margin: 0px;
+  padding: 0px;
+  width: 100%; }
+
 input.currentAttachment
 { position: absolute;
   top: 1em;
@@ -90,8 +92,7 @@ UL#attachments
 { cursor: default;
   margin: 0px;
   padding: 0px;
-  width: 100%;
-  height: 10em;
+  height: 9em;
   border-bottom: 1px solid #fff;
   border-right: 1px solid #fff;
   border-top: 2px solid #222;
@@ -116,5 +117,5 @@ DIV.pageContent TEXTAREA
   left: 0em;
   right: 0em;
   bottom: 0em;
-  top: 17em;
+  top: 13em;
   width: 100%; }
index 6f8018e4f887bf20b452c89fd66ccb25b2479fdd..d84345b71c90e2722530a8b7a725dcfcc7a573b0 100644 (file)
@@ -153,8 +153,12 @@ function clickedEditorSend(sender) {
 
 function clickedEditorAttach(sender) {
   var area = $("attachmentsArea");
-  area.setStyle({ display: "block" });
-  
+
+  if (!area.style.display) {
+    area.setStyle({ display: "block" });
+    onWindowResize(null);
+  }  
+
   var inputs = area.getElementsByTagName("input");
   var attachmentName = "attachment" + inputs.length;
   var newAttachment = createElement("input", attachmentName,
@@ -289,11 +293,40 @@ function onSelectAllAttachments() {
 function onWindowResize(event) {
   var textarea = document.pageform.text;
   var windowheight = (typeof self.innerHeight == "number" ? self.innerHeight : document.body.clientHeight);
-  var textareaoffset = textarea.offsetTop;
   var rowheight = (Element.getHeight(textarea) / textarea.rows);
+  var headerarea = $("headerArea");
+
+  // Set textarea position
+  textarea.setStyle({ 'top': (headerarea.getHeight() + headerarea.offsetTop) + 'px' });
 
+  var textareaoffset = textarea.offsetTop;
+
+  // Resize the textarea (message content)
   textarea.rows = Math.round((windowheight - textareaoffset) / rowheight);
-  log ("onWindowResize new number of rows = " + textarea.rows);
+  
+  var attachmentsarea = $("attachmentsArea");
+  var attachmentswidth = 0;
+  if (attachmentsarea.style.display)
+    attachmentswidth = attachmentsarea.getWidth();
+  var windowwidth = (typeof self.innerWidth == "number" ? self.innerWidth : document.body.clientWidth);
+  var subjectfield = $(document).getElementsByClassName('headerField', $('subjectRow'))[0];
+  var subjectinput = $(document).getElementsByClassName('textField', $('subjectRow'))[0];
+
+  // Resize subject field
+  subjectinput.setStyle({ width: (windowwidth
+                                 - $(subjectfield).getWidth()
+                                 - attachmentswidth
+                                 - 4 - 30
+                                 ) + 'px' });
+
+  // Resize address fields
+  var addresslist = $('addressList');
+  var firstselect = document.getElementsByClassName('headerField', addresslist)[0];
+  var inputwidth = windowwidth - $(firstselect).getWidth() - attachmentswidth - 24 - 30;
+  var addresses = document.getElementsByClassName('textField', addresslist);
+  for (var i = 0; i < addresses.length; i++) {
+    addresses[i].setStyle({ width: inputwidth + 'px' });
+  }
 }
 
 function onMailEditorClose(event) {
index 663573ec6d63a6698b3396d66017797b13d79f9a..a0cc0f3a57c9b1c33017816e68f6f04d1d2fa3c7 100644 (file)
@@ -121,15 +121,15 @@ function fancyAddRow(shouldEdit, text) {
     input.select();
     input.setAttribute('autocomplete', 'on');
   }
-//   this.adjustInlineAttachmentListHeight(this);
 }
 
 function addressFieldGotFocus(sender) {
   var idx;
   
   idx = this.getIndexFromIdentifier(sender.id);
-  if ((lastIndex == idx) || (idx == 0)) return;
+  if (lastIndex == idx) return;
   this.removeLastEditedRowIfEmpty();
+  onWindowResize(null);
 
   return false;
 }
@@ -156,7 +156,6 @@ function removeLastEditedRowIfEmpty() {
   addressList = $("addressList");
   senderRow = $("row_" + idx);
   addressList.removeChild(senderRow);
-  this.adjustInlineAttachmentListHeight(this);
 }
 
 function findAddressWithIndex(idx) {
@@ -225,21 +224,5 @@ function UIxRecipientSelectorHasRecipients() {
   return false;
 }
 
-function adjustInlineAttachmentListHeight(sender) {
-  var e;
-  
-  e = $('attachmentsArea');
-  if (e.style.display != 'none') {
-    /* need to lower left size first, because left auto-adjusts to right! */
-    xHeight('compose_attachments_list', 10);
-
-    var leftHeight, rightHeaderHeight;
-    leftHeight        = xHeight('compose_leftside');
-    rightHeaderHeight = xHeight('compose_attachments_header');
-    xHeight('compose_attachments_list',
-            (leftHeight - rightHeaderHeight) - 16);
-  }
-}
-
 /* addressbook helpers */
 
index 6fdb8616f8e186fdc74dcb3939024389ec4197df..5c03ab96ce0c165fcd0a3c154cb098989359f28d 100644 (file)
@@ -5,30 +5,20 @@ DIV#preferencesTabs
   right: .5em;
   bottom: .5em; }
 
-DIV#dateTimeFormat,
-DIV#passwordView
-{ text-align: right; }
-
-DIV#outOfOfficeView
+DIV#general
 { padding-top: 2em;
   padding-left: 2em;
   padding-right: 5em; }
 
-DIV#outOfOfficeView LABEL
+DIV#general LABEL
 { text-align: left;
   margin-left: 0px;
   white-space: normal; }
 
-DIV#outOfOfficeView TEXTAREA
-{ width: 30em;
-  margin: 0px;
+DIV#mailOptionsView TEXTAREA
+{ width: 420px;
   height: 4em; }
 
-DIV#dateTimeView
-{ padding-top: 3em;
-  padding-left: 1em;
-  padding-right: 2em; }
-
 DIV#passwordView
 { padding-top: 3em;
   padding-right: 10em; }
index 65ea6e83a9c4626811e0015124b513db75535fec..07f979f676d74a3d24793f9e423ee10251c55127 100644 (file)
@@ -200,6 +200,7 @@ TEXTAREA
 
 DIV, TEXTAREA, INPUT, SELECT
 { font-family: inherit;
+  font-size: 8pt;
   font-size: inherit; }
 
 TEXTAREA, INPUT.textField
@@ -213,8 +214,7 @@ TEXTAREA, INPUT.textField
   -moz-border-left-colors: #9c9a94 #000 transparent; }
 
 INPUT.textField
-{ line-height: 2em;
-  vertical-align: middle; }
+{ vertical-align: middle; }
 
 DIV#toolbar
 { left: 0px;
@@ -366,7 +366,7 @@ DIV#logConsole
   -moz-border-top-colors: #000 #9c9a94 transparent;
   -moz-border-left-colors: #000 #9c9a94 transparent;
   font-family: monospace;
-  font-size: 12pt;
+  font-size: 9pt;
   padding: .25em;
   background-color: #fff;
   overflow-y: scroll;
index 1dc5f4222bff60993b0b03ab839cec88a66c863e..c16071500fcd8222f834a97c1b2fd3101f7e6fc8 100644 (file)
@@ -364,8 +364,8 @@ function getTarget(event) {
 function preventDefault(event) {
   if (event.preventDefault)
     event.preventDefault(); // W3C DOM
-
-  event.returnValue = false; // IE
+  else
+    event.returnValue = false; // IE
 }
 
 function resetSelection(win) {
@@ -692,6 +692,10 @@ function log(message) {
   var logConsole = logWindow.document.getElementById("logConsole");
   if (logConsole) {
       logConsole.highlighted = !logConsole.highlighted;
+      if (message == '\c') {
+       logConsole.innerHTML = "";
+       return;
+      }
       var logMessage = message.replace("<", "&lt;", "g");
       logMessage = logMessage.replace(" ", "&nbsp;", "g");
       logMessage = logMessage.replace("\r\n", "<br />\n", "g");
@@ -1301,7 +1305,7 @@ function onLinkBannerClick() {
 
 function onPreferencesClick(event) {
    var urlstr = UserFolderURL + "preferences";
-   var w = window.open(urlstr, "User Preferences",
+   var w = window.open(urlstr, "_blank",
                       "width=430,height=250,resizable=0,scrollbars=0");
    w.opener = window;
    w.focus();