[UI][TWIG][CONTROLLER][UserPanell] Add way to expand details with a GET parameter. Implement it in UserPanel
This commit is contained in:
parent
c509692102
commit
1abd28c949
@ -37,6 +37,7 @@ namespace App\Controller;
|
||||
|
||||
// {{{ Imports
|
||||
|
||||
use App\Core\Controller;
|
||||
use App\Core\DB\DB;
|
||||
use App\Core\Event;
|
||||
use App\Core\Form;
|
||||
@ -64,7 +65,7 @@ use Symfony\Component\HttpFoundation\Request;
|
||||
|
||||
// }}} Imports
|
||||
|
||||
class UserPanel extends AbstractController
|
||||
class UserPanel extends Controller
|
||||
{
|
||||
/**
|
||||
* Return main settings page forms
|
||||
@ -82,6 +83,7 @@ class UserPanel extends AbstractController
|
||||
'prof' => $personal_form->createView(),
|
||||
'acc' => $account_form->createView(),
|
||||
'tabbed_forms_notify' => $notifications_form_array,
|
||||
'open_details_query' => $this->string('open')
|
||||
];
|
||||
}
|
||||
|
||||
|
@ -70,6 +70,7 @@ class Extension extends AbstractExtension
|
||||
new TwigFunction('icon', [Runtime::class, 'embedSvgIcon'], ['needs_environment' => true]),
|
||||
new TwigFunction('is_firefox', [Runtime::class, 'isFirefox']),
|
||||
new TwigFunction('handle_override_template_import', [Runtime::class, 'handleOverrideTemplateImport']),
|
||||
new TwigFunction('open_details', [Runtime::class, 'openDetails']),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
@ -134,6 +134,11 @@ class Runtime implements RuntimeExtensionInterface, EventSubscriberInterface
|
||||
return $result;
|
||||
}
|
||||
|
||||
public function openDetails(?string $query, array $ids)
|
||||
{
|
||||
return in_array($query, $ids) ? 'open=""' : '';
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------
|
||||
|
||||
/**
|
||||
|
@ -13,7 +13,7 @@
|
||||
<h2>Settings</h2>
|
||||
<ul>
|
||||
<li>
|
||||
<details class="section-title-settings">
|
||||
<details class="section-title-settings" {{ open_details(open_details_query, ['profile', 'personal_info']) }} id="profile-details">
|
||||
<summary>
|
||||
<h3>Profile {{ icon('arrow-down', 'icon icon-details-open') | raw }}</h3>
|
||||
<em>Personal Information, Avatar and Profile</em>
|
||||
@ -23,7 +23,7 @@
|
||||
<nav class='section-settings-nav'>
|
||||
<ul>
|
||||
<li>
|
||||
<details class="section-title-settings">
|
||||
<details class="section-title-settings" {{ open_details(open_details_query, ['personal_info']) }} id="perosnal-info-details">
|
||||
<summary>
|
||||
<h3>Personal Info{{ icon('arrow-down', 'icon icon-details-open') | raw }}</h3>
|
||||
<em>Nickname, Homepage, Bio, Self Tags and more.</em>
|
||||
@ -38,7 +38,7 @@
|
||||
{% set profile_tabs = handle_event('PopulateProfileSettingsTabs', app.request) %}
|
||||
{% for tab in profile_tabs %}
|
||||
<li>
|
||||
<details class="section-title-settings">
|
||||
<details class="section-title-settings"> {# TODO add ID and open_details and to parent #}
|
||||
<summary>
|
||||
<h3>{{ tab['title'] }}{{ icon('arrow-down', 'icon icon-details-open') | raw }}</h3>
|
||||
<em>{{ tab['desc'] }}</em>
|
||||
@ -63,7 +63,7 @@
|
||||
<hr>
|
||||
|
||||
<li>
|
||||
<details class="section-title-settings">
|
||||
<details class="section-title-settings" {{ open_details(open_details_query, ['account']) }} id="account-details">
|
||||
<summary>
|
||||
<h3>Account{{ icon('arrow-down', 'icon icon-details-open') | raw }}</h3>
|
||||
<em>Email, Password and Language</em>
|
||||
@ -80,7 +80,7 @@
|
||||
<hr>
|
||||
|
||||
<li>
|
||||
<details class="section-title-settings">
|
||||
<details class="section-title-settings" {{ open_details(open_details_query, ['notifications']) }} id="notifications-details">
|
||||
<summary>
|
||||
<h3>Notifications{{ icon('arrow-down', 'icon icon-details-open') | raw }}</h3>
|
||||
<em>Enable/disable notifications (Email, XMPP, Replies...)</em>
|
||||
@ -97,4 +97,4 @@
|
||||
</nav>
|
||||
{% endblock body %}
|
||||
|
||||
{% block javascripts %}{% endblock %}
|
||||
{% block javascripts %}{% endblock %}
|
||||
|
Loading…
Reference in New Issue
Block a user