DnD tasksList
parent
5de51e8aa1
commit
c389630d76
|
@ -1535,9 +1535,14 @@ DIV#calendarContent .alert-box span {
|
||||||
border:1px solid #8ed9f6;
|
border:1px solid #8ed9f6;
|
||||||
}
|
}
|
||||||
|
|
||||||
DIV#dragDropVisual
|
DIV#DnDVisualEvents
|
||||||
|
{ background-image: url(event7.png); }
|
||||||
|
|
||||||
|
DIV#DnDVisualTasks
|
||||||
|
{ background-image: url(task.png); }
|
||||||
|
|
||||||
|
DIV#DnDVisualEvents, DIV#DnDVisualTasks
|
||||||
{
|
{
|
||||||
background-image: url(event7.png);
|
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-position: 4px 2px;
|
background-position: 4px 2px;
|
||||||
width: 5px;
|
width: 5px;
|
||||||
|
|
|
@ -174,6 +174,14 @@ function updateEventFromDraggingCallback(http) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function updateTaskFromDraggingCallback(http) {
|
||||||
|
if (http.readyState == 4) {
|
||||||
|
if (http.status == 200) {
|
||||||
|
refreshTasks();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function getSelectedFolder() {
|
function getSelectedFolder() {
|
||||||
var folder;
|
var folder;
|
||||||
var list = $("calendarList");
|
var list = $("calendarList");
|
||||||
|
@ -1105,7 +1113,7 @@ function eventsListCallback(http) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
configureDraggables();
|
configureEventsDraggables();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
log ("eventsListCallback Ajax error");
|
log ("eventsListCallback Ajax error");
|
||||||
|
@ -1182,6 +1190,7 @@ function tasksListCallback(http) {
|
||||||
row.setAttribute("id", calendar + "-" + cname);
|
row.setAttribute("id", calendar + "-" + cname);
|
||||||
//listItem.addClassName(data[i][5]); // Classification
|
//listItem.addClassName(data[i][5]); // Classification
|
||||||
row.addClassName(data[i][12]); // status
|
row.addClassName(data[i][12]); // status
|
||||||
|
row.addClassName("taskRow");
|
||||||
row.calendar = calendar;
|
row.calendar = calendar;
|
||||||
row.cname = cname;
|
row.cname = cname;
|
||||||
row.erasable = data[i][10] || IsSuperUser;
|
row.erasable = data[i][10] || IsSuperUser;
|
||||||
|
@ -1272,7 +1281,10 @@ function tasksListCallback(http) {
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
log ("tasksListCallback: no data");
|
log ("tasksListCallback: no data");
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
configureTasksDraggables();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
log ("tasksListCallback Ajax error");
|
log ("tasksListCallback Ajax error");
|
||||||
|
@ -3101,12 +3113,30 @@ function onMenuAllDayView(event) {
|
||||||
popupMenu(event, 'allDayViewMenu', getTarget(event));
|
popupMenu(event, 'allDayViewMenu', getTarget(event));
|
||||||
}
|
}
|
||||||
|
|
||||||
function configureDraggables() {
|
function configureEventsDraggables() {
|
||||||
if ($("eventsList")) {
|
if ($("eventsList")) {
|
||||||
var rows = jQuery("tr.eventRow");
|
var rows = jQuery("tr.eventRow");
|
||||||
try { rows.draggable("destroy"); } catch (e) {}
|
try { rows.draggable("destroy"); } catch (e) {}
|
||||||
rows.draggable({
|
rows.draggable({
|
||||||
helper: function (event) { return '<div id="dragDropVisual"></div>'; },
|
helper: function (event) { return '<div id="DnDVisualEvents"></div>'; },
|
||||||
|
start: startDragging,
|
||||||
|
drag: whileDragging,
|
||||||
|
stop: stopDragging,
|
||||||
|
appendTo: 'body',
|
||||||
|
cursorAt: { right: 25 },
|
||||||
|
scroll: false,
|
||||||
|
distance: 4,
|
||||||
|
zIndex: 20
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function configureTasksDraggables() {
|
||||||
|
if ($("tasksList")) {
|
||||||
|
var rows = jQuery("tr.taskRow");
|
||||||
|
try { rows.draggable("destroy"); } catch (e) {}
|
||||||
|
rows.draggable({
|
||||||
|
helper: function (event) { return '<div id="DnDVisualTasks"></div>'; },
|
||||||
start: startDragging,
|
start: startDragging,
|
||||||
drag: whileDragging,
|
drag: whileDragging,
|
||||||
stop: stopDragging,
|
stop: stopDragging,
|
||||||
|
@ -3128,12 +3158,21 @@ function startDragging(event, ui) {
|
||||||
var row = event.target;
|
var row = event.target;
|
||||||
var handle = ui.helper;
|
var handle = ui.helper;
|
||||||
var events = $('eventsList').getSelectedRowsId();
|
var events = $('eventsList').getSelectedRowsId();
|
||||||
var count = events.length;
|
var tasks = $('tasksList').getSelectedRowsId();
|
||||||
|
|
||||||
|
if (events.length > 0)
|
||||||
|
var count = events.length;
|
||||||
|
else
|
||||||
|
var count = tasks.length;
|
||||||
|
|
||||||
if (count == 0 || events.indexOf(row.id) < 0) {
|
if (count == 0 || events.indexOf(row.id) < 0) {
|
||||||
onRowClick(event, $(row.id));
|
onRowClick(event, $(row.id));
|
||||||
events = $("eventsList").getSelectedRowsId();
|
events = $("eventsList").getSelectedRowsId();
|
||||||
count = events.length;
|
tasks = $("tasksList").getSelectedRowsId();
|
||||||
|
if (events.length > 0)
|
||||||
|
var count = events.length;
|
||||||
|
else
|
||||||
|
var count = tasks.length;
|
||||||
}
|
}
|
||||||
handle.html(count);
|
handle.html(count);
|
||||||
|
|
||||||
|
@ -3151,48 +3190,66 @@ function stopDragging(event, ui) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function dropAction(event, ui) {
|
function dropAction(event, ui) {
|
||||||
|
var events = $("eventsList").getSelectedRowsId();
|
||||||
|
var tasks = $("tasksList").getSelectedRowsId();
|
||||||
|
|
||||||
var action = "adjust";
|
if(events.length > 0 || tasks.length > 0)
|
||||||
refreshEventsAndDisplay();
|
dropSelectedItems(this.id.substr(1));
|
||||||
dropSelectedEvents(action, this.id.substr(1));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function dropSelectedEvents(action, toId) {
|
function dropSelectedItems(toId) {
|
||||||
var selectedCalendars = $("calendarList").getElementsByTagName("li");
|
var eventIds = $('eventsList').getSelectedRowsId();
|
||||||
if (selectedCalendars.length > 0) {
|
var taskIds = $('tasksList').getSelectedRowsId();
|
||||||
var eventIds = $('eventsList').getSelectedRowsId();
|
var itemIds = {};
|
||||||
for (var i = 0; i < eventIds.length; i++) {
|
|
||||||
|
if (eventIds.length > 0) {
|
||||||
|
itemIds.data = eventIds;
|
||||||
|
itemIds.type = "events";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
itemIds.data = taskIds;
|
||||||
|
itemIds.type = "tasks";
|
||||||
|
}
|
||||||
|
|
||||||
|
for (var i = 0; i < itemIds.data.length; i++) {
|
||||||
// Find the event ID (.ics)
|
// Find the event ID (.ics)
|
||||||
if (!eventIds[i].endsWith("ics")) {
|
if (!itemIds.data[i].endsWith("ics")) {
|
||||||
// If it is a repeated event, substract the occurence part
|
// If it is a repeated event, substract the occurence part
|
||||||
if (eventIds[i].indexOf(".ics")) {
|
if (itemIds.data[i].indexOf(".ics")) {
|
||||||
var x = eventIds[i].indexOf(".ics") + 4;
|
var x = eventIds[i].indexOf(".ics") + 4;
|
||||||
eventIds[i] = eventIds[i].substr(0,x);
|
itemIds.data[i] = itemIds.data[i].substr(0,x);
|
||||||
}
|
|
||||||
else {
|
|
||||||
log("Can't find the event(.ics) on the item dragged : " + eventIds[i]);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
// Distinction between personal calendar and a calendar with a reference ID (ex: 4535-7545-B-5D3J)
|
else {
|
||||||
if (eventIds[i].search(toId+"-") == -1) {
|
log("Can't find the event(.ics) on the item dragged : " + eventIds[i]);
|
||||||
var x = eventIds[i].indexOf('-');
|
return false;
|
||||||
if (eventIds[i].indexOf('-') == 4) {
|
}
|
||||||
var regEx = new RegExp(/\w+\-\w+\-\w+\-\w+/);
|
}
|
||||||
var fromId = regEx.exec(eventIds[i]);
|
// Distinction between personal calendar and a calendar with a reference ID (ex: 4535-7545-B-5D3J)
|
||||||
var eventICS = eventIds[i].substr(fromId[0].length + 1);
|
if (itemIds.data[i].search(toId+"-") == -1) {
|
||||||
}
|
var x = itemIds.data[i].indexOf('-');
|
||||||
else {
|
if (itemIds.data[i].indexOf('-') == 4) {
|
||||||
var regEx = new RegExp(/\w+/);
|
var regEx = new RegExp(/\w+\-\w+\-\w+\-\w+/);
|
||||||
var fromId = regEx.exec(eventIds[i]);
|
var fromId = regEx.exec(itemIds.data[i]);
|
||||||
var eventICS = eventIds[i].substr(fromId[0].length + 1);
|
var eventICS = itemIds.data[i].substr(fromId[0].length + 1);
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
var regEx = new RegExp(/\w+/);
|
||||||
|
var fromId = regEx.exec(itemIds.data[i]);
|
||||||
|
var eventICS = itemIds.data[i].substr(fromId[0].length + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (itemIds.type == "events") {
|
||||||
var destinationCalendar = "destination=" + toId;
|
var destinationCalendar = "destination=" + toId;
|
||||||
var params = destinationCalendar + "&days=0&start=0&duration=0";
|
var params = destinationCalendar + "&days=0&start=0&duration=0";
|
||||||
var urlstr = ApplicationBaseURL + "/" + fromId + "/" + eventICS + "/adjust?" + params;
|
var urlstr = ApplicationBaseURL + "/" + fromId + "/" + eventICS + "/adjust?" + params;
|
||||||
|
|
||||||
triggerAjaxRequest(urlstr, updateEventFromDraggingCallback);
|
triggerAjaxRequest(urlstr, updateEventFromDraggingCallback);
|
||||||
}
|
}
|
||||||
|
else if (itemIds.type == "tasks") {
|
||||||
|
var params = "moveToCalendar=" + toId;
|
||||||
|
var urlstr = ApplicationBaseURL + "/" + fromId + "/" + eventICS + "/saveAsTask?" + params;
|
||||||
|
triggerAjaxRequest(urlstr, updateTaskFromDraggingCallback);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue