bugFix #0002616 : change the behavior of ApplicationBaseURL. Now the object return a standard path(without a slash at the end of the path) That means every string added the URL ApplicationBaseURL must start with a Slash.

pull/20/head
Alexandre Cloutier 2014-03-04 13:23:55 -05:00
parent 31ace947cb
commit 6ad87052ba
12 changed files with 53 additions and 55 deletions

1
.gitignore vendored
View File

@ -11,3 +11,4 @@ SoObjects/SOGo/SOGo.framework/
SoObjects/SOGo/derived_src/ SoObjects/SOGo/derived_src/
Tests/*/config.py Tests/*/config.py
*.pyc *.pyc
._*

View File

@ -359,6 +359,7 @@ static SoProduct *commonProduct = nil;
{ {
SOGoObject *currentClient, *parent; SOGoObject *currentClient, *parent;
BOOL found; BOOL found;
NSString *hostLessURL;
Class objectClass, userFolderClass; Class objectClass, userFolderClass;
// , groupFolderClass // , groupFolderClass
@ -386,8 +387,10 @@ static SoProduct *commonProduct = nil;
} }
else else
currentClient = [WOApplication application]; currentClient = [WOApplication application];
hostLessURL = [[currentClient baseURLInContext: context] hostlessURL];
return [[currentClient baseURLInContext: context] hostlessURL]; return [hostLessURL substringToIndex: [hostLessURL length] - 1];
} }
- (NSString *) ownPath - (NSString *) ownPath

View File

@ -258,7 +258,7 @@ function _onContactMenuAction(folderItem, action, refresh) {
} }
} }
var url = ApplicationBaseURL + selectedFolderId + "/" + action; var url = ApplicationBaseURL + "/" + selectedFolderId + "/" + action;
var uids = contactIds.collect(function (s) { var uids = contactIds.collect(function (s) {
return encodeURIComponent(s.unescapeHTML()); return encodeURIComponent(s.unescapeHTML());
}).join('&uid='); }).join('&uid=');
@ -290,7 +290,7 @@ function onMenuExportContact (event) {
var contactIds = document.menuTarget.collect(function(row) { var contactIds = document.menuTarget.collect(function(row) {
return row.readAttribute("id"); return row.readAttribute("id");
}); });
var url = ApplicationBaseURL + selectedFolderId + "/export" var url = ApplicationBaseURL + "/" + selectedFolderId + "/export"
+ "?uid=" + contactIds.join("&uid="); + "?uid=" + contactIds.join("&uid=");
window.location.href = url; window.location.href = url;
} }
@ -469,7 +469,7 @@ function onToolbarWriteToSelectedContacts(event) {
showAlertDialog(_("Please select a contact.")); showAlertDialog(_("Please select a contact."));
} }
else { else {
openMailComposeWindow(ApplicationBaseURL + "../Mail/compose" openMailComposeWindow(ApplicationBaseURL + "/../Mail/compose"
+ "?folder=" + Contact.currentAddressBook.substring(1) + "?folder=" + Contact.currentAddressBook.substring(1)
+ "&uid=" + rows.join("&uid=")); + "&uid=" + rows.join("&uid="));
if (document.body.hasClassName("popup")) if (document.body.hasClassName("popup"))
@ -777,7 +777,7 @@ function onAddressBookImport(event) {
var node = $("contactFolders").getSelectedNodes().first(); var node = $("contactFolders").getSelectedNodes().first();
var folderId = node.getAttribute("id"); var folderId = node.getAttribute("id");
var url = ApplicationBaseURL + folderId + "/import"; var url = ApplicationBaseURL + "/" + folderId + "/import";
$("uploadForm").action = url; $("uploadForm").action = url;
$("contactsFile").value = ""; $("contactsFile").value = "";
@ -853,7 +853,7 @@ function onAddressBookRemove(event) {
} }
else { else {
var folderId = node.getAttribute("id"); var folderId = node.getAttribute("id");
var folderUrl = ApplicationBaseURL + folderId; var folderUrl = ApplicationBaseURL + "/" + folderId;
unsubscribeFromFolder(folderUrl, owner, onFolderUnsubscribeCB, folderId); unsubscribeFromFolder(folderUrl, owner, onFolderUnsubscribeCB, folderId);
} }
} }
@ -879,7 +879,7 @@ function deletePersonalAddressBookConfirm(folderId) {
document.deletePersonalABAjaxRequest.aborted = true; document.deletePersonalABAjaxRequest.aborted = true;
document.deletePersonalABAjaxRequest.abort(); document.deletePersonalABAjaxRequest.abort();
} }
var url = ApplicationBaseURL + folderId + "/delete"; var url = ApplicationBaseURL + "/" + folderId + "/delete";
document.deletePersonalABAjaxRequest document.deletePersonalABAjaxRequest
= triggerAjaxRequest(url, deletePersonalAddressBookCallback, folderId); = triggerAjaxRequest(url, deletePersonalAddressBookCallback, folderId);
@ -1596,7 +1596,7 @@ function dropSelectedContacts(action, toId) {
if ((!currentFolderIsRemote() || action != "move") if ((!currentFolderIsRemote() || action != "move")
&& fromId.substring(1) != toId) { && fromId.substring(1) != toId) {
var url = ApplicationBaseURL + fromId + "/" + action; var url = ApplicationBaseURL + "/" + fromId + "/" + action;
var uids = contactIds.collect(function (s) { var uids = contactIds.collect(function (s) {
return encodeURIComponent(s.unescapeHTML()); return encodeURIComponent(s.unescapeHTML());
}).join('&uid='); }).join('&uid=');

View File

@ -40,7 +40,8 @@ function URLForFolderID(folderID, application) {
application = UserFolderURL + application + "/"; application = UserFolderURL + application + "/";
else else
application = ApplicationBaseURL; application = ApplicationBaseURL;
var url = application + encodeURI(folderID.substr(1));
var url = application + encodeURI(folderID);
if (url[url.length-1] == '/') if (url[url.length-1] == '/')
url = url.substr(0, url.length-1); url = url.substr(0, url.length-1);
@ -563,7 +564,7 @@ function deleteSelectedMessagesCallback(http) {
} }
function deleteMessagesWithoutTrash(data) { function deleteMessagesWithoutTrash(data) {
var url = ApplicationBaseURL + encodeURI(data["mailbox"]) + "/batchDelete"; var url = ApplicationBaseURL + encodeURI(data["/mailbox"]) + "/batchDelete";
var parameters = "uid=" + data["id"].join(",") + '&withoutTrash=1'; var parameters = "uid=" + data["id"].join(",") + '&withoutTrash=1';
data["withoutTrash"] = true; data["withoutTrash"] = true;
triggerAjaxRequest(url, deleteSelectedMessagesCallback, data, parameters, triggerAjaxRequest(url, deleteSelectedMessagesCallback, data, parameters,
@ -767,7 +768,7 @@ function composeNewMessage() {
else else
account = null; account = null;
if (account) { if (account) {
var url = ApplicationBaseURL + encodeURI(account) + "/compose"; var url = ApplicationBaseURL + encodeURI("/" + account) + "/compose";
openMailComposeWindow(url); openMailComposeWindow(url);
} }
} }
@ -1601,7 +1602,7 @@ function onReadMessageConfirmMDN(event) {
var messageURL; var messageURL;
if (window.opener && window.opener.Mailer) { if (window.opener && window.opener.Mailer) {
/* from UIxMailPopupView */ /* from UIxMailPopupView */
messageURL = (ApplicationBaseURL + encodeURI(mailboxName) messageURL = (ApplicationBaseURL + encodeURI("/" + mailboxName)
+ "/" + messageName); + "/" + messageName);
} }
else { else {
@ -2020,7 +2021,7 @@ function initMailboxTree() {
var chainRq = new AjaxRequestsChain(initMailboxTreeCB); var chainRq = new AjaxRequestsChain(initMailboxTreeCB);
for (var i = 0; i < mailAccounts.length; i++) { for (var i = 0; i < mailAccounts.length; i++) {
var url = ApplicationBaseURL + i + "/mailboxes"; var url = ApplicationBaseURL + "/" + i + "/mailboxes";
chainRq.requests.push([url, onLoadMailboxesCallback, i]); chainRq.requests.push([url, onLoadMailboxesCallback, i]);
} }
chainRq.start(); chainRq.start();
@ -2255,7 +2256,7 @@ function buildMailboxes(accountIdx, encoded) {
function getFoldersState() { function getFoldersState() {
if (mailAccounts.length > 0) { if (mailAccounts.length > 0) {
var urlstr = ApplicationBaseURL + "foldersState"; var urlstr = ApplicationBaseURL + "/foldersState";
triggerAjaxRequest(urlstr, getFoldersStateCallback); triggerAjaxRequest(urlstr, getFoldersStateCallback);
} }
} }
@ -2279,7 +2280,7 @@ function getFoldersStateCallback(http) {
function saveFoldersState() { function saveFoldersState() {
if (mailAccounts.length > 0) { if (mailAccounts.length > 0) {
var foldersState = mailboxTree.getFoldersState(); var foldersState = mailboxTree.getFoldersState();
var urlstr = ApplicationBaseURL + "saveFoldersState"; var urlstr = ApplicationBaseURL + "/saveFoldersState";
var parameters = "expandedFolders=" + foldersState; var parameters = "expandedFolders=" + foldersState;
triggerAjaxRequest(urlstr, saveFoldersStateCallback, null, parameters, triggerAjaxRequest(urlstr, saveFoldersStateCallback, null, parameters,
{ "Content-type": "application/x-www-form-urlencoded" }); { "Content-type": "application/x-www-form-urlencoded" });

View File

@ -186,7 +186,7 @@ var SOGoDragHandlesInterface = {
}, },
saveDragHandleState: function (type, position, fcn) { saveDragHandleState: function (type, position, fcn) {
if (!$(document.body).hasClassName("popup")) { if (!$(document.body).hasClassName("popup")) {
var urlstr = ApplicationBaseURL + "saveDragHandleState" var urlstr = ApplicationBaseURL + "/saveDragHandleState"
+ "?" + type + "=" + position; + "?" + type + "=" + position;
var callbackFunction = fcn || this.saveDragHandleStateCallback; var callbackFunction = fcn || this.saveDragHandleStateCallback;
triggerAjaxRequest(urlstr, callbackFunction); triggerAjaxRequest(urlstr, callbackFunction);

View File

@ -73,7 +73,7 @@ var SOGoResizableTableInterface = {
saveColumnsState: function() { saveColumnsState: function() {
this.computeColumnsWidths(); this.computeColumnsWidths();
if (!$(document.body).hasClassName("popup")) { if (!$(document.body).hasClassName("popup")) {
var url = ApplicationBaseURL + "saveColumnsState"; var url = ApplicationBaseURL + "/saveColumnsState";
var data = this.ratios; var data = this.ratios;
var columns = data.keys(); var columns = data.keys();
var params = "columns=" + columns.join(",") var params = "columns=" + columns.join(",")

View File

@ -158,7 +158,7 @@ function redirectToUserPage() {
&& !userName.endsWith(loginSuffix)) && !userName.endsWith(loginSuffix))
userName += loginSuffix; userName += loginSuffix;
var address = "" + window.location.href; var address = "" + window.location.href;
var baseAddress = ApplicationBaseURL + encodeURIComponent(userName); var baseAddress = ApplicationBaseURL + "/" + encodeURIComponent(userName);
var altBaseAddress; var altBaseAddress;
if (baseAddress[0] == "/") { if (baseAddress[0] == "/") {
var parts = address.split("/"); var parts = address.split("/");

View File

@ -112,7 +112,7 @@ function updateEventFromDragging(controller, eventCells, eventDelta) {
_editRecurrenceDialog(eventCell, "confirmAdjustment", params); _editRecurrenceDialog(eventCell, "confirmAdjustment", params);
else { else {
var urlstr = (ApplicationBaseURL var urlstr = (ApplicationBaseURL
+ eventCell.calendar + "/" + eventCell.cname); + "/" + eventCell.calendar + "/" + eventCell.cname);
if (eventCell.recurrenceTime) if (eventCell.recurrenceTime)
urlstr += "/occurence" + eventCell.recurrenceTime; urlstr += "/occurence" + eventCell.recurrenceTime;
urlstr += ("/adjust?" + params); urlstr += ("/adjust?" + params);
@ -123,7 +123,7 @@ function updateEventFromDragging(controller, eventCells, eventDelta) {
} }
function performEventAdjustment(folder, event, recurrence, params) { function performEventAdjustment(folder, event, recurrence, params) {
var urlstr = ApplicationBaseURL + folder + "/" + event; var urlstr = ApplicationBaseURL + "/" + folder + "/" + event;
if (recurrence) if (recurrence)
urlstr += "/" + recurrence; urlstr += "/" + recurrence;
urlstr += "/adjust" + generateQueryString(params); urlstr += "/adjust" + generateQueryString(params);
@ -170,7 +170,7 @@ function onMenuNewTaskClick(event) {
function _editEventId(id, calendar, recurrence) { function _editEventId(id, calendar, recurrence) {
var targetname = "SOGo_edit_" + id; var targetname = "SOGo_edit_" + id;
var urlstr = ApplicationBaseURL + calendar + "/" + id; var urlstr = ApplicationBaseURL + "/" + calendar + "/" + id;
if (recurrence) { if (recurrence) {
urlstr += "/" + recurrence; urlstr += "/" + recurrence;
targetname += recurrence; targetname += recurrence;
@ -211,7 +211,7 @@ function _batchDeleteEvents() {
// Delete the events of the next calendar // Delete the events of the next calendar
var calendar = calendarsOfEventsToDelete.shift(); var calendar = calendarsOfEventsToDelete.shift();
var events = eventsToDelete.shift(); var events = eventsToDelete.shift();
var urlstr = (ApplicationBaseURL + calendar var urlstr = (ApplicationBaseURL + "/" + calendar
+ "/batchDelete?ids=" + events.join(',')); + "/batchDelete?ids=" + events.join(','));
document.deleteEventAjaxRequest = triggerAjaxRequest(urlstr, document.deleteEventAjaxRequest = triggerAjaxRequest(urlstr,
deleteEventCallback, deleteEventCallback,
@ -439,7 +439,7 @@ function copyEventToPersonalCalendar(event) {
function copyEvents() { function copyEvents() {
var path = eventsToCopy.shift(); var path = eventsToCopy.shift();
var urlstr = ApplicationBaseURL + path; log (urlstr); var urlstr = ApplicationBaseURL + "/" + path; log (urlstr);
triggerAjaxRequest(urlstr, triggerAjaxRequest(urlstr,
copyEventCallback); copyEventCallback);
} }
@ -469,7 +469,7 @@ function onMenuRawEvent(event) {
var calendar = selectedCalendarCell[0].calendar; var calendar = selectedCalendarCell[0].calendar;
var cname = selectedCalendarCell[0].cname; var cname = selectedCalendarCell[0].cname;
var url = ApplicationBaseURL + calendar + "/" + cname + "/raw"; var url = ApplicationBaseURL + "/" + calendar + "/" + cname + "/raw";
openGenericWindow(url); openGenericWindow(url);
} }
@ -706,7 +706,7 @@ function getEventById(cname, owner) {
function _editRecurrenceDialog(eventCell, method, params) { function _editRecurrenceDialog(eventCell, method, params) {
var targetname = "SOGo_edit_" + eventCell.cname + eventCell.recurrenceTime; var targetname = "SOGo_edit_" + eventCell.cname + eventCell.recurrenceTime;
var urlstr = (ApplicationBaseURL + eventCell.calendar + "/" + eventCell.cname var urlstr = (ApplicationBaseURL + "/" + eventCell.calendar + "/" + eventCell.cname
+ "/occurence" + eventCell.recurrenceTime + "/" + method); + "/occurence" + eventCell.recurrenceTime + "/" + method);
if (params && params.length) { if (params && params.length) {
urlstr += "?" + params; urlstr += "?" + params;
@ -719,7 +719,7 @@ function _editRecurrenceDialog(eventCell, method, params) {
function onViewEvent(event) { function onViewEvent(event) {
if (event.detail == 2) return; if (event.detail == 2) return;
var url = ApplicationBaseURL + this.calendar + "/" + this.cname; var url = ApplicationBaseURL + "/" + this.calendar + "/" + this.cname;
if (typeof this.recurrenceTime != "undefined") if (typeof this.recurrenceTime != "undefined")
url += "/occurence" + this.recurrenceTime; url += "/occurence" + this.recurrenceTime;
@ -846,7 +846,7 @@ function performEventDeletion(folder, event, recurrence) {
// Only one recurrence // Only one recurrence
var occurenceTime = recurrence.substring(9); var occurenceTime = recurrence.substring(9);
var nodes = _eventBlocksMatching(folder, event, occurenceTime); var nodes = _eventBlocksMatching(folder, event, occurenceTime);
var urlstr = ApplicationBaseURL + folder + "/" + event + "/" + recurrence + "/delete"; var urlstr = ApplicationBaseURL + "/" + folder + "/" + event + "/" + recurrence + "/delete";
if (nodes) if (nodes)
document.deleteEventAjaxRequest = triggerAjaxRequest(urlstr, document.deleteEventAjaxRequest = triggerAjaxRequest(urlstr,
@ -1224,7 +1224,7 @@ function loadNextView(event) {
} }
function changeDateSelectorDisplay(day, keepCurrentDay) { function changeDateSelectorDisplay(day, keepCurrentDay) {
var url = ApplicationBaseURL + "dateselector"; var url = ApplicationBaseURL + "/dateselector";
if (day) { if (day) {
if (day.length < 8) if (day.length < 8)
day += "01"; day += "01";
@ -1254,7 +1254,7 @@ function changeDateSelectorDisplay(day, keepCurrentDay) {
function changeCalendarDisplay(data, newView) { function changeCalendarDisplay(data, newView) {
newView = ((newView) ? newView : currentView); newView = ((newView) ? newView : currentView);
var url = ApplicationBaseURL + newView; var url = ApplicationBaseURL + "/" + newView;
var day = null; var day = null;
var scrollEvent = null; var scrollEvent = null;
if (data) { if (data) {
@ -1591,7 +1591,7 @@ function refreshCalendarEvents(scrollEvent) {
document.refreshCalendarEventsAjaxRequest.aborted = true; document.refreshCalendarEventsAjaxRequest.aborted = true;
document.refreshCalendarEventsAjaxRequest.abort(); document.refreshCalendarEventsAjaxRequest.abort();
} }
var url = (ApplicationBaseURL + "eventsblocks?sd=" + sd + "&ed=" + ed var url = (ApplicationBaseURL + "/eventsblocks?sd=" + sd + "&ed=" + ed
+ "&view=" + currentView); + "&view=" + currentView);
document.refreshCalendarEventsAjaxRequest document.refreshCalendarEventsAjaxRequest
= triggerAjaxRequest(url, refreshCalendarEventsCallback, = triggerAjaxRequest(url, refreshCalendarEventsCallback,
@ -2156,7 +2156,7 @@ function _loadEventHref(href) {
document.eventsListAjaxRequest.aborted = true; document.eventsListAjaxRequest.aborted = true;
document.eventsListAjaxRequest.abort(); document.eventsListAjaxRequest.abort();
} }
var url = ApplicationBaseURL + href; var url = ApplicationBaseURL + "/" + href;
document.eventsListAjaxRequest document.eventsListAjaxRequest
= triggerAjaxRequest(url, eventsListCallback, href); = triggerAjaxRequest(url, eventsListCallback, href);
@ -2168,7 +2168,7 @@ function _loadTasksHref(href) {
document.tasksListAjaxRequest.aborted = true; document.tasksListAjaxRequest.aborted = true;
document.tasksListAjaxRequest.abort(); document.tasksListAjaxRequest.abort();
} }
url = ApplicationBaseURL + href; url = ApplicationBaseURL + "/" + href;
var tasksList = $("tasksList"); var tasksList = $("tasksList");
var selectedIds; var selectedIds;
@ -2788,7 +2788,7 @@ function marksTasksAsCompleted () {
} }
function _updateTaskCompletion (task, value) { function _updateTaskCompletion (task, value) {
url = (ApplicationBaseURL + task.calendar url = (ApplicationBaseURL + "/" + task.calendar
+ "/" + task.cname + "/changeStatus?status=" + value); + "/" + task.cname + "/changeStatus?status=" + value);
triggerAjaxRequest(url, refreshTasks, null); triggerAjaxRequest(url, refreshTasks, null);
@ -2802,7 +2802,7 @@ function onMenuRawTask(event) {
return; return;
} }
var url = ApplicationBaseURL + selectedTasks[0].calendar + "/" + selectedTasks[0].cname + "/raw" var url = ApplicationBaseURL + "/" + selectedTasks[0].calendar + "/" + selectedTasks[0].cname + "/raw"
openGenericWindow(url); openGenericWindow(url);
} }
@ -3221,7 +3221,7 @@ function deletePersonalCalendarConfirm() {
this.deselect(); this.deselect();
this.hide(); this.hide();
removeFolderRequestCount++; removeFolderRequestCount++;
var url = ApplicationBaseURL + "/" + folderId + "/delete"; var url = ApplicationBaseURL + folderId + "/delete";
triggerAjaxRequest(url, deletePersonalCalendarCallback, this); triggerAjaxRequest(url, deletePersonalCalendarCallback, this);
disposeDialog(); disposeDialog();
} }
@ -3366,7 +3366,7 @@ function onListCollapse(event, element) {
}); });
} }
var url = ApplicationBaseURL + "saveListState"; var url = ApplicationBaseURL + "/saveListState";
var params = "state=" + state; var params = "state=" + state;
triggerAjaxRequest(url, null, null, params, triggerAjaxRequest(url, null, null, params,
{ "Content-type": "application/x-www-form-urlencoded" }); { "Content-type": "application/x-www-form-urlencoded" });
@ -3411,7 +3411,7 @@ function onDocumentKeydown(event) {
function saveTabState(event) { function saveTabState(event) {
var tab = $(event).memo; var tab = $(event).memo;
var url = ApplicationBaseURL + "saveSelectedList"; var url = ApplicationBaseURL + "/saveSelectedList";
var params = "list=" + tab; var params = "list=" + tab;
triggerAjaxRequest(url, null, null, params, triggerAjaxRequest(url, null, null, params,
{ "Content-type": "application/x-www-form-urlencoded" }); { "Content-type": "application/x-www-form-urlencoded" });

View File

@ -347,7 +347,7 @@ function onPopupRecurrenceWindow(event) {
if (ComponentEditor.recurrenceWindow && ComponentEditor.recurrenceWindow.open && !ComponentEditor.recurrenceWindow.closed) if (ComponentEditor.recurrenceWindow && ComponentEditor.recurrenceWindow.open && !ComponentEditor.recurrenceWindow.closed)
ComponentEditor.recurrenceWindow.focus(); ComponentEditor.recurrenceWindow.focus();
else else
ComponentEditor.recurrenceWindow = window.open(ApplicationBaseURL + "editRecurrence", ComponentEditor.recurrenceWindow = window.open(ApplicationBaseURL + "/editRecurrence",
sanitizeWindowName(activeCalendar + activeComponent + "Recurrence"), sanitizeWindowName(activeCalendar + activeComponent + "Recurrence"),
"width=500,height=400"); "width=500,height=400");
} }
@ -373,7 +373,7 @@ function onPopupReminderWindow(event) {
else { else {
var height = (emailAlarmsEnabled ? 235 : 150); var height = (emailAlarmsEnabled ? 235 : 150);
ComponentEditor.reminderWindow ComponentEditor.reminderWindow
= window.open(ApplicationBaseURL + "editReminder", = window.open(ApplicationBaseURL + "/editReminder",
sanitizeWindowName(activeCalendar + activeComponent + "Reminder"), sanitizeWindowName(activeCalendar + activeComponent + "Reminder"),
"width=255,height=" + height); "width=255,height=" + height);
} }
@ -400,7 +400,7 @@ function onOkButtonClick (e) {
else if (value == 3) else if (value == 3)
action = 'tentative'; action = 'tentative';
else if (value == 4) { else if (value == 4) {
var url = ApplicationBaseURL + activeCalendar + '/' + activeComponent; var url = ApplicationBaseURL + "/" + activeCalendar + "/" + activeComponent;
delegateInvitation(url, modifyEventCallback); delegateInvitation(url, modifyEventCallback);
} }

View File

@ -38,7 +38,7 @@ function onLoadHandler() {
} }
function loadMailboxes() { function loadMailboxes() {
var url = ApplicationBaseURL + "Mail/0/mailboxes"; var url = ApplicationBaseURL + "/Mail/0/mailboxes";
triggerAjaxRequest(url, onLoadMailboxesCallback); triggerAjaxRequest(url, onLoadMailboxesCallback);
} }

View File

@ -328,7 +328,7 @@ function updateSieveFilterRow(filterTable, number, filter) {
} }
function _editFilter(filterId) { function _editFilter(filterId) {
var urlstr = ApplicationBaseURL + "editFilter?filter=" + filterId; var urlstr = ApplicationBaseURL + "/editFilter?filter=" + filterId;
var win = window.open(urlstr, "sieve_filter_" + filterId, var win = window.open(urlstr, "sieve_filter_" + filterId,
"width=560,height=380,resizable=0"); "width=560,height=380,resizable=0");
if (win) if (win)

View File

@ -91,6 +91,7 @@ function createElement(tagName, id, classes, attributes, htmlAttributes, parentN
function URLForFolderID(folderID) { function URLForFolderID(folderID) {
var folderInfos = folderID.split(":"); var folderInfos = folderID.split(":");
var url; var url;
if (folderInfos.length > 1) { if (folderInfos.length > 1) {
url = UserFolderURL + "../" + encodeURI(folderInfos[0]); url = UserFolderURL + "../" + encodeURI(folderInfos[0]);
if (!(folderInfos[0].endsWith('/') if (!(folderInfos[0].endsWith('/')
@ -100,9 +101,8 @@ function URLForFolderID(folderID) {
} }
else { else {
var folderInfo = folderInfos[0]; var folderInfo = folderInfos[0];
if (ApplicationBaseURL.endsWith('/') if (!(folderInfo.startsWith('/')))
&& folderInfo.startsWith('/')) folderInfo = "/" + folderInfo;
folderInfo = folderInfo.substr(1);
url = ApplicationBaseURL + encodeURI(folderInfo); url = ApplicationBaseURL + encodeURI(folderInfo);
} }
@ -173,9 +173,7 @@ function sanitizeWindowName(dirtyWindowName) {
function openUserFolderSelector(callback, type) { function openUserFolderSelector(callback, type) {
var urlstr = ApplicationBaseURL; var urlstr = ApplicationBaseURL;
if (! urlstr.endsWith('/')) urlstr += ("/../../" + UserLogin + "/Contacts/userFolders");
urlstr += '/';
urlstr += ("../../" + UserLogin + "/Contacts/userFolders");
var div = $("popupFrame"); var div = $("popupFrame");
if (div) { if (div) {
@ -328,7 +326,7 @@ function openMailTo(senderMailTo) {
if (sanitizedAddresses.length > 0) if (sanitizedAddresses.length > 0)
openMailComposeWindow(ApplicationBaseURL openMailComposeWindow(ApplicationBaseURL
+ "../Mail/compose?mailto=" + encodeURIComponent(Object.toJSON(sanitizedAddresses)) + "/../Mail/compose?mailto=" + encodeURIComponent(Object.toJSON(sanitizedAddresses))
+ ((subject.length > 0)?"?subject=" + encodeURIComponent(subject):"")); + ((subject.length > 0)?"?subject=" + encodeURIComponent(subject):""));
return false; /* stop following the link */ return false; /* stop following the link */
@ -1803,12 +1801,7 @@ function CurrentModule() {
if (ApplicationBaseURL) { if (ApplicationBaseURL) {
var parts = ApplicationBaseURL.split("/"); var parts = ApplicationBaseURL.split("/");
var last = parts.length - 1; var last = parts.length - 1;
while (last > -1 && parts[last] == "") { module = parts[last];
last--;
}
if (last > -1) {
module = parts[last];
}
} }
return module; return module;