clean_entry= function(text, element) {
var _out = []
var _data = $.trim(text).split(',');
var y=0;
for (var j=0; j<_data.length; j++){
if ($.trim(_data[j]) == element) {
continue;
}
_out[y] = $.trim(_data[j]);
y+=1;
}
return _out;
}
add_tags = function(data, _issues_url) {
console.log('adding ' + data.added_tags);
var field = $('#taglist');
var field2 = $('#tag');
var _curval = field2.val().split(',');
var _values = $.unique($.merge(data.added_tags, _curval));
var _data = '';
var _out = '';
for (i=0; i<_values.length; i++ ){
tag = _values[i]
if (_data && _data != ',') {
_data += ',';
}
_data += _issues_url + '?tags=' + tag + '">' + tag + '</a>';
if (_out && _out != ',') {
_out += ',';
}
_out += tag;
}
field.html(_data);
field2.val(_out);
}
remove_tags = function(data, _issues_url) {
console.log('removing ' + data.removed_tags);
var field = $('#taglist');
var field2 = $('#tag');
var _data = field.html();
var _data2 = field2.val();
for (var i=0; i<data.removed_tags.length; i++ ){
tag = data.removed_tags[i]
var _turl = _issues_url + '?tags=' + tag + '">' + tag + '</a>';
_data = clean_entry(_data, _turl).join();
_data2 = clean_entry(_data2, tag).join();
}
field.html(_data);
field2.val(_data2);
}
assigne_issue = function(data, _issues_url) {
console.log('assigning ' + data.assigned);
var field = $('#assigneduser');
var _url = _issues_url + '?assignee=' + data.assigned.name + '">' + data.assigned.name + '</a>';
field.html(_url);
field = $('#assignee');
field.val(data.assigned.name);
}
unassigne_issue = function(data) {
console.log('un-assigning ');
var field = $('#assigneduser');
field.html(' ');
field = $('#assignee');
field.val('');
}
add_deps = function(data, issue_uid, _issue_url) {
console.log('adding ' + data.added_dependency);
if (data.issue_uid == issue_uid){
if (data.type == "children"){
var field = $('#blockers');
var field2 = $('#blocks');
} else {
var field = $('#dependencies');
var field2 = $('#depends');
}
}
var dep = data.added_dependency;
var _data = $.trim(field.html());
var _url = _issue_url.replace('/-1', '/' + dep) + dep + '</a>';
if (_data && _data != ',') {
_data += ',';
}
_data += _url;
field.html(_data);
var _curval = field2.val().split(',');
var _values = $.unique($.merge(data.added_dependency, _curval));
var _out = [];
if (_out && _out != ',') {
_out += ',';
}
field2.val(_out + dep);
}
remove_deps = function(data, issue_uid, _issue_url) {
console.log('Removing ' + data.removed_dependency);
if (data.issue_uid == issue_uid){
if (data.type == "children"){
var field = $('#dependencies');
var field2 = $('#depends');
} else {
var field = $('#blockers');
var field2 = $('#blocks');
}
}
var dep = data.removed_dependency;
// Set links
var _data = $.trim(field.html()).split(',');
var _url = _issue_url.replace('/-1', '/' + dep) + dep + '</a>';
field.html(clean_entry(field.html(), _url).join());
// Set the value in the input field
field2.val(clean_entry(field2.val(), dep).join());
}
add_comment = function(data) {
console.log('Adding comment ' + data.comment_added);
var field = $('#comments');
var _data = '<section class="issue_comment"> \
<header id="comment-' + data.comment_id + '"> \
<img class="avatar circle" src="' + data.avatar_url + '"/> \
<a href="/user/' + data.comment_user + '"> \
' + data.comment_user + '\
</a> - <span title="' + data.comment_date + '">seconds ago</span> \
<a class="headerlink" title="Permalink to this headline" \
href="#comment-' + data.comment_id + '">ΒΆ</a> \
<aside class="issue_action icon"> \
<a class="reply" title="Reply to this comment - loose formating"> \
reply \
</a> \
</aside> \
</header> \
<div class="comment_body"> \
<p>' + data.comment_added + '</p> \
</div> \
</section>';
field.html(field.html() + _data);
}
update_issue = function(data) {
console.log('Adjusting issue ' + data.fields);
for (i=0; i<data.fields.length; i++){
var _f = data.fields[i];
if (_f == 'status') {
var field = $('#status');
field.val(data.issue.status);
} else if (_f == 'title'){
var field = $('#issuetitle');
field.html(data.issue.title);
} else if (_f == 'content'){
var field = $('#comment-0').parent().find('.comment_body');
field.html('<p>' + data.issue.content + '</p>');
}
}
}
private_issue = function(data, _api_issue_url, issue_uid) {
if (data.comment_id){
var _url = _api_issue_url.replace('-1', issue_uid)
+ '/comment/' + data.comment_id;
console.log(_url);
$.get( _url )
.done(function(data) {
add_comment({
comment_added: data.comment,
comment_id: data.id,
comment_user: data.user.name,
comment_date: data.comment_date,
avatar_url: data.avatar_url,
});
})
}
}
process_event = function(
data, issue_uid, _issue_url, _issues_url, _api_issue_url)
{
console.log(data);
if (data.added_tags){
add_tags(data, _issues_url);
}
else if (data.removed_tags){
remove_tags(data, _issues_url);
}
else if (data.assigned){
assigne_issue(data, _issues_url);
}
else if (data.unassigned){
unassigne_issue(data);
}
else if (data.added_dependency){
add_deps(data, issue_uid, _issue_url);
}
else if (data.removed_dependency){
remove_deps(data, issue_uid, _issue_url);
}
else if (data.comment_added){
add_comment(data);
}
else if (data.fields){
update_issue(data);
}
else if (data.issue == 'private'){
console.log('private issue');
private_issue(data, _api_issue_url, issue_uid)
}
}