X-Git-Url: https://git.cweiske.de/phorkie.git/blobdiff_plain/63575a005e8e2386abb24e97791e18d61e6350fe..1ee5f44ac9a3125f16318ca1d24a7f7e8010a169:/www/fork-remote.php diff --git a/www/fork-remote.php b/www/fork-remote.php index dd58165..4f1b682 100644 --- a/www/fork-remote.php +++ b/www/fork-remote.php @@ -6,19 +6,49 @@ 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(); + try { + $new = $forker->forkRemote( + $gitUrl['url'], $fr->getUrl(), $gitUrl['title'] + ); + redirect($new->getLink('display', null, true)); + } catch (\Exception $e) { + $error = $e->getMessage(); + } + } 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, ) ); ?>