refactor(Managers): remove Breadcrumbs component from various managers for cleaner UI and improved readability
Publish Fast Tabler Docker image / build-and-push-fast (push) Successful in 1m57s
Publish Fast Tabler Docker image / build-and-push-fast (push) Successful in 1m57s
This commit is contained in:
@@ -27,7 +27,6 @@ import S3MetaBar from './components/S3MetaBar.jsx';
|
|||||||
import PageHeaderActions from './components/PageHeaderActions.jsx';
|
import PageHeaderActions from './components/PageHeaderActions.jsx';
|
||||||
import PageHeader from './components/PageHeader.jsx';
|
import PageHeader from './components/PageHeader.jsx';
|
||||||
import EmptyState from './components/EmptyState.jsx';
|
import EmptyState from './components/EmptyState.jsx';
|
||||||
import Breadcrumbs from './components/Breadcrumbs.jsx';
|
|
||||||
import ConfirmDialog from './components/ConfirmDialog.jsx';
|
import ConfirmDialog from './components/ConfirmDialog.jsx';
|
||||||
import WsUpdateModal from './components/WsUpdateModal.jsx';
|
import WsUpdateModal from './components/WsUpdateModal.jsx';
|
||||||
import ConfirmDiffModal from './components/ConfirmDiffModal.jsx';
|
import ConfirmDiffModal from './components/ConfirmDiffModal.jsx';
|
||||||
@@ -524,13 +523,6 @@ function ASNsNewManager() {
|
|||||||
|
|
||||||
<PageHeader
|
<PageHeader
|
||||||
title="ASNs"
|
title="ASNs"
|
||||||
pretitle={(
|
|
||||||
<Breadcrumbs items={[
|
|
||||||
{ label: 'Главная', to: '/dashboard' },
|
|
||||||
{ label: 'Данные' },
|
|
||||||
{ label: 'ASNs' },
|
|
||||||
]} />
|
|
||||||
)}
|
|
||||||
actions={(
|
actions={(
|
||||||
<div className="d-flex align-items-center gap-2">
|
<div className="d-flex align-items-center gap-2">
|
||||||
<button
|
<button
|
||||||
|
|||||||
@@ -276,7 +276,6 @@ function AutoUrlManager() {
|
|||||||
<div>
|
<div>
|
||||||
<PageHeader
|
<PageHeader
|
||||||
title="Автоматические URL"
|
title="Автоматические URL"
|
||||||
pretitle="Управление автоматическими URL-адресами для загрузки списков IP и доменов"
|
|
||||||
actions={(
|
actions={(
|
||||||
<div className="d-flex align-items-center justify-content-between flex-wrap gap-2">
|
<div className="d-flex align-items-center justify-content-between flex-wrap gap-2">
|
||||||
<div className="btn-list">
|
<div className="btn-list">
|
||||||
|
|||||||
@@ -576,7 +576,6 @@ function BillingManager() {
|
|||||||
{/* Заголовок */}
|
{/* Заголовок */}
|
||||||
<PageHeader
|
<PageHeader
|
||||||
title="Биллинг"
|
title="Биллинг"
|
||||||
pretitle="Финансы / Инфраструктура"
|
|
||||||
actions={
|
actions={
|
||||||
<PageHeaderActions
|
<PageHeaderActions
|
||||||
loading={loading}
|
loading={loading}
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ import {
|
|||||||
} from '@tabler/icons-react';
|
} from '@tabler/icons-react';
|
||||||
import PageHeaderActions from './components/PageHeaderActions.jsx';
|
import PageHeaderActions from './components/PageHeaderActions.jsx';
|
||||||
import EmptyState from './components/EmptyState.jsx';
|
import EmptyState from './components/EmptyState.jsx';
|
||||||
import Breadcrumbs from './components/Breadcrumbs.jsx';
|
|
||||||
import CommunityStats from './components/CommunityStats.jsx';
|
import CommunityStats from './components/CommunityStats.jsx';
|
||||||
import SavedFilters from './components/SavedFilters.jsx';
|
import SavedFilters from './components/SavedFilters.jsx';
|
||||||
import FormModal from './components/FormModal.jsx';
|
import FormModal from './components/FormModal.jsx';
|
||||||
@@ -359,13 +358,6 @@ function CommunitiesManager() {
|
|||||||
<IconFilter className="icon me-2" />
|
<IconFilter className="icon me-2" />
|
||||||
Справочник Community
|
Справочник Community
|
||||||
</h2>
|
</h2>
|
||||||
<div className="page-pretitle">
|
|
||||||
<Breadcrumbs items={[
|
|
||||||
{ label: 'Главная', to: '/dashboard' },
|
|
||||||
{ label: 'Данные' },
|
|
||||||
{ label: 'Community' },
|
|
||||||
]} />
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div className="col-auto ms-auto d-print-none">
|
<div className="col-auto ms-auto d-print-none">
|
||||||
<PageHeaderActions
|
<PageHeaderActions
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ import {
|
|||||||
IconSearch
|
IconSearch
|
||||||
} from '@tabler/icons-react';
|
} from '@tabler/icons-react';
|
||||||
import PageHeader from './components/PageHeader.jsx';
|
import PageHeader from './components/PageHeader.jsx';
|
||||||
import Breadcrumbs from './components/Breadcrumbs.jsx';
|
|
||||||
import TopNStats from './components/TopNStats.jsx';
|
import TopNStats from './components/TopNStats.jsx';
|
||||||
import TrendIndicator from './components/TrendIndicator.jsx';
|
import TrendIndicator from './components/TrendIndicator.jsx';
|
||||||
import LastSaved from './components/LastSaved.jsx';
|
import LastSaved from './components/LastSaved.jsx';
|
||||||
@@ -206,11 +205,6 @@ function Dashboard() {
|
|||||||
{/* Заголовок страницы */}
|
{/* Заголовок страницы */}
|
||||||
<PageHeader
|
<PageHeader
|
||||||
title="Панель"
|
title="Панель"
|
||||||
pretitle={(
|
|
||||||
<Breadcrumbs items={[
|
|
||||||
{ label: 'Главная' },
|
|
||||||
]} />
|
|
||||||
)}
|
|
||||||
actions={(
|
actions={(
|
||||||
<div className="d-flex align-items-center gap-3">
|
<div className="d-flex align-items-center gap-3">
|
||||||
{lastFetchTime && (
|
{lastFetchTime && (
|
||||||
|
|||||||
@@ -29,7 +29,6 @@ import {
|
|||||||
import TableSkeleton, { TableEmpty } from './components/TableSkeleton.jsx';
|
import TableSkeleton, { TableEmpty } from './components/TableSkeleton.jsx';
|
||||||
import PageHeader from './components/PageHeader.jsx';
|
import PageHeader from './components/PageHeader.jsx';
|
||||||
import EmptyState from './components/EmptyState.jsx';
|
import EmptyState from './components/EmptyState.jsx';
|
||||||
import Breadcrumbs from './components/Breadcrumbs.jsx';
|
|
||||||
import { IconAlertTriangle } from '@tabler/icons-react';
|
import { IconAlertTriangle } from '@tabler/icons-react';
|
||||||
import S3MetaBar from './components/S3MetaBar.jsx';
|
import S3MetaBar from './components/S3MetaBar.jsx';
|
||||||
import PageHeaderActions from './components/PageHeaderActions.jsx';
|
import PageHeaderActions from './components/PageHeaderActions.jsx';
|
||||||
@@ -515,18 +514,6 @@ function DomainsNewManager() {
|
|||||||
|
|
||||||
<PageHeader
|
<PageHeader
|
||||||
title="Домены"
|
title="Домены"
|
||||||
pretitle={(
|
|
||||||
<Breadcrumbs
|
|
||||||
items={[
|
|
||||||
{ label: 'Главная', to: '/dashboard' },
|
|
||||||
{ label: 'Данные' },
|
|
||||||
{ label: 'Домены', count: filtered.length },
|
|
||||||
]}
|
|
||||||
showBack={false}
|
|
||||||
filterInfo={filterCommunity ? `Community: ${filterCommunity}` : (searchTerm ? `Поиск: "${searchTerm}"` : null)}
|
|
||||||
count={filtered.length}
|
|
||||||
/>
|
|
||||||
)}
|
|
||||||
actions={(
|
actions={(
|
||||||
<div className="d-flex align-items-center gap-2">
|
<div className="d-flex align-items-center gap-2">
|
||||||
<button
|
<button
|
||||||
|
|||||||
@@ -1760,19 +1760,6 @@ function FilterManager() {
|
|||||||
<div className="row g-2 align-items-center">
|
<div className="row g-2 align-items-center">
|
||||||
<div className="col">
|
<div className="col">
|
||||||
<h2 className="page-title">Управление фильтрами frouting</h2>
|
<h2 className="page-title">Управление фильтрами frouting</h2>
|
||||||
<div className="page-pretitle">
|
|
||||||
{selectedServer ? (
|
|
||||||
<div className="d-flex align-items-center">
|
|
||||||
<span className="text-muted">Сервер:</span>
|
|
||||||
<span className="ms-2 text-primary fw-bold">{selectedServer.name}</span>
|
|
||||||
{serverFilters.length > 0 && (
|
|
||||||
<span className="badge bg-blue-lt text-blue ms-2">{serverFilters.length} фильтров</span>
|
|
||||||
)}
|
|
||||||
</div>
|
|
||||||
) : (
|
|
||||||
<span className="text-muted">Выберите сервер для работы с фильтрами</span>
|
|
||||||
)}
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div className="col-auto ms-auto d-print-none">
|
<div className="col-auto ms-auto d-print-none">
|
||||||
<div className="btn-list">
|
<div className="btn-list">
|
||||||
|
|||||||
@@ -29,7 +29,6 @@ import S3MetaBar from './components/S3MetaBar.jsx';
|
|||||||
import PageHeaderActions from './components/PageHeaderActions.jsx';
|
import PageHeaderActions from './components/PageHeaderActions.jsx';
|
||||||
import PageHeader from './components/PageHeader.jsx';
|
import PageHeader from './components/PageHeader.jsx';
|
||||||
import EmptyState from './components/EmptyState.jsx';
|
import EmptyState from './components/EmptyState.jsx';
|
||||||
import Breadcrumbs from './components/Breadcrumbs.jsx';
|
|
||||||
import ConfirmDialog from './components/ConfirmDialog.jsx';
|
import ConfirmDialog from './components/ConfirmDialog.jsx';
|
||||||
import WsUpdateModal from './components/WsUpdateModal.jsx';
|
import WsUpdateModal from './components/WsUpdateModal.jsx';
|
||||||
import ConfirmDiffModal from './components/ConfirmDiffModal.jsx';
|
import ConfirmDiffModal from './components/ConfirmDiffModal.jsx';
|
||||||
@@ -784,13 +783,6 @@ function IPRangesManager() {
|
|||||||
|
|
||||||
<PageHeader
|
<PageHeader
|
||||||
title="IP-диапазоны"
|
title="IP-диапазоны"
|
||||||
pretitle={(
|
|
||||||
<Breadcrumbs items={[
|
|
||||||
{ label: 'Главная', to: '/dashboard' },
|
|
||||||
{ label: 'Данные' },
|
|
||||||
{ label: 'IP ranges' },
|
|
||||||
]} />
|
|
||||||
)}
|
|
||||||
actions={(
|
actions={(
|
||||||
<div className="d-flex align-items-center gap-2">
|
<div className="d-flex align-items-center gap-2">
|
||||||
<button
|
<button
|
||||||
|
|||||||
@@ -550,7 +550,6 @@ function MikrotikBackupsManager() {
|
|||||||
<div className="page">
|
<div className="page">
|
||||||
<PageHeader
|
<PageHeader
|
||||||
title="MikroTik Backups"
|
title="MikroTik Backups"
|
||||||
pretitle="Бэкапы конфигурации через REST API + S3"
|
|
||||||
meta={`Текущий сервер: ${currentServerLabel}`}
|
meta={`Текущий сервер: ${currentServerLabel}`}
|
||||||
actions={actions}
|
actions={actions}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -227,7 +227,6 @@ function MikrotikTools() {
|
|||||||
<div className="page">
|
<div className="page">
|
||||||
<PageHeader
|
<PageHeader
|
||||||
title="MikroTik Tools"
|
title="MikroTik Tools"
|
||||||
pretitle="Проверка доступности через выбранный jumphost/gateway"
|
|
||||||
meta={`Текущий сервер: ${currentServerLabel}`}
|
meta={`Текущий сервер: ${currentServerLabel}`}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
|||||||
@@ -3235,7 +3235,6 @@ function NetworkConfigManager() {
|
|||||||
<div className="page-header d-print-none mb-4">
|
<div className="page-header d-print-none mb-4">
|
||||||
<div className="row align-items-center">
|
<div className="row align-items-center">
|
||||||
<div className="col">
|
<div className="col">
|
||||||
<div className="page-pretitle">Управление</div>
|
|
||||||
<h2 className="page-title d-flex align-items-center">
|
<h2 className="page-title d-flex align-items-center">
|
||||||
<IconNetwork className="me-2" size={28} />
|
<IconNetwork className="me-2" size={28} />
|
||||||
Сетевые настройки
|
Сетевые настройки
|
||||||
|
|||||||
@@ -594,12 +594,6 @@ function ServerManager() {
|
|||||||
<IconServer className="me-2" />
|
<IconServer className="me-2" />
|
||||||
Управление серверами
|
Управление серверами
|
||||||
</h2>
|
</h2>
|
||||||
<div className="page-pretitle">
|
|
||||||
{filteredServers.length} из {servers.length} серверов
|
|
||||||
{selectedServers.size > 0 && (
|
|
||||||
<span className="ms-2 text-primary">• {selectedServers.size} выбрано</span>
|
|
||||||
)}
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div className="col-auto ms-auto d-print-none">
|
<div className="col-auto ms-auto d-print-none">
|
||||||
<div className="btn-list">
|
<div className="btn-list">
|
||||||
|
|||||||
Reference in New Issue
Block a user