Jean-Philippe Lang 2c4647f8c6 Added 'Bulk edit' functionality.
This can be done by clicking on the edit link (little pen icon) at the upper-left corner of the issue list.
Most properties can be set (priority, assignee, category, fixed version, start and due dates, done ratio) and a note can be entered.
Only issues of the current project can be selected for bulk edit (subproject issues can't).

git-svn-id: http://redmine.rubyforge.org/svn/trunk@817 e93f8b46-1217-0410-a6f0-8f06a7374b81
2007-10-09 19:07:19 +00:00

75 lines
1.9 KiB
JavaScript

function checkAll (id, checked) {
var el = document.getElementById(id);
for (var i = 0; i < el.elements.length; i++) {
if (el.elements[i].disabled==false) {
el.elements[i].checked = checked;
}
}
}
function addFileField() {
var f = document.createElement("input");
f.type = "file";
f.name = "attachments[]";
f.size = 30;
p = document.getElementById("attachments_p");
p.appendChild(document.createElement("br"));
p.appendChild(f);
}
function showTab(name) {
var f = $$('div#content .tab-content');
for(var i=0; i<f.length; i++){
Element.hide(f[i]);
}
var f = $$('div.tabs a');
for(var i=0; i<f.length; i++){
Element.removeClassName(f[i], "selected");
}
Element.show('tab-content-' + name);
Element.addClassName('tab-' + name, "selected");
return false;
}
function setPredecessorFieldsVisibility() {
relationType = $('relation_relation_type');
if (relationType && relationType.value == "precedes") {
Element.show('predecessor_fields');
} else {
Element.hide('predecessor_fields');
}
}
function promptToRemote(text, param, url) {
value = prompt(text + ':');
if (value) {
new Ajax.Request(url + '?' + param + '=' + value, {asynchronous:true, evalScripts:true});
return false;
}
}
/* checks that at least one checkbox is checked (used when submitting bulk edit form) */
function checkBulkEdit(form) {
for (var i = 0; i < form.elements.length; i++) {
if (form.elements[i].checked) {
return true;
}
}
return false;
}
/* shows and hides ajax indicator */
Ajax.Responders.register({
onCreate: function(){
if ($('ajax-indicator') && Ajax.activeRequestCount > 0) {
Element.show('ajax-indicator');
}
},
onComplete: function(){
if ($('ajax-indicator') && Ajax.activeRequestCount == 0) {
Element.hide('ajax-indicator');
}
}
});