@@ -4,16 +4,16 @@ import { ProductMediaManager } from "../libs/adminpanel/ProductMediaManager/Prod
44import { models } from "../libs/adminpanel/models/bind"
55export default function bindAdminpanel ( ) {
66 processBindAdminpanel ( ) ;
7- sails . on ( 'Adminpanel:afterHook: loaded' , async ( ) => {
7+ sails . on ( 'Adminpanel:loaded' , async ( ) => {
88 // Catalog bind
9- const CatalogHandler = sails . hooks . adminpanel . adminizer . getCatalogHandler ( )
9+ const catalogHandler = sails . hooks . adminpanel . adminizer . catalogHandler
1010 const productCatalog = new ProductCatalog ( )
11- CatalogHandler . add ( productCatalog ) ;
11+ catalogHandler . add ( productCatalog ) ;
1212
1313 // Product media manager bind
14- const MediaManagerHandler = sails . hooks . adminpanel . adminizer . getMediaManagerHandler ( )
14+ const mediaManagerHandler = sails . hooks . adminpanel . adminizer . mediaManagerHandler
1515 const productMediaManager = new ProductMediaManager ( )
16- MediaManagerHandler . add ( productMediaManager )
16+ mediaManagerHandler . add ( productMediaManager )
1717 } )
1818}
1919
@@ -23,6 +23,8 @@ function addModelConfig(newModels: Record<string, any>) {
2323 Object . assign ( sails . config . adminpanel . models , newModels ) ;
2424}
2525
26+
27+
2628function processBindAdminpanel ( ) {
2729 // Используем локальный addModelConfig
2830 addModelConfig ( models ) ;
@@ -36,6 +38,43 @@ function processBindAdminpanel(){
3638 icon : `barcode`
3739 } ) ;
3840 }
41+
42+ // Add navbar link for product catalog
43+ if ( sails . config . adminpanel . navbar && Array . isArray ( sails . config . adminpanel . navbar . additionalLinks ) ) {
44+ let baseRoute = sails . config . adminpanel . routePrefix ;
45+ sails . config . adminpanel . navbar . additionalLinks . push ( {
46+ id : 'product-catalog' ,
47+ title : 'Catalog' ,
48+ link : `${ baseRoute } /catalog/products` ,
49+ icon : 'shopping-cart' as any ,
50+ section : 'Store' as any
51+ } ) ;
52+ }
53+
54+ // Add routes for product setup
55+ if ( sails . hooks . adminpanel && sails . hooks . adminpanel . adminizer ) {
56+ const adminizer = sails . hooks . adminpanel . adminizer ;
57+ adminizer . emitter . on ( 'adminizer:loaded' , ( ) => {
58+ const routePrefix = adminizer . config . routePrefix ;
59+
60+ // Route for product setup page
61+ adminizer . app . get ( `${ routePrefix } /product-setup` , ( req : any , res : any ) => {
62+ if ( adminizer . config . auth ?. enable && ! req . user ) {
63+ return res . redirect ( `${ routePrefix } /model/userap/login` ) ;
64+ }
65+ // For now, redirect to catalog - later can render ProductSetup component
66+ return res . redirect ( `${ routePrefix } /catalog/products` ) ;
67+ } ) ;
68+
69+ // API routes for concepts
70+ // @ts -ignore
71+ adminizer . app . get ( `${ routePrefix } /catalog/products/concepts` , sails . controllers . productsetup . concepts ) ;
72+ // @ts -ignore
73+ adminizer . app . post ( `${ routePrefix } /catalog/products/concepts` , sails . controllers . productsetup . addConcept ) ;
74+ // @ts -ignore
75+ adminizer . app . delete ( `${ routePrefix } /catalog/products/concepts/:concept` , sails . controllers . productsetup . deleteConcept ) ;
76+ } ) ;
77+ }
3978}
4079
4180
0 commit comments