%PDF- %PDF-
Direktori : /var/www/projetos/suporte.iigd.com.br.old/templates/layout/parts/ |
Current File : //var/www/projetos/suporte.iigd.com.br.old/templates/layout/parts/saved_searches.html.twig |
{# # --------------------------------------------------------------------- # # GLPI - Gestionnaire Libre de Parc Informatique # # http://glpi-project.org # # @copyright 2015-2022 Teclib' and contributors. # @copyright 2003-2014 by the INDEPNET Development Team. # @licence https://www.gnu.org/licenses/gpl-3.0.html # # --------------------------------------------------------------------- # # LICENSE # # This file is part of GLPI. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # 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 General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # # --------------------------------------------------------------------- #} {% set global_pinned = user_pref('savedsearches_pinned', true) %} {% set pinned = (global_pinned[itemtype] ?? '0') == '1' %} {% set clean_itemtype = itemtype|lower|u.replace('\\', '_') %} {% set rand = random() %} <div class="card col-2 d-flex flex-column responsive-toggle {{ pinned ? 'pinned' : 'd-none' }} saved-searches-panel {{ clean_itemtype }}" id="saved-searches-panel-{{ rand }}"> <div class="card-header d-flex flex-nowrap pe-0 align-items-center text-muted"> <i class="ti ti-star"></i> <span class="text-truncate"> {{ _n('Saved search', 'Saved searches', 2) }} </span> <li class="ms-auto btn-list me-1 flex-nowrap"> <a href="{{ path('front/savedsearch.php') }}" class="btn btn-sm btn-icon btn-ghost-secondary" data-bs-toggle="tooltip" data-bs-placement="bottom" title="{{ __('Manage all saved searches') }}"> <i class="ti ti-settings"></i> </a> <button class="btn btn-sm btn-icon btn-ghost-secondary ms-1 d-none d-md-block pin-saved-searches-panel" data-bs-toggle="tooltip" data-bs-placement="bottom" title="{{ __('Pin this panel for the current page') }}"> <i class="ti ti-pinned"></i> </button> <button class="btn btn-sm btn-icon btn-ghost-secondary ms-1 close-saved-searches-panel" data-bs-toggle="tooltip" data-bs-placement="bottom" title="{{ __('Close the panel') }}"> <i class="ti ti-x"></i> </button> </li> </div> <div class="saved-searches-tabs"> <ul class="nav nav-tabs border-0" data-bs-toggle="tabs"> <li class="nav-item"> <a class="nav-link active" data-bs-target="#itemtype-filtered" data-bs-toggle="tab" href="{{ path('ajax/savedsearch.php?action=display_mine&itemtype=' ~ itemtype) }}"> {{ itemtype|itemtype_name }} </a> </li> <li class="nav-item"> <a class="nav-link" data-bs-target="#all-savedsearches" data-bs-toggle="tab" href="{{ path('ajax/savedsearch.php?action=display_mine&inverse=true&itemtype=' ~ itemtype) }}"> {{ __('Others') }} </a> </li> </ul> <div class="saved-searches-panel-content tab-content"> <div class="list-group list-group-flush list-group-hoverable saved-searches-panel-lists tab-pane show active" id="itemtype-filtered"> <i class="fas fa-spinner fa-spin m-3"></i> </div> <div class="list-group list-group-flush list-group-hoverable saved-searches-panel-lists tab-pane" id="all-savedsearches"> <i class="fas fa-spinner fa-spin m-3"></i> </div> </div> </div> <div class="card-footer"> <div class="input-group input-group-flat filter_savedsearch"> <input type="text" class="form-control form-control-sm" placeholder="{{ __('Filter list') }}" /> <span class="input-group-text"> <a href="#" class="link-secondary clear-text" role="button" title="Clear search"> <i class="ti ti-x fa-xs"></i> </a> </span> </div> </div> </div> <script type="text/javascript"> $(function() { // init tabs $('#saved-searches-panel-{{ rand }} a[data-bs-toggle="tab"]').on('shown.bs.tab', function(e) { if ($(this).is(":hidden")) { return; } e.preventDefault(); var tablink = $(this); var url = tablink.attr('href'); var target = tablink.attr('data-bs-target'); var index = tablink.closest('.nav-item').index(); $.get(url, function(data) { $(target).html(data); displayAjaxMessageAfterRedirect(); }); }); // load initial tab $('#saved-searches-panel-{{ rand }} a[data-bs-target]:first').trigger('shown.bs.tab'); // toggle panel $(document).on('click', '.show-saved-searches', function() { var clean_itemtype = $(this).data('itemtype').toLowerCase().replace('\\', '_'); $(".saved-searches-panel." + clean_itemtype) .toggleClass('d-none') .toggleClass('responsive-toggle'); $('#saved-searches-panel-{{ rand }} a[data-bs-toggle="tab"]').trigger('shown.bs.tab'); }); // close panel $(document).on('click', '.close-saved-searches-panel', function() { $(this).closest(".saved-searches-panel") .addClass('d-none') .toggleClass('responsive-toggle'); }); // set default to a list $(document).on('click', '.mark-default', function() { var line = $(this).closest('.search-line'); var list = line.closest('.saved-searches-panel-lists'); var id = line.data('id'); var set = $(this).hasClass('fas') ? 0 : 1; list.find(".search-line .mark-default") .removeClass('fas') .addClass('far') .parent() .addClass('list-item-actions'); if (set) { $(this) .removeClass('far') .addClass('fas') .parent() .removeClass('list-item-actions'); } $.ajax({ url: CFG_GLPI.root_doc + '/ajax/savedsearch.php', type: 'GET', data: { mark_default: set, id: id, } }); }); // pin panel on the left $(document).on('click', '.pin-saved-searches-panel', function(e) { e.preventDefault(); var pin_button = $(this); $.ajax({ url: CFG_GLPI.root_doc + '/ajax/pin_savedsearches.php', type: 'POST', data: { itemtype: '{{ itemtype }}' }, success: function(data) { if (data.success === true) { pin_button.closest(".saved-searches-panel").toggleClass('pinned'); } } }); }); // filter list $(document).on('keyup', '.filter_savedsearch input', function(key) { var _this = $(this); typewatch(function () { var searchtext = _this.val() + ''; var searchparts = searchtext.toLowerCase().split(/\s+/); var _rows = _this .closest('.card-footer') .siblings('.saved-searches-tabs') .find('.saved-searches-panel-content .savedsearches-item'); _rows.each(function() { var _row = $(this); var rowtext = _row.text().toLowerCase(); var show = true; for (var i = 0; i < searchparts.length; i++) { if (rowtext.indexOf(searchparts[i]) == -1) { show = false; break; } } if (show) { _row.toggleClass('d-none', false); } else { _row.toggleClass('d-none', true); } }); }, 250); }); // clear list $(document).on('click', '.filter_savedsearch .clear-text', function() { $(this).closest('.filter_savedsearch').find('input').val("").trigger('keyup'); }); }); </script>