diff options
author | Andrew Manning <tamanning@zoho.com> | 2016-05-10 06:28:00 -0400 |
---|---|---|
committer | Andrew Manning <tamanning@zoho.com> | 2016-05-10 06:28:00 -0400 |
commit | 78b40e6363d422727bb716f5e72983291c75d217 (patch) | |
tree | 8267b5452fb67e8a105d669a8c867a146f14d24b | |
parent | 45c19e365d8b73c8623f5d1c65b528cd628374a5 (diff) | |
download | volse-hubzilla-78b40e6363d422727bb716f5e72983291c75d217.tar.gz volse-hubzilla-78b40e6363d422727bb716f5e72983291c75d217.tar.bz2 volse-hubzilla-78b40e6363d422727bb716f5e72983291c75d217.zip |
Delete existing repo if the new one has a different URL. Fixed bug that could cause repeated installation.
-rw-r--r-- | Zotlabs/Module/Admin.php | 9 | ||||
-rwxr-xr-x | view/tpl/admin_plugins.tpl | 12 |
2 files changed, 17 insertions, 4 deletions
diff --git a/Zotlabs/Module/Admin.php b/Zotlabs/Module/Admin.php index 63f3e77f0..1b98a2ced 100644 --- a/Zotlabs/Module/Admin.php +++ b/Zotlabs/Module/Admin.php @@ -1822,6 +1822,15 @@ class Admin extends \Zotlabs\Web\Controller { // clone the repo if new automatically $git = new GitRepo('sys', $repoURL, true, $repoName, $repoDir); + $remotes = $git->git->remote(); + $fetchURL = $remotes['origin']['fetch']; + if($fetchURL !== $git->url) { + if(rrmdir($repoDir)) { + $git = new GitRepo('sys', $repoURL, true, $repoName, $repoDir); + } else { + json_return_and_die(array('message' => 'Error deleting existing addon repo.', 'success' => false)); + } + } $repo = $git->probeRepo(); $repo['readme'] = $repo['manifest'] = null; foreach ($git->git->tree('master') as $object) { diff --git a/view/tpl/admin_plugins.tpl b/view/tpl/admin_plugins.tpl index 3265a534c..186cb052d 100755 --- a/view/tpl/admin_plugins.tpl +++ b/view/tpl/admin_plugins.tpl @@ -50,7 +50,12 @@ {{$newRepoModal}} <script> + // TODO: Implement a simple interface controller that reconfigures the modal dialog + // for each action in a more organized way + function adminPluginsAddRepo() { + $("#generic-modal-ok-{{$newRepoModalID}}").removeClass('btn-success'); + $("#generic-modal-ok-{{$newRepoModalID}}").addClass('btn-primary'); var repoURL = $('#id_repoURL').val(); var repoName = $('#id_repoName').val(); $('#chat-rotator').spin('tiny'); @@ -65,6 +70,7 @@ modalBody.append('<h4>Branches</h4><p>'+JSON.stringify(response.repo.branches)+'</p>'); modalBody.append('<h4>Remotes</h4><p>'+JSON.stringify(response.repo.remote)+'</p>'); $('.modal-dialog').width('80%'); + $("#generic-modal-ok-{{$newRepoModalID}}").off('click'); $("#generic-modal-ok-{{$newRepoModalID}}").click(function () { installAddonRepo(); }); @@ -78,7 +84,6 @@ } function installAddonRepo() { - // TODO: Link store/git/sys/reponame to /extend/addon/ and run util/add_addon_repo script var repoURL = $('#id_repoURL').val(); var repoName = $('#id_repoName').val(); $.post( @@ -93,6 +98,8 @@ $('.modal-dialog').width('80%'); //$("#generic-modal-cancel-{{$newRepoModalID}}").hide(); $("#generic-modal-ok-{{$newRepoModalID}}").html('OK'); + $("#generic-modal-ok-{{$newRepoModalID}}").removeClass('btn-primary'); + $("#generic-modal-ok-{{$newRepoModalID}}").addClass('btn-success'); $("#generic-modal-ok-{{$newRepoModalID}}").off('click'); $("#generic-modal-ok-{{$newRepoModalID}}").click(function () { $('#generic-modal-{{$newRepoModalID}}').modal('hide'); @@ -111,8 +118,6 @@ 'json'); } function updateAddonRepo(repoName) { - window.console.log('updateAddonRep:; ' + repoName); - // TODO: Update an existing repo if(confirm('Are you sure you want to update the addon repo ' + repoName + '?')) { $.post( "/admin/plugins/updaterepo", {repoName: repoName}, @@ -135,7 +140,6 @@ } function removeAddonRepo(repoName) { - window.console.log('removeAddonRepo: ' + repoName); // TODO: Unlink the addons if(confirm('Are you sure you want to remove the addon repo ' + repoName + '?')) { $.post( |