mirror of https://github.com/nextcloud/calendar
Merge pull request #4690 from e-foundation/enable-app-slowness-fix
Remove current view repair step
This commit is contained in:
commit
7edbe4c399
|
@ -38,11 +38,6 @@
|
|||
<background-jobs>
|
||||
<job>OCA\Calendar\BackgroundJob\CleanUpOutdatedBookingsJob</job>
|
||||
</background-jobs>
|
||||
<repair-steps>
|
||||
<post-migration>
|
||||
<step>OCA\Calendar\RepairSteps\CurrentViewNameRepairStep</step>
|
||||
</post-migration>
|
||||
</repair-steps>
|
||||
<navigations>
|
||||
<navigation>
|
||||
<id>calendar</id>
|
||||
|
|
|
@ -1,96 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
/**
|
||||
* Calendar App
|
||||
*
|
||||
* @author Georg Ehrke
|
||||
*
|
||||
* @copyright 2019 Georg Ehrke <oc.list@georgehrke.com>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3 of the License, or any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public
|
||||
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
namespace OCA\Calendar\RepairSteps;
|
||||
|
||||
use OCP\IConfig;
|
||||
use OCP\IUser;
|
||||
use OCP\IUserManager;
|
||||
use OCP\Migration\IOutput;
|
||||
use OCP\Migration\IRepairStep;
|
||||
|
||||
/**
|
||||
* Class CurrentViewNameRepairStep
|
||||
*
|
||||
* @package OCA\Calendar\RepairSteps
|
||||
*/
|
||||
class CurrentViewNameRepairStep implements IRepairStep {
|
||||
|
||||
/** @var IUserManager */
|
||||
private $userManager;
|
||||
|
||||
/** @var IConfig */
|
||||
private $config;
|
||||
|
||||
/**
|
||||
* CurrentViewNameRepairStep constructor.
|
||||
*
|
||||
* @param IUserManager $userManager
|
||||
* @param IConfig $config
|
||||
*/
|
||||
public function __construct(IUserManager $userManager,
|
||||
IConfig $config) {
|
||||
$this->userManager = $userManager;
|
||||
$this->config = $config;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getName():string {
|
||||
return 'Update name of the stored view';
|
||||
}
|
||||
|
||||
/**
|
||||
* @param IOutput $output
|
||||
*/
|
||||
public function run(IOutput $output):void {
|
||||
$this->userManager->callForSeenUsers(function (IUser $user) {
|
||||
$userId = $user->getUID();
|
||||
$savedView = $this->config->getUserValue($userId, 'calendar', 'currentView', null);
|
||||
|
||||
if ($savedView === null) {
|
||||
return;
|
||||
}
|
||||
if (\in_array($savedView, ['timeGridDay', 'timeGridWeek', 'dayGridMonth'], true)) {
|
||||
return;
|
||||
}
|
||||
|
||||
switch ($savedView) {
|
||||
case 'agendaDay':
|
||||
$this->config->setUserValue($userId, 'calendar', 'currentView', 'timeGridDay');
|
||||
break;
|
||||
|
||||
case 'agendaWeek':
|
||||
$this->config->setUserValue($userId, 'calendar', 'currentView', 'timeGridWeek');
|
||||
break;
|
||||
|
||||
case 'month':
|
||||
default:
|
||||
$this->config->setUserValue($userId, 'calendar', 'currentView', 'dayGridMonth');
|
||||
break;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
|
@ -1,124 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
/**
|
||||
* Calendar App
|
||||
*
|
||||
* @author Georg Ehrke
|
||||
* @copyright 2019 Georg Ehrke <oc.list@georgehrke.com>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3 of the License, or any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public
|
||||
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
namespace OCA\Calendar\RepairSteps;
|
||||
|
||||
use OCP\IConfig;
|
||||
use OCP\IUser;
|
||||
use OCP\IUserManager;
|
||||
use OCP\Migration\IOutput;
|
||||
use ChristophWurst\Nextcloud\Testing\TestCase;
|
||||
|
||||
class CurrentViewNameRepairStepTest extends TestCase {
|
||||
|
||||
/** @var IUserManager|\PHPUnit_Framework_MockObject_MockObject */
|
||||
private $userManager;
|
||||
|
||||
/** @var IConfig|\PHPUnit_Framework_MockObject_MockObject */
|
||||
private $config;
|
||||
|
||||
/** @var CurrentViewNameRepairStep */
|
||||
private $repairStep;
|
||||
|
||||
protected function setUp():void {
|
||||
parent::setUp();
|
||||
|
||||
$this->userManager = $this->createMock(IUserManager::class);
|
||||
$this->config = $this->createMock(IConfig::class);
|
||||
|
||||
$this->repairStep = new CurrentViewNameRepairStep($this->userManager,
|
||||
$this->config);
|
||||
}
|
||||
|
||||
public function testGetName():void {
|
||||
$this->assertEquals('Update name of the stored view', $this->repairStep->getName());
|
||||
}
|
||||
|
||||
public function testRun():void {
|
||||
$this->userManager->expects($this->once())
|
||||
->method('callForSeenUsers')
|
||||
->with($this->callback(function ($fn) {
|
||||
$user1 = $this->createMock(IUser::class);
|
||||
$user1->method('getUID')->willReturn('user1');
|
||||
|
||||
$user2 = $this->createMock(IUser::class);
|
||||
$user2->method('getUID')->willReturn('user2');
|
||||
|
||||
$user3 = $this->createMock(IUser::class);
|
||||
$user3->method('getUID')->willReturn('user3');
|
||||
|
||||
$user4 = $this->createMock(IUser::class);
|
||||
$user4->method('getUID')->willReturn('user4');
|
||||
|
||||
$user5 = $this->createMock(IUser::class);
|
||||
$user5->method('getUID')->willReturn('user5');
|
||||
|
||||
$user6 = $this->createMock(IUser::class);
|
||||
$user6->method('getUID')->willReturn('user6');
|
||||
|
||||
$user7 = $this->createMock(IUser::class);
|
||||
$user7->method('getUID')->willReturn('user7');
|
||||
|
||||
$user8 = $this->createMock(IUser::class);
|
||||
$user8->method('getUID')->willReturn('user8');
|
||||
|
||||
$fn($user1);
|
||||
$fn($user2);
|
||||
$fn($user3);
|
||||
$fn($user4);
|
||||
$fn($user5);
|
||||
$fn($user6);
|
||||
$fn($user7);
|
||||
$fn($user8);
|
||||
|
||||
return true;
|
||||
}));
|
||||
|
||||
$this->config
|
||||
->method('getUserValue')
|
||||
->willReturnMap([
|
||||
['user1', 'calendar', 'currentView', null, 'agendaDay'],
|
||||
['user2', 'calendar', 'currentView', null, 'agendaWeek'],
|
||||
['user3', 'calendar', 'currentView', null, 'month'],
|
||||
['user4', 'calendar', 'currentView', null, 'otherView'],
|
||||
['user5', 'calendar', 'currentView', null, null],
|
||||
['user7', 'calendar', 'currentView', null, 'timeGridWeek'],
|
||||
]);
|
||||
$this->config
|
||||
->method('setUserValue')
|
||||
->withConsecutive(
|
||||
['user1', 'calendar', 'currentView', 'timeGridDay'],
|
||||
['user2', 'calendar', 'currentView', 'timeGridWeek'],
|
||||
['user3', 'calendar', 'currentView', 'dayGridMonth'],
|
||||
['user4', 'calendar', 'currentView', 'dayGridMonth'],
|
||||
['user6', 'calendar', 'currentView', null],
|
||||
['user8', 'calendar', 'currentView', null, 'dayGridMonth']
|
||||
);
|
||||
|
||||
$output = $this->createMock(IOutput::class);
|
||||
$output->expects($this->never())
|
||||
->method($this->anything());
|
||||
|
||||
$this->repairStep->run($output);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue