dragNdrop from the events table to the calendars list
parent
ccf181bcf9
commit
6dddb5c98c
|
@ -9,7 +9,7 @@
|
|||
className="UIxPageFrame"
|
||||
const:userDefaultsKeys="SOGoCalendarCategoriesColors,SOGoDefaultCalendar"
|
||||
const:userSettingsKeys="Calendar,ShowCompletedTasks"
|
||||
const:jsFiles="SchedulerUIDnD.js"
|
||||
const:jsFiles="SchedulerUIDnD.js,jquery-ui.js"
|
||||
title="title">
|
||||
<script type="text/javascript">
|
||||
var firstDayOfWeek = <var:string value="firstDayOfWeek"/>;
|
||||
|
|
|
@ -1104,6 +1104,7 @@ function eventsListCallback(http) {
|
|||
}
|
||||
}
|
||||
}
|
||||
configureDraggables();
|
||||
}
|
||||
else
|
||||
log ("eventsListCallback Ajax error");
|
||||
|
@ -2898,6 +2899,7 @@ function updateCalendarsList(method) {
|
|||
var url = URLForFolderID(folderID) + "/canAccessContent";
|
||||
triggerAjaxRequest(url, calendarEntryCallback, folderID);
|
||||
}
|
||||
configureDroppables();
|
||||
}
|
||||
|
||||
//function validateBrowseURL(input) {
|
||||
|
@ -2992,6 +2994,7 @@ function onTasksListMenuPrepareVisibility() {
|
|||
|
||||
return true;
|
||||
}
|
||||
|
||||
function getMenus() {
|
||||
var menus = {};
|
||||
|
||||
|
@ -3065,7 +3068,6 @@ function onMenuRawTask(event) {
|
|||
openGenericWindow.delay(0.1, url);
|
||||
}
|
||||
|
||||
|
||||
function onMenuSharing(event) {
|
||||
if ($(this).hasClassName("disabled"))
|
||||
return;
|
||||
|
@ -3099,6 +3101,96 @@ function onMenuAllDayView(event) {
|
|||
popupMenu(event, 'allDayViewMenu', getTarget(event));
|
||||
}
|
||||
|
||||
function configureDraggables() {
|
||||
if ($("eventsList")) {
|
||||
var rows = jQuery("tr.eventRow");
|
||||
try { rows.draggable("destroy"); } catch (e) {}
|
||||
rows.draggable({
|
||||
helper: function (event) { return '<div id="dragDropVisual"></div>'; },
|
||||
start: startDragging,
|
||||
drag: whileDragging,
|
||||
stop: stopDragging,
|
||||
appendTo: 'body',
|
||||
cursorAt: { right: 25 },
|
||||
scroll: false,
|
||||
distance: 4,
|
||||
zIndex: 20
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function configureDroppables() {
|
||||
jQuery("#calendarList li").droppable({
|
||||
hoverClass: 'genericHoverClass',
|
||||
drop: dropAction });
|
||||
}
|
||||
|
||||
function startDragging(event, ui) {
|
||||
var row = event.target;
|
||||
var handle = ui.helper;
|
||||
var events = $('eventsList').getSelectedRowsId();
|
||||
var count = events.length;
|
||||
|
||||
if (count == 0 || events.indexOf(row.id) < 0) {
|
||||
onRowClick(event, $(row.id));
|
||||
events = $("eventsList").getSelectedRowsId();
|
||||
count = events.length;
|
||||
}
|
||||
handle.html(count);
|
||||
|
||||
handle.show();
|
||||
}
|
||||
|
||||
function whileDragging(event, ui) {
|
||||
if (event)
|
||||
var handle = ui.helper;
|
||||
}
|
||||
|
||||
function stopDragging(event, ui) {
|
||||
var handle = ui.helper;
|
||||
handle.hide();
|
||||
}
|
||||
|
||||
function dropAction(event, ui) {
|
||||
var action = "adjust";
|
||||
refreshEventsAndDisplay();
|
||||
dropSelectedEvents(action, this.id.substr(1));
|
||||
}
|
||||
|
||||
function dropSelectedEvents(action, toId) {
|
||||
var selectedCalendars = $("calendarList").getElementsByTagName("li");
|
||||
if (selectedCalendars.length > 0) {
|
||||
var eventIds = $('eventsList').getSelectedRowsId();
|
||||
for (var i = 0; i < eventIds.length; i++) {
|
||||
if (!eventIds[i].endsWith("ics")) {
|
||||
showAlertDialog(_("Invalid, it is just invalid.. don't try this again please"));
|
||||
return false;
|
||||
}
|
||||
else {
|
||||
if (eventIds.grep(toId+"-").length == 0) {
|
||||
|
||||
var x = eventIds[0].indexOf('-');
|
||||
if (eventIds[0].indexOf('-') == 4) {
|
||||
fromId = eventIds[0].substr(0,25);
|
||||
eventICS = eventIds[0].substr(26);
|
||||
}
|
||||
else {
|
||||
fromId = eventIds[0].substr(0, x);
|
||||
eventICS = eventIds[0].slice(x + 1);
|
||||
}
|
||||
|
||||
var calendarID = "calendarID=" + fromId + "," + toId;
|
||||
var params = calendarID + "&days=0&start=0&duration=0";
|
||||
|
||||
var urlstr = ApplicationBaseURL + "/" + fromId + "/" + eventICS + "/adjust?" + params;
|
||||
|
||||
triggerAjaxRequest(urlstr, updateEventFromDraggingCallback);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function configureDragHandles() {
|
||||
var handle = $("verticalDragHandle");
|
||||
if (handle) {
|
||||
|
|
|
@ -11,10 +11,9 @@ function onThisButtonClick(event) {
|
|||
else if (action == 'delete')
|
||||
window.opener.performEventDeletion(calendarFolder, componentName,
|
||||
recurrenceName);
|
||||
else if (action == 'adjust') {
|
||||
else if (action == 'adjust')
|
||||
window.opener.performEventAdjustment(calendarFolder, componentName,
|
||||
recurrenceName, queryParameters);
|
||||
}
|
||||
else
|
||||
window.alert("Invalid action: " + action);
|
||||
|
||||
|
|
Loading…
Reference in New Issue