Existing addon repos are listed on plugin page with controls for updating, removing, and switching branches.
This commit is contained in:
parent
bbbae3f42d
commit
f73a74967e
@ -1364,11 +1364,18 @@ class Admin extends \Zotlabs\Web\Controller {
|
|||||||
get_markup_template('generic_modal.tpl'), array(
|
get_markup_template('generic_modal.tpl'), array(
|
||||||
'$id' => $newRepoModalID,
|
'$id' => $newRepoModalID,
|
||||||
'$title' => t('Install new repo'),
|
'$title' => t('Install new repo'),
|
||||||
'$ok' => t('OK'),
|
'$ok' => t('Install'),
|
||||||
'$cancel' => t('Cancel')
|
'$cancel' => t('Cancel')
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
$reponames = $this->listAddonRepos();
|
||||||
|
$addonrepos = [];
|
||||||
|
foreach($reponames as $repo) {
|
||||||
|
$addonrepos[] = array('name' => $repo, 'description' => '');
|
||||||
|
// TODO: Parse repo info to provide more information about repos
|
||||||
|
}
|
||||||
|
|
||||||
$t = get_markup_template('admin_plugins.tpl');
|
$t = get_markup_template('admin_plugins.tpl');
|
||||||
return replace_macros($t, array(
|
return replace_macros($t, array(
|
||||||
'$title' => t('Administration'),
|
'$title' => t('Administration'),
|
||||||
@ -1383,10 +1390,28 @@ class Admin extends \Zotlabs\Web\Controller {
|
|||||||
'$expandform' => false,
|
'$expandform' => false,
|
||||||
'$form' => $admin_plugins_add_repo_form,
|
'$form' => $admin_plugins_add_repo_form,
|
||||||
'$newRepoModal' => $newRepoModal,
|
'$newRepoModal' => $newRepoModal,
|
||||||
'$newRepoModalID' => $newRepoModalID
|
'$newRepoModalID' => $newRepoModalID,
|
||||||
|
'$addonrepos' => $addonrepos,
|
||||||
|
'$repoUpdateButton' => t('Update'),
|
||||||
|
'$repoBranchButton' => t('Switch branch'),
|
||||||
|
'$repoRemoveButton' => t('Remove')
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function listAddonRepos() {
|
||||||
|
$addonrepos = [];
|
||||||
|
$addonDir = __DIR__ . '/../../extend/addon/';
|
||||||
|
if ($handle = opendir($addonDir)) {
|
||||||
|
while (false !== ($entry = readdir($handle))) {
|
||||||
|
if ($entry != "." && $entry != "..") {
|
||||||
|
$addonrepos[] = $entry;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
closedir($handle);
|
||||||
|
}
|
||||||
|
return $addonrepos;
|
||||||
|
}
|
||||||
|
|
||||||
static public function plugin_sort($a,$b) {
|
static public function plugin_sort($a,$b) {
|
||||||
return(strcmp(strtolower($a[2]['name']),strtolower($b[2]['name'])));
|
return(strcmp(strtolower($a[2]['name']),strtolower($b[2]['name'])));
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,20 @@
|
|||||||
<div id="chat-rotator"></div>
|
<div id="chat-rotator"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="clear"></div>
|
<div class="clear"></div>
|
||||||
<div id="new-repo-info" class="section-content-wrapper"></div>
|
<div class="section-content-wrapper">
|
||||||
|
<h1>Installed Addon Repositories</h1>
|
||||||
|
{{foreach $addonrepos as $repo}}
|
||||||
|
<div class="section-content-tools-wrapper">
|
||||||
|
<div>
|
||||||
|
<h2>{{$repo.name}}</h2>
|
||||||
|
<div class='desc'>{{$repo.description}}</div>
|
||||||
|
<button class="btn btn-success" onclick="updateAddonRepo('{{$repo.name}}'); return false;">{{$repoUpdateButton}}</button>
|
||||||
|
<button class="btn btn-primary" onclick="switchAddonRepoBranch('{{$repo.name}}'); return false;">{{$repoBranchButton}}</button>
|
||||||
|
<button class="btn btn-danger" onclick="removeAddonRepo('{{$repo.name}}'); return false;">{{$repoRemoveButton}}</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{/foreach}}
|
||||||
|
</div>
|
||||||
<div class="section-content-wrapper-np">
|
<div class="section-content-wrapper-np">
|
||||||
{{foreach $plugins as $p}}
|
{{foreach $plugins as $p}}
|
||||||
<div class="section-content-tools-wrapper" id="pluginslist">
|
<div class="section-content-tools-wrapper" id="pluginslist">
|
||||||
@ -36,6 +49,9 @@
|
|||||||
</div>
|
</div>
|
||||||
{{$newRepoModal}}
|
{{$newRepoModal}}
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
|
$("#generic-modal-ok-{{$id}}").click(installAddonRepo());
|
||||||
|
|
||||||
function adminPluginsAddRepo() {
|
function adminPluginsAddRepo() {
|
||||||
var repoURL = $('#id_repoURL').val();
|
var repoURL = $('#id_repoURL').val();
|
||||||
$('#chat-rotator').spin('tiny');
|
$('#chat-rotator').spin('tiny');
|
||||||
@ -58,4 +74,20 @@
|
|||||||
},
|
},
|
||||||
'json');
|
'json');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function installAddonRepo() {
|
||||||
|
// TODO: Link store/git/sys/reponame to /extend/addon/ and run util/add_addon_repo script
|
||||||
|
}
|
||||||
|
function updateAddonRepo(repoName) {
|
||||||
|
window.console.log('updateAddonRepo; ' + repoName);
|
||||||
|
// TODO: Update an existing repo
|
||||||
|
}
|
||||||
|
function switchAddonRepoBranch(repoName) {
|
||||||
|
window.console.log('switchAddonRepoBranch; ' + repoName);
|
||||||
|
// TODO: Discover the available branches and create an interface to switch between them
|
||||||
|
}
|
||||||
|
function removeAddonRepo(repoName) {
|
||||||
|
window.console.log('removeAddonRepo; ' + repoName);
|
||||||
|
// TODO: Unlink the addons and delete the addon repo
|
||||||
|
}
|
||||||
</script>
|
</script>
|
Reference in New Issue
Block a user