I followed a basic JavaScript tutorial to build an issue tracker, and it works great. I've been customizing it a bit, and want to change the class/color relating to its status, and it has two classes associated with it. I'd like the status indicator to be green if it's open, red if it's not. Its default is always green. Green classes are label label-success
, closed classes are label label-danger
.
A live example can be seen at http://www.sanjosecoder.com/issuetracker/bug-tracker.html
I've tried using document.getElementById("bg").setAttribute('className', 'lable label-danger');
and placing it just below the loop that cycles through the issue status in the setStatusClosed
function.
I've tried using an if statement in the same location
function fetchIssues() {
var issues = JSON.parse(localStorage.getItem('issues'));
var issuesList = document.getElementById('issuesList');
issuesList.innerHTML = '';
for (var i = 0; i < issues.length; i++) {
var id = issues[i].id;
var desc = issues[i].description;
var severity = issues[i].severity;
var assignedTo = issues[i].assignedTo;
var status = issues[i].status;
issuesList.innerHTML += '<div class="well-sm">'+
'<h6 style="color: #979897;">Issue ID: ' + id + '</h6>'+
'<p style="color: #979897;"><i>Status:</i> <span class="label label-success" id="bg">' + status + '</span></p>'+
'<p><i style="color: #979897;">Description:</i> ' + desc + '</p>'+
'<p><i style="color: #979897;">Severity:</i> <span class="glyphicon glyphicon-fire" style="color:#ff0000;"></span> ' + severity + '</p>'+
'<p><i style="color: #979897;">Assigned To:</i> <span></span> ' + assignedTo + '</p>'+
'<a href="#" onClick="setStatusClosed(\''+id+'\')" class="btn btn-warning" style="margin-right: 15px;">Close</a>'+
'<a href="#" onClick="deleteIssue(\''+id+'\')" class="btn btn-danger">Delete</a>'+
'</div>';
}
}
function setStatusClosed(id) {
var issues = JSON.parse(localStorage.getItem('issues'));
for (var i = 0; i < issues.length; i++) {
if (issues[i].id == id) {
issues[i].status = "Closed";
if (issues[i].status == "Closed") {
document.getElementById("bg").setAttribute('className', 'lable label-danger');
}
}
}
localStorage.setItem('issues', JSON.stringify(issues));
fetchIssues();
}
Expected results would be that when an issue is closed, the green background changes to red in the status area.
Actual results have been anywhere from not working, to disabling the buttons function. Once I got it to change color, but lost it's padding, and disabled the close function.