]> source.dussan.org Git - nextcloud-server.git/commitdiff
Add repair step to move existing theming images
authorJulius Haertl <jus@bitgrid.net>
Thu, 9 Feb 2017 09:56:42 +0000 (10:56 +0100)
committerJulius Haertl <jus@bitgrid.net>
Thu, 16 Feb 2017 14:13:38 +0000 (15:13 +0100)
Signed-off-by: Julius Haertl <jus@bitgrid.net>
apps/theming/appinfo/info.xml
apps/theming/lib/Migration/ThemingImages.php [new file with mode: 0644]

index 9ded5c89b879d7ab26d3944db2f1129c5843e026..13a0f161a47d189739144385510cc2c62b0c4320 100644 (file)
@@ -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>
 
                <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 (file)
index 0000000..9627697
--- /dev/null
@@ -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