src/App/Resources/views/dashboard/settings/accounts/roles/main.html.twig line 1

Open in your IDE?
  1. {% form_theme containerRoleForm '@ui2022/schoolnow/forms/themes/default.html.twig' %}
  2. {% form_theme schoolRoleForm '@ui2022/schoolnow/forms/themes/default.html.twig' %}
  3. {% form_theme listRoleForm '@ui2022/schoolnow/forms/themes/default.html.twig' %}
  4. {% embed '@ui2022/schoolnow/modal--sidepanel__content.html.twig' with {} %}
  5.     {% block header %}
  6.         {% include '@App/dashboard/settings/accounts/includes/_header.html.twig' with {
  7.             active: 'permissions',
  8.         } %}
  9.     {% endblock %}
  10.     {% block body %}
  11.         <div class="contacts">
  12.             <div class="row justify-content-end">
  13.                 <span class="font-13 text-medium mb-3 col-auto">Last modified: {{ account.touchedAt ? account.touchedAt|ui_relativeDate : '-' }}</span>
  14.             </div>
  15.             {% if account.internalUid %}
  16.                 <div class="row justify-content-end">
  17.                     <span class="font-13 text-medium mb-3 col-auto">Internal UID: {{ account.internalUid }}</span>
  18.                 </div>
  19.             {% endif %}
  20.             <div class="sidepanel__content--body">
  21.                 <div class="contacts__tabs">
  22.                     {% include '@App/dashboard/settings/accounts/includes/_tabs.html.twig' with {
  23.                         active: 'permissions',
  24.                     } %}
  25.                     <div class="tab-content">
  26.                         {% if account.specialPermissions.superUser %}
  27.                             <div class="super-user-permission-block">
  28.                                 <div class="super-user-permission-block-inner-container">
  29.                                     <h1>User has "Super Admin" access</h1>
  30.                                     <p class="text-black mt-4">
  31.                                         Super admin access grants complete control over all functions in the website. To apply more granular permissions to this user, remove Super admin access and adjust their permissions here.
  32.                                     </p>
  33.                                     <a href="#" class="super-user-access-button mt-3">Remove Super Admin access</a>
  34.                                 </div>
  35.                             </div>
  36.                         {% else %}
  37.                         <div class="messages-table uilib website-table">
  38.                             <table class="grid-main-block">
  39.                                 <tbody>
  40.                                 <tr>
  41.                                     <th class="heading col-6"><img src="/ui2022/images/message.png" alt="Message">
  42.                                         Messages
  43.                                     </th>
  44.                                     <th class="col-3">
  45.                                     </th>
  46.                                     <th class="col-2">
  47.                                         <span style="text-decoration: underline;">Role</span>
  48.                                     </th>
  49.                                     <th class="col-1"><span> </span></th>
  50.                                 </tr>
  51.                                 {% for messageAssociation in messageAssociations %}
  52.                                     <tr class="grid-card">
  53.                                         <td class="col-6">
  54.                                                 <span class="grid-group">
  55.                                                     <span class="grid-control">
  56.                                                         {% set name =  messageAssociation.list ? messageAssociation.list.name : (messageAssociation.school ? messageAssociation.school.name : '[Global]') %}
  57.                                                         {% set icon =  messageAssociation.list ? 'icon-templates' : 'icon-school-activities-report' %}
  58.                                                         <i class="{{ icon }}"></i>
  59.                                                         <span>{{ name }}</span>
  60.                                                     </span>
  61.                                                 </span>
  62.                                         </td>
  63.                                         <td class="checkbox-block col-3"></td>
  64.                                         <td class="col-2">
  65.                                             <span>{{ messageAssociation.role.name }}</span>
  66.                                         </td>
  67.                                         <td class="col-1">
  68.                                             <span class="table-action">
  69.                                                 {% include '@ui2022/a.html.twig' with {
  70.                                                     link: path('app.app.dashboard.settings.accounts.roles.delete', {
  71.                                                         account: account.id,
  72.                                                         association: messageAssociation.id,
  73.                                                     }),
  74.                                                     modal: 'modal__result__sidepanel',
  75.                                                     target: "_modal",
  76.                                                     html: '<i class="icon-delete"></i>'
  77.                                                 } %}
  78.                                             </span>
  79.                                         </td>
  80.                                     </tr>
  81.                                 {% endfor %}
  82.                                 </tbody>
  83.                             </table>
  84.                             <div class="add-row-block">
  85.                                 <div class="add-row">
  86.                                     <a href="#" class="mr-3" data-show-form-id="{{ schoolRoleForm.vars.id }}">+ Add
  87.                                         school</a>
  88.                                     <a href="#" data-show-form-id="{{ listRoleForm.vars.id }}">+ Add list</a>
  89.                                 </div>
  90.                                 {{ form_start(schoolRoleForm, {
  91.                                     action: path('app.app.dashboard.settings.accounts.roles.main', {
  92.                                         account: account.id,
  93.                                     }),
  94.                                     attr: {
  95.                                         target: '_modal',
  96.                                     },
  97.                                 }) }}
  98.                                 <div class="add-action formcontainer formfield-colored" style="display: none">
  99.                                     <div class="col-6">
  100.                                         {{ form_widget(schoolRoleForm.school) }}
  101.                                         {{ form_errors(schoolRoleForm.school) }}
  102.                                     </div>
  103.                                     <div class="col-3">
  104.                                         {{ form_widget(schoolRoleForm.role) }}
  105.                                         {{ form_errors(schoolRoleForm.role) }}
  106.                                     </div>
  107.                                     <div class="col-2">
  108.                                         {% include '@ui2022/button--form.html.twig' with {
  109.                                             type: 'submit',
  110.                                             text: 'Add',
  111.                                             styles: 'md gray',
  112.                                             attr: {
  113.                                                 class: 'px-4 mr-3',
  114.                                                 disabled: 'disabled',
  115.                                             },
  116.                                         } %}
  117.                                     </div>
  118.                                     <div class="col-1 close-icon">
  119.                                         <span><a href="#"><i class="icon-cross"></i></a></span>
  120.                                     </div>
  121.                                     {{ form_rest(schoolRoleForm) }}
  122.                                 </div>
  123.                                 {{ form_end(schoolRoleForm) }}
  124.                                 {{ form_start(listRoleForm, {
  125.                                     action: path('app.app.dashboard.settings.accounts.roles.main', {
  126.                                         account: account.id,
  127.                                     }),
  128.                                     attr: {
  129.                                         target: '_modal',
  130.                                     },
  131.                                 }) }}
  132.                                 <div class="add-action formcontainer formfield-colored" style="display: none">
  133.                                     <div class="col-6">
  134.                                         {{ form_widget(listRoleForm.list) }}
  135.                                         {{ form_errors(listRoleForm.list) }}
  136.                                     </div>
  137.                                     <div class="col-3">
  138.                                         {{ form_widget(listRoleForm.role) }}
  139.                                         {{ form_errors(listRoleForm.role) }}
  140.                                     </div>
  141.                                     <div class="col-2">
  142.                                         {% include '@ui2022/button--form.html.twig' with {
  143.                                             type: 'submit',
  144.                                             text: 'Add',
  145.                                             styles: 'md gray',
  146.                                             attr: {
  147.                                                 class: 'px-4 mr-3',
  148.                                                 disabled: 'disabled',
  149.                                             },
  150.                                         } %}
  151.                                     </div>
  152.                                     <div class="col-1 close-icon">
  153.                                         <span><a href="#"><i class="icon-cross"></i></a></span>
  154.                                     </div>
  155.                                     {{ form_rest(listRoleForm) }}
  156.                                 </div>
  157.                                 {{ form_end(listRoleForm) }}
  158.                             </div>
  159.                         </div>
  160.                         <div class="messages-table uilib website-table">
  161.                             <table class="grid-main-block">
  162.                                 <tbody>
  163.                                 <tr>
  164.                                     <th class="heading col-6"><img src="/ui2022/images/website.png" alt="Website">
  165.                                         Website
  166.                                     </th>
  167.                                     <th class="col-3">
  168.                                         <span style="text-decoration: underline;">Departments</span>
  169.                                     </th>
  170.                                     <th class="col-2">
  171.                                         <span style="text-decoration: underline;">Role</span>
  172.                                     </th>
  173.                                     <th class="col-1"><span> </span></th>
  174.                                 </tr>
  175.                                 {% for websiteAssociation in websiteAssociations %}
  176.                                     <tr class="grid-card">
  177.                                         <td class="col-6">
  178.                                                 <span class="grid-group">
  179.                                                     <span class="grid-control">
  180.                                                         <i class="icon-folder"></i>
  181.                                                         <span>{{ websiteAssociation.container ? websiteAssociation.container.name : '[Global]' }}</span>
  182.                                                     </span>
  183.                                                 </span>
  184.                                         </td>
  185.                                         <td class="checkbox-block col-3">
  186.                                             <span class="grid-group">
  187.                                                 <span class="custom-control custom-checkbox">
  188.                                                    <input
  189.                                                            type="checkbox"
  190.                                                            class="custom-control-input"
  191.                                                            id="enabled_{{ websiteAssociation.id }}"
  192.                                                            {% if websiteAssociation.inheritance %}checked{% endif %}
  193.                                                            data-trigger="toggler"
  194.                                                            data-toggler-url="{{ path('app.app.dashboard.settings.accounts.roles.inheritance_toggle', {
  195.                                                                accountRoleAssociation: websiteAssociation.id,
  196.                                                            }) }}"
  197.                                                    />
  198.                                                    <label class="custom-control-label"
  199.                                                           for="enabled_{{ websiteAssociation.id }}"></label>
  200.                                                 </span>
  201.                                             </span>
  202.                                         </td>
  203.                                         <td class="col-2">
  204.                                             <span>{{ websiteAssociation.role.name }}</span>
  205.                                         </td>
  206.                                         <td class="col-1">
  207.                                             <span class="table-action">
  208.                                                 {% include '@ui2022/a.html.twig' with {
  209.                                                     link: path('app.app.dashboard.settings.accounts.roles.delete', {
  210.                                                         account: account.id,
  211.                                                         association: websiteAssociation.id,
  212.                                                     }),
  213.                                                     modal: 'modal__result__sidepanel',
  214.                                                     target: "_modal",
  215.                                                     html: '<i class="icon-delete"></i>'
  216.                                                 } %}
  217.                                             </span>
  218.                                         </td>
  219.                                     </tr>
  220.                                 {% endfor %}
  221.                                 </tbody>
  222.                             </table>
  223.                             <div class="add-row-block">
  224.                                 <div class="add-row">
  225.                                     <a href="#" data-show-form-id="{{ containerRoleForm.vars.id }}">+ Add</a>
  226.                                 </div>
  227.                                 {{ form_start(containerRoleForm, {
  228.                                     action: path('app.app.dashboard.settings.accounts.roles.main', {
  229.                                         account: account.id,
  230.                                     }),
  231.                                     attr: {
  232.                                         target: '_modal',
  233.                                     },
  234.                                 }) }}
  235.                                 <div class="add-action formcontainer formfield-colored" style="display: none">
  236.                                     <div class="col-6">
  237.                                         {{ form_widget(containerRoleForm.container) }}
  238.                                         {{ form_errors(containerRoleForm.container) }}
  239.                                     </div>
  240.                                     <div class="col-3">
  241.                                         {{ form_widget(containerRoleForm.role) }}
  242.                                         {{ form_errors(containerRoleForm.role) }}
  243.                                     </div>
  244.                                     <div class="col-2">
  245.                                         {% include '@ui2022/button--form.html.twig' with {
  246.                                             type: 'submit',
  247.                                             text: 'Add',
  248.                                             styles: 'md gray',
  249.                                             attr: {
  250.                                                 class: 'px-4 mr-3',
  251.                                                 disabled: 'disabled',
  252.                                             },
  253.                                         } %}
  254.                                     </div>
  255.                                     <div class="col-1 close-icon">
  256.                                         <span><a href="#"><i class="icon-cross"></i></a></span>
  257.                                     </div>
  258.                                     {{ form_rest(containerRoleForm) }}
  259.                                 </div>
  260.                                 {{ form_end(containerRoleForm) }}
  261.                             </div>
  262.                         </div>
  263.                         {% endif %}
  264.                     </div>
  265.                 </div>
  266.             </div>
  267.         </div>
  268.         <script>
  269.             (function (window, document, $, undefined) {
  270.                 $(function () {
  271.                     if ($('.add-row-block').length > 0) {
  272.                         $('.add-row-block .add-row a').on("click", function (e) {
  273.                             e.preventDefault();
  274.                             const formId = $(this).data('show-form-id');
  275.                             const $form = $('#' + formId);
  276.                             const $addAction = $form.find('.add-action');
  277.                             const $iconCross = $form.find('.icon-cross');
  278.                             const $submitButton = $form.find('button[type="submit"]');
  279.                             const $addRow = $(this).parent();
  280.                             $addAction.show();
  281.                             $addRow.hide();
  282.                             $iconCross.click(function (e) {
  283.                                 e.preventDefault();
  284.                                 $addAction.hide();
  285.                                 $addRow.show();
  286.                                 selectDefaultOption($addAction.find('select[required]'));
  287.                                 $form.off('change');
  288.                                 $submitButton.attr('disabled', 'disabled');
  289.                                 return false;
  290.                             });
  291.                             $form.on('change', function (e) {
  292.                                 if (this.checkValidity()) {
  293.                                     $submitButton.removeAttr('disabled');
  294.                                 } else {
  295.                                     $submitButton.attr('disabled', 'disabled');
  296.                                 }
  297.                             });
  298.                             selectDefaultOption($addAction.find('select[required]'));
  299.                             return false;
  300.                         })
  301.                     }
  302.                     function selectDefaultOption($selects) {
  303.                         $.each($selects, function (key, select) {
  304.                             let selectedIndex = 0;
  305.                             if ($(select).find('option').length === 2) {
  306.                                 selectedIndex = 1;
  307.                             }
  308.                             $(select).prop('selectedIndex', selectedIndex).trigger('change');
  309.                         });
  310.                     }
  311.                 })
  312.                 const $togglerSuperadmin = $('#toggler_superadmin');
  313.                 $togglerSuperadmin.on('done.toggler', function() {
  314.                     $('#sidepanel__result_view .nav-link.active').trigger('click');
  315.                 });
  316.                 $('.super-user-access-button').on('click', function(e) {
  317.                     e.preventDefault();
  318.                     $togglerSuperadmin.prop("checked", $togglerSuperadmin.prop("checked"));
  319.                     $togglerSuperadmin.trigger('change');
  320.                     return false;
  321.                 });
  322.             })(window, document, jQuery);
  323.         </script>
  324.         {% include '@ui2022/modal.html.twig' with {
  325.             attr: {
  326.                 id: 'modal__result__sidepanel',
  327.                 class: 'modal-ajax modal-delete',
  328.                 target: "_modal",
  329.             },
  330.             dialog_styles: 'dialog--createmsg',
  331.         } %}
  332.     {% endblock %}
  333. {% endembed %}