From b0b9cf00d2d7409569ed27a3388d3b05f2110196 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Wed, 23 Jul 2014 12:24:49 -0400
Subject: [PATCH] Fix errors when using localStorage in Safari's private browsing mode (#1489996)

---
 plugins/jqueryui/js/jquery-ui-accessible-datepicker.js |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/plugins/jqueryui/js/jquery-ui-accessible-datepicker.js b/plugins/jqueryui/js/jquery-ui-accessible-datepicker.js
index ae6ba37..1c79e13 100644
--- a/plugins/jqueryui/js/jquery-ui-accessible-datepicker.js
+++ b/plugins/jqueryui/js/jquery-ui-accessible-datepicker.js
@@ -74,13 +74,14 @@
 			.attr('aria-labelledby', inst.id + '-dp-title');
 		}
 		else {
-			inst.dpDiv.attr('id', inst.id + '-dp-widget')
+			var widgetId = inst.dpDiv.attr('id') || inst.id + '-dp-widget';
+			inst.dpDiv.attr('id', widgetId)
 				.attr('aria-hidden', 'true')
 				.attr('aria-labelledby', inst.id + '-dp-title');
 
 				$(inst.input).attr('aria-haspopup', 'true')
 					.attr('aria-expanded', 'false')
-					.attr('aria-owns', inst.id + '-dp-widget');
+					.attr('aria-owns', widgetId);
 		}
 
 		return inst;
@@ -93,7 +94,7 @@
 		var that = this;
 
 		// register additional keyboard events to control date selection with cursor keys
-		$(target).bind('keyup', function(event) {
+		$(target).unbind('keyup.datepicker-extended').bind('keyup.datepicker-extended', function(event) {
 			var inc = 1;
 			switch (event.keyCode) {
 				case 109:
@@ -192,7 +193,7 @@
 			.attr('tabindex', inst.inline ? '0' : '-1')
 			.attr('role', 'grid')
 			.attr('aria-readonly', 'true')
-			.attr('aria-activedescendant', activeCell.attr('id') || '')
+			.attr('aria-activedescendant', activeCell ? activeCell.attr('id') : '')
 			.find('td').attr('role', 'gridcell').attr('aria-selected', 'false')
 			.find('a').attr('tabindex', '-1');
 

--
Gitblit v1.9.1