Moved the updatebutton, menu now checking all plugins at once, instead of one call per plugin.
This commit is contained in:
parent
9a6d07e73b
commit
e0b5149b9c
@ -243,6 +243,8 @@ class PluginMenu implements CallbackListener, ConfiguratorMenu, ManialinkPageAns
|
|||||||
// Plugin pages
|
// Plugin pages
|
||||||
$pageFrames = array();
|
$pageFrames = array();
|
||||||
$y = 0.;
|
$y = 0.;
|
||||||
|
$pluginUpdates = $this->maniaControl->updateManager->getPluginsUpdates();
|
||||||
|
|
||||||
foreach($pluginClasses as $index => $pluginClass) {
|
foreach($pluginClasses as $index => $pluginClass) {
|
||||||
/** @var Plugin $pluginClass */
|
/** @var Plugin $pluginClass */
|
||||||
if (!isset($pageFrame)) {
|
if (!isset($pageFrame)) {
|
||||||
@ -319,7 +321,7 @@ class PluginMenu implements CallbackListener, ConfiguratorMenu, ManialinkPageAns
|
|||||||
$statusChangeButton->setAction(self::ACTION_PREFIX_ENABLEPLUGIN . $pluginClass);
|
$statusChangeButton->setAction(self::ACTION_PREFIX_ENABLEPLUGIN . $pluginClass);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($this->maniaControl->updateManager->checkPluginUpdate($pluginClass) != false) {
|
if ($pluginUpdates != false && array_key_exists($pluginClass::getId(), $pluginUpdates)) {
|
||||||
$quadUpdate = new Quad_Icons128x128_1();
|
$quadUpdate = new Quad_Icons128x128_1();
|
||||||
$pluginFrame->add($quadUpdate);
|
$pluginFrame->add($quadUpdate);
|
||||||
$quadUpdate->setSubStyle($quadUpdate::SUBSTYLE_ProfileVehicle);
|
$quadUpdate->setSubStyle($quadUpdate::SUBSTYLE_ProfileVehicle);
|
||||||
@ -335,16 +337,16 @@ class PluginMenu implements CallbackListener, ConfiguratorMenu, ManialinkPageAns
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$numberOfOutdated = $this->maniaControl->updateManager->getNumberOfOutdatedPlugins();
|
if($pluginUpdates != false) {
|
||||||
if($numberOfOutdated > 0) {
|
|
||||||
$updatePluginsButton = new Label_Button();
|
$updatePluginsButton = new Label_Button();
|
||||||
$frame->add($updatePluginsButton);
|
$frame->add($updatePluginsButton);
|
||||||
$updatePluginsButton->setHAlign(Control::RIGHT);
|
$updatePluginsButton->setHAlign(Control::RIGHT);
|
||||||
$updatePluginsButton->setX($width * 0.1);
|
$updatePluginsButton->setX($width * 0.5);
|
||||||
$updatePluginsButton->setY(-35.5);
|
$updatePluginsButton->setY(-29);
|
||||||
$updatePluginsButton->setZ(2);
|
$updatePluginsButton->setZ(2);
|
||||||
$updatePluginsButton->setStyle($updatePluginsButton::STYLE_CardButtonSmall);
|
$updatePluginsButton->setWidth(10);
|
||||||
$updatePluginsButton->setText('Update '.$numberOfOutdated.' plugin(s)');
|
$updatePluginsButton->setStyle($updatePluginsButton::STYLE_CardButtonSmallS);
|
||||||
|
$updatePluginsButton->setText(count($pluginUpdates).' update(s)');
|
||||||
$updatePluginsButton->setAction(self::ACTION_UPDATEPLUGINS);
|
$updatePluginsButton->setAction(self::ACTION_UPDATEPLUGINS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -415,22 +415,6 @@ class UpdateManager implements CallbackListener, CommandListener, TimerListener
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the number of outdated plugins active.
|
|
||||||
* @return int
|
|
||||||
*/
|
|
||||||
public function getNumberOfOutdatedPlugins() {
|
|
||||||
$number = 0;
|
|
||||||
foreach ($this->maniaControl->pluginManager->getPluginClasses() as $pluginClass) {
|
|
||||||
$pluginData = $this->checkPluginUpdate($pluginClass);
|
|
||||||
if ($pluginData != false) {
|
|
||||||
$number++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $number;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check given Plugin Class for Update
|
* Check given Plugin Class for Update
|
||||||
*
|
*
|
||||||
@ -457,6 +441,42 @@ class UpdateManager implements CallbackListener, CommandListener, TimerListener
|
|||||||
return $pluginData;
|
return $pluginData;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check for updates
|
||||||
|
*
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function getPluginsUpdates() {
|
||||||
|
$pluginUpdates = array();
|
||||||
|
$pluginsWS = array();
|
||||||
|
|
||||||
|
$url = ManiaControl::URL_WEBSERVICE . 'plugins';
|
||||||
|
$dataJson = FileUtil::loadFile($url);
|
||||||
|
$pluginVersions = json_decode($dataJson);
|
||||||
|
if (!$pluginVersions || !isset($pluginVersions[0])) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach($pluginVersions as $plugin) {
|
||||||
|
$pluginsWS[$plugin->id] = $plugin;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @var Plugin $pluginClass */
|
||||||
|
foreach($this->maniaControl->pluginManager->getPluginClasses() as $pluginClass) {
|
||||||
|
$pluginId = $pluginClass::getId();
|
||||||
|
if(array_key_exists($pluginId, $pluginsWS)) {
|
||||||
|
if($pluginsWS[$pluginId]->currentVersion->version > $pluginClass::getVersion()) {
|
||||||
|
$pluginUpdates[$pluginId] = $pluginsWS[$pluginId];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(empty($pluginUpdates)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return $pluginUpdates;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update pluginfile
|
* Update pluginfile
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user