OneBot: Leantime 改造版源码(BOM/Univer 表格/AI 接管/品牌替换等)
This commit is contained in:
59
app/Domain/Plugins/Hxcontrollers/Details.php
Normal file
59
app/Domain/Plugins/Hxcontrollers/Details.php
Normal file
@@ -0,0 +1,59 @@
|
||||
<?php
|
||||
|
||||
namespace Leantime\Domain\Plugins\Hxcontrollers;
|
||||
|
||||
use Illuminate\Contracts\Container\BindingResolutionException;
|
||||
use Illuminate\Http\Client\RequestException;
|
||||
use Leantime\Core\Auth\Permissions\RequiresPermission;
|
||||
use Leantime\Core\Controller\HtmxController;
|
||||
use Leantime\Domain\Plugins\Permissions\PluginsPermissions;
|
||||
use Leantime\Domain\Plugins\Services\Plugins as PluginService;
|
||||
|
||||
class Details extends HtmxController
|
||||
{
|
||||
protected static string $view = 'plugins::plugindetails';
|
||||
|
||||
private PluginService $pluginService;
|
||||
|
||||
public function init(
|
||||
PluginService $pluginService,
|
||||
): void {
|
||||
$this->pluginService = $pluginService;
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws BindingResolutionException
|
||||
*/
|
||||
#[RequiresPermission(PluginsPermissions::MANAGE, global: true)]
|
||||
public function install(): string
|
||||
{
|
||||
$pluginProps = $this->incomingRequest->request->all()['plugin'];
|
||||
$version = $pluginProps['version'];
|
||||
unset($pluginProps['version']);
|
||||
|
||||
$pluginModel = $this->pluginService->buildMarketplacePluginFromRequest($pluginProps);
|
||||
|
||||
$this->tpl->assign('plugin', $pluginModel);
|
||||
$this->tpl->assign('isBundle', $this->pluginService->isBundle($pluginModel));
|
||||
|
||||
try {
|
||||
$this->pluginService->installMarketplacePlugin($pluginModel, $version);
|
||||
} catch (RequestException $e) {
|
||||
report($e);
|
||||
|
||||
$this->tpl->assign('formError', $this->pluginService->parseMarketplaceError($e));
|
||||
|
||||
return 'plugin-installation';
|
||||
}
|
||||
|
||||
if ($this->pluginService->isEnabled($pluginModel->identifier)) {
|
||||
$this->tpl->assign('formNotification', __('marketplace.updated'));
|
||||
|
||||
return 'plugin-installation';
|
||||
}
|
||||
|
||||
$this->tpl->assign('formNotification', sprintf(__('marketplace.installed'), '/plugins/myapps'));
|
||||
|
||||
return 'plugin-installation';
|
||||
}
|
||||
}
|
||||
50
app/Domain/Plugins/Hxcontrollers/Marketplaceplugins.php
Normal file
50
app/Domain/Plugins/Hxcontrollers/Marketplaceplugins.php
Normal file
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
|
||||
namespace Leantime\Domain\Plugins\Hxcontrollers;
|
||||
|
||||
use Illuminate\Contracts\Container\BindingResolutionException;
|
||||
use Leantime\Core\Controller\HtmxController;
|
||||
use Leantime\Domain\Plugins\Models\MarketplacePlugin;
|
||||
use Leantime\Domain\Plugins\Services\Plugins as PluginService;
|
||||
|
||||
class Marketplaceplugins extends HtmxController
|
||||
{
|
||||
protected static string $view = 'plugins::partials.pluginlist';
|
||||
|
||||
private PluginService $pluginService;
|
||||
|
||||
public function init(
|
||||
PluginService $pluginService,
|
||||
): void {
|
||||
$this->pluginService = $pluginService;
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws BindingResolutionException
|
||||
*/
|
||||
public function getlist(): void
|
||||
{
|
||||
/** @var MarketplacePlugin[] $plugins */
|
||||
$plugins = $this->pluginService->getMarketplacePlugins(
|
||||
$this->incomingRequest->query->get('page', 1),
|
||||
$this->incomingRequest->query->get('search', ''),
|
||||
);
|
||||
|
||||
$this->tpl->assign('plugins', $plugins);
|
||||
}
|
||||
|
||||
public function getLatest()
|
||||
{
|
||||
/** @var MarketplacePlugin[] $plugins */
|
||||
$plugins = $this->pluginService->getLatestPluginUpdates(
|
||||
$this->incomingRequest->query->get('page', 1),
|
||||
$this->incomingRequest->query->get('search', ''),
|
||||
);
|
||||
|
||||
$this->tpl->assign('plugins', $plugins);
|
||||
|
||||
return $this->tpl->displayPartial('plugins::partials.latestPlugins');
|
||||
}
|
||||
|
||||
public function search(): void {}
|
||||
}
|
||||
Reference in New Issue
Block a user