%PDF- %PDF-
| Direktori : /www/varak.net/nextcloud.varak.net/apps_old/apps/cospend/lib/AppInfo/ |
| Current File : /www/varak.net/nextcloud.varak.net/apps_old/apps/cospend/lib/AppInfo/Application.php |
<?php
/**
* Nextcloud - cospend
*
* This file is licensed under the Affero General Public License version 3 or
* later. See the COPYING file.
*
* @author Julien Veyssier <julien-nc@posteo.net>
* @copyright Julien Veyssier 2018
*/
namespace OCA\Cospend\AppInfo;
use OCA\Cospend\Capabilities;
use OCA\Cospend\Dashboard\CospendWidget;
use OCA\Cospend\Middleware\PublicAuthMiddleware;
use OCA\Cospend\Middleware\UserPermissionMiddleware;
use OCA\Cospend\Notification\Notifier;
use OCA\Cospend\Search\CospendSearchProvider;
use OCA\Cospend\UserMigration\UserMigrator;
use OCP\AppFramework\App;
use OCP\AppFramework\Bootstrap\IBootContext;
use OCP\AppFramework\Bootstrap\IBootstrap;
use OCP\AppFramework\Bootstrap\IRegistrationContext;
use OCP\Util;
class Application extends App implements IBootstrap {
public const APP_ID = 'cospend';
public const CATEGORY_REIMBURSEMENT = -11;
public const SORT_ORDER_ALPHA = 'a';
public const SORT_ORDER_MANUAL = 'm';
public const SORT_ORDER_MOST_USED = 'u';
public const SORT_ORDER_RECENTLY_USED = 'r';
public const SORT_ORDERS = [
self::SORT_ORDER_ALPHA,
self::SORT_ORDER_MANUAL,
self::SORT_ORDER_MOST_USED,
self::SORT_ORDER_RECENTLY_USED,
];
public const FREQUENCY_NO = 'n';
public const FREQUENCY_DAILY = 'd';
public const FREQUENCY_WEEKLY = 'w';
public const FREQUENCY_BI_WEEKLY = 'b';
public const FREQUENCY_SEMI_MONTHLY = 's';
public const FREQUENCY_MONTHLY = 'm';
public const FREQUENCY_YEARLY = 'y';
public const FREQUENCIES = [
self::FREQUENCY_NO,
self::FREQUENCY_DAILY,
self::FREQUENCY_WEEKLY,
self::FREQUENCY_BI_WEEKLY,
self::FREQUENCY_SEMI_MONTHLY,
self::FREQUENCY_MONTHLY,
self::FREQUENCY_YEARLY,
];
public const ACCESS_LEVEL_NONE = 0;
public const ACCESS_LEVEL_VIEWER = 1;
public const ACCESS_LEVEL_PARTICIPANT = 2;
public const ACCESS_LEVEL_MAINTAINER = 3;
public const ACCESS_LEVEL_ADMIN = 4;
public const ACCESS_LEVELS = [
self::ACCESS_LEVEL_NONE,
self::ACCESS_LEVEL_VIEWER,
self::ACCESS_LEVEL_PARTICIPANT,
self::ACCESS_LEVEL_MAINTAINER,
self::ACCESS_LEVEL_ADMIN,
];
public const SHARE_TYPE_PUBLIC_LINK = 'l';
public const SHARE_TYPE_USER = 'u';
public const SHARE_TYPE_GROUP = 'g';
public const SHARE_TYPE_CIRCLE = 'c';
public const SHARE_TYPES = [
self::SHARE_TYPE_PUBLIC_LINK,
self::SHARE_TYPE_USER,
self::SHARE_TYPE_GROUP,
self::SHARE_TYPE_CIRCLE,
];
public const HARDCODED_CATEGORIES = [
-11 => [
'icon' => '💰',
],
];
public function __construct(array $urlParams = []) {
parent::__construct(self::APP_ID, $urlParams);
// TODO
// - rename db columns with underscores, change new APIs param names, keep a second jsonSerialize method for old APIs
// - check if it makes sense to have a paypal integration
// - check how to switch to numerical project IDs (keep unique slug for client compatibility)
}
public function register(IRegistrationContext $context): void {
$context->registerNotifierService(Notifier::class);
$context->registerSearchProvider(CospendSearchProvider::class);
$context->registerDashboardWidget(CospendWidget::class);
$context->registerUserMigrator(UserMigrator::class);
$context->registerMiddleware(PublicAuthMiddleware::class);
$context->registerMiddleware(UserPermissionMiddleware::class);
$context->registerCapability(Capabilities::class);
}
public function boot(IBootContext $context): void {
Util::addStyle(self::APP_ID, 'cospend-search');
}
}