diff options
author | Julius Haertl <jus@bitgrid.net> | 2017-02-09 12:56:42 +0300 |
---|---|---|
committer | Julius Haertl <jus@bitgrid.net> | 2017-02-16 17:13:38 +0300 |
commit | 60d77ceccb88414cfa426f237549f3ac9684f7b3 (patch) | |
tree | 2884da3a43c88fac9f362d20a767c564de86a8d7 /apps/theming | |
parent | 6a9d5d60dc13bd43604cf30b3d9fe90364038c45 (diff) |
Add repair step to move existing theming images
Signed-off-by: Julius Haertl <jus@bitgrid.net>
Diffstat (limited to 'apps/theming')
-rw-r--r-- | apps/theming/appinfo/info.xml | 8 | ||||
-rw-r--r-- | apps/theming/lib/Migration/ThemingImages.php | 78 |
2 files changed, 85 insertions, 1 deletions
diff --git a/apps/theming/appinfo/info.xml b/apps/theming/appinfo/info.xml index 9ded5c89b87..13a0f161a47 100644 --- a/apps/theming/appinfo/info.xml +++ b/apps/theming/appinfo/info.xml @@ -5,7 +5,7 @@ <description>Adjust the Nextcloud theme</description> <licence>AGPL</licence> <author>Nextcloud</author> - <version>1.2.0</version> + <version>1.3.0</version> <namespace>Theming</namespace> <category>other</category> @@ -23,4 +23,10 @@ <admin>OCA\Theming\Settings\Admin</admin> <admin-section>OCA\Theming\Settings\Section</admin-section> </settings> + + <repair-steps> + <post-migration> + <step>OCA\Theming\Migration\ThemingImages</step> + </post-migration> + </repair-steps> </info> diff --git a/apps/theming/lib/Migration/ThemingImages.php b/apps/theming/lib/Migration/ThemingImages.php new file mode 100644 index 00000000000..9627697f666 --- /dev/null +++ b/apps/theming/lib/Migration/ThemingImages.php @@ -0,0 +1,78 @@ +<?php +/** + * @copyright Copyright (c) 2017 Julius Härtl <jus@bitgrid.net> + * + * @author Julius Härtl <jus@bitgrid.net> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program 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 program. If not, see <http://www.gnu.org/licenses/>. + * + */ + + +namespace OCA\Theming\Migration; + +use OCA\Theming\ThemingDefaults; +use OCP\Files\IAppData; +use OCP\Files\IRootFolder; +use OCP\Migration\IRepairStep; +use OCP\Migration\IOutput; +use OC\Files\Node\File; +use OCP\Files\NotFoundException; + +class ThemingImages implements IRepairStep { + + private $appData; + private $rootFolder; + + public function __construct(IAppData $appData, ThemingDefaults $defaults, IRootFolder $rootFolder) { + $this->appData = $appData; + $this->rootFolder = $rootFolder; + } + + /* + * @inheritdoc + */ + public function getName() { + return 'Move theming files to AppData storage'; + } + + /** + * @inheritdoc + */ + public function run(IOutput $output) { + $folder = $this->appData->newFolder("images"); + /** @var File $file */ + $file = null; + try { + $file = $this->rootFolder->get('themedinstancelogo'); + $logo = $folder->newFile("logo"); + $logo->putContent($file->getContent()); + $file->delete(); + } catch (NotFoundException $e) { + $output->info("No theming logo image to migrate"); + } + + try { + $file = $this->rootFolder->get('themedbackgroundlogo'); + $background = $folder->newFile("background"); + $background->putContent($file->getContent()); + $file->delete(); + } catch (NotFoundException $e) { + $output->info("No theming background image to migrate"); + } + + } +}
\ No newline at end of file |