diff options
| author | Christopher Long <indirecthit@gmail.com> | 2006-08-11 13:57:28 +0000 |
|---|---|---|
| committer | Christopher Long <indirecthit@gmail.com> | 2006-08-11 13:57:28 +0000 |
| commit | 98bb076a49f61b21d91bcef0e0d1ef2fc716fc52 (patch) | |
| tree | e87a6bed91bee7c99856ab4cc24e66bc709374d0 | |
| parent | ea345fa7f4fa0c264505981d0c0ee1e16b11ab71 (diff) | |
[per-object-permissions] Separated the AJAX javascript from the non-AJAX JS
git-svn-id: http://code.djangoproject.com/svn/django/branches/per-object-permissions@3555 bcc190cf-cafb-0310-a4f2-bffc1f526a37
3 files changed, 255 insertions, 252 deletions
diff --git a/django/contrib/admin/media/js/row_level_permission.js b/django/contrib/admin/media/js/row_level_permission.js index ac01e34295..a99c36de92 100644 --- a/django/contrib/admin/media/js/row_level_permission.js +++ b/django/contrib/admin/media/js/row_level_permission.js @@ -1,237 +1,5 @@ -var add_row_level_permission = { - init: function() { - // Grab the elements we’ll need. - add_row_level_permission.form = document.getElementById("addRLPForm"); - add_row_level_permission.results_div = document.getElementById("rlpResults"); - - // This is so we can fade it in later. - YAHOO.util.Dom.setStyle(add_row_level_permission.results_div, "opacity", 0); - - // Hijack the form. - YAHOO.util.Event.addListener(add_row_level_permission.form, "submit", add_row_level_permission.submit_func); - }, - - submit_func: function(e) { - YAHOO.util.Event.preventDefault(e); - - //TODO: Remove any error messages here - - YAHOO.util.Connect.setForm(add_row_level_permission.form); - - //Temporarily disable the form. - for(var i=0; i<add_row_level_permission.form.elements.length; i++) { - add_row_level_permission.form.elements[i].disabled = true; - } - var cObj = YAHOO.util.Connect.asyncRequest("POST", - add_row_level_permission.form.action+"?ajax" , - add_row_level_permission.ajax_callback); - }, - - ajax_callback: { - success: function(o) { - var response_obj = eval('(' + o.responseText + ')'); - // Set up the animation on the results div. - var result_fade_out = null; - if(response_obj.result) { - result_fade_out = row_level_permission.output_success(response_obj.text, add_row_level_permission.results_div); - var results=response_obj.results - var new_rows = []; - var table = row_level_permission.edit_table; - for(var i=0; i<results.length; i++) { - row = add_row_level_permission.add_rlp_row(results[i].id, results[i].permission, results[i].hash); - var row_fade_in = new YAHOO.util.Anim(row, { - opacity: { from: 0, to: 100 } - }, 1, YAHOO.util.Easing.easeOut); - row_fade_in.onStart.subscribe(function() { - table.appendChild(row); - }); - row_fade_in.animate(); - } - } else { - result_fade_out = row_level_permission.output_error(response_obj.text, - add_row_level_permission.results_div); - } - for(var i=0; i<add_row_level_permission.form.elements.length; i++) - add_row_level_permission.form.elements[i].disabled = false; - result_fade_out.animate(); - }, - - failure: function(o) { - alert('An error has occurred'); - for(var i=0; i<add_row_level_permission.form.elements.length; i++) - add_row_level_permission.form.elements[i].disabled = false; - } - }, - - add_rlp_row: function(id, permission, hash) { - var emptyRow = document.getElementById('empty_editRLP'); - var newRow = emptyRow.cloneNode(true); - var form = YAHOO.util.Dom.getElementsByClassName('editRLPForm', 'form', newRow); - form=form[0]; - form.owner.options.selectedIndex = add_row_level_permission.form.owner.selectedIndex; - form.perm.options.selectedIndex = row_level_permission.find_in_select(form.perm, permission); - form.negative.checked =add_row_level_permission.form.negative.checked; - form.id = "editRLPForm-"+id; - newRow.id = "editRLP-"+id; - - var delete_link = YAHOO.util.Dom.getElementsByClassName('deleteLink', 'a', form); - delete_link = delete_link[0]; - delete_link.href = "../../../auth/row_level_permission/"+hash+"/delete/"; - - var copy_link = YAHOO.util.Dom.getElementsByClassName('copyToNewLink', 'a', newRow); - copy_link = copy_link[0]; - copy_link.href = "javascript:row_level_permission.copyToNew("+id+")"; - - form.action = "../../../auth/row_level_permission/"+hash+"/change/" - - row_level_permission.add_delete_listener(delete_link); - row_level_permission.add_apply_listener(form); - - return newRow; - }, -}; - var row_level_permission = { - init: function() { - row_level_permission.results_div = document.getElementById("rlpResults"); - row_level_permission.edit_table = document.getElementById('current-rlpTable'); - }, - - find_in_select: function(select,val) { - options = select.options; - for(var i=0; i<options.length; i++) { - if(options[i].value==val) { - return i - } - } - return -1; - }, - - add_apply_listener: function(el) { - YAHOO.util.Event.addListener( - el, - 'submit', - function(e) { - YAHOO.util.Event.preventDefault(e); - row_level_permission.applyRLP(this.action, this); - } - ); - }, - - add_delete_listener: function(el) { - YAHOO.util.Event.addListener( - el, - 'click', - function(e) { - YAHOO.util.Event.preventDefault(e); - row_level_permission.deleteRLP(this.href); - } - ); - }, - - deleteRLP: function(url) { - var confirm_ans = confirm("Are you sure?"); - if(confirm_ans) - var cObj = YAHOO.util.Connect.asyncRequest("POST", - url+"?ajax" , - row_level_permission.delete_callback); - return false; - }, - - delete_callback: { - success: function(o) - { - var response_obj = eval('(' + o.responseText + ')'); - // Set up the animation on the results div. - var result_fade_out = null; - if(response_obj.result) { - result_fade_out = row_level_permission.output_success(response_obj.text, document.getElementById("rlpResults")); - var row_fade_out = new YAHOO.util.Anim('editRLP-'+response_obj.id, { - opacity: { from:100, to: 0 } - }, 1, YAHOO.util.Easing.easeOut); - row_fade_out.onComplete.subscribe(function() { - var row = document.getElementById('editRLP-'+response_obj.id); - var table = row_level_permission.edit_table; - table.removeChild(row); - }); - row_fade_out.animate(); - } else { - result_fade_out = row_level_permission.output_errort(response_obj.text, - row_level_permission.results_div); - } - result_fade_out.animate(); - }, - failure: function(o) - { - alert('An error has occurred'); - } - }, - - output_error: function(text, div){ - YAHOO.util.Dom.replaceClass(div, "system-message", "errornote"); - return row_level_permission.output_text(text, div); - }, - - output_success: function(text, div){ - YAHOO.util.Dom.replaceClass(div, "errornote", "system-message"); - return row_level_permission.output_text(text, div); - }, - - output_text: function (text, div) { - var result_fade_out = new YAHOO.util.Anim(div, { - opacity: { to: 0 } - }, 0.25, YAHOO.util.Easing.easeOut); - var success_message = document.createElement('p'); - success_message.innerHTML = text; - YAHOO.util.Dom.setStyle(div, 'display', 'block'); - var result_fade_in = new YAHOO.util.Anim(div, { - opacity: { to: 1 } - }, 0.25, YAHOO.util.Easing.easeIn); - result_fade_out.onComplete.subscribe(function() { - div.innerHTML = ''; - div.appendChild(success_message); - result_fade_in.animate(); - }); - return result_fade_out; - }, - - applyRLP: function(url, form) { - YAHOO.util.Connect.setForm(form); - var cObj = YAHOO.util.Connect.asyncRequest("POST", - url+"?ajax" , - row_level_permission.apply_callback); - return false; - }, - apply_callback: { - success: function(o) - { - var response_obj = eval('(' + o.responseText + ')'); - // Set up the animation on the results div. - var result_fade_out = null; - if(response_obj.result) { - result_fade_out = row_level_permission.output_success(response_obj.text, document.getElementById("rlpResults")); - var row_highlight_on = new YAHOO.util.ColorAnim('editRLP-'+response_obj.id, { - backgroundColor: { to: 'rgb(255, 255, 204)' } - }, 1); - var row_highlight_off = new YAHOO.util.ColorAnim('editRLP-'+response_obj.id, { - backgroundColor: { to: 'rgb(255, 255, 255)' } - }, 1); - row_highlight_on.onComplete.subscribe(function() { - row_highlight_off.animate(); - }); - row_highlight_on.animate(); - } else { - result_fade_out = row_level_permission.output_errort(response_obj.text, - row_level_permission.results_div); - } - result_fade_out.animate(); - }, - failure: function(o) - { - alert('An error has occurred'); - } - }, copyToNew: function (id) { diff --git a/django/contrib/admin/media/js/row_level_permission_ajax.js b/django/contrib/admin/media/js/row_level_permission_ajax.js new file mode 100644 index 0000000000..045dfeb882 --- /dev/null +++ b/django/contrib/admin/media/js/row_level_permission_ajax.js @@ -0,0 +1,250 @@ +var add_row_level_permission = { + init: function() { + // Grab the elements we’ll need. + add_row_level_permission.form = document.getElementById("addRLPForm"); + add_row_level_permission.results_div = document.getElementById("rlpResults"); + + // This is so we can fade it in later. + YAHOO.util.Dom.setStyle(add_row_level_permission.results_div, "opacity", 0); + + // Hijack the form. + YAHOO.util.Event.addListener(add_row_level_permission.form, "submit", add_row_level_permission.submit_func); + }, + + submit_func: function(e) { + YAHOO.util.Event.preventDefault(e); + + //TODO: Remove any error messages here + + YAHOO.util.Connect.setForm(add_row_level_permission.form); + + //Temporarily disable the form. + for(var i=0; i<add_row_level_permission.form.elements.length; i++) { + add_row_level_permission.form.elements[i].disabled = true; + } + var cObj = YAHOO.util.Connect.asyncRequest("POST", + add_row_level_permission.form.action+"?ajax" , + add_row_level_permission.ajax_callback); + }, + + ajax_callback: { + success: function(o) { + var response_obj = eval('(' + o.responseText + ')'); + // Set up the animation on the results div. + var result_fade_out = null; + if(response_obj.result) { + result_fade_out = row_level_permission.output_success(response_obj.text, add_row_level_permission.results_div); + var results=response_obj.results + var new_rows = []; + var table = row_level_permission_ajax.edit_table; + for(var i=0; i<results.length; i++) { + row = add_row_level_permission.add_rlp_row(results[i].id, results[i].permission, results[i].hash); + var row_fade_in = new YAHOO.util.Anim(row, { + opacity: { from: 0, to: 100 } + }, 1, YAHOO.util.Easing.easeOut); + row_fade_in.onStart.subscribe(function() { + table.appendChild(row); + }); + row_fade_in.animate(); + } + } else { + result_fade_out = row_level_permission_ajax.output_error(response_obj.text, + add_row_level_permission.results_div); + } + for(var i=0; i<add_row_level_permission.form.elements.length; i++) + add_row_level_permission.form.elements[i].disabled = false; + result_fade_out.animate(); + }, + + failure: function(o) { + alert('An error has occurred'); + for(var i=0; i<add_row_level_permission.form.elements.length; i++) + add_row_level_permission.form.elements[i].disabled = false; + } + }, + + add_rlp_row: function(id, permission, hash) { + var emptyRow = document.getElementById('empty_editRLP'); + var newRow = emptyRow.cloneNode(true); + var form = YAHOO.util.Dom.getElementsByClassName('editRLPForm', 'form', newRow); + form=form[0]; + form.owner.options.selectedIndex = add_row_level_permission.form.owner.selectedIndex; + form.perm.options.selectedIndex = row_level_permission_ajax.find_in_select(form.perm, permission); + form.negative.checked =add_row_level_permission.form.negative.checked; + form.id = "editRLPForm-"+id; + newRow.id = "editRLP-"+id; + + var delete_link = YAHOO.util.Dom.getElementsByClassName('deleteLink', 'a', form); + delete_link = delete_link[0]; + delete_link.href = "../../../auth/row_level_permission/"+hash+"/delete/"; + + var copy_link = YAHOO.util.Dom.getElementsByClassName('copyToNewLink', 'a', newRow); + copy_link = copy_link[0]; + copy_link.href = "javascript:row_level_permission.copyToNew("+id+")"; + + form.action = "../../../auth/row_level_permission/"+hash+"/change/" + + row_level_permission_ajax.add_delete_listener(delete_link); + row_level_permission_ajax.add_apply_listener(form); + + return newRow; + }, +}; + +var row_level_permission_ajax = { + init: function() { + row_level_permission_ajax.results_div = document.getElementById("rlpResults"); + row_level_permission_ajax.edit_table = document.getElementById('current-rlpTable'); + }, + + find_in_select: function(select,val) { + options = select.options; + for(var i=0; i<options.length; i++) { + if(options[i].value==val) { + return i + } + } + return -1; + }, + + add_apply_listener: function(el) { + YAHOO.util.Event.addListener( + el, + 'submit', + function(e) { + YAHOO.util.Event.preventDefault(e); + row_level_permission_ajax.applyRLP(this.action, this); + } + ); + }, + + add_delete_listener: function(el) { + YAHOO.util.Event.addListener( + el, + 'click', + function(e) { + YAHOO.util.Event.preventDefault(e); + row_level_permission_ajax.deleteRLP(this.href); + } + ); + }, + + deleteRLP: function(url) { + var confirm_ans = confirm("Are you sure?"); + if(confirm_ans) + var cObj = YAHOO.util.Connect.asyncRequest("POST", + url+"?ajax" , + row_level_permission_ajax.delete_callback); + return false; + }, + + delete_callback: { + success: function(o) + { + var response_obj = eval('(' + o.responseText + ')'); + // Set up the animation on the results div. + var result_fade_out = null; + if(response_obj.result) { + result_fade_out = row_level_permission_ajax.output_success(response_obj.text, document.getElementById("rlpResults")); + var row_fade_out = new YAHOO.util.Anim('editRLP-'+response_obj.id, { + opacity: { from:100, to: 0 } + }, 1, YAHOO.util.Easing.easeOut); + row_fade_out.onComplete.subscribe(function() { + var row = document.getElementById('editRLP-'+response_obj.id); + var table = row_level_permission_ajax.edit_table; + table.removeChild(row); + }); + row_fade_out.animate(); + } else { + result_fade_out = row_level_permission_ajax.output_errort(response_obj.text, + row_level_permission_ajax.results_div); + } + result_fade_out.animate(); + }, + failure: function(o) + { + alert('An error has occurred'); + } + }, + + output_error: function(text, div){ + YAHOO.util.Dom.replaceClass(div, "system-message", "errornote"); + return row_level_permission_ajax.output_text(text, div); + }, + + output_success: function(text, div){ + YAHOO.util.Dom.replaceClass(div, "errornote", "system-message"); + return row_level_permission_ajax.output_text(text, div); + }, + + output_text: function (text, div) { + var result_fade_out = new YAHOO.util.Anim(div, { + opacity: { to: 0 } + }, 0.25, YAHOO.util.Easing.easeOut); + var success_message = document.createElement('p'); + success_message.innerHTML = text; + YAHOO.util.Dom.setStyle(div, 'display', 'block'); + var result_fade_in = new YAHOO.util.Anim(div, { + opacity: { to: 1 } + }, 0.25, YAHOO.util.Easing.easeIn); + result_fade_out.onComplete.subscribe(function() { + div.innerHTML = ''; + div.appendChild(success_message); + result_fade_in.animate(); + }); + return result_fade_out; + }, + + applyRLP: function(url, form) { + YAHOO.util.Connect.setForm(form); + var cObj = YAHOO.util.Connect.asyncRequest("POST", + url+"?ajax" , + row_level_permission_ajax.apply_callback); + return false; + }, + + apply_callback: { + success: function(o) + { + var response_obj = eval('(' + o.responseText + ')'); + // Set up the animation on the results div. + var result_fade_out = null; + if(response_obj.result) { + result_fade_out = row_level_permission_ajax.output_success(response_obj.text, document.getElementById("rlpResults")); + var row_highlight_on = new YAHOO.util.ColorAnim('editRLP-'+response_obj.id, { + backgroundColor: { to: 'rgb(255, 255, 204)' } + }, 1); + var row_highlight_off = new YAHOO.util.ColorAnim('editRLP-'+response_obj.id, { + backgroundColor: { to: 'rgb(255, 255, 255)' } + }, 1); + row_highlight_on.onComplete.subscribe(function() { + row_highlight_off.animate(); + }); + row_highlight_on.animate(); + } else { + result_fade_out = row_level_permission_ajax.output_errort(response_obj.text, + row_level_permission_ajax.results_div); + } + result_fade_out.animate(); + }, + failure: function(o) + { + alert('An error has occurred'); + } + }, +}; + +function init() { + add_row_level_permission.init(); + row_level_permission_ajax.init(); + + forms = document.forms; + for(var i=0; i<forms.length; i++) { + forms[i].reset; + } + + row_level_permission_ajax.add_delete_listener(YAHOO.util.Dom.getElementsByClassName( "deleteLink", 'a')); + row_level_permission_ajax.add_apply_listener(YAHOO.util.Dom.getElementsByClassName( "editRLPForm", 'form')); +} + +YAHOO.util.Event.addListener(window, 'load', init);
\ No newline at end of file diff --git a/django/contrib/admin/templates/admin/row_level_permission.html b/django/contrib/admin/templates/admin/row_level_permission.html index ae097a7031..98cca45a1e 100644 --- a/django/contrib/admin/templates/admin/row_level_permission.html +++ b/django/contrib/admin/templates/admin/row_level_permission.html @@ -1,31 +1,16 @@ {% load i18n admin_modify %} + +{% comment %}Start of AJAX{% endcomment %} {% include_admin_script "js/lib/YahooUI/yahoo/yahoo-debug.js" %} {% include_admin_script "js/lib/YahooUI/event/event-debug.js" %} {% include_admin_script "js/lib/YahooUI/connection/connection-debug.js" %} {% include_admin_script "js/lib/YahooUI/dom/dom-debug.js" %} {% include_admin_script "js/lib/YahooUI/animation/animation-debug.js" %} -{% include_admin_script "js/lib/YahooUI/logger/logger-debug.js" %} -{% include_admin_script "js/row_level_permission.js" %} -<link rel="stylesheet" type="text/css" href="/media/js/lib/YahooUI/logger/logger.css" /> +{% include_admin_script "js/row_level_permission_ajax.js" %} +{% comment %}End of AJAX{% endcomment %} +{% include_admin_script "js/row_level_permission.js" %} -<script type="text/javascript"> - -function init() { - add_row_level_permission.init(); - row_level_permission.init(); - - forms = document.forms; - for(var i=0; i<forms.length; i++) { - forms[i].reset; - } - - row_level_permission.add_delete_listener(YAHOO.util.Dom.getElementsByClassName( "deleteLink", 'a')); - row_level_permission.add_apply_listener(YAHOO.util.Dom.getElementsByClassName( "editRLPForm", 'form')); -} - -YAHOO.util.Event.addListener(window, 'load', init); -</script> <h1>{% trans "Row Level Permissions" %}</h1> <div id="rlpResults"> |
