mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-05-06 20:15:26 +00:00
merge of '2185decf68286616e141956d251df6580c4747cd'
and '6970e7a89b13f1353d770e663717021a53350856' Monotone-Parent: 2185decf68286616e141956d251df6580c4747cd Monotone-Parent: 6970e7a89b13f1353d770e663717021a53350856 Monotone-Revision: bf01e6f088a2111decc0b38c4b13d77205fd3b39 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2010-01-13T22:50:05 Monotone-Branch: ca.inverse.sogo
This commit is contained in:
@@ -1,3 +1,24 @@
|
||||
2010-01-13 Francis Lachapelle <flachapelle@inverse.ca>
|
||||
|
||||
* UI/WebServerResources/ContactsUI.js (-fixSearchFieldPosition):
|
||||
replaced this function by the equivalent CSS definition.
|
||||
(-initContacts): initialized import buttons even for "popup" mode.
|
||||
|
||||
2010-01-12 Ludovic Marcotte <lmarcotte@inverse.ca>
|
||||
|
||||
* SoObjects/SOGo/NSString+Utilities.m
|
||||
We retain the autoreleased strings static variable
|
||||
to avoir random issues with the -fromCSSIdentifier method
|
||||
|
||||
* Updated the Moz guide for the updateLink part of
|
||||
the updates.php script.
|
||||
|
||||
2010-01-11 Ludovic Marcotte <lmarcotte@inverse.ca>
|
||||
|
||||
* UI/Contacts/UIxContactFolderActions.m (-importVcardData:):
|
||||
We now support multiple vCards in the same file during
|
||||
the import process
|
||||
|
||||
2010-01-08 Ludovic Marcotte <lmarcotte@inverse.ca>
|
||||
|
||||
* SoObjects/SOGo/LDAPSource.{h,m} - bindFields is now
|
||||
|
||||
Binary file not shown.
@@ -317,6 +317,7 @@ static int cssEscapingCount;
|
||||
|
||||
strings = [NSArray arrayWithObjects: @"_U_", @"_D_", @"_H_", @"_A_", @"_S_",
|
||||
@"_C_", @"_CO_", @"_SP_", nil];
|
||||
[strings retain];
|
||||
cssEscapingStrings = [strings asPointersOfObjects];
|
||||
|
||||
characters = [NSArray arrayWithObjects: @"_", @".", @"#", @"@", @"*", @":",
|
||||
|
||||
@@ -194,13 +194,27 @@
|
||||
|
||||
- (int) importVcardData: (NSString *) vcardData
|
||||
{
|
||||
NGVCard *card;
|
||||
NSArray *allCards;
|
||||
int rc;
|
||||
|
||||
rc = 0;
|
||||
card = [NGVCard parseSingleFromSource: vcardData];
|
||||
if ([self importVcard: card])
|
||||
rc = 1;
|
||||
allCards = [NGVCard parseFromSource: vcardData];
|
||||
|
||||
if (allCards && [allCards count])
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < [allCards count]; i++)
|
||||
{
|
||||
if (![self importVcard: [allCards objectAtIndex: i]])
|
||||
{
|
||||
rc = 0;
|
||||
break;
|
||||
}
|
||||
else
|
||||
rc++;
|
||||
}
|
||||
}
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
@@ -319,6 +319,11 @@ BODY.popup DIV#rightDragHandle
|
||||
BODY.popup DIV#contactView
|
||||
{ top: 10em; }
|
||||
|
||||
BODY.popup DIV#filterPanel
|
||||
{ position: relative;
|
||||
top: 7px;
|
||||
}
|
||||
|
||||
DIV.contactSelection
|
||||
{
|
||||
z-index: 10;
|
||||
|
||||
@@ -1150,29 +1150,28 @@ function onDocumentKeydown(event) {
|
||||
}
|
||||
}
|
||||
|
||||
function fixSearchFieldPosition () {
|
||||
/*function fixSearchFieldPosition () {
|
||||
var panel = $("filterPanel");
|
||||
if (panel) {
|
||||
panel.style.position = "relative";
|
||||
panel.style.top = "7px";
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
function initContacts(event) {
|
||||
if ($(document.body).hasClassName("popup")) {
|
||||
configureSelectionButtons();
|
||||
fixSearchFieldPosition ();
|
||||
}
|
||||
else {
|
||||
// Addressbook import form
|
||||
$("uploadCancel").observe("click", hideContactsImport);
|
||||
$("uploadOK").observe("click", hideImportResults);
|
||||
|
||||
if (Prototype.Browser.Gecko)
|
||||
Event.observe(document, "keypress", onDocumentKeydown); // for FF2
|
||||
else
|
||||
Event.observe(document, "keydown", onDocumentKeydown);
|
||||
}
|
||||
|
||||
// Addressbook import form
|
||||
$("uploadCancel").observe("click", hideContactsImport);
|
||||
$("uploadOK").observe("click", hideImportResults);
|
||||
|
||||
if (Prototype.Browser.Gecko)
|
||||
Event.observe(document, "keypress", onDocumentKeydown); // for FF2
|
||||
else
|
||||
Event.observe(document, "keydown", onDocumentKeydown);
|
||||
|
||||
configureAbToolbar();
|
||||
configureAddressBooks();
|
||||
updateAddressBooksMenus();
|
||||
|
||||
@@ -300,7 +300,7 @@ DIV#eventDialog P
|
||||
DIV#eventDialog SPAN.label
|
||||
{ color: #444; }
|
||||
|
||||
DIV#eventDialog p#description
|
||||
DIV#eventDialog P#description
|
||||
{ margin-top: 1em; }
|
||||
|
||||
._unfocused#dateSelector TD._selected,
|
||||
|
||||
@@ -303,7 +303,8 @@ function refreshAttendeesRO () {
|
||||
var attendeesLabel = $("attendeesLabel");
|
||||
var attendeesDiv = $("attendeesDiv");
|
||||
|
||||
attendeesLabel.setStyle({ display: "block" });
|
||||
if (attendeesLabel)
|
||||
attendeesLabel.setStyle({display: "block"});
|
||||
attendeesDiv.setStyle({display: "block"});
|
||||
|
||||
// Register "click" event on each attendee's email
|
||||
|
||||
@@ -193,9 +193,6 @@ function onComponentEditorLoad(event) {
|
||||
tmp = $("cancelButton");
|
||||
if (tmp)
|
||||
tmp.observe ("click", onCancelButtonClick);
|
||||
|
||||
if (tmp)
|
||||
window.resizeTo(430,540);
|
||||
}
|
||||
|
||||
function onSummaryChange (e) {
|
||||
|
||||
@@ -1,42 +1,42 @@
|
||||
/* -*- Mode: java; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
|
||||
function onCancelButtonClick(event) {
|
||||
window.close();
|
||||
window.close();
|
||||
}
|
||||
|
||||
function onThisButtonClick(event) {
|
||||
if (action == 'edit')
|
||||
window.opener.performEventEdition(calendarFolder, componentName,
|
||||
recurrenceName);
|
||||
else if (action == 'delete')
|
||||
window.opener.performEventDeletion(calendarFolder, componentName,
|
||||
recurrenceName);
|
||||
else
|
||||
window.alert("Invalid action: " + action);
|
||||
if (action == 'edit')
|
||||
window.opener.performEventEdition(calendarFolder, componentName,
|
||||
recurrenceName);
|
||||
else if (action == 'delete')
|
||||
window.opener.performEventDeletion(calendarFolder, componentName,
|
||||
recurrenceName);
|
||||
else
|
||||
window.alert("Invalid action: " + action);
|
||||
|
||||
window.close();
|
||||
window.close();
|
||||
}
|
||||
|
||||
function onAllButtonClick(event) {
|
||||
if (action == 'edit')
|
||||
window.opener.performEventEdition(calendarFolder, componentName);
|
||||
else if (action == 'delete')
|
||||
window.opener.performEventDeletion(calendarFolder, componentName);
|
||||
else
|
||||
window.alert("Invalid action: " + action);
|
||||
if (action == 'edit')
|
||||
window.opener.performEventEdition(calendarFolder, componentName);
|
||||
else if (action == 'delete')
|
||||
window.opener.performEventDeletion(calendarFolder, componentName);
|
||||
else
|
||||
window.alert("Invalid action: " + action);
|
||||
|
||||
window.close();
|
||||
window.close();
|
||||
}
|
||||
|
||||
function onOccurenceDialogLoad() {
|
||||
var thisButton = $("thisButton");
|
||||
thisButton.observe("click", onThisButtonClick);
|
||||
var thisButton = $("thisButton");
|
||||
thisButton.observe("click", onThisButtonClick);
|
||||
|
||||
var allButton = $("allButton");
|
||||
allButton.observe("click", onAllButtonClick);
|
||||
var allButton = $("allButton");
|
||||
allButton.observe("click", onAllButtonClick);
|
||||
|
||||
var cancelButton = $("cancelButton");
|
||||
cancelButton.observe("click", onCancelButtonClick);
|
||||
var cancelButton = $("cancelButton");
|
||||
cancelButton.observe("click", onCancelButtonClick);
|
||||
}
|
||||
|
||||
document.observe("dom:loaded", onOccurenceDialogLoad);
|
||||
|
||||
Reference in New Issue
Block a user