X-Git-Url: https://git.cweiske.de/phorkie.git/blobdiff_plain/e8151ad24cb9f4951ea1f29f5878248e584b8372..860aaa0c3f990fd888bb779f60d24b39d8adaae9:/www/fork-remote.php diff --git a/www/fork-remote.php b/www/fork-remote.php index dd58165..5d4a4ee 100644 --- a/www/fork-remote.php +++ b/www/fork-remote.php @@ -6,19 +6,43 @@ namespace phorkie; */ require_once 'www-header.php'; +$error = null; +$urls = null; if (isset($_POST['remote_url'])) { $fr = new ForkRemote($_POST['remote_url']); - $fr->parse(); - if ($fr->hasUniqueGitUrl()) { - //FIXME: fork + if (false === $fr->parse()) { + //no url found + $error = $fr->error; + } else if (false !== ($gitUrl = $fr->getUniqueGitUrl())) { + if (isset($_POST['orig_url'])) { + $fr->setUrl($_POST['orig_url']); + } + $forker = new Forker(); + $new = $forker->forkRemote($gitUrl, $fr->getUrl()); + redirect($new->getLink('display')); + } else { + //multiple urls found + $urls = $fr->getGitUrls(); + } +} + +$selsize = 0; +if (is_array($urls)) { + foreach ($urls as $group) { + ++$selsize; + if (count($group) > 1) { + $selsize += count($group); + } } - //FIXME: display error or selection list } render( 'fork-remote', array( - 'remote_url' => isset($_POST['remote_url']) ? $_POST['remote_url'] : '' + 'remote_url' => isset($_POST['remote_url']) ? $_POST['remote_url'] : '', + 'error' => $error, + 'urls' => $urls, + 'urlselsize' => $selsize, ) ); ?>