From de7465d1c389c39e6bc212bd68d1642880bb8f94 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Jun 28 2017 13:46:38 +0000 Subject: Multiple fixes to the SSE server - Include the color of the tags added so the SSE server can display them with the right color from the start - Include the list of priorities when updating them so the SSE server can display their human readable format rather than their rank - Fix displaying tags added/removed when logged out - Fix displaying assignee added/removed when logged out - Fix refreshing live milestone updates - Fix refreshing custom fields updates when logged out Signed-off-by: Pierre-Yves Chibon --- diff --git a/pagure/lib/__init__.py b/pagure/lib/__init__.py index c9e55db..ffb816a 100644 --- a/pagure/lib/__init__.py +++ b/pagure/lib/__init__.py @@ -382,6 +382,7 @@ def add_tag_obj(session, obj, tags, user, ticketfolder): tags = [tags] added_tags = [] + added_tags_color = [] for objtag in tags: objtag = objtag.strip() known = False @@ -419,6 +420,7 @@ def add_tag_obj(session, obj, tags, user, ticketfolder): issue_uid=obj.uid, tag_id=tagobj.id ) + added_tags_color.append(tagobj.tag_color) session.add(dbobjtag) # Make sure we won't have SQLAlchemy error before we continue @@ -445,7 +447,11 @@ def add_tag_obj(session, obj, tags, user, ticketfolder): # Send notification for the event-source server if REDIS and not obj.project.private: REDIS.publish('pagure.%s' % obj.uid, json.dumps( - {'added_tags': added_tags})) + { + 'added_tags': added_tags, + 'added_tags_color': added_tags_color, + } + )) if added_tags: return 'Issue tagged with: %s' % ', '.join(added_tags) @@ -1680,6 +1686,7 @@ def edit_issue(session, issue, ticketfolder, user, repo=None, REDIS.publish('pagure.%s' % issue.uid, json.dumps({ 'fields': edit, 'issue': issue.to_json(public=True, with_comments=False), + 'priorities':issue.project.priorities, })) if edit: diff --git a/pagure/static/issue_ev.js b/pagure/static/issue_ev.js index d116100..2b83980 100644 --- a/pagure/static/issue_ev.js +++ b/pagure/static/issue_ev.js @@ -16,15 +16,20 @@ add_tags = function(data, _issues_url) { console.log('adding ' + data.added_tags); var $select = $('#tag').selectize(); - var selectize = $select[0].selectize; + if ($select.length) { + var selectize = $select[0].selectize; + } var field = $('#taglist'); for (i=0; i ' + tag + ' '; + var html = '\n ' + tag + ' '; field.append(html); - selectize.createItem(tag); + if ($select.length) { + selectize.createItem(tag); + } } } @@ -32,11 +37,15 @@ remove_tags = function(data, _issues_url) { console.log('removing ' + data.removed_tags); var $select = $('#tag').selectize(); - var selectize = $select[0].selectize; + if ($select.length) { + var selectize = $select[0].selectize; + } for (var i=0; i' + + data.assigned.name + ''; + field.html(_url); + var $select = $('#assignee').selectize(); var selectize = $select[0].selectize; selectize.settings.create = true; selectize.createItem(data.assigned.name); selectize.settings.create = false; $('#assignee').val(data.assigned.name); - - var field = $('#assignee_plain'); - var _url = '\n' - + data.assigned.name + ''; - field.html(_url); } unassigne_issue = function(data) { console.log('un-assigning '); + var field = $('#assignee_plain'); + field.html('unassigned'); + var $select = $('#assignee').selectize(); var selectize = $select[0].selectize; selectize.setValue(null); - - var field = $('#assignee_plain'); - field.html('unassigned'); } add_deps = function(data, issue_uid, _issue_url) { @@ -85,6 +94,11 @@ add_deps = function(data, issue_uid, _issue_url) { } } + var html = '\n#' + dep + ''; + + field.append(html); + var selectize = $select[0].selectize; selectize.settings.create = true; selectize.items.push(String(dep)); @@ -93,11 +107,6 @@ add_deps = function(data, issue_uid, _issue_url) { var input_field = $('#' + _id + 's'); input_field.val(selectize.items.join(',')); - - var html = '\n#' + dep + ''; - - field.append(html); } remove_deps = function(data, issue_uid, _issue_url) { @@ -193,9 +202,19 @@ update_issue = function(data) { } else if (_f == 'title'){ var field = $('#issuetitle'); field.html(data.issue.title); + } else if (_f == 'priority'){ + var field = $('#priority_plain'); + if (data.issue.priority != null){ + field.html(data.priorities[data.issue.priority]); + } else { + field.html(''); + } } else if (_f == 'content'){ var field = $('#comment-0').parent().find('.comment_body'); field.html('

' + data.issue.content + '

'); + } else if (_f == 'milestone'){ + var field = $('#milestone_plain'); + field.html(data.issue.milestone) } } } @@ -204,7 +223,8 @@ update_custom_fields = function(data) { console.log('Adjusting custom fields ' + data.custom_fields); for (i=0; i -
+

{% if field.name in knowns_keys %} {% if field.key_type == 'link' %} @@ -383,7 +383,9 @@

{% if field.key_type == 'list' %} -