X-Git-Url: https://git.cweiske.de/phorkie.git/blobdiff_plain/5d065586f4c16c0ec6510dba97b0d5facb859d75..HEAD:/www/fork-remote.php diff --git a/www/fork-remote.php b/www/fork-remote.php index 374c8b8..096f432 100644 --- a/www/fork-remote.php +++ b/www/fork-remote.php @@ -8,15 +8,29 @@ require_once 'www-header.php'; $error = null; $urls = null; -if (isset($_POST['remote_url'])) { - $fr = new ForkRemote($_POST['remote_url']); +if (isset($_REQUEST['remote_url'])) { + if (substr($_REQUEST['remote_url'], 0, 9) == 'web+fork:') { + $_REQUEST['remote_url'] = substr($_REQUEST['remote_url'], 9); + } + + $fr = new ForkRemote($_REQUEST['remote_url']); if (false === $fr->parse()) { //no url found - $error = 'No git:// clone 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); - redirect($new->getLink('display')); + try { + $new = $forker->forkRemote( + $gitUrl['url'], $fr->getUrl(), $gitUrl['title'] + ); + FlashMessage::save('Remote paste has been forked'); + redirect($new->getLink('display', null, true)); + } catch (\Exception $e) { + $error = $e->getMessage(); + } } else { //multiple urls found $urls = $fr->getGitUrls(); @@ -36,7 +50,7 @@ if (is_array($urls)) { render( 'fork-remote', array( - 'remote_url' => isset($_POST['remote_url']) ? $_POST['remote_url'] : '', + 'remote_url' => isset($_REQUEST['remote_url']) ? $_REQUEST['remote_url'] : '', 'error' => $error, 'urls' => $urls, 'urlselsize' => $selsize,