| 1 |
// $Id: jquery.netforum_node.js,v 1.4 2007/11/14 14:48:07 jamesmichaelhill Exp $
|
| 2 |
var keepHelpCollapsed = false;
|
| 3 |
|
| 4 |
if (Drupal.jsEnabled){
|
| 5 |
$(document).ready(function(){
|
| 6 |
$('#edit-obj-type-name').bind("blur",setObjectType);
|
| 7 |
$('#edit-key-submit').click(function(){return keyHelpSubmit();});
|
| 8 |
});
|
| 9 |
}
|
| 10 |
|
| 11 |
|
| 12 |
function setObjectKey(obj_key){
|
| 13 |
if (obj_key != ''){
|
| 14 |
$("#edit-nfn-key").fadeOut("normal", function() { $(this).val(obj_key); }).fadeIn("normal");
|
| 15 |
}
|
| 16 |
return false;
|
| 17 |
}
|
| 18 |
|
| 19 |
function setObjectName(obj_type_name){
|
| 20 |
obj_type_name += "";
|
| 21 |
if (obj_type_name.toString().toLowerCase() != $('#edit-obj-type-name').val().toLowerCase() && obj_type_name != ''){
|
| 22 |
$("#edit-obj-type-name").fadeOut("normal", function() { $(this).val(obj_type_name).blur(); }).fadeIn("normal");
|
| 23 |
}
|
| 24 |
return false;
|
| 25 |
}
|
| 26 |
|
| 27 |
function setObjectType(){
|
| 28 |
// If there's an autocomplete box up then wait till it closes to make our move.
|
| 29 |
if ($('#autocomplete').length && $('#autocomplete').css("visibility") == 'visible'){
|
| 30 |
return;
|
| 31 |
}
|
| 32 |
|
| 33 |
var objName = $(this).val();
|
| 34 |
var prevObjName = '';
|
| 35 |
if ( $('#edit-key-obj-type-name').length ) {
|
| 36 |
prevObjName = $('#edit-key-obj-type-name').val();
|
| 37 |
}
|
| 38 |
if ( objName.toLowerCase() != prevObjName.toLowerCase()) {
|
| 39 |
|
| 40 |
//update our autocomplete
|
| 41 |
var fieldAutocomplete = location.protocol + "//" + location.host + BASE_URL + 'admin/content/netforum-object-fields-autocomplete/' + escape(objName);
|
| 42 |
$('#edit-obj-field-help-autocomplete').val(fieldAutocomplete);
|
| 43 |
//the url should have changed from something like http://www.example.com/admin/content/netforum-object-fields-autocomplete/9afef9a3-69fc-4c61-8114-02baefca77e7
|
| 44 |
// to http://www.example.com/admin/content/netforum-object-fields-autocomplete/Individual
|
| 45 |
|
| 46 |
//update our OTHER autocomplete
|
| 47 |
var codeAutocomplete = location.protocol + "//" + location.host + BASE_URL + 'admin/content/netforum-template-code-autocomplete/' + escape(objName);
|
| 48 |
$('#edit-template-code-autocomplete').val(codeAutocomplete );
|
| 49 |
|
| 50 |
//Remove the previous autocompletes
|
| 51 |
$('#edit-obj-field-help').unbind('keyup');
|
| 52 |
$('#edit-obj-field-help').unbind('keydown');
|
| 53 |
$('#edit-obj-field-help').unbind('blur');
|
| 54 |
//yes, all of them
|
| 55 |
$('#edit-template-code').unbind('keyup');
|
| 56 |
$('#edit-template-code').unbind('keydown');
|
| 57 |
$('#edit-template-code').unbind('blur');
|
| 58 |
//re-bind the autocomplete actions to the form
|
| 59 |
Drupal.autocompleteAutoAttach();
|
| 60 |
|
| 61 |
if ($('#find_key_help').length){
|
| 62 |
//Update the object search help if there's somewhere for it to go to
|
| 63 |
keyHelpSubmit();
|
| 64 |
}
|
| 65 |
|
| 66 |
}
|
| 67 |
|
| 68 |
return false;
|
| 69 |
}
|
| 70 |
|
| 71 |
function keyHelpSubmit(newObjName) {
|
| 72 |
// If there's an autocomplete box up then wait till it closes to make our move
|
| 73 |
if ($('#autocomplete').length && $('#autocomplete').css("visibility") == 'visible'){
|
| 74 |
return;
|
| 75 |
}
|
| 76 |
|
| 77 |
if (! newObjName){
|
| 78 |
newObjName = $('#edit-obj-type-name').val();
|
| 79 |
}
|
| 80 |
|
| 81 |
// Find any data they're submitting and package it into the get request
|
| 82 |
var objLookupFields = [];
|
| 83 |
if ( $('#edit-search-on').length ) {
|
| 84 |
objLookupFields = Drupal.parseJson($('#edit-search-on').val());
|
| 85 |
}
|
| 86 |
var queryString = '';
|
| 87 |
for ( item in objLookupFields){
|
| 88 |
var objItem = objLookupFields[item].replace(/ /gi,""); //strip whitespace
|
| 89 |
var formItem = '#edit-' + objItem.replace(/_/gi,"-").toLowerCase(); //replace underscores with dashes
|
| 90 |
if ($(formItem).val()){
|
| 91 |
queryString += objItem + "=" + escape($(formItem).val()) + "&";
|
| 92 |
}
|
| 93 |
}
|
| 94 |
|
| 95 |
queryString += "url_lookup=" + escape($('#edit-url-lookup').val());
|
| 96 |
|
| 97 |
|
| 98 |
uri = location.protocol + "//" + location.host + BASE_URL + 'admin/content/netforum-node-object-lookup/' + escape(newObjName);
|
| 99 |
//I know that I didn't HAVE to build this query string, and that the null parameter to
|
| 100 |
// $.get is the data, but I've already written it and it doesn't seem to be breaking
|
| 101 |
//anything
|
| 102 |
uri += "?" + queryString;
|
| 103 |
|
| 104 |
//If the help fieldset is expanded, hide it during the query and show our
|
| 105 |
//updating animation.
|
| 106 |
var helpCollapsed = $('#object_help').is('.collapsed');
|
| 107 |
if ( helpCollapsed != true && keepHelpCollapsed == false){
|
| 108 |
Drupal.toggleFieldset($('#object_help'));
|
| 109 |
$('#object_help_status').show();
|
| 110 |
}
|
| 111 |
$('#find_key_help').html(''); //set the panel to be blank to keep them from firing two requests
|
| 112 |
$.get(uri, null, function(data){ //get the data and do the following when it gets back
|
| 113 |
$('#find_key_help').html(data);
|
| 114 |
//re-bind our events
|
| 115 |
$('#edit-key-submit').click(function(){keepHelpCollapsed = false; return keyHelpSubmit();} );
|
| 116 |
$('a.key-help').click(function(){return setObjectKey(this.id);} );
|
| 117 |
$('a.obj-help').click(function(){ //this is the link they click on after searching based off of a netforum URL
|
| 118 |
setObjectName($('#new_obj_name').html());
|
| 119 |
setObjectKey($('#new_obj_key').html());
|
| 120 |
keepHelpCollapsed = true;
|
| 121 |
Drupal.toggleFieldset($('#object_help'));
|
| 122 |
return false;
|
| 123 |
} );
|
| 124 |
|
| 125 |
if (helpCollapsed != true && keepHelpCollapsed == false) { //display the help if it was showing before
|
| 126 |
Drupal.toggleFieldset($('#object_help'));
|
| 127 |
$('#object_help_status').hide();
|
| 128 |
}
|
| 129 |
}); //end of the get
|
| 130 |
|
| 131 |
return false;
|
| 132 |
}
|