Bugzilla – Attachment 193593 Details for
Bug 41367
Staff user interface - no sidebar menu when on record sources pages
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 41367: Add AdminMenu island and integrate into Record sources
c98f9ae.patch (text/plain), 51.17 KB, created by
David Nind
on 2026-02-20 19:20:10 UTC
(
hide
)
Description:
Bug 41367: Add AdminMenu island and integrate into Record sources
Filename:
MIME Type:
Creator:
David Nind
Created:
2026-02-20 19:20:10 UTC
Size:
51.17 KB
patch
obsolete
>From c98f9aec4baa57f9be3197c4ec7bc027cb070e17 Mon Sep 17 00:00:00 2001 >From: Martin Renvoize <martin.renvoize@openfifth.co.uk> >Date: Fri, 20 Feb 2026 12:35:44 +0000 >Subject: [PATCH] Bug 41367: Add AdminMenu island and integrate into Record > sources > >- Replace static TT admin-menu sidebar with AdminMenu.vue island web component > registered in the islands componentRegistry >- Fix NavigationItem to conditionally apply breadcrumb-item class via > isBreadcrumb prop, fixing incorrect class on left-menu items >- Update record_sources.tt to use sub-header/main-container wrappers > with aside='admin-menu', rendering the admin sidebar and breadcrumbs >- Update RecordSources/Main.vue to use Teleport for breadcrumbs into > the sub-header container and remove self-contained layout > >Test plan: > 1. Go to Administration > Catalog > Record sources > 2. Confirm the administration sidebar menu appears on the left side of > the page, with all sections visible according to your permissions > (System preferences, Basic parameters, Catalog, etc.) > 3. Confirm the breadcrumb trail at the top reads: > Koha > Administration > Record sources > 4. Confirm the "Catalog" section of the sidebar is > expanded and "Record sources" is not highlighted as current > (it lives in the main content area, not the sidebar) > 5. Click another link in the sidebar (e.g. "System preferences") and > confirm navigation works normally > 6. Return to Record sources and add, edit, and delete a record source > to confirm the sidebar does not interfere with the SPA behaviour > 7. Navigate to any other admin page (e.g. Libraries, Item types) and > confirm the sidebar still renders correctly on those pages > >Sponsored-by: OpenFifth <https://openfifth.co.uk> >Signed-off-by: David Nind <david@davidnind.com> >--- > .../prog/en/includes/admin-menu.inc | 250 ++----- > .../prog/en/modules/admin/record_sources.tt | 10 +- > .../components/Admin/RecordSources/Main.vue | 23 +- > .../prog/js/vue/components/Breadcrumbs.vue | 2 + > .../js/vue/components/Islands/AdminMenu.vue | 635 ++++++++++++++++++ > .../prog/js/vue/components/NavigationItem.vue | 12 +- > .../prog/js/vue/modules/islands.ts | 15 + > 7 files changed, 730 insertions(+), 217 deletions(-) > create mode 100644 koha-tmpl/intranet-tmpl/prog/js/vue/components/Islands/AdminMenu.vue > >diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/admin-menu.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/admin-menu.inc >index 16b05c407e..4488545dcd 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/includes/admin-menu.inc >+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/admin-menu.inc >@@ -1,195 +1,57 @@ > [% USE Koha %] >- >-<div id="admin-menu" class="sidebar_menu"> >- [% IF ( CAN_user_parameters_manage_sysprefs ) %] >- <h5>System preferences</h5> >- <ul> >- <li><a href="/cgi-bin/koha/admin/preferences.pl">System preferences</a></li> >- </ul> >- [% END %] >- >- [% IF ( CAN_user_parameters_manage_libraries || CAN_user_parameters_manage_itemtypes || CAN_user_parameters_manage_auth_values ) %] >- <h5>Basic parameters</h5> >- <ul> >- [% IF ( CAN_user_parameters_manage_libraries ) %] >- <li><a href="/cgi-bin/koha/admin/branches.pl">Libraries</a></li> >- <li><a href="/cgi-bin/koha/admin/library_groups.pl">Library groups</a></li> >- [% END %] >- [% IF ( CAN_user_parameters_manage_itemtypes ) %] >- <li><a href="/cgi-bin/koha/admin/itemtypes.pl">Item types</a></li> >- [% END %] >- [% IF ( CAN_user_parameters_manage_auth_values ) %] >- <li><a href="/cgi-bin/koha/admin/authorised_values.pl">Authorized values</a></li> >- [% END %] >- </ul> >- [% END %] >- >- [% IF ( CAN_user_parameters_manage_patron_categories || CAN_user_parameters_manage_circ_rules || CAN_user_parameters_manage_patron_attributes || CAN_user_parameters_manage_transfers || CAN_user_parameters_manage_item_circ_alerts || CAN_user_parameters_manage_cities || CAN_user_parameters_manage_curbside_pickups || CAN_user_parameters_manage_patron_restrictions ) %] >- <h5>Patrons and circulation</h5> >- <ul> >- [% IF ( CAN_user_parameters_manage_patron_categories ) %] >- <li><a href="/cgi-bin/koha/admin/categories.pl">Patron categories</a></li> >- [% END %] >- [% IF ( CAN_user_parameters_manage_circ_rules ) %] >- <li><a href="/cgi-bin/koha/admin/smart-rules.pl">Circulation and fine rules</a></li> >- [% END %] >- [% IF ( CAN_user_parameters_manage_patron_attributes ) %] >- <li><a href="/cgi-bin/koha/admin/patron-attr-types.pl">Patron attribute types</a></li> >- [% END %] >- [% IF ( CAN_user_parameters_manage_transfers ) %] >- <li><a href="/cgi-bin/koha/admin/branch_transfer_limits.pl">Library transfer limits</a></li> >- <li><a href="/cgi-bin/koha/admin/transport-cost-matrix.pl">Transport cost matrix</a></li> >- <li><a href="/cgi-bin/koha/admin/float_limits.pl">Library float limits</a></li> >- [% END %] >- [% IF ( CAN_user_parameters_manage_item_circ_alerts ) %] >- <li><a href="/cgi-bin/koha/admin/item_circulation_alerts.pl">Item circulation alerts</a></li> >- [% END %] >- [% IF ( Koha.Preference('UseCirculationDesks') && CAN_user_parameters_manage_libraries ) %] >- <li><a href="/cgi-bin/koha/admin/desks.pl">Desks</a></li> >- [% END %] >- [% IF ( CAN_user_parameters_manage_cities ) %] >- <li><a href="/cgi-bin/koha/admin/cities.pl">Cities and towns</a></li> >- [% END %] >- [% IF ( CAN_user_parameters_manage_curbside_pickups ) %] >- <li><a href="/cgi-bin/koha/admin/curbside_pickup.pl">Curbside pickup</a></li> >- [% END %] >- [% IF ( CAN_user_parameters_manage_patron_restrictions ) %] >- <li><a href="/cgi-bin/koha/admin/restrictions.pl">Patron restriction types</a></li> >- [% END %] >- </ul> >- [% END %] >- >- [% IF ( CAN_user_parameters_manage_accounts || ( Koha.Preference('UseCashRegisters') && CAN_user_parameters_manage_cash_registers ) ) %] >- <h5>Accounting</h5> >- <ul> >- [% IF ( CAN_user_parameters_manage_accounts ) %] >- <li><a href="/cgi-bin/koha/admin/debit_types.pl">Debit types</a></li> >- <li><a href="/cgi-bin/koha/admin/credit_types.pl">Credit types</a></li> >- [% END %] >- [% IF ( Koha.Preference('UseCashRegisters') && CAN_user_parameters_manage_cash_registers ) %] >- <li><a href="/cgi-bin/koha/admin/cash_registers.pl">Cash registers</a></li> >- [% END %] >- </ul> >- [% END %] >- >- [% IF CAN_user_plugins && plugins_enabled %] >- <h5>Plugins</h5> >- <ul> >- <li><a href="/cgi-bin/koha/plugins/plugins-home.pl">Plugins</a></li> >- </ul> >- [% END %] >- >- [% IF CAN_user_parameters_manage_background_jobs %] >- <h5>Jobs</h5> >- <ul> >- <li><a href="/cgi-bin/koha/admin/background_jobs.pl">Jobs</a></li> >- </ul> >- [% END %] >- >- [% IF ( CAN_user_parameters_manage_marc_frameworks || CAN_user_parameters_manage_classifications || CAN_user_parameters_manage_matching_rules || CAN_user_parameters_manage_oai_sets || CAN_user_parameters_manage_item_search_fields || CAN_user_parameters_manage_search_engine_config || CAN_user_parameters_manage_marc_overlay_rules || ( Koha.Preference('SavedSearchFilters') && CAN_user_parameters_manage_search_filters ) ) %] >- <h5>Catalog</h5> >- <ul> >- [% IF ( CAN_user_parameters_manage_marc_frameworks ) %] >- <li><a href="/cgi-bin/koha/admin/biblio_framework.pl">MARC bibliographic framework</a></li> >- <li><a href="/cgi-bin/koha/admin/koha2marclinks.pl">Koha to MARC mapping</a></li> >- [% END %] >- [% IF ( CAN_user_parameters_manage_marc_frameworks ) %] >- <li><a href="/cgi-bin/koha/admin/checkmarc.pl">MARC bibliographic framework test</a></li> >- <li><a href="/cgi-bin/koha/admin/authtypes.pl">Authority types</a></li> >- [% END %] >- [% IF ( CAN_user_parameters_manage_classifications ) %] >- <li><a href="/cgi-bin/koha/admin/classsources.pl">Classification configuration</a></li> >- [% END %] >- [% IF ( CAN_user_parameters_manage_matching_rules ) %] >- <li><a href="/cgi-bin/koha/admin/matching-rules.pl">Record matching rules</a></li> >- [% END %] >- [% IF ( CAN_user_parameters_manage_record_sources ) %] >- <li><a href="/cgi-bin/koha/admin/record_sources">Record sources</a></li> >- [% END %] >- [% IF ( CAN_user_parameters_manage_marc_overlay_rules ) %] >- <li><a href="/cgi-bin/koha/admin/marc-overlay-rules.pl">Record overlay rules</a></li> >- [% END %] >- [% IF ( CAN_user_parameters_manage_oai_sets ) %] >- <li><a href="/cgi-bin/koha/admin/oai_sets.pl">OAI sets configuration</a></li> >- [% END %] >- [% IF ( CAN_user_parameters_manage_item_search_fields ) %] >- <li><a href="/cgi-bin/koha/admin/items_search_fields.pl">Item search fields</a></li> >- [% END %] >- [% IF ( Koha.Preference('SavedSearchFilters') && CAN_user_parameters_manage_search_filters ) %] >- <li><a href="/cgi-bin/koha/admin/search_filters.pl">Search filters</a></li> >- [% END %] >- [% IF ( CAN_user_parameters_manage_search_engine_config ) %] >- <li><a href="/cgi-bin/koha/admin/searchengine/elasticsearch/mappings.pl">Search engine configuration (Elasticsearch)</a></li> >- [% END %] >- </ul> >- [% END %] >- >- [% IF ( CAN_user_acquisition_currencies_manage || CAN_user_acquisition_period_manage || CAN_user_acquisition_budget_manage || ( Koha.Preference('EDIFACT') && CAN_user_acquisition_edi_manage ) ) || ( Koha.Preference('MarcOrderingAutomation') && CAN_user_acquisition_marc_order_manage ) %] >- <h5>Acquisition parameters</h5> >- <ul> >- [% IF ( CAN_user_acquisition_currencies_manage ) %] >- <li><a href="/cgi-bin/koha/admin/currency.pl">Currencies and exchange rates</a></li> >- [% END %] >- [% IF ( CAN_user_acquisition_period_manage ) %] >- <li><a href="/cgi-bin/koha/admin/aqbudgetperiods.pl">Budgets</a></li> >- [% END %] >- [% IF ( CAN_user_acquisition_budget_manage ) %] >- <li><a href="/cgi-bin/koha/admin/aqbudgets.pl">Funds</a></li> >- [% END %] >- [% IF ( Koha.Preference('EDIFACT') && CAN_user_acquisition_edi_manage ) %] >- <li><a href="/cgi-bin/koha/admin/edi_accounts.pl">EDI accounts</a></li> >- <li><a href="/cgi-bin/koha/admin/edi_ean_accounts.pl">Library EANs</a></li> >- [% END %] >- [% IF ( Koha.Preference('MarcOrderingAutomation') && CAN_user_acquisition_marc_order_manage ) %] >- <li><a href="/cgi-bin/koha/admin/edi_accounts.pl">MARC ordering accounts</a></li> >- [% END %] >- </ul> >- [% END %] >- >- [% IF ( CAN_user_parameters_manage_identity_providers || CAN_user_parameters_manage_smtp_servers ||CAN_user_parameters_manage_file_transports || CAN_user_parameters_manage_search_targets || CAN_user_parameters_manage_didyoumean || CAN_user_parameters_manage_column_config || CAN_user_parameters_manage_audio_alerts || ( CAN_user_parameters_manage_sms_providers && Koha.Preference('SMSSendDriver') == 'Email' ) || CAN_user_parameters_manage_usage_stats || CAN_user_parameters_manage_additional_fields || ( Koha.Preference('EnableAdvancedCatalogingEditor') && CAN_user_parameters_manage_keyboard_shortcuts ) ) %] >- <h5>Additional parameters</h5> >- <ul> >- [% IF ( CAN_user_parameters_manage_identity_providers) %] >- <li><a href="/cgi-bin/koha/admin/identity_providers.pl">Identity providers</a></li> >- [% END %] >- [% IF ( CAN_user_parameters_manage_search_targets ) %] >- <li><a href="/cgi-bin/koha/admin/z3950servers.pl">Z39.50/SRU servers</a></li> >- <li><a href="/cgi-bin/koha/admin/oai_servers.pl">OAI repositories</a></li> >- [% END %] >- [% IF ( CAN_user_parameters_manage_smtp_servers ) %] >- <li><a href="/cgi-bin/koha/admin/smtp_servers.pl">SMTP servers</a></li> >- [% END %] >- [% IF ( CAN_user_parameters_manage_file_transports ) %] >- <li><a href="/cgi-bin/koha/admin/file_transports.pl">File transports</a></li> >- [% END %] >- [% IF ( CAN_user_parameters_manage_didyoumean ) %] >- <li><a href="/cgi-bin/koha/admin/didyoumean.pl">Did you mean?</a></li> >- [% END %] >- [% IF ( CAN_user_parameters_manage_column_config ) %] >- <li><a href="/cgi-bin/koha/admin/columns_settings.pl">Table settings</a></li> >- [% END %] >- [% IF ( CAN_user_parameters_manage_audio_alerts ) %] >- <li><a href="/cgi-bin/koha/admin/audio_alerts.pl">Audio alerts</a></li> >- [% END %] >- [% IF ( CAN_user_parameters_manage_sms_providers && Koha.Preference('SMSSendDriver') == 'Email' ) %] >- <li><a href="/cgi-bin/koha/admin/sms_providers.pl">SMS cellular providers</a></li> >- [% END %] >- [% IF ( CAN_user_parameters_manage_usage_stats ) %] >- <li><a href="/cgi-bin/koha/admin/usage_statistics.pl">Share usage statistics</a></li> >- [% END %] >- [% IF ( CAN_user_parameters_manage_mana ) %] >- <li><a href="/cgi-bin/koha/admin/share_content.pl">Share content with Mana KB</a></li> >- [% END %] >- [% IF ( CAN_user_parameters_manage_additional_fields ) %] >- <li><a href="/cgi-bin/koha/admin/additional-fields.pl">Additional fields</a></li> >- [% END %] >- [% IF ( Koha.Preference('EnableAdvancedCatalogingEditor') && CAN_user_parameters_manage_keyboard_shortcuts ) %] >- <li><a href="/cgi-bin/koha/admin/adveditorshortcuts.pl">Keyboard shortcuts</a></li> >- [% END %] >- [% IF Koha.Preference('ILLModule ') && CAN_user_ill %] >- <li><a href="/cgi-bin/koha/admin/ill_batch_statuses.pl">Interlibrary loan batch statuses</a></li> >- [% END %] >- </ul> >- [% END %] >-</div> >-<!-- /.sidebar_menu --> >+<admin-menu >+ can_user_parameters_manage_sysprefs="[% CAN_user_parameters_manage_sysprefs | html %]" >+ can_user_parameters_manage_libraries="[% CAN_user_parameters_manage_libraries | html %]" >+ can_user_parameters_manage_itemtypes="[% CAN_user_parameters_manage_itemtypes | html %]" >+ can_user_parameters_manage_auth_values="[% CAN_user_parameters_manage_auth_values | html %]" >+ can_user_parameters_manage_patron_categories="[% CAN_user_parameters_manage_patron_categories | html %]" >+ can_user_parameters_manage_circ_rules="[% CAN_user_parameters_manage_circ_rules | html %]" >+ can_user_parameters_manage_patron_attributes="[% CAN_user_parameters_manage_patron_attributes | html %]" >+ can_user_parameters_manage_transfers="[% CAN_user_parameters_manage_transfers | html %]" >+ can_user_parameters_manage_item_circ_alerts="[% CAN_user_parameters_manage_item_circ_alerts | html %]" >+ can_user_parameters_manage_cities="[% CAN_user_parameters_manage_cities | html %]" >+ can_user_parameters_manage_curbside_pickups="[% CAN_user_parameters_manage_curbside_pickups | html %]" >+ can_user_parameters_manage_patron_restrictions="[% CAN_user_parameters_manage_patron_restrictions | html %]" >+ can_user_sip2="[% CAN_user_sip2 | html %]" >+ can_user_parameters_manage_identity_providers="[% CAN_user_parameters_manage_identity_providers | html %]" >+ can_user_parameters_manage_accounts="[% CAN_user_parameters_manage_accounts | html %]" >+ can_user_parameters_manage_cash_registers="[% CAN_user_parameters_manage_cash_registers | html %]" >+ can_user_plugins="[% CAN_user_plugins | html %]" >+ plugins_enabled="[% plugins_enabled | html %]" >+ can_user_parameters_manage_background_jobs="[% CAN_user_parameters_manage_background_jobs | html %]" >+ can_user_parameters_manage_marc_frameworks="[% CAN_user_parameters_manage_marc_frameworks | html %]" >+ can_user_parameters_manage_classifications="[% CAN_user_parameters_manage_classifications | html %]" >+ can_user_parameters_manage_matching_rules="[% CAN_user_parameters_manage_matching_rules | html %]" >+ can_user_parameters_manage_oai_sets="[% CAN_user_parameters_manage_oai_sets | html %]" >+ can_user_parameters_manage_item_search_fields="[% CAN_user_parameters_manage_item_search_fields | html %]" >+ can_user_parameters_manage_search_engine_config="[% CAN_user_parameters_manage_search_engine_config | html %]" >+ can_user_parameters_manage_marc_overlay_rules="[% CAN_user_parameters_manage_marc_overlay_rules | html %]" >+ can_user_parameters_manage_search_filters="[% CAN_user_parameters_manage_search_filters | html %]" >+ can_user_parameters_manage_record_sources="[% CAN_user_parameters_manage_record_sources | html %]" >+ can_user_acquisition_currencies_manage="[% CAN_user_acquisition_currencies_manage | html %]" >+ can_user_acquisition_period_manage="[% CAN_user_acquisition_period_manage | html %]" >+ can_user_acquisition_budget_manage="[% CAN_user_acquisition_budget_manage | html %]" >+ can_user_acquisition_edi_manage="[% CAN_user_acquisition_edi_manage | html %]" >+ can_user_acquisition_marc_order_manage="[% CAN_user_acquisition_marc_order_manage | html %]" >+ can_user_parameters_manage_smtp_servers="[% CAN_user_parameters_manage_smtp_servers | html %]" >+ can_user_parameters_manage_file_transports="[% CAN_user_parameters_manage_file_transports | html %]" >+ can_user_parameters_manage_search_targets="[% CAN_user_parameters_manage_search_targets | html %]" >+ can_user_parameters_manage_didyoumean="[% CAN_user_parameters_manage_didyoumean | html %]" >+ can_user_parameters_manage_column_config="[% CAN_user_parameters_manage_column_config | html %]" >+ can_user_parameters_manage_audio_alerts="[% CAN_user_parameters_manage_audio_alerts | html %]" >+ can_user_parameters_manage_sms_providers="[% CAN_user_parameters_manage_sms_providers | html %]" >+ can_user_parameters_manage_usage_stats="[% CAN_user_parameters_manage_usage_stats | html %]" >+ can_user_parameters_manage_mana="[% CAN_user_parameters_manage_mana | html %]" >+ can_user_parameters_manage_additional_fields="[% CAN_user_parameters_manage_additional_fields | html %]" >+ can_user_parameters_manage_keyboard_shortcuts="[% CAN_user_parameters_manage_keyboard_shortcuts | html %]" >+ can_user_ill="[% CAN_user_ill | html %]" >+ shibbolethauthentication="[% Koha.Preference('ShibbolethAuthentication') | html %]" >+ usecirculationdesks="[% Koha.Preference('UseCirculationDesks') | html %]" >+ usecashregisters="[% Koha.Preference('UseCashRegisters') | html %]" >+ savedsearchfilters="[% Koha.Preference('SavedSearchFilters') | html %]" >+ edifact="[% Koha.Preference('EDIFACT') | html %]" >+ marcorderingautomation="[% Koha.Preference('MarcOrderingAutomation') | html %]" >+ smssenddriver="[% Koha.Preference('SMSSendDriver') | html %]" >+ enableadvancedcatalogingeditor="[% Koha.Preference('EnableAdvancedCatalogingEditor') | html %]" >+ illmodule="[% Koha.Preference('ILLModule') | html %]" >+></admin-menu> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/record_sources.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/record_sources.tt >index 5ff0b0a6e1..66b2f03a52 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/record_sources.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/record_sources.tt >@@ -21,14 +21,20 @@ > [% INCLUDE 'prefs-admin-search.inc' %] > [% END %] > >-<div id="record-source"></div> >+[% WRAPPER 'sub-header.inc' %] >+ <div id="vue-breadcrumbs-container"></div> >+[% END #/ WRAPPER sub-header.inc %] >+ >+[% WRAPPER 'main-container.inc' aside='admin-menu' %] >+ <div id="record-source"></div> >+[% END #/ WRAPPER main-container.inc %] > > [% MACRO jsinclude BLOCK %] > [% INCLUDE 'calendar.inc' %] > <!-- FIXME: this shouldn't be needed --> > [% INCLUDE 'datatables.inc' %] > [% INCLUDE 'js-date-format.inc' %] >- >+ [% Asset.js("js/admin-menu.js") | $raw %] > [% Asset.js("js/vue/dist/admin/record_sources.js") | $raw %] > [% END %] > >diff --git a/koha-tmpl/intranet-tmpl/prog/js/vue/components/Admin/RecordSources/Main.vue b/koha-tmpl/intranet-tmpl/prog/js/vue/components/Admin/RecordSources/Main.vue >index 615745c00e..7332cddce7 100644 >--- a/koha-tmpl/intranet-tmpl/prog/js/vue/components/Admin/RecordSources/Main.vue >+++ b/koha-tmpl/intranet-tmpl/prog/js/vue/components/Admin/RecordSources/Main.vue >@@ -1,34 +1,21 @@ > <template> > <div> >- <div id="sub-header"> >- <Breadcrumbs></Breadcrumbs> >- <Help /> >- </div> >- <div class="main container-fluid"> >- <div class="row"> >- <div class="col-md-10 col-md-offset-1 col-lg-8 col-lg-offset-2"> >- <main> >- <Dialog></Dialog> >- <router-view /> >- </main> >- </div> >- </div> >- </div> >+ <Teleport to="#vue-breadcrumbs-container"> >+ <Breadcrumbs /> >+ </Teleport> >+ <Dialog /> >+ <router-view /> > </div> > </template> > > <script> > import Breadcrumbs from "../../Breadcrumbs.vue"; >-import Help from "../../Help.vue"; > import Dialog from "../../Dialog.vue"; > > export default { > components: { > Breadcrumbs, > Dialog, >- Help, > }, > }; > </script> >- >-<style></style> >diff --git a/koha-tmpl/intranet-tmpl/prog/js/vue/components/Breadcrumbs.vue b/koha-tmpl/intranet-tmpl/prog/js/vue/components/Breadcrumbs.vue >index c05f829999..17b1a362a7 100644 >--- a/koha-tmpl/intranet-tmpl/prog/js/vue/components/Breadcrumbs.vue >+++ b/koha-tmpl/intranet-tmpl/prog/js/vue/components/Breadcrumbs.vue >@@ -6,6 +6,7 @@ > v-if="idx < breadcrumbs.length - 1 || item.breadcrumbFormat" > :item="item" > :params="params" >+ :isBreadcrumb="true" > ></NavigationItem> > <NavigationItem > v-else >@@ -16,6 +17,7 @@ > href: undefined, > }" > :params="params" >+ :isBreadcrumb="true" > ></NavigationItem> > </template> > </ol> >diff --git a/koha-tmpl/intranet-tmpl/prog/js/vue/components/Islands/AdminMenu.vue b/koha-tmpl/intranet-tmpl/prog/js/vue/components/Islands/AdminMenu.vue >new file mode 100644 >index 0000000000..bc806611f1 >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/prog/js/vue/components/Islands/AdminMenu.vue >@@ -0,0 +1,635 @@ >+<template> >+ <div id="admin-menu" class="sidebar_menu"> >+ <template v-if="can_user_parameters_manage_sysprefs"> >+ <h5>{{ $__("System preferences") }}</h5> >+ <ul> >+ <li> >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/preferences.pl" >+ >{{ $__("System preferences") }}</a >+ > >+ </li> >+ </ul> >+ </template> >+ >+ <template >+ v-if=" >+ can_user_parameters_manage_libraries || >+ can_user_parameters_manage_itemtypes || >+ can_user_parameters_manage_auth_values >+ " >+ > >+ <h5>{{ $__("Basic parameters") }}</h5> >+ <ul> >+ <template v-if="can_user_parameters_manage_libraries"> >+ <li> >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/branches.pl" >+ >{{ $__("Libraries") }}</a >+ > >+ </li> >+ <li> >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/library_groups.pl" >+ >{{ $__("Library groups") }}</a >+ > >+ </li> >+ </template> >+ <li v-if="can_user_parameters_manage_itemtypes"> >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/itemtypes.pl" >+ >{{ $__("Item types") }}</a >+ > >+ </li> >+ <li v-if="can_user_parameters_manage_auth_values"> >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/authorised_values.pl" >+ >{{ $__("Authorized values") }}</a >+ > >+ </li> >+ </ul> >+ </template> >+ >+ <template >+ v-if=" >+ can_user_parameters_manage_patron_categories || >+ can_user_parameters_manage_circ_rules || >+ can_user_parameters_manage_patron_attributes || >+ can_user_parameters_manage_transfers || >+ can_user_parameters_manage_item_circ_alerts || >+ can_user_parameters_manage_cities || >+ can_user_parameters_manage_curbside_pickups || >+ can_user_parameters_manage_patron_restrictions >+ " >+ > >+ <h5>{{ $__("Patrons and circulation") }}</h5> >+ <ul> >+ <li v-if="can_user_parameters_manage_patron_categories"> >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/categories.pl" >+ >{{ $__("Patron categories") }}</a >+ > >+ </li> >+ <li v-if="can_user_parameters_manage_circ_rules"> >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/smart-rules.pl" >+ >{{ $__("Circulation and fine rules") }}</a >+ > >+ </li> >+ <li v-if="can_user_parameters_manage_patron_attributes"> >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/patron-attr-types.pl" >+ >{{ $__("Patron attribute types") }}</a >+ > >+ </li> >+ <template v-if="can_user_parameters_manage_transfers"> >+ <li> >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/branch_transfer_limits.pl" >+ >{{ $__("Library transfer limits") }}</a >+ > >+ </li> >+ <li> >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/transport-cost-matrix.pl" >+ >{{ $__("Transport cost matrix") }}</a >+ > >+ </li> >+ <li> >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/float_limits.pl" >+ >{{ $__("Library float limits") }}</a >+ > >+ </li> >+ </template> >+ <li v-if="can_user_sip2"> >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/sip2/sip2.pl" >+ >{{ $__("Self-service circulation (SIP2)") }}</a >+ > >+ </li> >+ <li >+ v-if=" >+ can_user_parameters_manage_identity_providers && >+ shibbolethauthentication >+ " >+ > >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/shibboleth/shibboleth.pl" >+ >{{ $__("Shibboleth configuration") }}</a >+ > >+ </li> >+ <li v-if="can_user_parameters_manage_item_circ_alerts"> >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/item_circulation_alerts.pl" >+ >{{ $__("Item circulation alerts") }}</a >+ > >+ </li> >+ <li >+ v-if=" >+ usecirculationdesks && >+ can_user_parameters_manage_libraries >+ " >+ > >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/desks.pl" >+ >{{ $__("Desks") }}</a >+ > >+ </li> >+ <li v-if="can_user_parameters_manage_cities"> >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/cities.pl" >+ >{{ $__("Cities and towns") }}</a >+ > >+ </li> >+ <li v-if="can_user_parameters_manage_curbside_pickups"> >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/curbside_pickup.pl" >+ >{{ $__("Curbside pickup") }}</a >+ > >+ </li> >+ <li v-if="can_user_parameters_manage_patron_restrictions"> >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/restrictions.pl" >+ >{{ $__("Patron restriction types") }}</a >+ > >+ </li> >+ </ul> >+ </template> >+ >+ <template >+ v-if=" >+ can_user_parameters_manage_accounts || >+ (usecashregisters && can_user_parameters_manage_cash_registers) >+ " >+ > >+ <h5>{{ $__("Accounting") }}</h5> >+ <ul> >+ <template v-if="can_user_parameters_manage_accounts"> >+ <li> >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/debit_types.pl" >+ >{{ $__("Debit types") }}</a >+ > >+ </li> >+ <li> >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/credit_types.pl" >+ >{{ $__("Credit types") }}</a >+ > >+ </li> >+ </template> >+ <li >+ v-if=" >+ usecashregisters && >+ can_user_parameters_manage_cash_registers >+ " >+ > >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/cash_registers.pl" >+ >{{ $__("Cash registers") }}</a >+ > >+ </li> >+ </ul> >+ </template> >+ >+ <template v-if="can_user_plugins && plugins_enabled"> >+ <h5>{{ $__("Plugins") }}</h5> >+ <ul> >+ <li> >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/plugins/plugins-home.pl" >+ >{{ $__("Plugins") }}</a >+ > >+ </li> >+ </ul> >+ </template> >+ >+ <template v-if="can_user_parameters_manage_background_jobs"> >+ <h5>{{ $__("Jobs") }}</h5> >+ <ul> >+ <li> >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/background_jobs.pl" >+ >{{ $__("Jobs") }}</a >+ > >+ </li> >+ </ul> >+ </template> >+ >+ <template >+ v-if=" >+ can_user_parameters_manage_marc_frameworks || >+ can_user_parameters_manage_classifications || >+ can_user_parameters_manage_matching_rules || >+ can_user_parameters_manage_oai_sets || >+ can_user_parameters_manage_item_search_fields || >+ can_user_parameters_manage_search_engine_config || >+ can_user_parameters_manage_marc_overlay_rules || >+ (savedsearchfilters && >+ can_user_parameters_manage_search_filters) >+ " >+ > >+ <h5>{{ $__("Catalog") }}</h5> >+ <ul> >+ <template v-if="can_user_parameters_manage_marc_frameworks"> >+ <li> >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/biblio_framework.pl" >+ >{{ $__("MARC bibliographic framework") }}</a >+ > >+ </li> >+ <li> >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/koha2marclinks.pl" >+ >{{ $__("Koha to MARC mapping") }}</a >+ > >+ </li> >+ <li> >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/checkmarc.pl" >+ >{{ $__("MARC bibliographic framework test") }}</a >+ > >+ </li> >+ <li> >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/authtypes.pl" >+ >{{ $__("Authority types") }}</a >+ > >+ </li> >+ </template> >+ <li v-if="can_user_parameters_manage_classifications"> >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/classsources.pl" >+ >{{ $__("Classification configuration") }}</a >+ > >+ </li> >+ <li v-if="can_user_parameters_manage_matching_rules"> >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/matching-rules.pl" >+ >{{ $__("Record matching rules") }}</a >+ > >+ </li> >+ <li v-if="can_user_parameters_manage_record_sources"> >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/record_sources" >+ >{{ $__("Record sources") }}</a >+ > >+ </li> >+ <li v-if="can_user_parameters_manage_marc_overlay_rules"> >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/marc-overlay-rules.pl" >+ >{{ $__("Record overlay rules") }}</a >+ > >+ </li> >+ <li v-if="can_user_parameters_manage_oai_sets"> >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/oai_sets.pl" >+ >{{ $__("OAI sets configuration") }}</a >+ > >+ </li> >+ <li v-if="can_user_parameters_manage_item_search_fields"> >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/items_search_fields.pl" >+ >{{ $__("Item search fields") }}</a >+ > >+ </li> >+ <li >+ v-if=" >+ savedsearchfilters && >+ can_user_parameters_manage_search_filters >+ " >+ > >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/search_filters.pl" >+ >{{ $__("Search filters") }}</a >+ > >+ </li> >+ <li v-if="can_user_parameters_manage_search_engine_config"> >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/searchengine/elasticsearch/mappings.pl" >+ >{{ >+ $__("Search engine configuration (Elasticsearch)") >+ }}</a >+ > >+ </li> >+ </ul> >+ </template> >+ >+ <template >+ v-if=" >+ can_user_acquisition_currencies_manage || >+ can_user_acquisition_period_manage || >+ can_user_acquisition_budget_manage || >+ (edifact && can_user_acquisition_edi_manage) || >+ (marcorderingautomation && >+ can_user_acquisition_marc_order_manage) >+ " >+ > >+ <h5>{{ $__("Acquisition parameters") }}</h5> >+ <ul> >+ <li v-if="can_user_acquisition_currencies_manage"> >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/currency.pl" >+ >{{ $__("Currencies and exchange rates") }}</a >+ > >+ </li> >+ <li v-if="can_user_acquisition_period_manage"> >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/aqbudgetperiods.pl" >+ >{{ $__("Budgets") }}</a >+ > >+ </li> >+ <li v-if="can_user_acquisition_budget_manage"> >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/aqbudgets.pl" >+ >{{ $__("Funds") }}</a >+ > >+ </li> >+ <template v-if="edifact && can_user_acquisition_edi_manage"> >+ <li> >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/edi_accounts.pl" >+ >{{ $__("EDI accounts") }}</a >+ > >+ </li> >+ <li> >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/edi_ean_accounts.pl" >+ >{{ $__("Library EANs") }}</a >+ > >+ </li> >+ </template> >+ <li >+ v-if=" >+ marcorderingautomation && >+ can_user_acquisition_marc_order_manage >+ " >+ > >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/edi_accounts.pl" >+ >{{ $__("MARC ordering accounts") }}</a >+ > >+ </li> >+ </ul> >+ </template> >+ >+ <template >+ v-if=" >+ can_user_parameters_manage_identity_providers || >+ can_user_parameters_manage_smtp_servers || >+ can_user_parameters_manage_file_transports || >+ can_user_parameters_manage_search_targets || >+ can_user_parameters_manage_didyoumean || >+ can_user_parameters_manage_column_config || >+ can_user_parameters_manage_audio_alerts || >+ (can_user_parameters_manage_sms_providers && >+ smssenddriver == 'Email') || >+ can_user_parameters_manage_usage_stats || >+ can_user_parameters_manage_additional_fields || >+ (enableadvancedcatalogingeditor && >+ can_user_parameters_manage_keyboard_shortcuts) >+ " >+ > >+ <h5>{{ $__("Additional parameters") }}</h5> >+ <ul> >+ <li v-if="can_user_parameters_manage_identity_providers"> >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/identity_providers.pl" >+ >{{ $__("Identity providers") }}</a >+ > >+ </li> >+ <template v-if="can_user_parameters_manage_search_targets"> >+ <li> >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/z3950servers.pl" >+ >{{ $__("Z39.50/SRU servers") }}</a >+ > >+ </li> >+ <li> >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/oai_servers.pl" >+ >{{ $__("OAI repositories") }}</a >+ > >+ </li> >+ </template> >+ <li v-if="can_user_parameters_manage_smtp_servers"> >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/smtp_servers.pl" >+ >{{ $__("SMTP servers") }}</a >+ > >+ </li> >+ <li v-if="can_user_parameters_manage_file_transports"> >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/file_transports.pl" >+ >{{ $__("File transports") }}</a >+ > >+ </li> >+ <li v-if="can_user_parameters_manage_didyoumean"> >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/didyoumean.pl" >+ >{{ $__("Did you mean?") }}</a >+ > >+ </li> >+ <li v-if="can_user_parameters_manage_column_config"> >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/columns_settings.pl" >+ >{{ $__("Table settings") }}</a >+ > >+ </li> >+ <li v-if="can_user_parameters_manage_audio_alerts"> >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/audio_alerts.pl" >+ >{{ $__("Audio alerts") }}</a >+ > >+ </li> >+ <li >+ v-if=" >+ can_user_parameters_manage_sms_providers && >+ smssenddriver == 'Email' >+ " >+ > >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/sms_providers.pl" >+ >{{ $__("SMS cellular providers") }}</a >+ > >+ </li> >+ <li v-if="can_user_parameters_manage_usage_stats"> >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/usage_statistics.pl" >+ >{{ $__("Share usage statistics") }}</a >+ > >+ </li> >+ <li v-if="can_user_parameters_manage_mana"> >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/share_content.pl" >+ >{{ $__("Share content with Mana KB") }}</a >+ > >+ </li> >+ <li v-if="can_user_parameters_manage_additional_fields"> >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/additional-fields.pl" >+ >{{ $__("Additional fields") }}</a >+ > >+ </li> >+ <li >+ v-if=" >+ enableadvancedcatalogingeditor && >+ can_user_parameters_manage_keyboard_shortcuts >+ " >+ > >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/adveditorshortcuts.pl" >+ >{{ $__("Keyboard shortcuts") }}</a >+ > >+ </li> >+ <li v-if="illmodule && can_user_ill"> >+ <a >+ :ref="el => templateRefs.push(el)" >+ href="/cgi-bin/koha/admin/ill_batch_statuses.pl" >+ >{{ $__("Interlibrary loan batch statuses") }}</a >+ > >+ </li> >+ </ul> >+ </template> >+ </div> >+ <!-- /.sidebar_menu --> >+</template> >+ >+<script> >+import { onMounted, ref } from "vue"; >+ >+export default { >+ name: "AdminMenu", >+ props: { >+ can_user_parameters_manage_sysprefs: Number, >+ can_user_parameters_manage_libraries: Number, >+ can_user_parameters_manage_itemtypes: Number, >+ can_user_parameters_manage_auth_values: Number, >+ can_user_parameters_manage_patron_categories: Number, >+ can_user_parameters_manage_circ_rules: Number, >+ can_user_parameters_manage_patron_attributes: Number, >+ can_user_parameters_manage_transfers: Number, >+ can_user_parameters_manage_item_circ_alerts: Number, >+ can_user_parameters_manage_cities: Number, >+ can_user_parameters_manage_curbside_pickups: Number, >+ can_user_parameters_manage_patron_restrictions: Number, >+ can_user_sip2: Number, >+ can_user_parameters_manage_identity_providers: Number, >+ can_user_parameters_manage_accounts: Number, >+ can_user_parameters_manage_cash_registers: Number, >+ can_user_plugins: Number, >+ plugins_enabled: Number, >+ can_user_parameters_manage_background_jobs: Number, >+ can_user_parameters_manage_marc_frameworks: Number, >+ can_user_parameters_manage_classifications: Number, >+ can_user_parameters_manage_matching_rules: Number, >+ can_user_parameters_manage_oai_sets: Number, >+ can_user_parameters_manage_item_search_fields: Number, >+ can_user_parameters_manage_search_engine_config: Number, >+ can_user_parameters_manage_marc_overlay_rules: Number, >+ can_user_parameters_manage_search_filters: Number, >+ can_user_parameters_manage_record_sources: Number, >+ can_user_acquisition_currencies_manage: Number, >+ can_user_acquisition_period_manage: Number, >+ can_user_acquisition_budget_manage: Number, >+ can_user_acquisition_edi_manage: Number, >+ can_user_acquisition_marc_order_manage: Number, >+ can_user_parameters_manage_smtp_servers: Number, >+ can_user_parameters_manage_file_transports: Number, >+ can_user_parameters_manage_search_targets: Number, >+ can_user_parameters_manage_didyoumean: Number, >+ can_user_parameters_manage_column_config: Number, >+ can_user_parameters_manage_audio_alerts: Number, >+ can_user_parameters_manage_sms_providers: Number, >+ can_user_parameters_manage_usage_stats: Number, >+ can_user_parameters_manage_mana: Number, >+ can_user_parameters_manage_additional_fields: Number, >+ can_user_parameters_manage_keyboard_shortcuts: Number, >+ can_user_ill: Number, >+ shibbolethauthentication: Number, >+ usecirculationdesks: Number, >+ usecashregisters: Number, >+ savedsearchfilters: Number, >+ edifact: Number, >+ marcorderingautomation: Number, >+ smssenddriver: String, >+ enableadvancedcatalogingeditor: Number, >+ illmodule: Number, >+ }, >+ setup() { >+ const templateRefs = ref([]); >+ >+ onMounted(() => { >+ const path = location.pathname.substring(1); >+ >+ templateRefs.value >+ .find(a => a.href.includes(path)) >+ ?.classList.add("current"); >+ }); >+ return { >+ templateRefs, >+ }; >+ }, >+}; >+</script> >+ >+<style scoped> >+.sidebar_menu a.current { >+ font-weight: bold; >+} >+</style> >diff --git a/koha-tmpl/intranet-tmpl/prog/js/vue/components/NavigationItem.vue b/koha-tmpl/intranet-tmpl/prog/js/vue/components/NavigationItem.vue >index 59597e4997..3275ed7393 100644 >--- a/koha-tmpl/intranet-tmpl/prog/js/vue/components/NavigationItem.vue >+++ b/koha-tmpl/intranet-tmpl/prog/js/vue/components/NavigationItem.vue >@@ -1,5 +1,5 @@ > <template> >- <li class="breadcrumb-item"> >+ <li :class="{ 'breadcrumb-item': isBreadcrumb }"> > <span> > <router-link > v-if="item.name && !item.disabled" >@@ -39,8 +39,10 @@ > </span> > <ul v-if="item.children && item.children.length"> > <NavigationItem >- v-for="(item, key) in item.children" >- :item="item" >+ v-for="(child, key) in item.children" >+ v-bind:key="key" >+ :item="child" >+ :isBreadcrumb="isBreadcrumb" > ></NavigationItem> > </ul> > </li> >@@ -52,6 +54,10 @@ export default { > props: { > item: Object, > params: Object, >+ isBreadcrumb: { >+ type: Boolean, >+ default: false, >+ }, > }, > }; > </script> >diff --git a/koha-tmpl/intranet-tmpl/prog/js/vue/modules/islands.ts b/koha-tmpl/intranet-tmpl/prog/js/vue/modules/islands.ts >index b9b15766ab..1382998496 100644 >--- a/koha-tmpl/intranet-tmpl/prog/js/vue/modules/islands.ts >+++ b/koha-tmpl/intranet-tmpl/prog/js/vue/modules/islands.ts >@@ -72,6 +72,21 @@ export const componentRegistry: Map<string, WebComponentDynamicImport> = > }, > }, > ], >+ [ >+ "admin-menu", >+ { >+ importFn: async () => { >+ const module = await import( >+ /* webpackChunkName: "admin-menu" */ >+ "../components/Islands/AdminMenu.vue" >+ ); >+ return module.default; >+ }, >+ config: { >+ stores: [], >+ }, >+ }, >+ ], > ]); > > /** >-- >2.39.5 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 41367
:
193535
| 193593