Allow to drag all-day events.
authorJan Schneider <jan@horde.org>
Fri, 11 Jun 2010 14:33:38 +0000 (16:33 +0200)
committerJan Schneider <jan@horde.org>
Fri, 11 Jun 2010 14:34:06 +0000 (16:34 +0200)
kronolith/js/kronolith.js
kronolith/themes/screen.css

index 1bf1631..f2ac041 100644 (file)
@@ -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');
 
index e2167d2..a9e3fe2 100644 (file)
@@ -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;