Chris@0: /* redMine - project management software Chris@0: Copyright (C) 2006-2008 Jean-Philippe Lang */ Chris@0: Chris@0: function checkAll (id, checked) { Chris@0: var els = Element.descendants(id); Chris@0: for (var i = 0; i < els.length; i++) { Chris@0: if (els[i].disabled==false) { Chris@0: els[i].checked = checked; Chris@0: } Chris@0: } Chris@0: } Chris@0: Chris@0: function toggleCheckboxesBySelector(selector) { Chris@0: boxes = $$(selector); Chris@0: var all_checked = true; Chris@0: for (i = 0; i < boxes.length; i++) { if (boxes[i].checked == false) { all_checked = false; } } Chris@0: for (i = 0; i < boxes.length; i++) { boxes[i].checked = !all_checked; } Chris@0: } Chris@0: chris@37: function setCheckboxesBySelector(checked, selector) { chris@37: var boxes = $$(selector); chris@37: boxes.each(function(ele) { chris@37: ele.checked = checked; chris@37: }); chris@37: } chris@37: Chris@0: function showAndScrollTo(id, focus) { Chris@0: Element.show(id); Chris@0: if (focus!=null) { Form.Element.focus(focus); } Chris@0: Element.scrollTo(id); Chris@0: } Chris@0: Chris@0: function toggleRowGroup(el) { Chris@0: var tr = Element.up(el, 'tr'); Chris@0: var n = Element.next(tr); Chris@0: tr.toggleClassName('open'); Chris@0: while (n != undefined && !n.hasClassName('group')) { Chris@0: Element.toggle(n); Chris@0: n = Element.next(n); Chris@0: } Chris@0: } Chris@0: Chris@441: function collapseAllRowGroups(el) { Chris@441: var tbody = Element.up(el, 'tbody'); Chris@441: tbody.childElements('tr').each(function(tr) { Chris@441: if (tr.hasClassName('group')) { Chris@441: tr.removeClassName('open'); Chris@441: } else { Chris@441: tr.hide(); Chris@441: } Chris@441: }) Chris@441: } Chris@441: Chris@441: function expandAllRowGroups(el) { Chris@441: var tbody = Element.up(el, 'tbody'); Chris@441: tbody.childElements('tr').each(function(tr) { Chris@441: if (tr.hasClassName('group')) { Chris@441: tr.addClassName('open'); Chris@441: } else { Chris@441: tr.show(); Chris@441: } Chris@441: }) Chris@441: } Chris@441: Chris@441: function toggleAllRowGroups(el) { Chris@441: var tr = Element.up(el, 'tr'); Chris@441: if (tr.hasClassName('open')) { Chris@441: collapseAllRowGroups(el); Chris@441: } else { Chris@441: expandAllRowGroups(el); Chris@441: } Chris@441: } Chris@441: Chris@0: function toggleFieldset(el) { Chris@0: var fieldset = Element.up(el, 'fieldset'); Chris@0: fieldset.toggleClassName('collapsed'); Chris@0: Effect.toggle(fieldset.down('div'), 'slide', {duration:0.2}); Chris@0: } Chris@0: Chris@245: function hideFieldset(el) { Chris@245: var fieldset = Element.up(el, 'fieldset'); Chris@245: fieldset.toggleClassName('collapsed'); Chris@245: fieldset.down('div').hide(); Chris@245: } Chris@245: Chris@0: var fileFieldCount = 1; Chris@0: Chris@0: function addFileField() { Chris@0: if (fileFieldCount >= 10) return false Chris@0: fileFieldCount++; Chris@0: var f = document.createElement("input"); Chris@0: f.type = "file"; Chris@0: f.name = "attachments[" + fileFieldCount + "][file]"; Chris@0: f.size = 30; Chris@0: var d = document.createElement("input"); Chris@0: d.type = "text"; Chris@0: d.name = "attachments[" + fileFieldCount + "][description]"; Chris@0: d.size = 60; Chris@1: var dLabel = new Element('label'); Chris@0: dLabel.addClassName('inline'); Chris@0: // Pulls the languge value used for Optional Description Chris@0: dLabel.update($('attachment_description_label_content').innerHTML) Chris@0: p = document.getElementById("attachments_fields"); Chris@0: p.appendChild(document.createElement("br")); Chris@0: p.appendChild(f); Chris@0: p.appendChild(dLabel); Chris@0: dLabel.appendChild(d); Chris@0: Chris@0: } Chris@0: Chris@0: function showTab(name) { Chris@0: var f = $$('div#content .tab-content'); Chris@0: for(var i=0; i0) { Chris@0: lis[i-1].show(); Chris@0: } Chris@0: } Chris@0: Chris@0: function displayTabsButtons() { Chris@0: var lis; Chris@0: var tabsWidth = 0; Chris@0: var i; Chris@0: $$('div.tabs').each(function(el) { Chris@0: lis = el.down('ul').childElements(); Chris@0: for (i=0; i 0) { Chris@0: Element.show('ajax-indicator'); Chris@0: } Chris@0: }, Chris@0: onComplete: function(){ Chris@0: if ($('ajax-indicator') && Ajax.activeRequestCount == 0) { Chris@0: Element.hide('ajax-indicator'); Chris@0: } Chris@0: } Chris@0: }); Chris@0: Chris@0: function hideOnLoad() { Chris@0: $$('.hol').each(function(el) { Chris@0: el.hide(); Chris@0: }); Chris@0: } Chris@0: Chris@0: Event.observe(window, 'load', hideOnLoad); luisf@160: luisf@160: luisf@160: luisf@160: