* @author Lukas Reschke * * @copyright Copyright (c) 2015, ownCloud, Inc. * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License, version 3, * as published by the Free Software Foundation. * * 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, version 3, * along with this program. If not, see * */ namespace OC\Settings\Controller; use OC\Files\View; use OCA\Encryption\Migration; use OCP\IL10N; use OCP\AppFramework\Controller; use OCP\ILogger; use OCP\IRequest; use OCP\IConfig; use OC\DB\Connection; use OCP\IUserManager; /** * @package OC\Settings\Controller */ class EncryptionController extends Controller { /** @var \OCP\IL10N */ private $l10n; /** @var Connection */ private $connection; /** @var IConfig */ private $config; /** @var IUserManager */ private $userManager; /** @var View */ private $view; /** @var ILogger */ private $logger; /** * @param string $appName * @param IRequest $request * @param \OCP\IL10N $l10n * @param \OCP\IConfig $config * @param \OC\DB\Connection $connection * @param IUserManager $userManager * @param View $view * @param ILogger $logger */ public function __construct($appName, IRequest $request, IL10N $l10n, IConfig $config, Connection $connection, IUserManager $userManager, View $view, ILogger $logger) { parent::__construct($appName, $request); $this->l10n = $l10n; $this->config = $config; $this->connection = $connection; $this->view = $view; $this->userManager = $userManager; $this->logger = $logger; } /** * @param IConfig $config * @param View $view * @param Connection $connection * @param ILogger $logger * @return Migration */ protected function getMigration(IConfig $config, View $view, Connection $connection, ILogger $logger) { return new Migration($config, $view, $connection, $logger); } /** * start migration * * @return array */ public function startMigration() { // allow as long execution on the web server as possible set_time_limit(0); try { $migration = $this->getMigration($this->config, $this->view, $this->connection, $this->logger); $migration->reorganizeSystemFolderStructure(); $migration->updateDB(); foreach ($this->userManager->getBackends() as $backend) { $limit = 500; $offset = 0; do { $users = $backend->getUsers('', $limit, $offset); foreach ($users as $user) { $migration->reorganizeFolderStructureForUser($user); } $offset += $limit; } while (count($users) >= $limit); } $migration->finalCleanUp(); } catch (\Exception $e) { return [ 'data' => [ 'message' => (string)$this->l10n->t('A problem occurred, please check your log files (Error: %s)', [$e->getMessage()]), ], 'status' => 'error', ]; } return [ 'data' => [ 'message' => (string) $this->l10n->t('Migration Completed'), ], 'status' => 'success', ]; } } ldb-2.7.1 Vaadin 6, 7, 8 is a Java framework for modern Java web applications: https://github.com/vaadin/frameworkwww-data
aboutsummaryrefslogtreecommitdiffstats
blob: 8bdb4e6d7fd4a810654aa311ee67741b6305659b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
---
title: Component Containers
order: 9
layout: page
---

[[gwt.componentcontainer]]
= Component Containers

Component containers, such as layout components, are a special group of
components that require some consideration. In addition to handling state, they
need to manage communicating the hierarchy of their contained components to the
other side.

The easiest way to implement a component container is extend the
[classname]#AbstractComponentContainer#, which handles the synchronization of
the container server-side components to the client-side.