2013-05-02 16:28:23 +00:00
|
|
|
|
<?php
|
|
|
|
|
/**
|
|
|
|
|
* Implementation of ExtensionMgr view
|
|
|
|
|
*
|
|
|
|
|
* @category DMS
|
|
|
|
|
* @package SeedDMS
|
|
|
|
|
* @license GPL 2
|
|
|
|
|
* @version @version@
|
|
|
|
|
* @author Uwe Steinmann <uwe@steinmann.cx>
|
|
|
|
|
* @copyright Copyright (C) 2013 Uwe Steinmann
|
|
|
|
|
* @version Release: @package_version@
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Include parent class
|
|
|
|
|
*/
|
|
|
|
|
require_once("class.Bootstrap.php");
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Class which outputs the html page for ExtensionMgr view
|
|
|
|
|
*
|
|
|
|
|
* @category DMS
|
|
|
|
|
* @package SeedDMS
|
|
|
|
|
* @author Uwe Steinmann <uwe@steinmann.cx>
|
|
|
|
|
* @copyright Copyright (C) 2013 Uwe Steinmann
|
|
|
|
|
* @version Release: @package_version@
|
|
|
|
|
*/
|
|
|
|
|
class SeedDMS_View_ExtensionMgr extends SeedDMS_Bootstrap_Style {
|
|
|
|
|
|
2018-03-12 17:33:30 +00:00
|
|
|
|
function js() { /* {{{ */
|
|
|
|
|
header('Content-Type: application/javascript');
|
|
|
|
|
?>
|
|
|
|
|
$(document).ready( function() {
|
2019-12-20 16:20:15 +00:00
|
|
|
|
$('body').on('click', 'a.download', function(ev){
|
|
|
|
|
// $('a.download').click(function(ev){
|
2018-03-12 17:33:30 +00:00
|
|
|
|
var element = $(this);
|
|
|
|
|
$('#'+element.data('extname')+'-download').submit();
|
|
|
|
|
/*
|
|
|
|
|
var element = $(this);
|
|
|
|
|
ev.preventDefault();
|
|
|
|
|
$.ajax({url: '../op/op.ExtensionMgr.php',
|
|
|
|
|
type: 'POST',
|
|
|
|
|
dataType: "json",
|
|
|
|
|
data: {action: 'download', 'formtoken': '<?= createFormKey('extensionmgr') ?>', 'extname': element.data('extname')},
|
|
|
|
|
success: function(data) {
|
|
|
|
|
noty({
|
|
|
|
|
text: data.msg,
|
|
|
|
|
type: (data.error) ? 'error' : 'success',
|
|
|
|
|
dismissQueue: true,
|
|
|
|
|
layout: 'topRight',
|
|
|
|
|
theme: 'defaultTheme',
|
|
|
|
|
timeout: 1500,
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
*/
|
|
|
|
|
});
|
2019-12-20 16:20:15 +00:00
|
|
|
|
$('body').on('click', 'a.toggle', function(ev){
|
|
|
|
|
// $('a.toggle').click(function(ev){
|
|
|
|
|
var element = $(this);
|
|
|
|
|
ev.preventDefault();
|
|
|
|
|
$.ajax({url: '../op/op.ExtensionMgr.php',
|
|
|
|
|
type: 'POST',
|
|
|
|
|
dataType: "json",
|
|
|
|
|
data: {action: 'toggle', 'formtoken': '<?= createFormKey('extensionmgr') ?>', 'extname': element.data('extname')},
|
|
|
|
|
success: function(data) {
|
|
|
|
|
noty({
|
|
|
|
|
text: data.msg,
|
|
|
|
|
type: (data.error) ? 'error' : 'success',
|
|
|
|
|
dismissQueue: true,
|
|
|
|
|
layout: 'topRight',
|
|
|
|
|
theme: 'defaultTheme',
|
|
|
|
|
timeout: 1500,
|
|
|
|
|
});
|
|
|
|
|
$('div.ajax').trigger('update');
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
});
|
2018-03-13 13:38:49 +00:00
|
|
|
|
|
2020-03-02 08:17:30 +00:00
|
|
|
|
$('body').on('click', 'a.import', function(ev){
|
2018-03-13 13:38:49 +00:00
|
|
|
|
var element = $(this);
|
|
|
|
|
$('#'+element.data('extname')+'-import').submit();
|
|
|
|
|
});
|
2019-02-22 16:26:32 +00:00
|
|
|
|
|
|
|
|
|
$("#extensionfilter").on("keyup", function() {
|
|
|
|
|
var value = $(this).val().toLowerCase();
|
|
|
|
|
$("#extensionlist tbody tr").filter(function() {
|
|
|
|
|
$(this).toggle($(this).text().toLowerCase().indexOf(value) > -1)
|
|
|
|
|
});
|
|
|
|
|
});
|
2018-03-12 17:33:30 +00:00
|
|
|
|
});
|
|
|
|
|
<?php
|
2018-09-05 11:35:44 +00:00
|
|
|
|
|
|
|
|
|
$this->printFileChooserJs();
|
2018-03-12 17:33:30 +00:00
|
|
|
|
} /* }}} */
|
|
|
|
|
|
2018-03-23 09:10:26 +00:00
|
|
|
|
function info() { /* {{{ */
|
|
|
|
|
$dms = $this->params['dms'];
|
|
|
|
|
$user = $this->params['user'];
|
|
|
|
|
$extmgr = $this->params['extmgr'];
|
|
|
|
|
$extname = $this->params['extname'];
|
2020-01-03 09:21:58 +00:00
|
|
|
|
$extconf = $extmgr->getExtensionConfiguration();
|
2018-03-23 09:10:26 +00:00
|
|
|
|
|
|
|
|
|
echo "<table class=\"table _table-condensed\">\n";
|
|
|
|
|
print "<thead>\n<tr>\n";
|
2019-12-20 16:20:15 +00:00
|
|
|
|
print "<th></th>\n";
|
|
|
|
|
print "<th>".getMLText('name')."</th>\n";
|
|
|
|
|
print "<th>".getMLText('version')."</th>\n";
|
|
|
|
|
print "<th>".getMLText('author')."</th>\n";
|
|
|
|
|
print "<th></th>\n";
|
2018-03-23 09:10:26 +00:00
|
|
|
|
print "</tr></thead><tbody>\n";
|
|
|
|
|
$list = $extmgr->getExtensionListByName($extname);
|
|
|
|
|
foreach($list as $re) {
|
|
|
|
|
$extmgr->checkExtension($re);
|
|
|
|
|
$checkmsgs = $extmgr->getErrorMsgs();
|
2020-01-03 09:21:58 +00:00
|
|
|
|
$needsupdate = !isset($extconf[$re['name']]) || SeedDMS_Extension_Mgr::cmpVersion($re['version'], $extconf[$re['name']]['version']) > 0;
|
2018-03-23 09:10:26 +00:00
|
|
|
|
echo "<tr";
|
2020-01-03 09:21:58 +00:00
|
|
|
|
if(isset($extconf[$re['name']])) {
|
2018-03-23 09:10:26 +00:00
|
|
|
|
if($needsupdate)
|
|
|
|
|
echo " class=\"warning\"";
|
|
|
|
|
else
|
|
|
|
|
echo " class=\"success\"";
|
|
|
|
|
}
|
|
|
|
|
echo ">";
|
|
|
|
|
echo "<td width=\"32\">".($re['icon-data'] ? '<img width="32" height="32" alt="'.$re['name'].'" title="'.$re['name'].'" src="'.$re['icon-data'].'">' : '')."</td>";
|
|
|
|
|
echo "<td>".$re['title']."<br /><small>".$re['description']."</small>";
|
|
|
|
|
if($checkmsgs)
|
|
|
|
|
echo "<div><img src=\"".$this->getImgPath("attention.gif")."\"> ".implode('<br /><img src="'.$this->getImgPath("attention.gif").'"> ', $checkmsgs)."</div>";
|
|
|
|
|
echo "</td>";
|
|
|
|
|
echo "<td nowrap>".$re['version']."<br /><small>".$re['releasedate']."</small></td>";
|
|
|
|
|
echo "<td nowrap>".$re['author']['name']."<br /><small>".$re['author']['company']."</small></td>";
|
|
|
|
|
echo "<td nowrap>";
|
|
|
|
|
echo "<div class=\"list-action\">";
|
|
|
|
|
if(!$checkmsgs && $extmgr->isWritableExtDir())
|
|
|
|
|
echo "<form style=\"display: inline-block; margin: 0px;\" method=\"post\" action=\"../op/op.ExtensionMgr.php\" id=\"".$re['name']."-import\">".createHiddenFieldWithKey('extensionmgr')."<input type=\"hidden\" name=\"action\" value=\"import\" /><input type=\"hidden\" name=\"currenttab\" value=\"repository\" /><input type=\"hidden\" name=\"url\" value=\"".$re['filename']."\" /><a class=\"import\" data-extname=\"".$re['name']."\" title=\"".getMLText('import_extension')."\"><i class=\"icon-download\"></i></a></form>";
|
|
|
|
|
echo "</div>";
|
|
|
|
|
echo "</td>";
|
|
|
|
|
echo "</tr>";
|
2019-12-20 16:20:15 +00:00
|
|
|
|
}
|
2018-03-23 09:10:26 +00:00
|
|
|
|
echo "</tbody></table>\n";
|
|
|
|
|
} /* }}} */
|
|
|
|
|
|
|
|
|
|
function changelog() { /* {{{ */
|
|
|
|
|
$dms = $this->params['dms'];
|
|
|
|
|
$user = $this->params['user'];
|
|
|
|
|
$extdir = $this->params['extdir'];
|
|
|
|
|
$extmgr = $this->params['extmgr'];
|
|
|
|
|
$extname = $this->params['extname'];
|
2020-01-03 09:21:58 +00:00
|
|
|
|
$extconf = $extmgr->getExtensionConfiguration();
|
2018-03-23 09:10:26 +00:00
|
|
|
|
|
2020-01-03 09:21:58 +00:00
|
|
|
|
if(isset($extconf[$extname])) {
|
|
|
|
|
$extconf = $extconf[$extname];
|
2018-03-23 09:10:26 +00:00
|
|
|
|
if(!empty($extconf['changelog']) && file_exists($extdir."/".$extname."/".$extconf['changelog'])) {
|
|
|
|
|
echo '<div style="white-space: pre-wrap; font-family: monospace; padding: 0px;">'.file_get_contents($extdir."/".$extname."/".$extconf['changelog'])."</div>";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} /* }}} */
|
|
|
|
|
|
2019-12-20 16:20:15 +00:00
|
|
|
|
function installedList() { /* {{{ */
|
|
|
|
|
$dms = $this->params['dms'];
|
|
|
|
|
$user = $this->params['user'];
|
|
|
|
|
$settings = $this->params['settings'];
|
|
|
|
|
$httproot = $this->params['httproot'];
|
|
|
|
|
$extmgr = $this->params['extmgr'];
|
|
|
|
|
$extdir = $this->params['extdir'];
|
2020-01-03 09:21:58 +00:00
|
|
|
|
$extconf = $extmgr->getExtensionConfiguration();
|
2019-12-20 16:20:15 +00:00
|
|
|
|
|
|
|
|
|
echo "<table id=\"extensionlist\" class=\"table _table-condensed\">\n";
|
|
|
|
|
print "<thead>\n<tr>\n";
|
|
|
|
|
print "<th></th>\n";
|
|
|
|
|
print "<th>".getMLText('name')."</th>\n";
|
|
|
|
|
print "<th>".getMLText('version')."</th>\n";
|
|
|
|
|
print "<th>".getMLText('author')."</th>\n";
|
|
|
|
|
print "<th></th>\n";
|
|
|
|
|
print "</tr></thead><tbody>\n";
|
|
|
|
|
$errmsgs = array();
|
2020-01-03 09:21:58 +00:00
|
|
|
|
foreach($extconf as $extname=>$extconf) {
|
2019-12-20 16:20:15 +00:00
|
|
|
|
$errmsgs = array();
|
|
|
|
|
if(!$settings->extensionIsDisabled($extname)) {
|
|
|
|
|
// if(!isset($extconf['disable']) || $extconf['disable'] == false) {
|
|
|
|
|
$extmgr->checkExtension($extname);
|
|
|
|
|
$errmsgs = $extmgr->getErrorMsgs();
|
|
|
|
|
if($errmsgs)
|
|
|
|
|
echo "<tr class=\"error\" ref=\"".$extname."\">";
|
|
|
|
|
else
|
|
|
|
|
echo "<tr class=\"success\" ref=\"".$extname."\">";
|
|
|
|
|
} else {
|
|
|
|
|
echo "<tr class=\"warning\" ref=\"".$extname."\">";
|
|
|
|
|
}
|
|
|
|
|
echo "<td width=\"32\">";
|
|
|
|
|
if($extconf['icon'])
|
|
|
|
|
echo "<img width=\"32\" height=\"32\" src=\"".$httproot."ext/".$extname."/".$extconf['icon']."\" alt=\"".$extname."\" title=\"".$extname."\">";
|
|
|
|
|
echo "</td>";
|
|
|
|
|
echo "<td>".$extconf['title'];
|
|
|
|
|
echo "<br /><small>".$extconf['description']."</small>";
|
|
|
|
|
if($errmsgs)
|
|
|
|
|
echo "<div><img src=\"".$this->getImgPath("attention.gif")."\"> ".implode('<br /><img src="'.$this->getImgPath("attention.gif").'"> ', $errmsgs)."</div>";
|
|
|
|
|
echo "</td>";
|
|
|
|
|
echo "<td nowrap>".$extconf['version'];
|
|
|
|
|
echo "<br /><small>".$extconf['releasedate']."</small>";
|
|
|
|
|
echo "</td>";
|
|
|
|
|
echo "<td nowrap><a href=\"mailto:".$extconf['author']['email']."\">".$extconf['author']['name']."</a><br /><small>".$extconf['author']['company']."</small></td>";
|
|
|
|
|
echo "<td nowrap>";
|
|
|
|
|
echo "<div class=\"list-action\">";
|
|
|
|
|
if(!empty($extconf['changelog']) && file_exists($extdir."/".$extname."/".$extconf['changelog'])) {
|
|
|
|
|
echo "<a data-target=\"#extensionChangelog\" href=\"../out/out.ExtensionMgr.php?action=changelog&extensionname=".$extname."\" data-toggle=\"modal\" title=\"".getMLText('show_extension_changelog')."\"><i class=\"icon-reorder\"></i></a>\n";
|
|
|
|
|
}
|
|
|
|
|
if($extconf['config'])
|
|
|
|
|
echo "<a href=\"../out/out.Settings.php?currenttab=extensions#".$extname."\" title=\"".getMLText('configure_extension')."\"><i class=\"icon-cogs\"></i></a>";
|
|
|
|
|
echo "<form style=\"display: inline-block; margin: 0px;\" method=\"post\" action=\"../op/op.ExtensionMgr.php\" id=\"".$extname."-download\">".createHiddenFieldWithKey('extensionmgr')."<input type=\"hidden\" name=\"action\" value=\"download\" /><input type=\"hidden\" name=\"extname\" value=\"".$extname."\" /><a class=\"download\" data-extname=\"".$extname."\" title=\"".getMLText('download_extension')."\"><i class=\"icon-download\"></i></a></form>";
|
|
|
|
|
if(!$settings->extensionIsDisabled($extname)) {
|
|
|
|
|
echo ' <a href="#" class="toggle" data-extname="'.$extname.'"><i class="icon-check"</i></a>';
|
|
|
|
|
} else {
|
|
|
|
|
echo ' <a href="#" class="toggle" data-extname="'.$extname.'"><i class="icon-check-minus"></i></a>';
|
|
|
|
|
}
|
|
|
|
|
echo "</div>";
|
|
|
|
|
echo "</td>";
|
|
|
|
|
echo "</tr>\n";
|
|
|
|
|
}
|
|
|
|
|
echo "</tbody></table>\n";
|
|
|
|
|
} /* }}} */
|
|
|
|
|
|
2013-05-02 16:28:23 +00:00
|
|
|
|
function show() { /* {{{ */
|
|
|
|
|
$dms = $this->params['dms'];
|
|
|
|
|
$user = $this->params['user'];
|
2019-12-20 13:17:00 +00:00
|
|
|
|
$settings = $this->params['settings'];
|
2013-05-03 07:52:34 +00:00
|
|
|
|
$httproot = $this->params['httproot'];
|
2018-03-16 10:19:12 +00:00
|
|
|
|
$extdir = $this->params['extdir'];
|
2013-05-03 09:34:08 +00:00
|
|
|
|
$version = $this->params['version'];
|
2018-03-13 13:38:49 +00:00
|
|
|
|
$extmgr = $this->params['extmgr'];
|
2020-01-03 09:21:58 +00:00
|
|
|
|
$extconf = $extmgr->getExtensionConfiguration();
|
2018-03-13 13:38:49 +00:00
|
|
|
|
$currenttab = $this->params['currenttab'];
|
2018-03-14 12:11:35 +00:00
|
|
|
|
|
2013-05-02 16:28:23 +00:00
|
|
|
|
$this->htmlStartPage(getMLText("admin_tools"));
|
|
|
|
|
$this->globalNavigation();
|
|
|
|
|
$this->contentStart();
|
|
|
|
|
$this->pageNavigation(getMLText("admin_tools"), "admin_tools");
|
2018-03-12 17:33:30 +00:00
|
|
|
|
$this->contentHeading(getMLText("extension_manager"));
|
|
|
|
|
?>
|
|
|
|
|
<div class="row-fluid">
|
|
|
|
|
<div class="span4">
|
2018-03-14 10:47:06 +00:00
|
|
|
|
<?php
|
2018-03-22 07:43:41 +00:00
|
|
|
|
if($extmgr->isWritableExtDir()) {
|
2018-03-14 10:47:06 +00:00
|
|
|
|
?>
|
2018-03-12 17:33:30 +00:00
|
|
|
|
<form class="form-horizontal" method="post" enctype="multipart/form-data" action="../op/op.ExtensionMgr.php">
|
|
|
|
|
<?= createHiddenFieldWithKey('extensionmgr') ?>
|
|
|
|
|
<input type="hidden" name="action" value="upload" />
|
2018-04-23 13:50:46 +00:00
|
|
|
|
<?php
|
|
|
|
|
$this->formField(
|
|
|
|
|
getMLText("extension_archive"),
|
2018-09-05 11:35:44 +00:00
|
|
|
|
$this->getFileChooserHtml('userfile', false)
|
2018-04-23 13:50:46 +00:00
|
|
|
|
);
|
|
|
|
|
$this->formSubmit("<i class=\"icon-upload\"></i> ".getMLText('import_extension'));
|
|
|
|
|
?>
|
2018-03-12 17:33:30 +00:00
|
|
|
|
</form>
|
2018-03-14 10:47:06 +00:00
|
|
|
|
<?php
|
|
|
|
|
} else {
|
|
|
|
|
echo "<div class=\"alert alert-warning\">".getMLText('extension_mgr_no_upload')."</div>";
|
|
|
|
|
}
|
|
|
|
|
?>
|
2018-03-12 17:33:30 +00:00
|
|
|
|
</div>
|
|
|
|
|
<div class="span8">
|
2018-03-13 13:38:49 +00:00
|
|
|
|
<ul class="nav nav-tabs" id="extensionstab">
|
2018-03-14 10:47:06 +00:00
|
|
|
|
<li class="<?php if(!$currenttab || $currenttab == 'installed') echo 'active'; ?>"><a data-target="#installed" data-toggle="tab"><?= getMLText('extension_mgr_installed'); ?></a></li>
|
|
|
|
|
<li class="<?php if($currenttab == 'repository') echo 'active'; ?>"><a data-target="#repository" data-toggle="tab"><?= getMLText('extension_mgr_repository'); ?></a></li>
|
2018-03-13 13:38:49 +00:00
|
|
|
|
</ul>
|
|
|
|
|
<div class="tab-content">
|
|
|
|
|
<div class="tab-pane <?php if(!$currenttab || $currenttab == 'installed') echo 'active'; ?>" id="installed">
|
2019-02-22 16:26:32 +00:00
|
|
|
|
<input id="extensionfilter" type="text">
|
2019-12-20 16:20:15 +00:00
|
|
|
|
<div class="ajax" data-view="ExtensionMgr" data-action="installedList"></div>
|
2018-03-12 17:33:30 +00:00
|
|
|
|
<?php
|
2019-12-20 16:20:15 +00:00
|
|
|
|
// $this->installedList();
|
2013-05-03 10:10:56 +00:00
|
|
|
|
?>
|
|
|
|
|
<form action="../op/op.ExtensionMgr.php" name="form1" method="post">
|
|
|
|
|
<?php echo createHiddenFieldWithKey('extensionmgr'); ?>
|
2018-03-12 17:33:30 +00:00
|
|
|
|
<input type="hidden" name="action" value="refresh" />
|
2013-05-03 10:10:56 +00:00
|
|
|
|
<p><button type="submit" class="btn"><i class="icon-refresh"></i> <?php printMLText("refresh");?></button></p>
|
|
|
|
|
</form>
|
2018-03-13 13:38:49 +00:00
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="tab-pane <?php if($currenttab == 'repository') echo 'active'; ?>" id="repository">
|
|
|
|
|
<?php
|
2018-03-27 12:04:45 +00:00
|
|
|
|
if($extmgr->getRepositoryUrl()) {
|
2018-03-13 13:38:49 +00:00
|
|
|
|
echo "<table class=\"table _table-condensed\">\n";
|
|
|
|
|
print "<thead>\n<tr>\n";
|
2019-12-20 16:20:15 +00:00
|
|
|
|
print "<th></th>\n";
|
|
|
|
|
print "<th>".getMLText('name')."</th>\n";
|
|
|
|
|
print "<th>".getMLText('version')."</th>\n";
|
|
|
|
|
print "<th>".getMLText('author')."</th>\n";
|
|
|
|
|
print "<th></th>\n";
|
2018-03-13 13:38:49 +00:00
|
|
|
|
print "</tr></thead><tbody>\n";
|
2018-03-14 12:11:35 +00:00
|
|
|
|
$list = $extmgr->getExtensionList();
|
2018-03-22 07:43:41 +00:00
|
|
|
|
foreach($list as $re) {
|
2018-07-04 13:47:13 +00:00
|
|
|
|
if(!$re)
|
|
|
|
|
continue;
|
2018-03-22 07:43:41 +00:00
|
|
|
|
$extmgr->checkExtension($re);
|
|
|
|
|
$checkmsgs = $extmgr->getErrorMsgs();
|
2020-01-03 09:21:58 +00:00
|
|
|
|
$needsupdate = !isset($extconf[$re['name']]) || SeedDMS_Extension_Mgr::cmpVersion($re['version'], $extconf[$re['name']]['version']) > 0;
|
2018-03-22 07:43:41 +00:00
|
|
|
|
echo "<tr";
|
2020-01-03 09:21:58 +00:00
|
|
|
|
if(isset($extconf[$re['name']])) {
|
2018-03-22 07:43:41 +00:00
|
|
|
|
if($needsupdate)
|
|
|
|
|
echo " class=\"warning\"";
|
|
|
|
|
else
|
|
|
|
|
echo " class=\"success\"";
|
2018-03-13 13:38:49 +00:00
|
|
|
|
}
|
2018-03-22 07:43:41 +00:00
|
|
|
|
echo ">";
|
|
|
|
|
echo "<td width=\"32\">".($re['icon-data'] ? '<img width="32" height="32" alt="'.$re['name'].'" title="'.$re['name'].'" src="'.$re['icon-data'].'">' : '')."</td>";
|
2018-03-23 09:10:26 +00:00
|
|
|
|
echo "<td>".$re['title'];
|
|
|
|
|
echo "<br /><small>".$re['description']."</small>";
|
2018-03-22 07:43:41 +00:00
|
|
|
|
if($checkmsgs)
|
|
|
|
|
echo "<div><img src=\"".$this->getImgPath("attention.gif")."\"> ".implode('<br /><img src="'.$this->getImgPath("attention.gif").'"> ', $checkmsgs)."</div>";
|
|
|
|
|
echo "</td>";
|
|
|
|
|
echo "<td nowrap>".$re['version']."<br /><small>".$re['releasedate']."</small></td>";
|
|
|
|
|
echo "<td nowrap>".$re['author']['name']."<br /><small>".$re['author']['company']."</small></td>";
|
|
|
|
|
echo "<td nowrap>";
|
|
|
|
|
echo "<div class=\"list-action\">";
|
2018-03-23 09:10:26 +00:00
|
|
|
|
echo "<a data-target=\"#extensionInfo\" href=\"../out/out.ExtensionMgr.php?action=info&extensionname=".$re['name']."\" data-toggle=\"modal\" title=\"".getMLText('show_extension_version_list')."\"><i class=\"icon-list-ol\"></i></a>\n";
|
2018-03-22 07:43:41 +00:00
|
|
|
|
if(!$checkmsgs && $extmgr->isWritableExtDir())
|
|
|
|
|
echo "<form style=\"display: inline-block; margin: 0px;\" method=\"post\" action=\"../op/op.ExtensionMgr.php\" id=\"".$re['name']."-import\">".createHiddenFieldWithKey('extensionmgr')."<input type=\"hidden\" name=\"action\" value=\"import\" /><input type=\"hidden\" name=\"currenttab\" value=\"repository\" /><input type=\"hidden\" name=\"url\" value=\"".$re['filename']."\" /><a class=\"import\" data-extname=\"".$re['name']."\" title=\"".getMLText('import_extension')."\"><i class=\"icon-download\"></i></a></form>";
|
|
|
|
|
echo "</div>";
|
|
|
|
|
echo "</td>";
|
|
|
|
|
echo "</tr>";
|
2019-12-20 16:20:15 +00:00
|
|
|
|
}
|
2018-03-13 13:38:49 +00:00
|
|
|
|
echo "</tbody></table>\n";
|
|
|
|
|
?>
|
2018-03-21 12:40:57 +00:00
|
|
|
|
<div>
|
|
|
|
|
<form method="post" action="../op/op.ExtensionMgr.php">
|
|
|
|
|
<?= createHiddenFieldWithKey('extensionmgr'); ?>
|
|
|
|
|
<input type="hidden" name="action" value="getlist" />
|
|
|
|
|
<input type="hidden" name="currenttab" value="repository" />
|
|
|
|
|
<input type="hidden" name="forceupdate" value="1" />
|
2018-03-21 14:24:25 +00:00
|
|
|
|
<button type="submit" class="btn btn-delete"><i class="icon-refresh"></i> <?= getMLText('force_update')?></button>
|
2018-03-21 12:40:57 +00:00
|
|
|
|
</form>
|
2018-03-27 12:04:45 +00:00
|
|
|
|
</div>
|
|
|
|
|
<?php
|
|
|
|
|
}
|
|
|
|
|
?>
|
2018-03-13 13:38:49 +00:00
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2018-03-12 17:33:30 +00:00
|
|
|
|
</div>
|
2018-03-23 09:10:26 +00:00
|
|
|
|
</div>
|
|
|
|
|
<div class="modal modal-wide hide" id="extensionInfo" tabindex="-1" role="dialog" aria-labelledby="extensionInfoLabel" aria-hidden="true">
|
|
|
|
|
<div class="modal-header">
|
|
|
|
|
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
|
|
|
|
<h3 id="extensionInfoLabel"><?= getMLText("extension_version_list") ?></h3>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="modal-body">
|
|
|
|
|
<p><?php printMLText('extension_loading') ?></p>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="modal-footer">
|
|
|
|
|
<button class="btn btn-primary" data-dismiss="modal" aria-hidden="true"><?php printMLText("close") ?></button>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="modal modal-wide hide" id="extensionChangelog" tabindex="-1" role="dialog" aria-labelledby="extensionChangelogLabel" aria-hidden="true">
|
|
|
|
|
<div class="modal-header">
|
|
|
|
|
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
|
|
|
|
<h3 id="extensionChangelogLabel"><?= getMLText("extension_changelog") ?></h3>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="modal-body">
|
2020-01-21 17:26:18 +00:00
|
|
|
|
<p><?php printMLText('changelog_loading') ?></p>
|
2018-03-23 09:10:26 +00:00
|
|
|
|
</div>
|
|
|
|
|
<div class="modal-footer">
|
|
|
|
|
<button class="btn btn-primary" data-dismiss="modal" aria-hidden="true"><?php printMLText("close") ?></button>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
2018-03-12 17:33:30 +00:00
|
|
|
|
<?php
|
2016-03-21 05:43:00 +00:00
|
|
|
|
$this->contentEnd();
|
2013-05-02 16:28:23 +00:00
|
|
|
|
$this->htmlEndPage();
|
|
|
|
|
} /* }}} */
|
|
|
|
|
}
|
|
|
|
|
?>
|