diff --git a/ui/.gitignore b/ui/.gitignore index 11f5d71..3f61775 100644 --- a/ui/.gitignore +++ b/ui/.gitignore @@ -20,3 +20,4 @@ pnpm-debug.log* *.njsproj *.sln *.sw? +stats.html \ No newline at end of file diff --git a/ui/package.json b/ui/package.json index a39e907..303400a 100644 --- a/ui/package.json +++ b/ui/package.json @@ -18,6 +18,7 @@ "@fontsource/public-sans": "^5.0.18", "@fontsource/roboto": "^5.0.13", "@mdi/font": "7.4.47", + "@tabler/icons-vue": "^3.19.0", "@vue/apollo-composable": "^4.0.2", "@vueuse/core": "^10.11.0", "ant-design-vue": "^4.2.3", @@ -31,7 +32,6 @@ "vue": "^3.5.6", "vue-codemirror": "^6.1.1", "vue-i18n": "9", - "vue-tabler-icons": "^2.21.0", "vue3-apexcharts": "^1.5.3", "vue3-easy-data-table": "^1.5.47", "vue3-perfect-scrollbar": "^2.0.0", @@ -57,6 +57,7 @@ "eslint-plugin-promise": "^6.4.0", "eslint-plugin-vue": "^9.27.0", "pinia": "^2.1.7", + "rollup-plugin-visualizer": "^5.12.0", "sass": "1.77.6", "typescript": "^5.5.4", "unplugin-fonts": "^1.1.1", diff --git a/ui/src/layouts/header/FullScreen.vue b/ui/src/layouts/header/FullScreen.vue index a6b5e03..6112df8 100644 --- a/ui/src/layouts/header/FullScreen.vue +++ b/ui/src/layouts/header/FullScreen.vue @@ -1,7 +1,7 @@ @@ -24,7 +25,7 @@ const authStore = useAuthStore() variant="text" @click="authStore.logout" > - + diff --git a/ui/src/layouts/horizontal-sidebar/horizontalItems.ts b/ui/src/layouts/horizontal-sidebar/horizontalItems.ts index ff74d60..6c50f15 100644 --- a/ui/src/layouts/horizontal-sidebar/horizontalItems.ts +++ b/ui/src/layouts/horizontal-sidebar/horizontalItems.ts @@ -1,11 +1,11 @@ import { - BoxIcon, - ChartHistogramIcon, - DatabaseIcon, - HomeIcon, - ServerIcon, SettingsIcon, UsersIcon, - VectorIcon, -} from 'vue-tabler-icons' + IconBox, + IconChartHistogram, + IconDatabase, + IconHome, + IconServer, IconSettings, IconUsers, + IconVector, +} from '@tabler/icons-vue' export interface menu { header?: string; @@ -28,61 +28,61 @@ export interface menu { const horizontalItems: menu[] = [ { title: 'Dashboard', - icon: HomeIcon, + icon: IconHome, to: '#', children: [ { title: 'Overview', - icon: HomeIcon, + icon: IconHome, to: '/app/overview', }, { title: 'Analytics', - icon: ChartHistogramIcon, + icon: IconChartHistogram, to: '/app/analytics', }, ], }, { title: 'Sealing', - icon: VectorIcon, + icon: IconVector, to: '#', children: [ { title: 'Miners', - icon: UsersIcon, + icon: IconUsers, to: '/app/miners', }, { title: 'PoRep', - icon: VectorIcon, + icon: IconVector, to: '/app/porep', }, { title: 'Sectors', - icon: BoxIcon, + icon: IconBox, to: '/app/sectors', }, ], }, { title: 'Cluster', - icon: ServerIcon, + icon: IconServer, to: '#', children: [ { title: 'Machines', - icon: ServerIcon, + icon: IconServer, to: '/app/machines', }, { title: 'Storages', - icon: DatabaseIcon, + icon: IconDatabase, to: '/app/storages', }, { title: 'Configurations', - icon: SettingsIcon, + icon: IconSettings, to: '/app/configurations', }, ], diff --git a/ui/src/layouts/vertical-sidebar/sidebarItem.ts b/ui/src/layouts/vertical-sidebar/sidebarItem.ts index 724de91..343e12a 100644 --- a/ui/src/layouts/vertical-sidebar/sidebarItem.ts +++ b/ui/src/layouts/vertical-sidebar/sidebarItem.ts @@ -1,13 +1,13 @@ import { - BoxIcon, - ChartHistogramIcon, - DatabaseIcon, - HomeIcon, - ServerIcon, - SettingsIcon, - UsersIcon, - VectorIcon, -} from 'vue-tabler-icons' + IconBox, + IconChartHistogram, + IconDatabase, + IconHome, + IconServer, + IconSettings, + IconUsers, + IconVector, +} from '@tabler/icons-vue' export interface menu { header?: string; @@ -30,44 +30,44 @@ const sidebarItem: menu[] = [ { header: 'Dashboard' }, { title: 'Overview', - icon: HomeIcon, + icon: IconHome, to: '/app/overview', }, { title: 'Analytics', - icon: ChartHistogramIcon, + icon: IconChartHistogram, to: '/app/analytics', }, { header: 'Sealing' }, { title: 'Miners', - icon: UsersIcon, + icon: IconUsers, to: '/app/miners', }, { title: 'PoRep', - icon: VectorIcon, + icon: IconVector, to: '/app/porep', }, { title: 'Sectors', - icon: BoxIcon, + icon: IconBox, to: '/app/sectors', }, { header: 'Cluster' }, { title: 'Machines', - icon: ServerIcon, + icon: IconServer, to: '/app/machines', }, { title: 'Storages', - icon: DatabaseIcon, + icon: IconDatabase, to: '/app/storages', }, { title: 'Configurations', - icon: SettingsIcon, + icon: IconSettings, to: '/app/configurations', }, ] diff --git a/ui/src/main.ts b/ui/src/main.ts index 9ce004e..c25f741 100644 --- a/ui/src/main.ts +++ b/ui/src/main.ts @@ -14,25 +14,6 @@ import App from './App.vue' import { createApp } from 'vue' import '@/scss/style.scss' import 'ant-design-vue/dist/reset.css' -import '@fontsource/roboto/400.css' -import '@fontsource/roboto/500.css' -import '@fontsource/roboto/300.css' -import '@fontsource/roboto/700.css' - -import '@fontsource/inter/400.css' -import '@fontsource/inter/500.css' -import '@fontsource/inter/600.css' -import '@fontsource/inter/700.css' - -import '@fontsource/poppins/400.css' -import '@fontsource/poppins/500.css' -import '@fontsource/poppins/600.css' -import '@fontsource/poppins/700.css' - -import '@fontsource/public-sans/400.css' -import '@fontsource/public-sans/500.css' -import '@fontsource/public-sans/600.css' -import '@fontsource/public-sans/700.css' const app = createApp(App) diff --git a/ui/src/plugins/index.ts b/ui/src/plugins/index.ts index 6614864..584b0ff 100644 --- a/ui/src/plugins/index.ts +++ b/ui/src/plugins/index.ts @@ -10,7 +10,6 @@ import pinia from '../stores' import router from '../router' import { PerfectScrollbarPlugin } from 'vue3-perfect-scrollbar' import Vue3EasyDataTable from 'vue3-easy-data-table' -import VueTablerIcons from 'vue-tabler-icons' import Antd from 'ant-design-vue' import { vMaska } from 'maska/vue' @@ -28,7 +27,6 @@ export function registerPlugins (app: App) { .use(router) .use(pinia) .use(i18n) - .use(VueTablerIcons) .use(PerfectScrollbarPlugin) .use(Antd) .use(VueApexCharts) diff --git a/ui/src/views/configurations/ConfigurationList.vue b/ui/src/views/configurations/ConfigurationList.vue index 5534135..403b507 100644 --- a/ui/src/views/configurations/ConfigurationList.vue +++ b/ui/src/views/configurations/ConfigurationList.vue @@ -5,6 +5,7 @@ import { computed, ComputedRef, ref } from 'vue' import { Config } from '@/typed-graph' import { GetConfigs } from '@/views/query/config' import { Item } from 'vue3-easy-data-table' +import { IconPlus, IconReload, IconSearch } from '@tabler/icons-vue' import ConfigRemoveDialog from '@/views/configurations/ConfigRemoveDialog.vue' const { result, loading, refetch, error } = useQuery(GetConfigs, null, () => ({ @@ -42,7 +43,7 @@ const themeColor = ref('rgb(var(--v-theme-primary))') variant="outlined" > @@ -50,7 +51,7 @@ const themeColor = ref('rgb(var(--v-theme-primary))')
Create @@ -61,7 +62,7 @@ const themeColor = ref('rgb(var(--v-theme-primary))') variant="text" @click="refetch" > - +
diff --git a/ui/src/views/machines/MachineList.vue b/ui/src/views/machines/MachineList.vue index 592b300..38dfd6a 100644 --- a/ui/src/views/machines/MachineList.vue +++ b/ui/src/views/machines/MachineList.vue @@ -2,7 +2,8 @@ import { computed, ComputedRef, ref, watch } from 'vue' import moment from 'moment' import type { Header, Item } from 'vue3-easy-data-table' -import { EyeOutlined, ReloadOutlined, SearchOutlined } from '@ant-design/icons-vue' +import { EyeOutlined, SearchOutlined } from '@ant-design/icons-vue' +import { IconReload } from '@tabler/icons-vue' import { useQuery } from '@vue/apollo-composable' import { GetMachines } from '@/views/query/machine' import { Machine } from '@/typed-graph' @@ -90,7 +91,7 @@ const itemsSelected = ref([])
- +
diff --git a/ui/src/views/machines/MachineMetrics.vue b/ui/src/views/machines/MachineMetrics.vue index c138152..c87a494 100644 --- a/ui/src/views/machines/MachineMetrics.vue +++ b/ui/src/views/machines/MachineMetrics.vue @@ -5,6 +5,7 @@ import UiChildCard from '@/components/shared/UiChildCard.vue' import { computed } from 'vue' import moment from 'moment' import { formatBytes } from '@/utils/helpers/formatBytes' +import { IconReload } from '@tabler/icons-vue' const props = defineProps({ id: { @@ -59,7 +60,7 @@ const details = computed(() => { diff --git a/ui/src/views/machines/MachineStorages.vue b/ui/src/views/machines/MachineStorages.vue index 11581b8..916a444 100644 --- a/ui/src/views/machines/MachineStorages.vue +++ b/ui/src/views/machines/MachineStorages.vue @@ -5,6 +5,7 @@ import { useQuery } from '@vue/apollo-composable' import { computed, ComputedRef } from 'vue' import { StoragePath } from '@/typed-graph' import { GetMachineStorages } from '@/views/query/machine' +import { IconReload } from '@tabler/icons-vue' const props = defineProps({ id: { @@ -27,7 +28,7 @@ const paths: ComputedRef<[StoragePath]> = computed(() => result.value?.machine.s diff --git a/ui/src/views/machines/MachineSummaryCharts.vue b/ui/src/views/machines/MachineSummaryCharts.vue index 4d5d79e..e9d9594 100644 --- a/ui/src/views/machines/MachineSummaryCharts.vue +++ b/ui/src/views/machines/MachineSummaryCharts.vue @@ -5,8 +5,7 @@ import { GetMachinesSummary } from '@/views/query/machine' import { MachineSummary } from '@/typed-graph' import { formatBytes } from '@/utils/helpers/formatBytes' import moment from 'moment' -import { mdiExpansionCard } from '@mdi/js' -import { BrandSpeedtestIcon, CpuIcon, ServerIcon } from 'vue-tabler-icons' +import { IconBrandSpeedtest, IconCpu, IconServer } from '@tabler/icons-vue' const { result } = useQuery(GetMachinesSummary, null, () => ({ fetchPolicy: 'cache-first', @@ -16,10 +15,10 @@ const { result } = useQuery(GetMachinesSummary, null, () => ({ const stats: ComputedRef = computed(() => result.value?.machineSummary) const cards = computed(() => [ - { value: stats.value?.total || 0, text: 'Machine', icon: ServerIcon, color: 'primary', duedate: moment().calendar() }, - { value: stats.value?.totalCpu || 0, text: 'CPU', icon: CpuIcon, color: 'info', duedate: moment().calendar() }, - { value: stats.value?.totalGpu || 0, text: 'GPU', icon: mdiExpansionCard, color: 'success', duedate: moment().calendar() }, - { value: formatBytes(stats.value?.totalRam || 0).combined, text: 'RAM', icon: BrandSpeedtestIcon, color: 'warning', duedate: moment().calendar() }, + { value: stats.value?.total || 0, text: 'Machine', icon: IconServer, color: 'primary', duedate: moment().calendar() }, + { value: stats.value?.totalCpu || 0, text: 'CPU', icon: IconCpu, color: 'info', duedate: moment().calendar() }, + { value: stats.value?.totalGpu || 0, text: 'GPU', icon: IconCpu, color: 'success', duedate: moment().calendar() }, + { value: formatBytes(stats.value?.totalRam || 0).combined, text: 'RAM', icon: IconBrandSpeedtest, color: 'warning', duedate: moment().calendar() }, ]) diff --git a/ui/src/views/machines/MachineTasks.vue b/ui/src/views/machines/MachineTasks.vue index 75ad2c9..ab77d77 100644 --- a/ui/src/views/machines/MachineTasks.vue +++ b/ui/src/views/machines/MachineTasks.vue @@ -6,6 +6,7 @@ import { computed, ComputedRef } from 'vue' import { Task } from '@/typed-graph' import type { Header } from 'vue3-easy-data-table' import { GetMachineTasks } from '@/views/query/machine' +import { IconReload } from '@tabler/icons-vue' const props = defineProps({ id: { @@ -36,7 +37,7 @@ const headers :Header[] = [ { diff --git a/ui/src/views/miners/MinerList.vue b/ui/src/views/miners/MinerList.vue index 623d429..59e8970 100644 --- a/ui/src/views/miners/MinerList.vue +++ b/ui/src/views/miners/MinerList.vue @@ -1,6 +1,6 @@