| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 | 
/** * @file js support for term editing form for ajax saving and tree updating */(function ($) {  //global var that holds the current term link objectvar active_term = new Object();/**  * attaches term data form, used after 'Saves changes' submit */Drupal.behaviors.TaxonomyManagerTermData = {  attach: function(context) {    if (!$('#taxonomy-term-data-replace').hasClass('processed')) {      $('#taxonomy-term-data-replace').addClass('processed');      Drupal.attachTermDataForm();    }  }}/** * attaches Term Data functionality, called by tree.js */Drupal.attachTermData = function(ul) {  Drupal.attachTermDataLinks(ul);}/** * adds click events to the term links in the tree structure */Drupal.attachTermDataLinks = function(ul) {  $(ul).find('a.term-data-link').click(function() {    Drupal.activeTermSwapHighlight(this);    var li = $(this).parents("li:first");    Drupal.loadTermDataForm(Drupal.getTermId(li), false);    return false;  });}/** * attaches click events to next siblings */Drupal.attachTermDataToSiblings = function(all, currentIndex) {  var nextSiblings = $(all).slice(currentIndex);  $(nextSiblings).find('a.term-data-link').click(function() {    var li = $(this).parents("li:first");    Drupal.loadTermDataForm(Drupal.getTermId(li), false);    return false;  });}/** * adds click events to term data form, which is already open, when page gets loaded */Drupal.attachTermDataForm = function() {  active_term = $('div.highlightActiveTerm').find('a');  var tid = $('#taxonomy-term-data').find('input:hidden[name="tid"]').val();  if (tid) {    new Drupal.TermData(tid).form();  }}/** * loads term data form */Drupal.loadTermDataForm = function(tid, refreshTree) {  // Triggers an AJAX button  $('#edit-load-tid').val(tid);  if (refreshTree) {    $('#edit-load-tid-refresh-tree').attr("checked", "checked");  }  else {    $('#edit-load-tid-refresh-tree').attr("checked", "");  }  $('#edit-load-tid-submit').click();}/** * TermData Object */Drupal.TermData = function(tid) {  this.tid = tid;  this.div = $('#taxonomy-term-data');}/** * adds events to possible operations */Drupal.TermData.prototype.form = function() {  var termdata = this;    $(this.div).find('#term-data-close span').click(function() {    termdata.div.children().hide();  });    $(this.div).find('a.taxonomy-term-data-name-link').click(function() {    var tid = this.href.split("/").pop();    Drupal.loadTermDataForm(tid, true);    return false;  });    $(this.div).find("legend").each(function() {    var staticOffsetX, staticOffsetY = null;    var left, top = 0;    var div = termdata.div;     var pos = $(div).position();    $(this).mousedown(startDrag);        function startDrag(e) {      if (staticOffsetX == null && staticOffsetY == null) {        staticOffsetX = e.pageX;        staticOffsetY = e.pageY;      }      $(document).mousemove(performDrag).mouseup(endDrag);      return false;    }     function performDrag(e) {      left = e.pageX - staticOffsetX;      top = e.pageY - staticOffsetY;      $(div).css({position: "absolute", "left": pos.left + left +"px", "top": pos.top + top +"px"});      return false;    }     function endDrag(e) {      $(document).unbind("mousemove", performDrag).unbind("mouseup", endDrag);    }  });}/*** hightlights current term*/Drupal.activeTermSwapHighlight = function(link) {  try {    $(active_term).parents('div.term-line').removeClass('highlightActiveTerm');  } catch(e) {}  active_term = link;  $(active_term).parents('div.term-line:first').addClass('highlightActiveTerm');}})(jQuery);
 |