feat: Implement product categories, stores, suppliers, and users management features
- Added ProductCategoriesService for handling product category API interactions. - Created components for listing and viewing product categories. - Implemented UI for managing product categories with a data list component. - Developed StoresService for managing store-related API calls. - Created components for listing and viewing stores with appropriate UI. - Added SuppliersService for handling supplier API interactions. - Implemented components for managing suppliers with a data list component. - Developed UsersService for managing user-related API calls. - Created components for listing and viewing users with appropriate UI. - Enhanced not found page with improved layout and navigation options.
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
<div class="flex flex-col items-center justify-center py-12 text-center bg-surface-overlay">
|
||||
<ng-container>
|
||||
<i [class]="icon + ' !text-6xl mb-4 text-surface-500'" aria-hidden="true"></i>
|
||||
<i [class]="icon + '!text-6xl mb-4 text-surface-500'" aria-hidden="true"></i>
|
||||
</ng-container>
|
||||
<span class="text-xl font-semibold mb-2 text-surface-500">{{ title }}</span>
|
||||
@if (description) {
|
||||
|
||||
@@ -1,36 +1,36 @@
|
||||
import {
|
||||
AfterContentInit,
|
||||
Component,
|
||||
ContentChild,
|
||||
ElementRef,
|
||||
EventEmitter,
|
||||
Input,
|
||||
Output,
|
||||
AfterContentInit,
|
||||
Component,
|
||||
ContentChild,
|
||||
ElementRef,
|
||||
EventEmitter,
|
||||
Input,
|
||||
Output,
|
||||
} from '@angular/core';
|
||||
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { Button } from 'primeng/button';
|
||||
|
||||
@Component({
|
||||
selector: 'uikit-empty-state',
|
||||
standalone: true,
|
||||
imports: [CommonModule, Button],
|
||||
templateUrl: './uikit-emptystate.component.html',
|
||||
selector: 'uikit-empty-state',
|
||||
standalone: true,
|
||||
imports: [CommonModule, Button],
|
||||
templateUrl: './uikit-emptystate.component.html',
|
||||
})
|
||||
export class UikitEmptyStateComponent implements AfterContentInit {
|
||||
@ContentChild('cta', { static: false, read: ElementRef })
|
||||
ctaContent?: ElementRef;
|
||||
hasCtaContent = false;
|
||||
@ContentChild('cta', { static: false, read: ElementRef })
|
||||
ctaContent?: ElementRef;
|
||||
hasCtaContent = false;
|
||||
|
||||
@Input() title: string = 'متاسفانه موردی یافت نشد.';
|
||||
@Input() description?: string;
|
||||
@Input() icon: string = 'pi pi-database';
|
||||
@Input() ctaLabel?: string;
|
||||
@Input() showCTA?: boolean = true;
|
||||
@Input() title: string = 'متاسفانه موردی یافت نشد.';
|
||||
@Input() description?: string;
|
||||
@Input() icon: string = 'pi pi-database';
|
||||
@Input() ctaLabel?: string;
|
||||
@Input() showCTA?: boolean = true;
|
||||
|
||||
@Output() ctaClick = new EventEmitter<void>();
|
||||
@Output() ctaClick = new EventEmitter<void>();
|
||||
|
||||
ngAfterContentInit() {
|
||||
this.hasCtaContent = !!this.ctaContent;
|
||||
}
|
||||
ngAfterContentInit() {
|
||||
this.hasCtaContent = !!this.ctaContent;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user