From 2993cf22558fcc744831664bcb555ffac4e42bc8 Mon Sep 17 00:00:00 2001 From: Jan Schneider Date: Fri, 11 Jun 2010 16:33:38 +0200 Subject: [PATCH] Allow to drag all-day events. --- kronolith/js/kronolith.js | 22 +++++++++++++++++++++- kronolith/themes/screen.css | 15 +++++++++------ 2 files changed, 30 insertions(+), 7 deletions(-) diff --git a/kronolith/js/kronolith.js b/kronolith/js/kronolith.js index 1bf163169..f2ac0418c 100644 --- a/kronolith/js/kronolith.js +++ b/kronolith/js/kronolith.js @@ -602,6 +602,7 @@ KronolithCore = { td.addClassName('kronolithToday'); this.addTimeMarker('kronolithEventsWeek' + dateString); } + new Drop(td.down('div')); div = div.next('div'); th = th.next('td'); td = td.next('td'); @@ -1650,6 +1651,25 @@ KronolithCore = { } } else { $('kronolithAllDay' + date).insert(div.setStyle(style)); + if (event.value.pe) { + div.addClassName('kronolithEditable'); + var layout = div.getLayout(), + minLeft = $('kronolithViewWeekHead').down('.kronolithFirstCol').getWidth() + this[storage].spacing + (parseInt(div.getStyle('marginLeft')) || 0), + minTop = $('kronolithViewWeekHead').down('thead').getHeight() + this[storage].spacing + (parseInt(div.getStyle('marginTop')) || 0), + maxLeft = $('kronolithViewWeekHead').getWidth() - layout.get('margin-box-width'), + maxTop = $('kronolithViewWeekHead').down('thead').getHeight() + $('kronolithViewWeekHead').down('.kronolithAllDay').getHeight(), + opts = { + threshold: 5, + parentElement: function() { + return $('kronolithViewWeek').down('.kronolithViewHead'); + }, + snap: function(x, y) { + return [Math.min(Math.max(x, minLeft), maxLeft), + Math.min(Math.max(y, minTop), maxTop - div.getHeight())]; + } + }; + new Drag(event.value.nodeId, opts); + } } } break; @@ -4400,7 +4420,7 @@ KronolithCore = { diff = newDate.subtract(lastDate), eventid = el.retrieve('eventid'), cal = el.retrieve('calendar'), - viewDates = this.viewDates(this.date, 'month'), + viewDates = this.viewDates(this.date, this.view), start = viewDates[0].toString('yyyyMMdd'), end = viewDates[1].toString('yyyyMMdd'); diff --git a/kronolith/themes/screen.css b/kronolith/themes/screen.css index e2167d29f..a9e3fe2d0 100644 --- a/kronolith/themes/screen.css +++ b/kronolith/themes/screen.css @@ -1412,8 +1412,8 @@ div.kronolithEvent { border-radius: 5px; } #kronolithViewMonth div.kronolithEvent, -#kronolithViewDay .kronolithAllDay div.kronolithEvent, -#kronolithViewWeek .kronolithAllDay div.kronolithEvent { +#kronolithViewDay .kronolithViewHead div.kronolithEvent, +#kronolithViewWeek .kronolithViewHead div.kronolithEvent { position: relative; width: auto; line-height: 15px; @@ -1423,16 +1423,19 @@ div.kronolithEvent { -webkit-border-radius: 5px; border-radius: 5px; } -#kronolithViewDay .kronolithAllDay div.kronolithEvent, -#kronolithViewWeek .kronolithAllDay div.kronolithEvent { +#kronolithViewDay .kronolithViewHead div.kronolithEvent, +#kronolithViewWeek .kronolithViewHead div.kronolithEvent { white-space: nowrap; } -#kronolithViewDay .kronolithAllDay div.kronolithEvent { +#kronolithViewDay .kronolithViewHead div.kronolithEvent { float: left; } -#kronolithViewWeek .kronolithAllDay div.kronolithEvent { +#kronolithViewWeek .kronolithViewHead div.kronolithEvent { margin-right: 10%; } +#kronolithViewWeek .kronolithViewHead div.kronolithEvent.drag { +/* margin: 28px 0 30px 28px;*/ +} div.kronolithEvent .kronolithDragger { position: absolute; visibility: hidden; -- 2.11.0