Chris@909: /* redMine - project management software Chris@909: Copyright (C) 2006-2008 Jean-Philippe Lang */ Chris@909: Chris@909: function checkAll (id, checked) { Chris@909: var els = Element.descendants(id); Chris@909: for (var i = 0; i < els.length; i++) { Chris@909: if (els[i].disabled==false) { Chris@909: els[i].checked = checked; Chris@909: } Chris@909: } Chris@909: } Chris@909: Chris@909: function toggleCheckboxesBySelector(selector) { Chris@909: boxes = $$(selector); Chris@909: var all_checked = true; Chris@909: for (i = 0; i < boxes.length; i++) { if (boxes[i].checked == false) { all_checked = false; } } Chris@909: for (i = 0; i < boxes.length; i++) { boxes[i].checked = !all_checked; } Chris@909: } Chris@909: Chris@909: function setCheckboxesBySelector(checked, selector) { Chris@909: var boxes = $$(selector); Chris@909: boxes.each(function(ele) { Chris@909: ele.checked = checked; Chris@909: }); Chris@909: } Chris@909: Chris@909: function showAndScrollTo(id, focus) { Chris@909: Element.show(id); Chris@909: if (focus!=null) { Form.Element.focus(focus); } Chris@909: Element.scrollTo(id); Chris@909: } Chris@909: Chris@909: function toggleRowGroup(el) { Chris@909: var tr = Element.up(el, 'tr'); Chris@909: var n = Element.next(tr); Chris@909: tr.toggleClassName('open'); Chris@909: while (n != undefined && !n.hasClassName('group')) { Chris@909: Element.toggle(n); Chris@909: n = Element.next(n); Chris@909: } Chris@909: } Chris@909: Chris@909: function collapseAllRowGroups(el) { Chris@909: var tbody = Element.up(el, 'tbody'); Chris@909: tbody.childElements('tr').each(function(tr) { Chris@909: if (tr.hasClassName('group')) { Chris@909: tr.removeClassName('open'); Chris@909: } else { Chris@909: tr.hide(); Chris@909: } Chris@909: }) Chris@909: } Chris@909: Chris@909: function expandAllRowGroups(el) { Chris@909: var tbody = Element.up(el, 'tbody'); Chris@909: tbody.childElements('tr').each(function(tr) { Chris@909: if (tr.hasClassName('group')) { Chris@909: tr.addClassName('open'); Chris@909: } else { Chris@909: tr.show(); Chris@909: } Chris@909: }) Chris@909: } Chris@909: Chris@909: function toggleAllRowGroups(el) { Chris@909: var tr = Element.up(el, 'tr'); Chris@909: if (tr.hasClassName('open')) { Chris@909: collapseAllRowGroups(el); Chris@909: } else { Chris@909: expandAllRowGroups(el); Chris@909: } Chris@909: } Chris@909: Chris@909: function toggleFieldset(el) { Chris@909: var fieldset = Element.up(el, 'fieldset'); Chris@909: fieldset.toggleClassName('collapsed'); Chris@909: Effect.toggle(fieldset.down('div'), 'slide', {duration:0.2}); Chris@909: } Chris@909: Chris@909: function hideFieldset(el) { Chris@909: var fieldset = Element.up(el, 'fieldset'); Chris@909: fieldset.toggleClassName('collapsed'); Chris@909: fieldset.down('div').hide(); Chris@909: } Chris@909: Chris@909: var fileFieldCount = 1; Chris@909: Chris@909: function addFileField() { Chris@909: var fields = $('attachments_fields'); Chris@909: if (fields.childElements().length >= 10) return false; Chris@909: fileFieldCount++; Chris@909: var s = new Element('span'); Chris@909: s.update(fields.down('span').innerHTML); Chris@909: s.down('input.file').name = "attachments[" + fileFieldCount + "][file]"; Chris@909: s.down('input.description').name = "attachments[" + fileFieldCount + "][description]"; Chris@909: fields.appendChild(s); Chris@909: } Chris@909: Chris@909: function removeFileField(el) { Chris@909: var fields = $('attachments_fields'); Chris@909: var s = Element.up(el, 'span'); Chris@909: if (fields.childElements().length > 1) { Chris@909: s.remove(); Chris@909: } else { Chris@909: s.update(s.innerHTML); Chris@909: } Chris@909: } Chris@909: Chris@909: function checkFileSize(el, maxSize, message) { Chris@909: var files = el.files; Chris@909: if (files) { Chris@909: for (var i=0; i maxSize) { Chris@909: alert(message); Chris@909: el.value = ""; Chris@909: } Chris@909: } Chris@909: } Chris@909: } Chris@909: Chris@909: function showTab(name) { Chris@909: var f = $$('div#content .tab-content'); Chris@909: for(var i=0; i0) { Chris@909: lis[i-1].show(); Chris@909: } Chris@909: } Chris@909: Chris@909: function displayTabsButtons() { Chris@909: var lis; Chris@909: var tabsWidth = 0; Chris@909: var i; Chris@909: $$('div.tabs').each(function(el) { Chris@909: lis = el.down('ul').childElements(); Chris@909: for (i=0; i 0) { Chris@909: Element.show('ajax-indicator'); Chris@909: } Chris@909: }, Chris@909: onComplete: function(){ Chris@909: if ($('ajax-indicator') && Ajax.activeRequestCount == 0) { Chris@909: Element.hide('ajax-indicator'); Chris@909: } Chris@909: } Chris@909: }); Chris@909: Chris@909: function hideOnLoad() { Chris@909: $$('.hol').each(function(el) { Chris@909: el.hide(); Chris@909: }); Chris@909: } Chris@909: Chris@909: Event.observe(window, 'load', hideOnLoad);