simplified theme settings and standard layout (#586)

This commit is contained in:
Kevin Papst
2019-02-23 13:51:44 +01:00
committed by GitHub
parent 32fbebd469
commit 36a158a805
14 changed files with 54 additions and 143 deletions

View File

@@ -66,13 +66,16 @@ class ThemeOptionsSubscriber implements EventSubscriberInterface
$skin = '';
foreach ($user->getPreferences() as $ref) {
$name = $ref->getName();
if (UserPreference::SKIN === $name) {
$skin = 'skin-' . $ref->getValue();
}
if (false !== strpos($name, 'theme.')) {
$this->helper->setOption(str_replace('theme.', '', $name), $ref->getValue());
$name = $ref->getName();
switch ($name) {
case UserPreference::SKIN:
$skin = 'skin-' . $ref->getValue();
break;
case 'theme.collapsed_sidebar':
$this->helper->setOption('collapsed_sidebar', $ref->getValue());
break;
}
}

View File

@@ -100,26 +100,11 @@ class UserPreferenceSubscriber implements EventSubscriberInterface
->setValue('green')
->setType(SkinType::class),
(new UserPreference())
->setName('theme.fixed_layout')
->setValue(true)
->setType(CheckboxType::class),
(new UserPreference())
->setName('theme.boxed_layout')
->setValue(false)
->setType(CheckboxType::class),
(new UserPreference())
->setName('theme.collapsed_sidebar')
->setValue(false)
->setType(CheckboxType::class),
(new UserPreference())
->setName('theme.mini_sidebar')
->setValue(true)
->setType(CheckboxType::class),
(new UserPreference())
->setName('calendar.initial_view')
->setValue(CalendarViewType::DEFAULT_VIEW)

View File

@@ -0,0 +1,40 @@
<?php
declare(strict_types=1);
/*
* This file is part of the Kimai time-tracking app.
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace DoctrineMigrations;
use App\Doctrine\AbstractMigration;
use Doctrine\DBAL\Schema\Schema;
/**
* Cleanup the user_preferences table from old configs.
*/
final class Version20190219200020 extends AbstractMigration
{
public function up(Schema $schema): void
{
$platform = $this->getPlatform();
if (!in_array($platform, ['sqlite', 'mysql'])) {
$this->abortIf(true, 'Unsupported database platform: ' . $platform);
}
$userPrefs = $this->getTableName('user_preferences');
$this->addSql('DELETE FROM ' . $userPrefs. ' WHERE name = "theme.fixed_layout"');
$this->addSql('DELETE FROM ' . $userPrefs. ' WHERE name = "theme.boxed_layout"');
$this->addSql('DELETE FROM ' . $userPrefs. ' WHERE name = "theme.mini_sidebar"');
}
public function down(Schema $schema): void
{
}
}