50 lines
1.3 KiB
PHP
50 lines
1.3 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace OCA\MinimalProfile\Service;
|
|
|
|
use OCP\IConfig;
|
|
|
|
class Config {
|
|
|
|
public function __construct(
|
|
private IConfig $config,
|
|
) {
|
|
}
|
|
|
|
public function getHiddenFields(): array {
|
|
$value = $this->config->getAppValue('minimalprofile', 'hidden_fields', '');
|
|
if ($value === '') {
|
|
return [];
|
|
}
|
|
return json_decode($value, true) ?? [];
|
|
}
|
|
|
|
public function generateCss(array $fields): string {
|
|
$selectors = [
|
|
'pronouns' => '#account-property-pronouns',
|
|
'role' => '#account-property-role',
|
|
'headline' => '#account-property-headline',
|
|
'biography' => '#account-property-biography',
|
|
'organisation' => '#account-property-organisation',
|
|
'phone' => '#account-property-phone',
|
|
'address' => '#account-property-address',
|
|
'birthdate' => '#account-property-birthdate',
|
|
'website' => '#account-property-website',
|
|
'twitter' => '#account-property-twitter',
|
|
'fediverse' => '#account-property-fediverse',
|
|
'location' => '#account-property-location',
|
|
];
|
|
|
|
$css = '';
|
|
foreach ($fields as $field) {
|
|
if (isset($selectors[$field])) {
|
|
$selector = $selectors[$field];
|
|
$css .= $selector . ' { display: none !important; }' . "\n";
|
|
$css .= '.personal-settings-setting-box:has(' . $selector . ') { display: none !important; }' . "\n";
|
|
}
|
|
}
|
|
return $css;
|
|
}
|
|
} |