pagure-new/pagure/templates/activity.html

271 lines
9.7 KiB
HTML

{% extends "repo_master.html" %}
{% block title %}Activity - {{
repo.namespace + '/' if repo.namespace }}{{ repo.name }}{% endblock %}
{% set tag = "home" %}
{% block repo %}
<div class="list-group" id="messages">
</div>
<div class="text-xs-center">
<span id="noactivity" style="display:none;">
No activity reported on the {{repo.name}} project
</span>
<button class="btn btn-secondary" style="display:none;" id='loadmore'>
Load more
</button>
<img id="spinnergif" src="{{ url_for('static', filename='images/spinner.gif') }}">
</div>
{% endblock %}
{% block jscripts %}
{{ super() }}
<script>
function processMessages(item, lastitem) {
if (item["topic"].indexOf("io.pagure.prod.pagure.pull-request") > -1 ){
if (lastitem.valueOf() != new String("PR#"+item["msg"]["pullrequest"]["id"]).valueOf())
{
$("#messages").append("\
<div class='messagetitle m-t-2 p-t-2'>\
<div class='messageicon'>\
<span class='oi' data-glyph='data-transfer-download'></span>\
</div>\
New activity on\
<strong>\
<span class='label label-default'>\
PR#"+item["msg"]["pullrequest"]["id"]+"\
</span>\
"+item["msg"]["pullrequest"]["title"]+"\
</strong>\
<div class='pull-xs-right'>"+item["meta"]["date"]+"</div>\
</div>");
}
messagedetail = $("\
<a href="+item["meta"]["link"]+">\
<div class='messageitem clearfix'>\
<small>"+item["msg"]["agent"]+"\
<span class='activity-message'> PR#"+item["msg"]["pullrequest"]["id"]+"</span>\
<span>"+item["meta"]["date"]+"</span>\
</small>\
</div>\
</a>\
")
if (item["topic"]=="io.pagure.prod.pagure.pull-request.new"){
$(messagedetail).find(".activity-message")
.addClass("text-success").prepend("created");
} else if (item['topic']=="io.pagure.prod.pagure.pull-request.comment.added") {
$(messagedetail).find(".activity-message")
.addClass("text-muted").prepend("commented on");
} else if (item['topic']=="io.pagure.prod.pagure.pull-request.comment.edited") {
$(messagedetail).find(".activity-message")
.addClass("text-muted").prepend("edited comment on");
} else if (item['topic']=="io.pagure.prod.pagure.pull-request.closed") {
if (item["msg"]["merged"] == true){
$(messagedetail).find(".activity-message")
.addClass("text-success").prepend("merged");
} else if (item["msg"]["merged"] == false){
$(messagedetail).find(".activity-message")
.addClass("text-danger").prepend("closed");
}
} else {
$(messagedetail).html("\
<div style='background-color:red'>\
"+item["meta"]["subtitle"]+"\
</div>");
}
$("#messages").append(messagedetail);
return "PR#"+item["msg"]["pullrequest"]["id"]
} else if (item["topic"].indexOf("io.pagure.prod.pagure.issue") > -1 ){
if (lastitem.valueOf() != new String("ISSUE#"+item["msg"]["issue"]["id"]).valueOf())
{
$("#messages").append("\
<div class='messagetitle m-t-2 p-t-2'>\
<div class='messageicon'>\
<span class='oi' data-glyph='warning'></span>\
</div>\
New activity on \
<strong>\
<span class='label label-default'>\
Issue#"+item["msg"]["issue"]["id"]+"\
</span> \
"+item["msg"]["issue"]["title"]+"\
</strong>\
<div class='pull-xs-right'>"+item["meta"]["date"]+"</div>\
</div>\
");
}
messagedetail = $("\
<a href="+item["meta"]["link"]+">\
<div class='messageitem clearfix'>\
<small>"+item["msg"]["agent"]+"\
<span class='activity-message'> \
Issue #"+item["msg"]["issue"]["id"]+" \
</span> \
<span>"+item["meta"]["date"]+"</span>\
</small>\
</div>\
</a>\
");
if (item["topic"]=="io.pagure.prod.pagure.issue.new"){
$(messagedetail).find(".activity-message")
.addClass("text-success").prepend("created");
} else if (item['topic']=="io.pagure.prod.pagure.issue.edit") {
if (item["msg"]["fields"].length == 1){
$(messagedetail).find(".activity-message")
.addClass("text-muted")
.prepend("edited the "+item["msg"]["fields"][0]+" field in");
} else {
var outputstring = "";
for (var i in item["msg"]["fields"]){
outputstring = outputstring+item["msg"]["fields"][i]
if (i < item["msg"]["fields"].length-1){
outputstring = outputstring +" & "
}
}
$(messagedetail).find(".activity-message")
.addClass("text-muted")
.prepend("edited the "+outputstring+" fields in");
}
} else if (item['topic']=="io.pagure.prod.pagure.issue.comment.added") {
$(messagedetail).find(".activity-message")
.addClass("text-muted").prepend("commented on");
} else if (item['topic']=="io.pagure.prod.pagure.issue.comment.edited") {
$(messagedetail).find(".activity-message")
.addClass("text-muted").prepend("edited a comment on");
} else if (item['topic']=="io.pagure.prod.pagure.issue.assigned.added") {
$(messagedetail).find(".activity-message")
.addClass("text-muted")
.prepend("assigned ")
.append(" to "+item["msg"]["issue"]["assignee"]["name"]);
} else {
$(messagedetail).html("\
<div style='background-color:red'>\
"+item["meta"]["subtitle"]+"\
</div>\
");
}
$("#messages").append(messagedetail);
return "ISSUE#"+item["msg"]["issue"]["id"]
} else if (item["topic"].indexOf("io.pagure.prod.pagure.project") > -1 ){
if (item["topic"]=="io.pagure.prod.pagure.project.forked"){
$("#messages").append("\
<div class='messagetitle m-t-2 p-t-2'>\
<div class='messageicon'>\
<span class='oi' data-glyph='fork'></span>\
</div>\
"+item["msg"]["agent"]+" forked "+item["msg"]["project"]["name"]+"\
into <a href='"+item["meta"]["link"]+"'>"+item["msg"]["agent"]+"\
/"+item["msg"]["project"]["name"]+"</a>\
<div class='pull-xs-right'>"+item["meta"]["date"]+"</div>\
</div>");
} else {
$("#messages").append("\
<div style='background-color:red'>\
"+item["meta"]["subtitle"]+"\
</div>");
}
return "";
} else if (item["topic"].indexOf("io.pagure.prod.pagure.git") > -1 ){
if (lastitem.valueOf() != new String("GITCOMMIT#"+item["msg"]["commit"]["branch"]).valueOf())
{
$("#messages").append("\
<div class='messagetitle m-t-2 p-t-2'>\
<div class='messageicon'>\
<span class='oi' data-glyph='spreadsheet'></span>\
</div>\
New commits to <strong><span class='pr-toplabel'> \
<span class='oi' data-glyph='random'> </span> \
"+item['msg']['commit']['branch'].replace("refs/heads/","")+"\
</span></strong>\
<div class='pull-xs-right'>"+item["meta"]["date"]+"</div>\
</div>\
");
}
if (item["topic"]=="io.pagure.prod.pagure.git.receive"){
$("#messages").append("\
<a href="+item["meta"]["link"]+">\
<div class='messageitem'>\
<small>"+item["msg"]["commit"]["name"]+" \
<span class='activity-message text-muted'> committed </span></small>\
<span class='label label-default msg-git-hash'>\
"+item["msg"]["commit"]["rev"].substring(0,6)+"\
</span>\
<small> \
<span class='text-muted'>"+item["msg"]["commit"]["message"]+"</span> \
</small>\
</div>\
</a>");
return "GITCOMMIT#"+item["msg"]["commit"]["branch"];
} else {
$("#messages").append("\
<div style='background-color:red'>\
"+item["meta"]["subtitle"]+"\
</div>");
}
return "";
} else {
$("#messages").append("\
<div style='background-color:pink'>\
"+item["meta"]["subtitle"]+"\
</div>");
return "";
}
}
$(document).ready(function() {
var page = null;
pants = $.ajax({
type: 'GET',
url: "{{ config.get('DATAGREPPER_URL') }}/raw?delta=2592000&category={{ config.get('DATAGREPPER_CATEGORY') }}&category=git&contains=%22name%22:%22{{repo.name}}%22&meta=link&meta=date&meta=subtitle",
async: false,
contentType: "application/json",
dataType: 'jsonp',
success:function(data) {
if(data) {
console.log(data)
if (data["count"] == 0){
$("#noactivity").show();
$("#spinnergif").hide();
} else {
var last_item = ""
for (var i=0; i<data['raw_messages'].length; i++) {
last_item = processMessages(data['raw_messages'][i], last_item)
}
/*data['raw_messages'].forEach(processMessages(lastitem));*/
page = 2
$("#loadmore").show();
$("#spinnergif").hide();
$("#loadmore").click(function(){
$("#spinnergif").show();
$("#loadmore").hide();
$.ajax({
type: 'GET',
url: "{{ config.get('DATAGREPPER_URL') }}/raw?delta=2592000&category={{ config.get('DATAGREPPER_CATEGORY') }}&category=git&contains=%22name%22:%22{{repo.name}}%22&meta=link&meta=date&meta=subtitle&page="+page,
async: false,
contentType: "application/json",
dataType: 'jsonp',
success:function(data) {
if(data) {
page = page+1;
console.log(data)
var last_item = ""
for (var i=0; i<data['raw_messages'].length; i++) {
last_item = processMessages(data['raw_messages'][i], last_item)
}
$("#loadmore").show();
$("#spinnergif").hide();
}
}
});
});
}
}
}
});
});
</script>
{% endblock %}