From 3daf7bde2e150c623b80a3a0518196121bd4ea36 Mon Sep 17 00:00:00 2001 From: Adrian Holovaty Date: Wed, 1 Mar 2006 02:53:00 +0000 Subject: [PATCH] Fixed #1426 -- Made several admin JavaScript improvements. Thanks, anonymous git-svn-id: http://code.djangoproject.com/svn/django/trunk@2448 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- .../media/js/admin/RelatedObjectLookups.js | 8 ++--- django/contrib/admin/media/js/calendar.js | 24 +++++++------ django/contrib/admin/media/js/core.js | 6 ++-- django/contrib/admin/media/js/dateparse.js | 36 +++++++++++-------- 4 files changed, 41 insertions(+), 33 deletions(-) diff --git a/django/contrib/admin/media/js/admin/RelatedObjectLookups.js b/django/contrib/admin/media/js/admin/RelatedObjectLookups.js index 35b949b30d..72c4e95eca 100644 --- a/django/contrib/admin/media/js/admin/RelatedObjectLookups.js +++ b/django/contrib/admin/media/js/admin/RelatedObjectLookups.js @@ -3,11 +3,11 @@ function showRelatedObjectLookupPopup(triggeringLink) { var name = triggeringLink.id.replace(/^lookup_/, ''); - var href + var href; if (triggeringLink.href.search(/\?/) >= 0) { href = triggeringLink.href + '&pop=1'; } else { - href = triggeringLink.href + '?pop=1' + href = triggeringLink.href + '?pop=1'; } var win = window.open(href, name, 'height=500,width=740,resizable=yes,scrollbars=yes'); win.focus(); @@ -33,12 +33,12 @@ function showAddAnotherPopup(triggeringLink) { } function dismissAddAnotherPopup(win, newId, newRepr) { - var name = win.name.replace(/___/g, '.') + var name = win.name.replace(/___/g, '.'); var elem = document.getElementById(name); if (elem) { if (elem.nodeName == 'SELECT') { var o = new Option(newRepr, newId); - elem.options[elem.options.length] = o + elem.options[elem.options.length] = o; elem.selectedIndex = elem.length - 1; } else if (elem.nodeName == 'INPUT') { elem.value = newId; diff --git a/django/contrib/admin/media/js/calendar.js b/django/contrib/admin/media/js/calendar.js index 56a1a82d0d..90351763a7 100644 --- a/django/contrib/admin/media/js/calendar.js +++ b/django/contrib/admin/media/js/calendar.js @@ -102,15 +102,17 @@ function Calendar(div_id, callback) { this.today = new Date(); this.currentMonth = this.today.getMonth() + 1; this.currentYear = this.today.getFullYear(); - this.drawCurrent = function() { +} +Calendar.prototype = { + drawCurrent: function() { CalendarNamespace.draw(this.currentMonth, this.currentYear, this.div_id, this.callback); - } - this.drawDate = function(month, year) { + }, + drawDate: function(month, year) { this.currentMonth = month; this.currentYear = year; this.drawCurrent(); - } - this.drawPreviousMonth = function() { + }, + drawPreviousMonth: function() { if (this.currentMonth == 1) { this.currentMonth = 12; this.currentYear--; @@ -119,8 +121,8 @@ function Calendar(div_id, callback) { this.currentMonth--; } this.drawCurrent(); - } - this.drawNextMonth = function() { + }, + drawNextMonth: function() { if (this.currentMonth == 12) { this.currentMonth = 1; this.currentYear++; @@ -129,12 +131,12 @@ function Calendar(div_id, callback) { this.currentMonth++; } this.drawCurrent(); - } - this.drawPreviousYear = function() { + }, + drawPreviousYear: function() { this.currentYear--; this.drawCurrent(); - } - this.drawNextYear = function() { + }, + drawNextYear: function() { this.currentYear++; this.drawCurrent(); } diff --git a/django/contrib/admin/media/js/core.js b/django/contrib/admin/media/js/core.js index 62d74211de..1c8f678773 100644 --- a/django/contrib/admin/media/js/core.js +++ b/django/contrib/admin/media/js/core.js @@ -70,7 +70,7 @@ function findPosX(obj) { var curleft = 0; if (obj.offsetParent) { while (obj.offsetParent) { - curleft += obj.offsetLeft + curleft += obj.offsetLeft; obj = obj.offsetParent; } } else if (obj.x) { @@ -83,7 +83,7 @@ function findPosY(obj) { var curtop = 0; if (obj.offsetParent) { while (obj.offsetParent) { - curtop += obj.offsetTop + curtop += obj.offsetTop; obj = obj.offsetParent; } } else if (obj.y) { @@ -130,7 +130,7 @@ Date.prototype.getHourMinute = function() { // String object extensions // ---------------------------------------------------------------------------- String.prototype.pad_left = function(pad_length, pad_string) { - new_string = this; + var new_string = this; for (var i = 0; new_string.length < pad_length; i++) { new_string = pad_string + new_string; } diff --git a/django/contrib/admin/media/js/dateparse.js b/django/contrib/admin/media/js/dateparse.js index 785e9fd8ff..51821c78e5 100644 --- a/django/contrib/admin/media/js/dateparse.js +++ b/django/contrib/admin/media/js/dateparse.js @@ -4,24 +4,30 @@ */ /* Finds the index of the first occurence of item in the array, or -1 if not found */ -Array.prototype.indexOf = function(item) { - for (var i = 0; i < this.length; i++) { - if (this[i] == item) { - return i; +if (typeof Array.prototype.indexOf == 'undefined') { + Array.prototype.indexOf = function(item) { + var len = this.length; + for (var i = 0; i < len; i++) { + if (this[i] == item) { + return i; + } } - } - return -1; -}; + return -1; + }; +} /* Returns an array of items judged 'true' by the passed in test function */ -Array.prototype.filter = function(test) { - var matches = []; - for (var i = 0; i < this.length; i++) { - if (test(this[i])) { - matches[matches.length] = this[i]; +if (typeof Array.prototype.filter == 'undefined') { + Array.prototype.filter = function(test) { + var matches = []; + var len = this.length; + for (var i = 0; i < len; i++) { + if (test(this[i])) { + matches[matches.length] = this[i]; + } } - } - return matches; -}; + return matches; + }; +} var monthNames = gettext("January February March April May June July August September October November December").split(" "); var weekdayNames = gettext("Sunday Monday Tuesday Wednesday Thursday Friday Saturday").split(" ");