Update UI and remove staff creation from login

This commit is contained in:
2026-02-28 19:04:23 -07:00
parent 2159d0762a
commit e2973729b4
8 changed files with 444 additions and 356 deletions

View File

@@ -76,17 +76,5 @@
<Insets top="8.0" />
</VBox.margin>
</Button>
<Button fx:id="btnCreateStaff" mnemonicParsing="false" onAction="#btnCreateStaffClicked"
prefWidth="280.0"
style="-fx-background-color: transparent; -fx-text-fill: #D5DDE6; -fx-cursor: hand; -fx-underline: true;"
text="Create Staff Account">
<font>
<Font name="System Bold" size="13.0" />
</font>
<VBox.margin>
<Insets top="4.0" />
</VBox.margin>
</Button>
</children>
</VBox>

View File

@@ -3,6 +3,7 @@
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.ScrollPane?>
<?import javafx.scene.control.Separator?>
<?import javafx.scene.layout.BorderPane?>
<?import javafx.scene.layout.Region?>
@@ -12,163 +13,181 @@
<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="742.0" prefWidth="1069.0" xmlns="http://javafx.com/javafx/17" xmlns:fx="http://javafx.com/fxml/1" fx:controller="org.example.petshopdesktop.controllers.MainLayoutController">
<left>
<VBox prefHeight="700.0" prefWidth="250.0" spacing="10.0" style="-fx-background-color: #2C3E50;" BorderPane.alignment="CENTER">
<padding>
<Insets bottom="22.0" left="22.0" right="22.0" top="24.0" />
</padding>
<children>
<Label fx:id="lblUsername" text="Name" textFill="WHITE">
<font>
<Font name="System Bold" size="24.0" />
</font>
</Label>
<Label fx:id="lblRole" text="Leon's Petstore" textFill="#ffe66d">
<font>
<Font name="System" size="14.0" />
</font>
<padding>
<Insets bottom="8.0" />
</padding>
</Label>
<Separator prefWidth="200.0" style="-fx-background-color: #444444; -fx-opacity: 0.35;" />
<ScrollPane fitToWidth="true" hbarPolicy="NEVER" style="-fx-background-color: #2C3E50; -fx-background: #2C3E50;" BorderPane.alignment="CENTER">
<VBox prefWidth="200.0" spacing="6.0" style="-fx-background-color: #2C3E50;">
<padding>
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
</padding>
<children>
<Label fx:id="lblUsername" text="Name" textFill="WHITE">
<font>
<Font name="System Bold" size="18.0" />
</font>
</Label>
<Label fx:id="lblRole" text="Leon's Petstore" textFill="#ffe66d">
<font>
<Font name="System" size="12.0" />
</font>
<padding>
<Insets bottom="4.0" />
</padding>
</Label>
<Separator prefWidth="200.0" style="-fx-background-color: #444444; -fx-opacity: 0.35;" />
<Button fx:id="btnAnalytics" alignment="CENTER_LEFT" mnemonicParsing="false" onAction="#btnAnalyticsClicked" prefWidth="250.0" style="-fx-background-color: transparent; -fx-background-radius: 10; -fx-cursor: hand; -fx-focus-color: transparent; -fx-faint-focus-color: transparent;" text="Analytics" textFill="#cbd5e1">
<font>
<Font name="System" size="13.0" />
</font>
<padding>
<Insets bottom="10.0" left="14.0" right="14.0" top="10.0" />
</padding>
</Button>
<Label text="BUSINESS" textFill="#94a3b8">
<font>
<Font name="System Bold" size="10.0" />
</font>
<padding>
<Insets top="4.0" />
</padding>
</Label>
<Separator prefWidth="200.0" style="-fx-background-color: #444444; -fx-opacity: 0.35;" />
<Button fx:id="btnAnalytics" alignment="CENTER_LEFT" mnemonicParsing="false" onAction="#btnAnalyticsClicked" maxWidth="Infinity" style="-fx-background-color: transparent; -fx-background-radius: 8; -fx-cursor: hand; -fx-focus-color: transparent; -fx-faint-focus-color: transparent;" text="Analytics" textFill="#cbd5e1">
<font>
<Font name="System" size="12.0" />
</font>
<padding>
<Insets bottom="8.0" left="10.0" right="10.0" top="8.0" />
</padding>
</Button>
<Button fx:id="btnSalesHistory" alignment="CENTER_LEFT" mnemonicParsing="false" onAction="#btnSalesHistoryClicked" maxWidth="Infinity" style="-fx-background-color: transparent; -fx-background-radius: 8; -fx-cursor: hand; -fx-focus-color: transparent; -fx-faint-focus-color: transparent;" text="Sales History" textFill="#cbd5e1">
<font>
<Font name="System" size="12.0" />
</font>
<padding>
<Insets bottom="8.0" left="10.0" right="10.0" top="8.0" />
</padding>
</Button>
<Button fx:id="btnAppointments" alignment="CENTER_LEFT" mnemonicParsing="false" onAction="#btnAppointmentsClicked" maxWidth="Infinity" style="-fx-background-color: transparent; -fx-background-radius: 8; -fx-cursor: hand; -fx-focus-color: transparent; -fx-faint-focus-color: transparent;" text="Appointments" textFill="#cbd5e1">
<font>
<Font name="System" size="12.0" />
</font>
<padding>
<Insets bottom="8.0" left="10.0" right="10.0" top="8.0" />
</padding>
</Button>
<Button fx:id="btnServices" alignment="CENTER_LEFT" mnemonicParsing="false" onAction="#btnServicesClicked" maxWidth="Infinity" style="-fx-background-color: transparent; -fx-background-radius: 8; -fx-cursor: hand; -fx-focus-color: transparent; -fx-faint-focus-color: transparent;" text="Services" textFill="#cbd5e1">
<font>
<Font name="System" size="12.0" />
</font>
<padding>
<Insets bottom="8.0" left="10.0" right="10.0" top="8.0" />
</padding>
</Button>
<Button fx:id="btnChat" alignment="CENTER_LEFT" mnemonicParsing="false" onAction="#btnChatClicked" maxWidth="Infinity" style="-fx-background-color: transparent; -fx-background-radius: 8; -fx-cursor: hand; -fx-focus-color: transparent; -fx-faint-focus-color: transparent;" text="Chat" textFill="#cbd5e1">
<font>
<Font name="System" size="12.0" />
</font>
<padding>
<Insets bottom="8.0" left="10.0" right="10.0" top="8.0" />
</padding>
</Button>
<Label text="PETS" textFill="#94a3b8">
<font>
<Font name="System Bold" size="12.0" />
</font>
<padding>
<Insets top="8.0" />
</padding>
</Label>
<Separator prefWidth="200.0" style="-fx-background-color: #444444; -fx-opacity: 0.35;" />
<Button fx:id="btnPets" alignment="CENTER_LEFT" mnemonicParsing="false" onAction="#btnPetsClicked" prefWidth="250.0" style="-fx-background-color: transparent; -fx-background-radius: 10; -fx-cursor: hand; -fx-focus-color: transparent; -fx-faint-focus-color: transparent;" text="Pets" textFill="#cbd5e1">
<padding>
<Insets bottom="10.0" left="14.0" right="14.0" top="10.0" />
</padding>
<font>
<Font name="System" size="13.0" />
</font>
</Button>
<Button fx:id="btnAdoptions" alignment="CENTER_LEFT" layoutX="40.0" layoutY="234.0" mnemonicParsing="false" onAction="#btnAdoptionsClicked" prefWidth="250.0" style="-fx-background-color: transparent; -fx-background-radius: 10; -fx-cursor: hand; -fx-focus-color: transparent; -fx-faint-focus-color: transparent;" text="Adoptions" textFill="#cbd5e1">
<font>
<Font name="System" size="13.0" />
</font>
<padding>
<Insets bottom="10.0" left="14.0" right="14.0" top="10.0" />
</padding>
</Button>
<Button fx:id="btnAppointments" alignment="CENTER_LEFT" layoutX="40.0" layoutY="294.0" mnemonicParsing="false" onAction="#btnAppointmentsClicked" prefWidth="250.0" style="-fx-background-color: transparent; -fx-background-radius: 10; -fx-cursor: hand; -fx-focus-color: transparent; -fx-faint-focus-color: transparent;" text="Appointments" textFill="#cbd5e1">
<font>
<Font name="System" size="13.0" />
</font>
<padding>
<Insets bottom="10.0" left="14.0" right="14.0" top="10.0" />
</padding>
</Button>
<Button fx:id="btnServices" alignment="CENTER_LEFT" layoutX="40.0" layoutY="354.0" mnemonicParsing="false" onAction="#btnServicesClicked" prefWidth="250.0" style="-fx-background-color: transparent; -fx-background-radius: 10; -fx-cursor: hand; -fx-focus-color: transparent; -fx-faint-focus-color: transparent;" text="Services" textFill="#cbd5e1">
<font>
<Font name="System" size="13.0" />
</font>
<padding>
<Insets bottom="10.0" left="14.0" right="14.0" top="10.0" />
</padding>
</Button>
<Separator layoutX="40.0" layoutY="156.0" prefWidth="200.0" style="-fx-background-color: #444444; -fx-opacity: 0.35;" />
<Label text="STORE" textFill="#94a3b8">
<font>
<Font name="System Bold" size="10.0" />
</font>
<padding>
<Insets top="4.0" />
</padding>
</Label>
<Label text="PRODUCTS" textFill="#94a3b8">
<font>
<Font name="System Bold" size="12.0" />
</font>
<padding>
<Insets top="8.0" />
</padding>
</Label>
<Button fx:id="btnPets" alignment="CENTER_LEFT" mnemonicParsing="false" onAction="#btnPetsClicked" maxWidth="Infinity" style="-fx-background-color: transparent; -fx-background-radius: 8; -fx-cursor: hand; -fx-focus-color: transparent; -fx-faint-focus-color: transparent;" text="Pets" textFill="#cbd5e1">
<font>
<Font name="System" size="12.0" />
</font>
<padding>
<Insets bottom="8.0" left="10.0" right="10.0" top="8.0" />
</padding>
</Button>
<Button fx:id="btnAdoptions" alignment="CENTER_LEFT" mnemonicParsing="false" onAction="#btnAdoptionsClicked" maxWidth="Infinity" style="-fx-background-color: transparent; -fx-background-radius: 8; -fx-cursor: hand; -fx-focus-color: transparent; -fx-faint-focus-color: transparent;" text="Adoptions" textFill="#cbd5e1">
<font>
<Font name="System" size="12.0" />
</font>
<padding>
<Insets bottom="8.0" left="10.0" right="10.0" top="8.0" />
</padding>
</Button>
<Button fx:id="btnProducts" alignment="CENTER_LEFT" mnemonicParsing="false" onAction="#btnProductsClicked" maxWidth="Infinity" style="-fx-background-color: transparent; -fx-background-radius: 8; -fx-cursor: hand; -fx-focus-color: transparent; -fx-faint-focus-color: transparent;" text="Products" textFill="#cbd5e1">
<font>
<Font name="System" size="12.0" />
</font>
<padding>
<Insets bottom="8.0" left="10.0" right="10.0" top="8.0" />
</padding>
</Button>
<Button fx:id="btnProducts" alignment="CENTER_LEFT" layoutX="40.0" layoutY="414.0" mnemonicParsing="false" onAction="#btnProductsClicked" prefWidth="250.0" style="-fx-background-color: transparent; -fx-background-radius: 10; -fx-cursor: hand; -fx-focus-color: transparent; -fx-faint-focus-color: transparent;" text="Products" textFill="#cbd5e1">
<font>
<Font name="System" size="13.0" />
</font>
<padding>
<Insets bottom="10.0" left="14.0" right="14.0" top="10.0" />
</padding>
</Button>
<Button fx:id="btnInventory" alignment="CENTER_LEFT" layoutX="40.0" layoutY="492.0" mnemonicParsing="false" onAction="#btnInventoryClicked" prefWidth="250.0" style="-fx-background-color: transparent; -fx-background-radius: 10; -fx-cursor: hand; -fx-focus-color: transparent; -fx-faint-focus-color: transparent;" text="Inventory" textFill="#cbd5e1">
<font>
<Font name="System" size="13.0" />
</font>
<padding>
<Insets bottom="10.0" left="14.0" right="14.0" top="10.0" />
</padding>
</Button>
<Button fx:id="btnSuppliers" alignment="CENTER_LEFT" layoutX="40.0" layoutY="552.0" mnemonicParsing="false" onAction="#btnSuppliersClicked" prefWidth="250.0" style="-fx-background-color: transparent; -fx-background-radius: 10; -fx-cursor: hand; -fx-focus-color: transparent; -fx-faint-focus-color: transparent;" text="Suppliers" textFill="#cbd5e1">
<font>
<Font name="System" size="13.0" />
</font>
<padding>
<Insets bottom="10.0" left="14.0" right="14.0" top="10.0" />
</padding>
</Button>
<Button fx:id="btnProductSuppliers" alignment="CENTER_LEFT" layoutX="40.0" layoutY="612.0" mnemonicParsing="false" onAction="#btnProductSuppliersClicked" prefWidth="250.0" style="-fx-background-color: transparent; -fx-background-radius: 10; -fx-cursor: hand; -fx-focus-color: transparent; -fx-faint-focus-color: transparent;" text="Product-Suppliers" textFill="#cbd5e1">
<font>
<Font name="System" size="13.0" />
</font>
<padding>
<Insets bottom="10.0" left="14.0" right="14.0" top="10.0" />
</padding>
</Button>
<Button fx:id="btnSalesHistory" alignment="CENTER_LEFT" layoutX="40.0" layoutY="672.0" mnemonicParsing="false" onAction="#btnSalesHistoryClicked" prefWidth="250.0" style="-fx-background-color: transparent; -fx-background-radius: 10; -fx-cursor: hand; -fx-focus-color: transparent; -fx-faint-focus-color: transparent;" text="Sales History" textFill="#cbd5e1">
<font>
<Font name="System" size="13.0" />
</font>
<padding>
<Insets bottom="10.0" left="14.0" right="14.0" top="10.0" />
</padding>
</Button>
<Separator fx:id="separatorAdmin" prefWidth="200.0" style="-fx-background-color: #444444; -fx-opacity: 0.35;" />
<Button fx:id="btnPurchaseOrders" alignment="CENTER_LEFT" mnemonicParsing="false" onAction="#btnPurchaseOrdersClicked" prefWidth="250.0" style="-fx-background-color: transparent; -fx-background-radius: 10; -fx-cursor: hand; -fx-focus-color: transparent; -fx-faint-focus-color: transparent;" text="Purchase Orders" textFill="#cbd5e1">
<font>
<Font name="System" size="13.0" />
</font>
<padding>
<Insets bottom="10.0" left="14.0" right="14.0" top="10.0" />
</padding>
</Button>
<Label fx:id="lblAdminSection" text="ADMIN" textFill="#94a3b8">
<font>
<Font name="System Bold" size="10.0" />
</font>
<padding>
<Insets top="4.0" />
</padding>
</Label>
<Button fx:id="btnStaffAccounts" alignment="CENTER_LEFT" mnemonicParsing="false" onAction="#btnStaffAccountsClicked" prefWidth="250.0" style="-fx-background-color: transparent; -fx-background-radius: 10; -fx-cursor: hand; -fx-focus-color: transparent; -fx-faint-focus-color: transparent;" text="Staff Accounts" textFill="#cbd5e1">
<font>
<Font name="System" size="13.0" />
</font>
<padding>
<Insets bottom="10.0" left="14.0" right="14.0" top="10.0" />
</padding>
</Button>
<Button fx:id="btnInventory" alignment="CENTER_LEFT" mnemonicParsing="false" onAction="#btnInventoryClicked" maxWidth="Infinity" style="-fx-background-color: transparent; -fx-background-radius: 8; -fx-cursor: hand; -fx-focus-color: transparent; -fx-faint-focus-color: transparent;" text="Inventory" textFill="#cbd5e1">
<font>
<Font name="System" size="12.0" />
</font>
<padding>
<Insets bottom="8.0" left="10.0" right="10.0" top="8.0" />
</padding>
</Button>
<Button fx:id="btnSuppliers" alignment="CENTER_LEFT" mnemonicParsing="false" onAction="#btnSuppliersClicked" maxWidth="Infinity" style="-fx-background-color: transparent; -fx-background-radius: 8; -fx-cursor: hand; -fx-focus-color: transparent; -fx-faint-focus-color: transparent;" text="Suppliers" textFill="#cbd5e1">
<font>
<Font name="System" size="12.0" />
</font>
<padding>
<Insets bottom="8.0" left="10.0" right="10.0" top="8.0" />
</padding>
</Button>
<Button fx:id="btnProductSuppliers" alignment="CENTER_LEFT" mnemonicParsing="false" onAction="#btnProductSuppliersClicked" maxWidth="Infinity" style="-fx-background-color: transparent; -fx-background-radius: 8; -fx-cursor: hand; -fx-focus-color: transparent; -fx-faint-focus-color: transparent;" text="Product-Suppliers" textFill="#cbd5e1">
<font>
<Font name="System" size="12.0" />
</font>
<padding>
<Insets bottom="8.0" left="10.0" right="10.0" top="8.0" />
</padding>
</Button>
<Button fx:id="btnPurchaseOrders" alignment="CENTER_LEFT" mnemonicParsing="false" onAction="#btnPurchaseOrdersClicked" maxWidth="Infinity" style="-fx-background-color: transparent; -fx-background-radius: 8; -fx-cursor: hand; -fx-focus-color: transparent; -fx-faint-focus-color: transparent;" text="Purchase Orders" textFill="#cbd5e1">
<font>
<Font name="System" size="12.0" />
</font>
<padding>
<Insets bottom="8.0" left="10.0" right="10.0" top="8.0" />
</padding>
</Button>
<Button fx:id="btnStaffAccounts" alignment="CENTER_LEFT" mnemonicParsing="false" onAction="#btnStaffAccountsClicked" maxWidth="Infinity" style="-fx-background-color: transparent; -fx-background-radius: 8; -fx-cursor: hand; -fx-focus-color: transparent; -fx-faint-focus-color: transparent;" text="Staff Accounts" textFill="#cbd5e1">
<font>
<Font name="System" size="12.0" />
</font>
<padding>
<Insets bottom="8.0" left="10.0" right="10.0" top="8.0" />
</padding>
</Button>
<Region VBox.vgrow="ALWAYS" />
<Region VBox.vgrow="ALWAYS" />
<Button fx:id="btnLogout" alignment="CENTER_LEFT" mnemonicParsing="false" onAction="#btnLogoutClicked" prefWidth="250.0" style="-fx-background-color: rgba(255,255,255,0.08); -fx-background-radius: 10; -fx-cursor: hand; -fx-focus-color: transparent; -fx-faint-focus-color: transparent;" text="Logout" textFill="#e2e8f0">
<font>
<Font name="System" size="13.0" />
</font>
<padding>
<Insets bottom="10.0" left="14.0" right="14.0" top="10.0" />
</padding>
<VBox.margin>
<Insets top="12.0" />
</VBox.margin>
</Button>
</children>
</VBox>
<Button fx:id="btnLogout" alignment="CENTER_LEFT" mnemonicParsing="false" onAction="#btnLogoutClicked" maxWidth="Infinity" style="-fx-background-color: rgba(255,255,255,0.08); -fx-background-radius: 8; -fx-cursor: hand; -fx-focus-color: transparent; -fx-faint-focus-color: transparent;" text="Logout" textFill="#e2e8f0">
<font>
<Font name="System" size="12.0" />
</font>
<padding>
<Insets bottom="8.0" left="10.0" right="10.0" top="8.0" />
</padding>
<VBox.margin>
<Insets top="8.0" />
</VBox.margin>
</Button>
</children>
</VBox>
</ScrollPane>
</left>
<center>
<StackPane fx:id="spContentArea" prefHeight="150.0" prefWidth="200.0" BorderPane.alignment="CENTER" />

View File

@@ -8,195 +8,216 @@
<?import javafx.scene.chart.PieChart?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.ScrollPane?>
<?import javafx.scene.control.Tab?>
<?import javafx.scene.control.TabPane?>
<?import javafx.scene.layout.HBox?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.text.Font?>
<ScrollPane fitToWidth="true" xmlns="http://javafx.com/javafx/21" xmlns:fx="http://javafx.com/fxml/1" fx:controller="org.example.petshopdesktop.controllers.AnalyticsController">
<VBox spacing="20.0" style="-fx-background-color: #f8fafc;">
<padding>
<Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
</padding>
<VBox spacing="15.0" style="-fx-background-color: #f8fafc;" xmlns="http://javafx.com/javafx/21" xmlns:fx="http://javafx.com/fxml/1" fx:controller="org.example.petshopdesktop.controllers.AnalyticsController">
<padding>
<Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
</padding>
<HBox alignment="CENTER_LEFT" spacing="20.0">
<Label text="Sales Analytics" textFill="#2c3e50">
<font>
<Font name="System Bold" size="24.0" />
</font>
</Label>
<Button fx:id="btnRefresh" onAction="#handleRefresh" style="-fx-background-color: #4ECDC4; -fx-text-fill: white; -fx-background-radius: 5; -fx-cursor: hand;" text="Refresh">
<font>
<Font size="13.0" />
</font>
<padding>
<Insets bottom="8.0" left="16.0" right="16.0" top="8.0" />
</padding>
</Button>
</HBox>
<Label fx:id="lblError" textFill="#FF6B6B" visible="false">
<HBox alignment="CENTER_LEFT" spacing="20.0">
<Label text="Sales Analytics" textFill="#2c3e50">
<font>
<Font name="System Bold" size="24.0" />
</font>
</Label>
<Button fx:id="btnRefresh" onAction="#handleRefresh" style="-fx-background-color: #4ECDC4; -fx-text-fill: white; -fx-background-radius: 5; -fx-cursor: hand;" text="Refresh">
<font>
<Font size="13.0" />
</font>
</Label>
<HBox spacing="20.0">
<VBox alignment="CENTER" spacing="8.0" style="-fx-background-color: white; -fx-background-radius: 10; -fx-border-color: #e2e8f0; -fx-border-radius: 10; -fx-border-width: 1;" HBox.hgrow="ALWAYS">
<padding>
<Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
</padding>
<Label text="Total Revenue" textFill="#64748b">
<font>
<Font size="12.0" />
</font>
</Label>
<Label fx:id="lblTotalRevenue" text="0.00" textFill="#2c3e50">
<font>
<Font name="System Bold" size="24.0" />
</font>
</Label>
</VBox>
<VBox alignment="CENTER" spacing="8.0" style="-fx-background-color: white; -fx-background-radius: 10; -fx-border-color: #e2e8f0; -fx-border-radius: 10; -fx-border-width: 1;" HBox.hgrow="ALWAYS">
<padding>
<Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
</padding>
<Label text="Total Transactions" textFill="#64748b">
<font>
<Font size="12.0" />
</font>
</Label>
<Label fx:id="lblTotalTransactions" text="0" textFill="#2c3e50">
<font>
<Font name="System Bold" size="24.0" />
</font>
</Label>
</VBox>
<VBox alignment="CENTER" spacing="8.0" style="-fx-background-color: white; -fx-background-radius: 10; -fx-border-color: #e2e8f0; -fx-border-radius: 10; -fx-border-width: 1;" HBox.hgrow="ALWAYS">
<padding>
<Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
</padding>
<Label text="Average Transaction Value" textFill="#64748b">
<font>
<Font size="12.0" />
</font>
</Label>
<Label fx:id="lblAvgTransaction" text="0.00" textFill="#2c3e50">
<font>
<Font name="System Bold" size="24.0" />
</font>
</Label>
</VBox>
<VBox alignment="CENTER" spacing="8.0" style="-fx-background-color: white; -fx-background-radius: 10; -fx-border-color: #e2e8f0; -fx-border-radius: 10; -fx-border-width: 1;" HBox.hgrow="ALWAYS">
<padding>
<Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
</padding>
<Label text="Total Items Sold" textFill="#64748b">
<font>
<Font size="12.0" />
</font>
</Label>
<Label fx:id="lblTotalItems" text="0" textFill="#2c3e50">
<font>
<Font name="System Bold" size="24.0" />
</font>
</Label>
</VBox>
</HBox>
<VBox spacing="10.0" style="-fx-background-color: white; -fx-background-radius: 10; -fx-border-color: #e2e8f0; -fx-border-radius: 10; -fx-border-width: 1;">
<padding>
<Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
<Insets bottom="8.0" left="16.0" right="16.0" top="8.0" />
</padding>
<Label text="Sales Over Time" textFill="#2c3e50">
<font>
<Font name="System Bold" size="16.0" />
</font>
</Label>
<LineChart fx:id="chartSalesOverTime" animated="true" legendSide="BOTTOM" prefHeight="300.0">
<xAxis>
<CategoryAxis label="Date" side="BOTTOM" />
</xAxis>
<yAxis>
<NumberAxis label="Revenue" side="LEFT" />
</yAxis>
</LineChart>
</VBox>
</Button>
</HBox>
<HBox spacing="20.0">
<VBox spacing="10.0" style="-fx-background-color: white; -fx-background-radius: 10; -fx-border-color: #e2e8f0; -fx-border-radius: 10; -fx-border-width: 1;" HBox.hgrow="ALWAYS">
<padding>
<Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
</padding>
<Label text="Top Products by Revenue" textFill="#2c3e50">
<font>
<Font name="System Bold" size="16.0" />
</font>
</Label>
<BarChart fx:id="chartTopRevenue" animated="true" legendSide="BOTTOM" prefHeight="300.0">
<xAxis>
<NumberAxis label="Revenue" side="BOTTOM" />
</xAxis>
<yAxis>
<CategoryAxis label="Product" side="LEFT" />
</yAxis>
</BarChart>
</VBox>
<Label fx:id="lblError" textFill="#FF6B6B" visible="false">
<font>
<Font size="13.0" />
</font>
</Label>
<VBox spacing="10.0" style="-fx-background-color: white; -fx-background-radius: 10; -fx-border-color: #e2e8f0; -fx-border-radius: 10; -fx-border-width: 1;" HBox.hgrow="ALWAYS">
<TabPane VBox.vgrow="ALWAYS">
<Tab text="Overview" closable="false">
<VBox spacing="15.0">
<padding>
<Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
</padding>
<Label text="Top Products by Quantity" textFill="#2c3e50">
<font>
<Font name="System Bold" size="16.0" />
</font>
</Label>
<BarChart fx:id="chartTopQuantity" animated="true" legendSide="BOTTOM" prefHeight="300.0">
<xAxis>
<NumberAxis label="Quantity Sold" side="BOTTOM" />
</xAxis>
<yAxis>
<CategoryAxis label="Product" side="LEFT" />
</yAxis>
</BarChart>
</VBox>
</HBox>
<HBox spacing="20.0">
<VBox spacing="10.0" style="-fx-background-color: white; -fx-background-radius: 10; -fx-border-color: #e2e8f0; -fx-border-radius: 10; -fx-border-width: 1;" HBox.hgrow="ALWAYS">
<padding>
<Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
</padding>
<Label text="Payment Method Distribution" textFill="#2c3e50">
<font>
<Font name="System Bold" size="16.0" />
</font>
</Label>
<PieChart fx:id="chartPaymentMethods" animated="true" legendSide="BOTTOM" prefHeight="300.0" />
</VBox>
<HBox spacing="15.0">
<VBox alignment="CENTER" spacing="5.0" style="-fx-background-color: white; -fx-background-radius: 8; -fx-border-color: #e2e8f0; -fx-border-radius: 8; -fx-border-width: 1;" HBox.hgrow="ALWAYS">
<padding>
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
</padding>
<Label text="Total Revenue" textFill="#64748b">
<font>
<Font size="11.0" />
</font>
</Label>
<Label fx:id="lblTotalRevenue" text="0.00" textFill="#2c3e50">
<font>
<Font name="System Bold" size="20.0" />
</font>
</Label>
</VBox>
<VBox spacing="10.0" style="-fx-background-color: white; -fx-background-radius: 10; -fx-border-color: #e2e8f0; -fx-border-radius: 10; -fx-border-width: 1;" HBox.hgrow="ALWAYS">
<padding>
<Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
</padding>
<Label text="Employee Performance" textFill="#2c3e50">
<font>
<Font name="System Bold" size="16.0" />
</font>
</Label>
<BarChart fx:id="chartEmployeePerformance" animated="true" legendSide="BOTTOM" prefHeight="300.0">
<xAxis>
<CategoryAxis label="Employee" side="BOTTOM" />
</xAxis>
<yAxis>
<NumberAxis label="Revenue" side="LEFT" />
</yAxis>
</BarChart>
<VBox alignment="CENTER" spacing="5.0" style="-fx-background-color: white; -fx-background-radius: 8; -fx-border-color: #e2e8f0; -fx-border-radius: 8; -fx-border-width: 1;" HBox.hgrow="ALWAYS">
<padding>
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
</padding>
<Label text="Total Transactions" textFill="#64748b">
<font>
<Font size="11.0" />
</font>
</Label>
<Label fx:id="lblTotalTransactions" text="0" textFill="#2c3e50">
<font>
<Font name="System Bold" size="20.0" />
</font>
</Label>
</VBox>
<VBox alignment="CENTER" spacing="5.0" style="-fx-background-color: white; -fx-background-radius: 8; -fx-border-color: #e2e8f0; -fx-border-radius: 8; -fx-border-width: 1;" HBox.hgrow="ALWAYS">
<padding>
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
</padding>
<Label text="Avg Transaction" textFill="#64748b">
<font>
<Font size="11.0" />
</font>
</Label>
<Label fx:id="lblAvgTransaction" text="0.00" textFill="#2c3e50">
<font>
<Font name="System Bold" size="20.0" />
</font>
</Label>
</VBox>
<VBox alignment="CENTER" spacing="5.0" style="-fx-background-color: white; -fx-background-radius: 8; -fx-border-color: #e2e8f0; -fx-border-radius: 8; -fx-border-width: 1;" HBox.hgrow="ALWAYS">
<padding>
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
</padding>
<Label text="Items Sold" textFill="#64748b">
<font>
<Font size="11.0" />
</font>
</Label>
<Label fx:id="lblTotalItems" text="0" textFill="#2c3e50">
<font>
<Font name="System Bold" size="20.0" />
</font>
</Label>
</VBox>
</HBox>
<VBox spacing="8.0" style="-fx-background-color: white; -fx-background-radius: 8; -fx-border-color: #e2e8f0; -fx-border-radius: 8; -fx-border-width: 1;">
<padding>
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
</padding>
<Label text="Sales Over Time" textFill="#2c3e50">
<font>
<Font name="System Bold" size="14.0" />
</font>
</Label>
<LineChart fx:id="chartSalesOverTime" animated="true" legendSide="BOTTOM" prefHeight="380.0">
<xAxis>
<CategoryAxis label="Date" side="BOTTOM" />
</xAxis>
<yAxis>
<NumberAxis label="Revenue" side="LEFT" />
</yAxis>
</LineChart>
</VBox>
</VBox>
</HBox>
</VBox>
</ScrollPane>
</Tab>
<Tab text="Products" closable="false">
<HBox spacing="15.0">
<padding>
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
</padding>
<VBox spacing="8.0" style="-fx-background-color: white; -fx-background-radius: 8; -fx-border-color: #e2e8f0; -fx-border-radius: 8; -fx-border-width: 1;" minHeight="450.0" prefHeight="450.0" maxHeight="450.0" HBox.hgrow="ALWAYS">
<padding>
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
</padding>
<Label text="Top Products by Revenue" textFill="#2c3e50">
<font>
<Font name="System Bold" size="14.0" />
</font>
</Label>
<BarChart fx:id="chartTopRevenue" animated="true" legendSide="BOTTOM" prefHeight="380.0">
<xAxis>
<NumberAxis label="Revenue" side="BOTTOM" />
</xAxis>
<yAxis>
<CategoryAxis label="Product" side="LEFT" />
</yAxis>
</BarChart>
</VBox>
<VBox spacing="8.0" style="-fx-background-color: white; -fx-background-radius: 8; -fx-border-color: #e2e8f0; -fx-border-radius: 8; -fx-border-width: 1;" minHeight="450.0" prefHeight="450.0" maxHeight="450.0" HBox.hgrow="ALWAYS">
<padding>
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
</padding>
<Label text="Top Products by Quantity" textFill="#2c3e50">
<font>
<Font name="System Bold" size="14.0" />
</font>
</Label>
<BarChart fx:id="chartTopQuantity" animated="true" legendSide="BOTTOM" prefHeight="380.0">
<xAxis>
<NumberAxis label="Quantity Sold" side="BOTTOM" />
</xAxis>
<yAxis>
<CategoryAxis label="Product" side="LEFT" />
</yAxis>
</BarChart>
</VBox>
</HBox>
</Tab>
<Tab text="Operations" closable="false">
<HBox spacing="15.0">
<padding>
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
</padding>
<VBox spacing="8.0" style="-fx-background-color: white; -fx-background-radius: 8; -fx-border-color: #e2e8f0; -fx-border-radius: 8; -fx-border-width: 1;" minHeight="450.0" prefHeight="450.0" maxHeight="450.0" HBox.hgrow="ALWAYS">
<padding>
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
</padding>
<Label text="Payment Method Distribution" textFill="#2c3e50">
<font>
<Font name="System Bold" size="14.0" />
</font>
</Label>
<PieChart fx:id="chartPaymentMethods" animated="true" legendSide="BOTTOM" prefHeight="380.0" />
</VBox>
<VBox spacing="8.0" style="-fx-background-color: white; -fx-background-radius: 8; -fx-border-color: #e2e8f0; -fx-border-radius: 8; -fx-border-width: 1;" minHeight="450.0" prefHeight="450.0" maxHeight="450.0" HBox.hgrow="ALWAYS">
<padding>
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
</padding>
<Label text="Employee Performance" textFill="#2c3e50">
<font>
<Font name="System Bold" size="14.0" />
</font>
</Label>
<BarChart fx:id="chartEmployeePerformance" animated="true" legendSide="BOTTOM" prefHeight="380.0">
<xAxis>
<CategoryAxis label="Employee" side="BOTTOM" />
</xAxis>
<yAxis>
<NumberAxis label="Revenue" side="LEFT" />
</yAxis>
</BarChart>
</VBox>
</HBox>
</Tab>
</TabPane>
</VBox>

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.text.Font?>
<VBox spacing="20.0" style="-fx-background-color: #f8fafc;" xmlns="http://javafx.com/javafx/21" xmlns:fx="http://javafx.com/fxml/1">
<padding>
<Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
</padding>
<Label text="Customer Chat" textFill="#2c3e50">
<font>
<Font name="System Bold" size="30.0" />
</font>
</Label>
</VBox>

View File

@@ -25,6 +25,14 @@
</font>
</Label>
<Region HBox.hgrow="ALWAYS" />
<Button fx:id="btnCreateAccount" mnemonicParsing="false" onAction="#btnCreateAccountClicked" prefHeight="44.0" style="-fx-background-color: #FF6B6B; -fx-cursor: hand; -fx-background-radius: 8;" text="Create Account" textFill="WHITE">
<font>
<Font name="System Bold" size="14.0" />
</font>
<padding>
<Insets bottom="12.0" left="24.0" right="24.0" top="12.0" />
</padding>
</Button>
<Button fx:id="btnRefresh" mnemonicParsing="false" onAction="#btnRefreshClicked" prefHeight="44.0" prefWidth="118.0" style="-fx-background-color: #4ECDC4; -fx-cursor: hand; -fx-background-radius: 8;" text="Refresh" textFill="WHITE">
<font>
<Font name="System Bold" size="14.0" />