From 132abae1995ccffec64c4475a2bd570c5c90cab6 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Jun 18 2015 11:04:27 +0000 Subject: Adjust the logic to add/remove tags or dependencies This change makes sure we do not delete something we did not want to just because it looked close to something we were looking for. In addition, it makes the UI closer to the usual UI when updated by eventsource --- diff --git a/pagure/templates/issue.html b/pagure/templates/issue.html index ce4842e..a2751b4 100644 --- a/pagure/templates/issue.html +++ b/pagure/templates/issue.html @@ -332,9 +332,22 @@ if (!!window.EventSource) { var source = new EventSource('{{ url_for("stream_issue", username=username, repo=repo.name, issueid=issueid) }}'); -} else { - // Result to xhr polling :( } + +clean_entry= function(text, element){ + var _data = $.trim(text).split(','); + var _out = [] + var y=0; + for (i=0; i<_data.length; i++){ + if ($.trim(_data[i]) == element) { + continue; + } + _out[y] = $.trim(_data[i]); + y+=1; + } + return _out; +} + source.addEventListener('message', function(e) { console.log(e.data); var data = $.parseJSON(e.data); @@ -342,25 +355,37 @@ source.addEventListener('message', function(e) { if (data.added_tags){ console.log('adding ' + data.added_tags); var field = $('#taglist'); + var field2 = $('#tag'); var _data = field.html(); var _url =''; for (i=0; i'; + _data += ',' + _url.replace('--', tag) + tag + ''; + field.html(_data); + var _curval = field2.val(); + if (_curval) { + _curval += ','; + } + field2.val(_curval + tag); } } if (data.removed_tags){ console.log('removing ' + data.removed_tags); var field = $('#taglist'); + var field2 = $('#tag'); var _data = field.html(); + var _data2 = field2.html(); var _url =''; for (i=0; i', ''); + var _turl = _url.replace('=--', '=' + tag) + tag + ''; + _data = clean_entry(_data, _turl).join(); + _data2 = clean_entry(_data2, tag).join(); } field.html(_data); + field2.val(_data2); } if (data.assigned){ console.log('assigning ' + data.assigned); @@ -395,7 +420,7 @@ source.addEventListener('message', function(e) { var _url =''; dep = data.added_dependency; - _data += ' ' + _url.replace('/-1', '/' + dep) + dep + ''; + _data += ',' + _url.replace('/-1', '/' + dep) + dep + ''; field.html(_data); var _curval = field2.val(); if (_curval && _curval != ',') { @@ -414,14 +439,15 @@ source.addEventListener('message', function(e) { var field2 = $('#blocks'); } } - var _data = field.html(); + var dep = data.removed_dependency; + // Set links + var _data = $.trim(field.html()).split(','); var _url =''; - dep = data.removed_dependency; - _data = _data.replace(_url.replace('/-1', '/' + dep) + dep + '', ''); - _data = _data.replace(',,', ','); - field.html(_data); - field2.val(field2.val().replace(dep, '')); + _url = _url.replace('/-1', '/' + dep) + dep + ''; + field.html(clean_entry(field.html(), _url).join()); + // Set the value in the input field + field2.val(clean_entry(field2.val(), dep).join()); } if (data.comment_added){ console.log('Adding comment ' + data.comment_added);