mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-19 12:00:55 +01:00
Fix repository deletion
Summary: I never actually wrote this controller. Test Plan: Deleted a repository via web UI. Reviewed By: tuomaspelkonen Reviewers: tuomaspelkonen, jungejason, aran Commenters: aran CC: aran, tuomaspelkonen, epriestley Differential Revision: 231
This commit is contained in:
parent
af06bfb1cc
commit
19b23e2dd0
5 changed files with 81 additions and 1 deletions
|
@ -402,6 +402,7 @@ phutil_register_library_map(array(
|
||||||
'PhabricatorRepositoryDAO' => 'applications/repository/storage/base',
|
'PhabricatorRepositoryDAO' => 'applications/repository/storage/base',
|
||||||
'PhabricatorRepositoryDaemon' => 'applications/repository/daemon/base',
|
'PhabricatorRepositoryDaemon' => 'applications/repository/daemon/base',
|
||||||
'PhabricatorRepositoryDefaultCommitMessageDetailParser' => 'applications/repository/parser/default',
|
'PhabricatorRepositoryDefaultCommitMessageDetailParser' => 'applications/repository/parser/default',
|
||||||
|
'PhabricatorRepositoryDeleteController' => 'applications/repository/controller/delete',
|
||||||
'PhabricatorRepositoryEditController' => 'applications/repository/controller/edit',
|
'PhabricatorRepositoryEditController' => 'applications/repository/controller/edit',
|
||||||
'PhabricatorRepositoryGitCommitChangeParserWorker' => 'applications/repository/worker/commitchangeparser/git',
|
'PhabricatorRepositoryGitCommitChangeParserWorker' => 'applications/repository/worker/commitchangeparser/git',
|
||||||
'PhabricatorRepositoryGitCommitDiscoveryDaemon' => 'applications/repository/daemon/commitdiscovery/git',
|
'PhabricatorRepositoryGitCommitDiscoveryDaemon' => 'applications/repository/daemon/commitdiscovery/git',
|
||||||
|
@ -804,6 +805,7 @@ phutil_register_library_map(array(
|
||||||
'PhabricatorRepositoryDAO' => 'PhabricatorLiskDAO',
|
'PhabricatorRepositoryDAO' => 'PhabricatorLiskDAO',
|
||||||
'PhabricatorRepositoryDaemon' => 'PhabricatorDaemon',
|
'PhabricatorRepositoryDaemon' => 'PhabricatorDaemon',
|
||||||
'PhabricatorRepositoryDefaultCommitMessageDetailParser' => 'PhabricatorRepositoryCommitMessageDetailParser',
|
'PhabricatorRepositoryDefaultCommitMessageDetailParser' => 'PhabricatorRepositoryCommitMessageDetailParser',
|
||||||
|
'PhabricatorRepositoryDeleteController' => 'PhabricatorRepositoryController',
|
||||||
'PhabricatorRepositoryEditController' => 'PhabricatorRepositoryController',
|
'PhabricatorRepositoryEditController' => 'PhabricatorRepositoryController',
|
||||||
'PhabricatorRepositoryGitCommitChangeParserWorker' => 'PhabricatorRepositoryCommitChangeParserWorker',
|
'PhabricatorRepositoryGitCommitChangeParserWorker' => 'PhabricatorRepositoryCommitChangeParserWorker',
|
||||||
'PhabricatorRepositoryGitCommitDiscoveryDaemon' => 'PhabricatorRepositoryCommitDiscoveryDaemon',
|
'PhabricatorRepositoryGitCommitDiscoveryDaemon' => 'PhabricatorRepositoryCommitDiscoveryDaemon',
|
||||||
|
|
|
@ -0,0 +1,56 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright 2011 Facebook, Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
class PhabricatorRepositoryDeleteController
|
||||||
|
extends PhabricatorRepositoryController {
|
||||||
|
|
||||||
|
private $id;
|
||||||
|
|
||||||
|
public function willProcessRequest(array $data) {
|
||||||
|
$this->id = $data['id'];
|
||||||
|
}
|
||||||
|
|
||||||
|
public function processRequest() {
|
||||||
|
|
||||||
|
$repository = id(new PhabricatorRepository())->load($this->id);
|
||||||
|
if (!$repository) {
|
||||||
|
return new Aphront404Response();
|
||||||
|
}
|
||||||
|
|
||||||
|
$request = $this->getRequest();
|
||||||
|
|
||||||
|
if ($request->isDialogFormPost()) {
|
||||||
|
$repository->delete();
|
||||||
|
return id(new AphrontRedirectResponse())->setURI('/repository/');
|
||||||
|
}
|
||||||
|
|
||||||
|
$dialog = new AphrontDialogView();
|
||||||
|
$dialog
|
||||||
|
->setUser($request->getUser())
|
||||||
|
->setTitle('Really delete repository?')
|
||||||
|
->appendChild(
|
||||||
|
'<p>Really delete the "'.phutil_escape_html($repository->getName()).
|
||||||
|
'" ('.phutil_escape_html($repository->getCallsign()).') repository? '.
|
||||||
|
'This operation can not be undone.</p>')
|
||||||
|
->setSubmitURI('/repository/delete/'.$this->id.'/')
|
||||||
|
->addSubmitButton('Delete Repository')
|
||||||
|
->addCancelButton('/repository/');
|
||||||
|
|
||||||
|
return id(new AphrontDialogResponse())->setDialog($dialog);
|
||||||
|
}
|
||||||
|
}
|
20
src/applications/repository/controller/delete/__init__.php
Normal file
20
src/applications/repository/controller/delete/__init__.php
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* This file is automatically generated. Lint this module to rebuild it.
|
||||||
|
* @generated
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
phutil_require_module('phabricator', 'aphront/response/404');
|
||||||
|
phutil_require_module('phabricator', 'aphront/response/dialog');
|
||||||
|
phutil_require_module('phabricator', 'aphront/response/redirect');
|
||||||
|
phutil_require_module('phabricator', 'applications/repository/controller/base');
|
||||||
|
phutil_require_module('phabricator', 'applications/repository/storage/repository');
|
||||||
|
phutil_require_module('phabricator', 'view/dialog');
|
||||||
|
|
||||||
|
phutil_require_module('phutil', 'markup');
|
||||||
|
phutil_require_module('phutil', 'utils');
|
||||||
|
|
||||||
|
|
||||||
|
phutil_require_source('PhabricatorRepositoryDeleteController.php');
|
|
@ -51,11 +51,12 @@ class PhabricatorRepositoryListController
|
||||||
'href' => '/repository/edit/'.$repo->getID().'/',
|
'href' => '/repository/edit/'.$repo->getID().'/',
|
||||||
),
|
),
|
||||||
'Edit'),
|
'Edit'),
|
||||||
phutil_render_tag(
|
javelin_render_tag(
|
||||||
'a',
|
'a',
|
||||||
array(
|
array(
|
||||||
'class' => 'button small grey',
|
'class' => 'button small grey',
|
||||||
'href' => '/repository/delete/'.$repo->getID().'/',
|
'href' => '/repository/delete/'.$repo->getID().'/',
|
||||||
|
'sigil' => 'workflow',
|
||||||
),
|
),
|
||||||
'Delete'),
|
'Delete'),
|
||||||
);
|
);
|
||||||
|
|
|
@ -10,6 +10,7 @@ phutil_require_module('phabricator', 'applications/repository/constants/reposito
|
||||||
phutil_require_module('phabricator', 'applications/repository/controller/base');
|
phutil_require_module('phabricator', 'applications/repository/controller/base');
|
||||||
phutil_require_module('phabricator', 'applications/repository/storage/arcanistproject');
|
phutil_require_module('phabricator', 'applications/repository/storage/arcanistproject');
|
||||||
phutil_require_module('phabricator', 'applications/repository/storage/repository');
|
phutil_require_module('phabricator', 'applications/repository/storage/repository');
|
||||||
|
phutil_require_module('phabricator', 'infrastructure/javelin/markup');
|
||||||
phutil_require_module('phabricator', 'view/control/table');
|
phutil_require_module('phabricator', 'view/control/table');
|
||||||
phutil_require_module('phabricator', 'view/layout/panel');
|
phutil_require_module('phabricator', 'view/layout/panel');
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue