From f2c8bbe1032edf516259545f23c47b218cf678c7 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Oct 01 2016 07:58:57 +0000 Subject: [PATCH 1/5] Do not call the API if issue or pull-requests are disabled and we know it Fixes https://pagure.io/pagure/issue/1364 --- diff --git a/pagure/templates/pull_request.html b/pagure/templates/pull_request.html index 57ef1b8..b80f54f 100644 --- a/pagure/templates/pull_request.html +++ b/pagure/templates/pull_request.html @@ -1265,16 +1265,21 @@ $(document).ready(function () { }); {% if config.get('ENABLE_TICKETS', True) %} - $.when($.get("{{ url_for('api_ns.api_view_issues', + $.when( + {%- if repo.settings.get('issue_tracker', True) %} + $.get("{{ url_for('api_ns.api_view_issues', repo=repo.name, username=username, namespace=repo.namespace, status='all') }}"), - $.get("{{ url_for('api_ns.api_pull_request_views', + {%- endif %} + {%- if repo.settings.get('issue_tracker', True) %} + $.get("{{ url_for('api_ns.api_pull_request_views', repo=repo.name, username=username, namespace=repo.namespace, status='all') }}") + {%- endif %} ).done(function(issuesResp, prResp) { // 0 is the api response var issuesAndPrs = issuesResp[0]['issues'].concat(prResp[0]['requests']); From 278127a3fc4c0896927432f5403053d827deec3a Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Oct 01 2016 07:58:57 +0000 Subject: [PATCH 2/5] Fix setting name, we want to check the PR settings to load PRs --- diff --git a/pagure/templates/pull_request.html b/pagure/templates/pull_request.html index b80f54f..771c774 100644 --- a/pagure/templates/pull_request.html +++ b/pagure/templates/pull_request.html @@ -1273,7 +1273,7 @@ $(document).ready(function () { namespace=repo.namespace, status='all') }}"), {%- endif %} - {%- if repo.settings.get('issue_tracker', True) %} + {%- if repo.settings.get('pull_requests', True) %} $.get("{{ url_for('api_ns.api_pull_request_views', repo=repo.name, username=username, From e2f7fa03fc1802263c53bf8842495e9a3056cce7 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Oct 01 2016 07:58:57 +0000 Subject: [PATCH 3/5] Ensure we always pass two object to the .done() function Then check if these two objects contain something before playing with them. --- diff --git a/pagure/templates/pull_request.html b/pagure/templates/pull_request.html index 771c774..6b778fd 100644 --- a/pagure/templates/pull_request.html +++ b/pagure/templates/pull_request.html @@ -1272,6 +1272,8 @@ $(document).ready(function () { username=username, namespace=repo.namespace, status='all') }}"), + {%- else %} + {}, {%- endif %} {%- if repo.settings.get('pull_requests', True) %} $.get("{{ url_for('api_ns.api_pull_request_views', @@ -1279,10 +1281,18 @@ $(document).ready(function () { username=username, namespace=repo.namespace, status='all') }}") + {%- else %} + {} {%- endif %} ).done(function(issuesResp, prResp) { // 0 is the api response - var issuesAndPrs = issuesResp[0]['issues'].concat(prResp[0]['requests']); + var issuesAndPrs = []; + if (typeof issuesResp[0] !== 'undefined') { + issuesAndPrs = issuesAndPrs.concat(issuesResp[0]['issues']); + } + if (typeof prResp[0] !== 'undefined') { + issuesAndPrs = issuesAndPrs.concat(prResp[0]['requests']); + } var data = $.map(issuesAndPrs, function(ticket, idx) { return { name: ticket.id.toString(), From dae4820786c7acd2523b03aace85e51b19208eed Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Oct 01 2016 07:58:57 +0000 Subject: [PATCH 4/5] Remove redundant code and ensure # and @ can be used in the initial comment --- diff --git a/pagure/templates/pull_request.html b/pagure/templates/pull_request.html index 6b778fd..c991191 100644 --- a/pagure/templates/pull_request.html +++ b/pagure/templates/pull_request.html @@ -1262,73 +1262,54 @@ $(document).ready(function () { searchKey: "username" } $("#comment").atwho(userConfig); + $("#initial_comment").atwho(userConfig); }); - {% if config.get('ENABLE_TICKETS', True) %} - $.when( - {%- if repo.settings.get('issue_tracker', True) %} - $.get("{{ url_for('api_ns.api_view_issues', - repo=repo.name, - username=username, - namespace=repo.namespace, - status='all') }}"), - {%- else %} - {}, - {%- endif %} - {%- if repo.settings.get('pull_requests', True) %} - $.get("{{ url_for('api_ns.api_pull_request_views', - repo=repo.name, - username=username, - namespace=repo.namespace, - status='all') }}") - {%- else %} - {} - {%- endif %} - ).done(function(issuesResp, prResp) { - // 0 is the api response - var issuesAndPrs = []; - if (typeof issuesResp[0] !== 'undefined') { - issuesAndPrs = issuesAndPrs.concat(issuesResp[0]['issues']); - } - if (typeof prResp[0] !== 'undefined') { - issuesAndPrs = issuesAndPrs.concat(prResp[0]['requests']); - } - var data = $.map(issuesAndPrs, function(ticket, idx) { - return { - name: ticket.id.toString(), - title: $('
').text(ticket.title).html() - } - }); - var issueAndPrConfig = { - at: '#', - data: data, - insertTpl: '#${name}', - displayTpl: "
  • #${name} ${title}
  • ", - } - $("#comment").atwho(issueAndPrConfig); - }); - {% else %} - $.get("{{ url_for('api_ns.api_pull_request_views', - repo=repo.name, - username=username, - namespace=repo.namespace, - status='all') }}") - .done(function(prResp) { - var data = $.map(prResp['requests'], function(pr, idx) { - return { - name: pr.id.toString(), - title: $('
    ').text(pr.title).html() - } - }); - var conf = { - at: '#', - data: data, - insertTpl: '#${name}', - displayTpl: "
  • #${name} ${title}
  • ", - } - $("#comment").atwho(conf); - }); - {% endif %} + $.when( + {%- if config.get('ENABLE_TICKETS', True) and repo.settings.get('issue_tracker', True) %} + $.get("{{ url_for('api_ns.api_view_issues', + repo=repo.name, + username=username, + namespace=repo.namespace, + status='all') }}"), + {%- else %} + {}, + {%- endif %} + {%- if repo.settings.get('pull_requests', True) %} + $.get("{{ url_for('api_ns.api_pull_request_views', + repo=repo.name, + username=username, + namespace=repo.namespace, + status='all') }}") + {%- else %} + {} + {%- endif %} + ).done(function(issuesResp, prResp) { + // 0 is the api response + var issuesAndPrs = []; + if (typeof issuesResp[0] !== 'undefined') { + issuesAndPrs = issuesAndPrs.concat(issuesResp[0]['issues']); + } + if (typeof prResp[0] !== 'undefined') { + issuesAndPrs = issuesAndPrs.concat(prResp[0]['requests']); + } + console.log(issuesAndPrs); + var data = $.map(issuesAndPrs, function(ticket, idx) { + return { + name: ticket.id.toString(), + title: $('
    ').text(ticket.title).html() + } + }); + var issueAndPrConfig = { + at: '#', + data: data, + insertTpl: '#${name}', + displayTpl: "
  • #${name} ${title}
  • ", + } + console.log(issueAndPrConfig); + $("#comment").atwho(issueAndPrConfig); + $("#initial_comment").atwho(issueAndPrConfig); + }); } ); $(window).on('hashchange', updateHighlight); var selected = []; From fee6026097aa639ac7e8760ad8178601d625991c Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Oct 01 2016 07:58:57 +0000 Subject: [PATCH 5/5] Drop left over debugging code --- diff --git a/pagure/templates/pull_request.html b/pagure/templates/pull_request.html index c991191..0dd83b9 100644 --- a/pagure/templates/pull_request.html +++ b/pagure/templates/pull_request.html @@ -1293,7 +1293,6 @@ $(document).ready(function () { if (typeof prResp[0] !== 'undefined') { issuesAndPrs = issuesAndPrs.concat(prResp[0]['requests']); } - console.log(issuesAndPrs); var data = $.map(issuesAndPrs, function(ticket, idx) { return { name: ticket.id.toString(), @@ -1306,7 +1305,6 @@ $(document).ready(function () { insertTpl: '#${name}', displayTpl: "
  • #${name} ${title}
  • ", } - console.log(issueAndPrConfig); $("#comment").atwho(issueAndPrConfig); $("#initial_comment").atwho(issueAndPrConfig); });