com web/bugs: Follow Meta->Link->Next on github jsonp in order to fetch all PHP repos. per_page param added when fetching PHP repos:
templates/addghpull.php
| From: | Johannes Schlüter | Date: | Thu, 27 Apr 2017 09:39:35 +0000 |
| Subject: | com web/bugs: Follow Meta->Link->Next on github jsonp in order to fetch all PHP repos. per_page param added when fetching PHP repos: templates/addghpull.php |
||
| Groups: | php.webmaster | ||
| Request: | Send a blank email to php-webmaster+get-26241@lists.php.net to get a copy of this message | ||
Commit: bdbad3ce56b58bbcac8812519dfb1b71af75e1c9
Author: Javier Infante <jabi@irontec.com> Fri, 12 Feb 2016 21:09:43 +0100
Parents: df52d48b164c816305ddc50e88ae757b1770970b
Branches: master
Link: http://git.php.net/?p=web/bugs.git;a=commitdiff;h=bdbad3ce56b58bbcac8812519dfb1b71af75e1c9
Log:
Follow Meta->Link->Next on github jsonp in order to fetch all PHP repos.
per_page param added when fetching PHP repos
Changed paths:
M templates/addghpull.php
Diff:
diff --git a/templates/addghpull.php b/templates/addghpull.php
index 89becb6..e848816 100644
--- a/templates/addghpull.php
+++ b/templates/addghpull.php
@@ -71,21 +71,42 @@ if (typeof($) != "function") {
$(document).ready(function() {
var org = "php";
var baseurl = "https://api.github.com/";
- var url = baseurl+'orgs/'+org+'/repos';
+ var url = baseurl+'orgs/'+org+'/repos?per_page=100';
converter = new Markdown.getSanitizingConverter();
$("#pull_id_field").empty().hide();
$('#pull_details').empty();
- $.ajax({ dataType: 'jsonp', url: url, success: function(d) {
- var repos = new Array();
- for (var i in d.data) {
- repos.push(d.data[i].name);
- }
+
+ var repos = new Array();
+
+ function loadGHRepos(url) {
+ $.ajax({ dataType: 'jsonp', url: url, success: function(d) {
+ for (var i in d.data) {
+ repos.push(d.data[i].name);
+ }
+ // Follow pagination if exists next
+ if (d.meta && d.meta.Link) {
+ for(var l in d.meta.Link) {
+ if (d.meta.Link[l][1] && d.meta.Link[l][1].rel && d.meta.Link[l][1].rel
== 'next') {
+ loadGHRepos(d.meta.Link[l][0]);
+ return;
+ }
+ }
+ }
+ // No more next Links, draw them!
+ drawRepos();
+ }
+ });
+ }
+
+ function drawRepos() {
repos.sort();
for (var i in repos) {
$("#repository_field").append("<option>"+repos[i]+"</option>");
}
$("#loading").hide();
- } });
+ }
+ loadGHRepos(url);
+
});
$("#repository_field").change(function() {