Author: michiel
Date: 2010-06-22 15:51:06 +0200 (Tue, 22 Jun 2010)
New Revision: 42651
Modified:
mmbase/trunk/contributions/calendar/src/main/webapp/mmbase/calendar/calendar.js
Log:
Modified:
mmbase/trunk/contributions/calendar/src/main/webapp/mmbase/calendar/calendar.js
===================================================================
---
mmbase/trunk/contributions/calendar/src/main/webapp/mmbase/calendar/calendar.js
2010-06-22 13:03:26 UTC (rev 42650)
+++
mmbase/trunk/contributions/calendar/src/main/webapp/mmbase/calendar/calendar.js
2010-06-22 13:51:06 UTC (rev 42651)
@@ -1,6 +1,7 @@
function MMCalendar() {
var self = this;
+ this.lastClick = null;
$(document).ready(function() {
self.init();
});
@@ -17,15 +18,58 @@
};
MMCalendar.prototype.init = function() {
+ var self = this;
+ $("table.mm_calendar td.same_month input[type=checkbox]").each(
+ function() {
+ if ($(this).is(":checked")) {
+ $(this).parent("td").addClass("checked");
+ }
+ }
+ );
$("table.mm_calendar td.same_month input[type=checkbox]").click(
function(ev) {
-
+ self.toggle($(this).parent("td")[0]);
+ var newClickValue = parseInt($(ev.target).val());
+ if (ev.shiftKey) {
+ if (self.lastClick != null) {
+ var newSelected = self.lastClick.checked;
+ var lastClickValue = parseInt($(self.lastClick).val());
+ var step = newClickValue > lastClickValue ? 1 : -1;
+ for (var i = lastClickValue; i <= newClickValue; i += step)
{
+ if (newSelected) {
+ $("td.day_" + i + "
input[type=checkbox]").attr("checked", "checked");
+ $("td.day_" + i).addClass("checked");
+ } else {
+ $("td.day_" + i + "
input[type=checkbox]").removeAttr("checked");
+ $("td.day_" + i).removeClass("checked");
+ }
+ }
+ }
+ if (self.lastClick != null) {
+ $(self.lastClick).parents("td").removeClass("selected");
+ }
+ self.lastClick = null;
+ } else {
+ if (self.lastClick != null) {
+ $(self.lastClick).parents("td").removeClass("selected");
+ }
+ self.lastClick = ev.target;
+ $(ev.target).parents("td").addClass("selected");
+ }
});
$("table.mm_calendar td.same_month").click(
function(ev) {
- console.log(ev);
+ $(this).find("input[type=checkbox]").click();
});
};
+MMCalendar.prototype.toggle = function(td) {
+ if ($(td).hasClass("checked")) {
+ $(td).removeClass("checked");
+ } else {
+ $(td).addClass("checked");
+ }
+};
+
var calendar = new MMCalendar();
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs