Navigation and index.html changes

pull/959/head
Aigars Silkalns 2025-06-13 13:54:36 +03:00
parent 2f9a826015
commit d240e8a693
54 changed files with 2863 additions and 2359 deletions

View File

@ -1,159 +0,0 @@
# Performance Optimizations Summary
## **๐Ÿš€ Major Improvements Implemented**
### **Before Optimization:**
- **Single Bundle**: 779 KB JS (241 KB gzipped) - Everything loaded on every page
- **No Code Splitting**: Monolithic loading causing slow initial page loads
- **Unused Dependencies**: Chart.js, DataTables, etc. loaded even on simple pages
- **Large Images**: Unoptimized 290KB+ images
- **Poor Caching**: No intelligent asset naming for browser caching
### **After Optimization:**
- **Split Bundles**: Code split into logical chunks (5 vendor chunks + main)
- **Conditional Loading**: Page-specific modules load only when needed
- **Asset Optimization**: Intelligent file naming and organization
- **Build Optimization**: Console logs removed, terser minification enabled
---
## **๐Ÿ“Š Bundle Size Improvements**
### **JavaScript Bundles:**
- **main.js**: 79 KB (was 779 KB) - **90% reduction!**
- **vendor-core**: 164 KB (Bootstrap, jQuery, essentials)
- **vendor-charts**: 219 KB (Chart.js, JQVMap - only loads on chart pages)
- **vendor-forms**: 200 KB (Select2, DatePickers - only loads on form pages)
- **vendor-ui**: 13 KB (jQuery UI components)
- **vendor-utils**: 74 KB (Utilities like dayjs, sparkline)
### **Total Initial Load** (typical page):
- **Before**: 779 KB JS + 527 KB CSS = **1.3 MB**
- **After**: 79 KB + 164 KB + 527 KB = **770 KB** - **40% reduction!**
---
## **๐ŸŽฏ Optimization Strategy Details**
### **1. Code Splitting & Modular Loading**
```javascript
// Pages now load only what they need
// Dashboard pages: main + vendor-core + vendor-charts + vendor-ui
// Form pages: main + vendor-core + vendor-forms
// Simple pages: main + vendor-core only
// Dynamic loading system
await loadModule('charts'); // Only loads when charts are needed
await loadModule('forms'); // Only loads when forms are needed
```
### **2. Intelligent Asset Management**
```javascript
// Organized asset structure for better caching
dist/
โ”œโ”€โ”€ js/[name]-[hash].js // JavaScript with cache-busting
โ”œโ”€โ”€ images/[name]-[hash].* // Images with cache-busting
โ”œโ”€โ”€ fonts/[name]-[hash].* // Fonts with cache-busting
โ””โ”€โ”€ assets/[name]-[hash].* // Other assets
```
### **3. Build Optimizations**
- โœ… **Terser minification** with console.log removal
- โœ… **Manual chunk splitting** for optimal loading
- โœ… **Asset optimization** with intelligent naming
- โœ… **Dead code elimination** in production builds
---
## **๐Ÿ“ˆ Performance Impact**
### **Page Load Times** (estimated improvements):
- **Dashboard Pages**: 40-50% faster initial load
- **Form Pages**: 50-60% faster initial load
- **Simple Pages**: 60-70% faster initial load
- **Chart Pages**: 30-40% faster (charts load on-demand)
### **User Experience Improvements:**
- โœ… **Faster Time to Interactive** - Critical code loads first
- โœ… **Better Caching** - Vendor code cached separately from app code
- โœ… **Progressive Loading** - Pages usable before all features load
- โœ… **Reduced Memory Usage** - Only necessary code in memory
---
## **๐Ÿ”ง Implementation Details**
### **Core Files Created:**
- `src/main-core.js` - Essential libraries only (79 KB)
- `src/modules/charts.js` - Chart-specific code (219 KB)
- `src/modules/forms.js` - Form-specific code (200 KB)
- `src/modules/tables.js` - Table-specific code
- `src/modules/dashboard.js` - Dashboard widgets
### **Dynamic Loading System:**
```javascript
// Automatic loading based on page needs
if (document.querySelector('.chart-container')) {
await loadModule('charts');
}
if (document.querySelector('form.advanced')) {
await loadModule('forms');
}
```
---
## **๐ŸŽ Additional Benefits**
### **Development Benefits:**
- โœ… **Faster Development Builds** - Better hot module replacement
- โœ… **Easier Debugging** - Smaller, focused bundles
- โœ… **Better Error Tracking** - Clear module boundaries
- โœ… **Simplified Testing** - Isolated functionality
### **SEO & Performance Benefits:**
- โœ… **Better Core Web Vitals** - Improved LCP, FID, CLS scores
- โœ… **Mobile Performance** - Crucial for mobile users
- โœ… **Search Engine Ranking** - Page speed is a ranking factor
- โœ… **User Retention** - Faster pages = better user experience
---
## **๐Ÿ“‹ Next Steps & Recommendations**
### **Immediate Opportunities:**
1. **Image Optimization**: Convert 290KB images to WebP format (60-80% size reduction)
2. **Lazy Loading**: Implement lazy loading for images and heavy components
3. **Service Worker**: Add caching strategy for offline support
### **Advanced Optimizations:**
1. **Route-based Code Splitting**: Split based on navigation routes
2. **Component-level Splitting**: Split individual UI components
3. **Preloading Strategy**: Preload likely-needed modules
### **Monitoring:**
- Use `npm run build:analyze` to track bundle sizes over time
- Monitor Core Web Vitals in production
- Set up performance budgets for CI/CD
---
## **๐Ÿš€ Commands**
```bash
# Build with optimization analysis
npm run build:analyze
# Run optimization analysis only
npm run optimize
# Development with optimizations
npm run dev
# Production build
npm run build
```
---
**Result**: From 1.3MB initial load to 770KB (40% reduction) with much better caching and progressive loading!

View File

@ -264,7 +264,7 @@ Gentelella has been integrated into various frameworks:
- **[Django](https://github.com/GiriB/django-gentelella)** - Python Django app
- **[Angular](https://github.com/kmkatsma/angular2-webpack-starter-gentelella)** - Angular integration
- **[React](https://github.com/thomaslwq/react-admin)** - React implementation
- **[Symfony](https://github.com/mamless/Gentella-admin-Symfony-5)** - Symfony 5 integration
- **[Symfony](https://github.com/mamless/Gentella-admin-Symfony-6)** - Symfony 6 integration
- **[Yii](https://github.com/yiister/yii2-gentelella)** - Yii framework integration
- **[Flask](https://github.com/afourmy/flask-gentelella)** - Python Flask app
- **[CakePHP](https://github.com/backstageel/cakephp-gentelella-theme)** - CakePHP integration

View File

@ -1,686 +0,0 @@
---
layout: default
title: Performance Guide
nav_order: 5
---
# Performance Optimization
{: .no_toc }
Complete guide to optimizing Gentelella Admin Template for maximum performance
{: .fs-6 .fw-300 }
## Table of contents
{: .no_toc .text-delta }
1. TOC
{:toc}
---
## Performance Overview
Gentelella v2.0 includes significant performance improvements over the original version:
### Performance Metrics
| Metric | v1.0 | v2.0 | Improvement |
|--------|------|------|-------------|
| **Initial Bundle Size** | 779 KB | 79 KB | **90% smaller** |
| **Total Page Load** | 1.3 MB | 770 KB | **40% reduction** |
| **First Contentful Paint** | 2.1s | 0.8s | **62% faster** |
| **Time to Interactive** | 3.5s | 1.2s | **66% faster** |
| **Largest Contentful Paint** | 2.8s | 1.1s | **61% faster** |
| **Cumulative Layout Shift** | 0.15 | 0.03 | **80% improvement** |
---
## Smart Loading System
### Core vs. Module Architecture
The template uses a two-tier loading system:
#### Core Bundle (79KB) - Always Loaded
Essential functionality that every page needs:
```javascript
// src/main-core.js
import 'bootstrap/dist/js/bootstrap.bundle.min.js';
import './js/custom.min.js';
// Initialize tooltips and popovers
document.addEventListener('DOMContentLoaded', function() {
// Bootstrap components initialization
const tooltips = document.querySelectorAll('[data-bs-toggle="tooltip"]');
tooltips.forEach(tooltip => new bootstrap.Tooltip(tooltip));
const popovers = document.querySelectorAll('[data-bs-toggle="popover"]');
popovers.forEach(popover => new bootstrap.Popover(popover));
});
```
#### Conditional Modules - Loaded on Demand
**Charts Module** (219KB)
```javascript
// Only loads when chart elements are detected
if (document.querySelector('.chart-container')) {
const charts = await import('./modules/charts.js');
charts.initializeCharts();
}
```
**Forms Module** (200KB)
```javascript
// Only loads on pages with enhanced forms
if (document.querySelector('.select2, .datepicker, .form-wizard')) {
const forms = await import('./modules/forms.js');
forms.initializeForms();
}
```
**Tables Module**
```javascript
// Only loads when DataTables are needed
if (document.querySelector('.datatable')) {
const tables = await import('./modules/tables.js');
tables.initializeTables();
}
```
### Module Loading Strategy
```javascript
// Smart module detection and loading
export async function loadRequiredModules() {
const modules = [];
// Check for chart requirements
if (document.querySelector('canvas, .morris-chart, .sparkline')) {
modules.push(import('./modules/charts.js'));
}
// Check for form enhancements
if (document.querySelector('.select2, .datepicker, .ion-range-slider')) {
modules.push(import('./modules/forms.js'));
}
// Check for table features
if (document.querySelector('.datatable, table[data-table]')) {
modules.push(import('./modules/tables.js'));
}
// Check for dashboard widgets
if (document.querySelector('.dashboard-widget, .tile_count')) {
modules.push(import('./modules/dashboard.js'));
}
// Load all required modules in parallel
const loadedModules = await Promise.all(modules);
// Initialize each module
loadedModules.forEach(module => {
if (module.initialize) {
module.initialize();
}
});
}
```
---
## Bundle Optimization
### Manual Chunk Splitting
The Vite configuration includes optimized chunk splitting:
```javascript
// vite.config.js
export default defineConfig({
build: {
rollupOptions: {
output: {
manualChunks: {
// Core vendor libraries (loaded on every page)
'vendor-core': [
'bootstrap',
'@popperjs/core'
],
// Chart libraries (loaded only when needed)
'vendor-charts': [
'chart.js',
'morris.js',
'gauge.js',
'jquery-sparkline'
],
// Form enhancement libraries
'vendor-forms': [
'select2',
'tempus-dominus',
'ion-rangeslider',
'switchery'
],
// Table functionality
'vendor-tables': [
'datatables.net',
'datatables.net-bs5',
'datatables.net-responsive',
'datatables.net-buttons'
],
// Utility libraries
'vendor-utils': [
'dayjs',
'nprogress',
'autosize'
]
}
}
}
}
});
```
### Tree Shaking
Import only what you need:
```javascript
// โŒ Bad - imports entire library
import * as dayjs from 'dayjs';
// โœ… Good - imports only specific functions
import dayjs from 'dayjs';
import customParseFormat from 'dayjs/plugin/customParseFormat';
// โŒ Bad - imports entire Chart.js
import Chart from 'chart.js';
// โœ… Good - imports only needed components
import {
Chart,
CategoryScale,
LinearScale,
PointElement,
LineElement,
Title,
Tooltip,
Legend,
} from 'chart.js';
Chart.register(
CategoryScale,
LinearScale,
PointElement,
LineElement,
Title,
Tooltip,
Legend
);
```
---
## Asset Optimization
### Image Optimization
#### Responsive Images
```html
<!-- Use responsive images with srcset -->
<img src="images/thumb-400.jpg"
srcset="images/thumb-400.jpg 400w,
images/thumb-800.jpg 800w,
images/thumb-1200.jpg 1200w"
sizes="(max-width: 768px) 100vw,
(max-width: 1200px) 50vw,
33vw"
alt="Dashboard preview"
loading="lazy">
```
#### WebP Format with Fallback
```html
<picture>
<source srcset="images/dashboard.webp" type="image/webp">
<source srcset="images/dashboard.jpg" type="image/jpeg">
<img src="images/dashboard.jpg" alt="Dashboard" loading="lazy">
</picture>
```
#### Lazy Loading
```html
<!-- Native lazy loading -->
<img src="images/placeholder.jpg"
data-src="images/actual-image.jpg"
loading="lazy"
alt="Description">
<!-- Intersection Observer approach -->
<img class="lazy"
src="images/placeholder.jpg"
data-src="images/actual-image.jpg"
alt="Description">
```
```javascript
// Lazy loading implementation
const imageObserver = new IntersectionObserver((entries, observer) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
const img = entry.target;
img.src = img.dataset.src;
img.classList.remove('lazy');
observer.unobserve(img);
}
});
});
document.querySelectorAll('img[data-src]').forEach(img => {
imageObserver.observe(img);
});
```
### Font Optimization
#### Font Loading Strategy
```html
<!-- Preload critical fonts -->
<link rel="preload" href="/fonts/roboto-regular.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/fonts/roboto-bold.woff2" as="font" type="font/woff2" crossorigin>
<!-- Font display swap for better performance -->
<style>
@font-face {
font-family: 'Roboto';
src: url('/fonts/roboto-regular.woff2') format('woff2');
font-display: swap;
font-weight: 400;
}
</style>
```
#### Subset Fonts
```css
/* Load only the characters you need */
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&text=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789');
```
---
## Caching Strategies
### Browser Caching
#### Vite Asset Hashing
```javascript
// vite.config.js
export default defineConfig({
build: {
rollupOptions: {
output: {
// Add hash to filenames for cache busting
entryFileNames: `assets/[name].[hash].js`,
chunkFileNames: `assets/[name].[hash].js`,
assetFileNames: `assets/[name].[hash].[ext]`
}
}
}
});
```
#### Service Worker Implementation
```javascript
// sw.js - Service Worker for caching
const CACHE_NAME = 'gentelella-v2.0.0';
const urlsToCache = [
'/',
'/assets/vendor-core.js',
'/assets/main-core.js',
'/assets/main.css',
'/images/favicon.ico'
];
self.addEventListener('install', event => {
event.waitUntil(
caches.open(CACHE_NAME)
.then(cache => cache.addAll(urlsToCache))
);
});
self.addEventListener('fetch', event => {
event.respondWith(
caches.match(event.request)
.then(response => {
// Return cached version or fetch from network
return response || fetch(event.request);
})
);
});
```
### CDN Integration
```javascript
// vite.config.js - CDN configuration
export default defineConfig({
build: {
rollupOptions: {
external: ['jquery', 'bootstrap'],
output: {
globals: {
jquery: 'jQuery',
bootstrap: 'bootstrap'
}
}
}
}
});
```
```html
<!-- Load popular libraries from CDN -->
<script src="https://cdn.jsdelivr.net/npm/jquery@3.6.1/dist/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.6/dist/js/bootstrap.bundle.min.js"></script>
```
---
## Runtime Performance
### Efficient DOM Manipulation
#### Batch DOM Updates
```javascript
// โŒ Bad - multiple reflows
function updateMultipleElements(data) {
data.forEach(item => {
const element = document.getElementById(item.id);
element.style.width = item.width + 'px';
element.style.height = item.height + 'px';
element.textContent = item.text;
});
}
// โœ… Good - single reflow
function updateMultipleElements(data) {
const fragment = document.createDocumentFragment();
data.forEach(item => {
const element = document.getElementById(item.id).cloneNode(true);
element.style.width = item.width + 'px';
element.style.height = item.height + 'px';
element.textContent = item.text;
fragment.appendChild(element);
});
document.body.appendChild(fragment);
}
```
#### Event Delegation
```javascript
// โŒ Bad - multiple event listeners
document.querySelectorAll('.btn').forEach(btn => {
btn.addEventListener('click', handleClick);
});
// โœ… Good - single delegated listener
document.addEventListener('click', function(e) {
if (e.target.classList.contains('btn')) {
handleClick(e);
}
});
```
### Memory Management
#### Cleanup Event Listeners
```javascript
class Component {
constructor(element) {
this.element = element;
this.handleClick = this.handleClick.bind(this);
this.element.addEventListener('click', this.handleClick);
}
destroy() {
// Clean up event listeners
this.element.removeEventListener('click', this.handleClick);
this.element = null;
}
handleClick(e) {
// Handle click
}
}
```
#### Debounce Expensive Operations
```javascript
function debounce(func, wait) {
let timeout;
return function executedFunction(...args) {
const later = () => {
clearTimeout(timeout);
func(...args);
};
clearTimeout(timeout);
timeout = setTimeout(later, wait);
};
}
// Usage for search
const debouncedSearch = debounce(performSearch, 300);
document.getElementById('search').addEventListener('input', debouncedSearch);
```
---
## Monitoring and Analysis
### Performance Monitoring
#### Core Web Vitals
```javascript
// Monitor Core Web Vitals
import {getCLS, getFID, getFCP, getLCP, getTTFB} from 'web-vitals';
function sendToAnalytics(metric) {
// Send to your analytics service
console.log(metric);
}
getCLS(sendToAnalytics);
getFID(sendToAnalytics);
getFCP(sendToAnalytics);
getLCP(sendToAnalytics);
getTTFB(sendToAnalytics);
```
#### Performance Observer
```javascript
// Monitor long tasks
const observer = new PerformanceObserver((list) => {
for (const entry of list.getEntries()) {
console.log('Long task detected:', entry);
}
});
observer.observe({entryTypes: ['longtask']});
// Monitor resource loading
const resourceObserver = new PerformanceObserver((list) => {
for (const entry of list.getEntries()) {
if (entry.duration > 1000) {
console.log('Slow resource:', entry.name, entry.duration);
}
}
});
resourceObserver.observe({entryTypes: ['resource']});
```
### Bundle Analysis
#### Webpack Bundle Analyzer
```bash
# Analyze your bundles
npm run build:analyze
```
```javascript
// scripts/analyze.js
import { BundleAnalyzerPlugin } from 'webpack-bundle-analyzer';
export default defineConfig({
plugins: [
process.env.ANALYZE && new BundleAnalyzerPlugin()
].filter(Boolean)
});
```
#### Lighthouse CI
```yaml
# .github/workflows/lighthouse.yml
name: Lighthouse CI
on: [push]
jobs:
lighthouse:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Use Node.js
uses: actions/setup-node@v2
with:
node-version: '16'
- run: npm install
- run: npm run build
- name: Run Lighthouse CI
uses: treosh/lighthouse-ci-action@v8
with:
configPath: './lighthouserc.json'
```
---
## Performance Checklist
### Development Phase
- [ ] **Code Splitting**: Implement route-based and component-based splitting
- [ ] **Tree Shaking**: Import only needed functions and components
- [ ] **Module Loading**: Use dynamic imports for non-critical code
- [ ] **Bundle Analysis**: Regularly analyze bundle sizes
- [ ] **Dead Code**: Remove unused CSS and JavaScript
### Asset Optimization
- [ ] **Images**: Optimize, use WebP format, implement lazy loading
- [ ] **Fonts**: Subset fonts, use font-display: swap
- [ ] **Icons**: Use icon fonts or SVG sprites
- [ ] **Compression**: Enable gzip/brotli compression
- [ ] **Minification**: Minify CSS, JavaScript, and HTML
### Caching Strategy
- [ ] **Browser Caching**: Set appropriate cache headers
- [ ] **CDN**: Use CDN for static assets
- [ ] **Service Worker**: Implement for offline functionality
- [ ] **Versioning**: Use file hashing for cache busting
### Runtime Performance
- [ ] **Event Delegation**: Use for dynamic content
- [ ] **Debouncing**: Implement for expensive operations
- [ ] **Memory Leaks**: Clean up event listeners and timers
- [ ] **DOM Manipulation**: Batch updates and use DocumentFragment
### Monitoring
- [ ] **Core Web Vitals**: Monitor LCP, FID, CLS
- [ ] **Performance API**: Track loading times
- [ ] **Error Tracking**: Monitor JavaScript errors
- [ ] **User Experience**: Track real user metrics
---
## Advanced Optimization Techniques
### Preloading Strategies
#### Module Preloading
```html
<!-- Preload critical modules -->
<link rel="modulepreload" href="/assets/vendor-core.js">
<link rel="modulepreload" href="/assets/main-core.js">
<!-- Prefetch likely-needed modules -->
<link rel="prefetch" href="/assets/vendor-charts.js">
<link rel="prefetch" href="/assets/vendor-forms.js">
```
#### Predictive Loading
```javascript
// Preload modules based on user behavior
const observeNavigation = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
const href = entry.target.getAttribute('href');
// Preload likely modules for the target page
if (href.includes('charts')) {
import('./modules/charts.js');
} else if (href.includes('forms')) {
import('./modules/forms.js');
}
}
});
});
// Observe navigation links
document.querySelectorAll('a[href]').forEach(link => {
observeNavigation.observe(link);
});
```
### Critical Path Optimization
#### Critical CSS Inlining
```html
<style>
/* Inline critical CSS for above-the-fold content */
.header, .sidebar, .main-content { /* critical styles */ }
</style>
<!-- Load full CSS asynchronously -->
<link rel="preload" href="/assets/main.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
```
#### Resource Hints
```html
<!-- DNS prefetch for external resources -->
<link rel="dns-prefetch" href="//fonts.googleapis.com">
<link rel="dns-prefetch" href="//cdn.jsdelivr.net">
<!-- Preconnect to critical third-party origins -->
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
```
---
## Next Steps
- **[Deployment Guide]({{ site.baseurl }}/docs/deployment/)** - Deploy optimized builds
- **[Monitoring Guide]({{ site.baseurl }}/docs/monitoring/)** - Set up performance monitoring
- **[Troubleshooting]({{ site.baseurl }}/docs/troubleshooting/)** - Solve performance issues
---
{: .highlight }
๐Ÿ’ก **Pro Tip**: Use the `npm run optimize` command to analyze your current bundle and get personalized optimization recommendations based on your specific usage patterns.

7
package-lock.json generated
View File

@ -24,7 +24,6 @@
"echarts": "^5.6.0",
"fastclick": "^1.0.6",
"flot": "^4.2.6",
"gauge.js": "^0.2.1",
"gaugeJS": "^1.3.9",
"icheck": "^1.0.2",
"ion-rangeslider": "^2.3.1",
@ -1582,12 +1581,6 @@
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
},
"node_modules/gauge.js": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/gauge.js/-/gauge.js-0.2.1.tgz",
"integrity": "sha512-kkpKXyL5uKg1wdU9q6XQ67s2klhH4Cuw0NzU5rCvMHqRy70MB4w/6MUk3Y22+IjJJ9hERFkqLhi3iafjtmcvFg==",
"license": "MIT"
},
"node_modules/gaugeJS": {
"version": "1.3.9",
"resolved": "https://registry.npmjs.org/gaugeJS/-/gaugeJS-1.3.9.tgz",

View File

@ -55,7 +55,6 @@
"echarts": "^5.6.0",
"fastclick": "^1.0.6",
"flot": "^4.2.6",
"gauge.js": "^0.2.1",
"gaugeJS": "^1.3.9",
"icheck": "^1.0.2",
"ion-rangeslider": "^2.3.1",

View File

@ -49,9 +49,10 @@
<ul class="nav side-menu">
<li><a><i class="fas fa-home"></i> Home <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="index.html">Dashboard</a></li>
<li><a href="index2.html">Dashboard2</a></li>
<li><a href="index3.html">Dashboard3</a></li>
<li><a href="index.html">Dashboard 1</a></li>
<li><a href="index2.html">Dashboard 2</a></li>
<li><a href="index3.html">Dashboard 3</a></li><li><a href="index4.html">Dashboard 4</a></li>
<li><a href="index3.html">Dashboard 3</a></li>
</ul>
</li>
<li><a><i class="fas fa-edit"></i> Forms <span class="fas fa-chevron-down"></span></a>

View File

@ -42,9 +42,10 @@
<ul class="nav side-menu">
<li><a><i class="fas fa-home"></i> Home <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="index.html">Dashboard</a></li>
<li><a href="index2.html">Dashboard2</a></li>
<li><a href="index3.html">Dashboard3</a></li>
<li><a href="index.html">Dashboard 1</a></li>
<li><a href="index2.html">Dashboard 2</a></li>
<li><a href="index3.html">Dashboard 3</a></li><li><a href="index4.html">Dashboard 4</a></li>
<li><a href="index3.html">Dashboard 3</a></li>
</ul>
</li>
<li><a><i class="fas fa-edit"></i> Forms <span class="fas fa-chevron-down"></span></a>

View File

@ -42,9 +42,10 @@
<ul class="nav side-menu">
<li><a><i class="fas fa-home"></i> Home <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="index.html">Dashboard</a></li>
<li><a href="index2.html">Dashboard2</a></li>
<li><a href="index3.html">Dashboard3</a></li>
<li><a href="index.html">Dashboard 1</a></li>
<li><a href="index2.html">Dashboard 2</a></li>
<li><a href="index3.html">Dashboard 3</a></li><li><a href="index4.html">Dashboard 4</a></li>
<li><a href="index3.html">Dashboard 3</a></li>
</ul>
</li>
<li><a><i class="fas fa-edit"></i> Forms <span class="fas fa-chevron-down"></span></a>

View File

@ -43,9 +43,10 @@
<ul class="nav side-menu">
<li><a><i class="fas fa-home"></i> Home <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="index.html">Dashboard</a></li>
<li><a href="index2.html">Dashboard2</a></li>
<li><a href="index3.html">Dashboard3</a></li>
<li><a href="index.html">Dashboard 1</a></li>
<li><a href="index2.html">Dashboard 2</a></li>
<li><a href="index3.html">Dashboard 3</a></li><li><a href="index4.html">Dashboard 4</a></li>
<li><a href="index3.html">Dashboard 3</a></li>
</ul>
</li>
<li><a><i class="fas fa-edit"></i> Forms <span class="fas fa-chevron-down"></span></a>

View File

@ -43,9 +43,10 @@
<ul class="nav side-menu">
<li><a><i class="fas fa-home"></i> Home <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="index.html">Dashboard</a></li>
<li><a href="index2.html">Dashboard2</a></li>
<li><a href="index3.html">Dashboard3</a></li>
<li><a href="index.html">Dashboard 1</a></li>
<li><a href="index2.html">Dashboard 2</a></li>
<li><a href="index3.html">Dashboard 3</a></li><li><a href="index4.html">Dashboard 4</a></li>
<li><a href="index3.html">Dashboard 3</a></li>
</ul>
</li>
<li><a><i class="fas fa-edit"></i> Forms <span class="fas fa-chevron-down"></span></a>

View File

@ -43,9 +43,12 @@
<ul class="nav side-menu">
<li><a><i class="fas fa-home"></i> Home <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="index.html">Dashboard</a></li>
<li><a href="index2.html">Dashboard2</a></li>
<li><a href="index3.html">Dashboard3</a></li>
<li><a href="index.html">Dashboard 1</a></li>
<li><a href="index2.html">Dashboard 2</a></li>
<li><a href="index3.html">Dashboard 3</a></li>
<li><a href="index4.html">Dashboard 4</a></li>
<li><a href="index3.html">Dashboard 3</a></li>
<li><a href="index3.html">Dashboard 3</a></li>
</ul>
</li>
<li><a><i class="fas fa-edit"></i> Forms <span class="fas fa-chevron-down"></span></a>
@ -574,32 +577,6 @@
</div>
</div>
</div>
<div class="col-md-4 col-sm-4">
<div class="x_panel">
<div class="x_title">
<h2>Gauge</h2>
<ul class="nav navbar-right panel_toolbox">
<li><a class="collapse-link"><i class="fas fa-chevron-up"></i></a>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-bs-toggle="dropdown" role="button" aria-expanded="false"><i class="fas fa-wrench"></i></a>
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
<a class="dropdown-item" href="#">Settings 1</a>
<a class="dropdown-item" href="#">Settings 2</a>
</div>
</li>
<li><a class="btn-close-link"><i class="fas fa-times"></i></a>
</li>
</ul>
<div class="clearfix"></div>
</div>
<div class="x_content">
<div id="echart_gauge" style="height:370px;"></div>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@ -43,9 +43,10 @@
<ul class="nav side-menu">
<li><a><i class="fas fa-home"></i> Home <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="index.html">Dashboard</a></li>
<li><a href="index2.html">Dashboard2</a></li>
<li><a href="index3.html">Dashboard3</a></li>
<li><a href="index.html">Dashboard 1</a></li>
<li><a href="index2.html">Dashboard 2</a></li>
<li><a href="index3.html">Dashboard 3</a></li><li><a href="index4.html">Dashboard 4</a></li>
<li><a href="index3.html">Dashboard 3</a></li>
</ul>
</li>
<li><a><i class="fas fa-edit"></i> Forms <span class="fas fa-chevron-down"></span></a>

View File

@ -43,9 +43,10 @@
<ul class="nav side-menu">
<li><a><i class="fas fa-home"></i> Home <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="index.html">Dashboard</a></li>
<li><a href="index2.html">Dashboard2</a></li>
<li><a href="index3.html">Dashboard3</a></li>
<li><a href="index.html">Dashboard 1</a></li>
<li><a href="index2.html">Dashboard 2</a></li>
<li><a href="index3.html">Dashboard 3</a></li><li><a href="index4.html">Dashboard 4</a></li>
<li><a href="index3.html">Dashboard 3</a></li>
</ul>
</li>
<li><a><i class="fas fa-edit"></i> Forms <span class="fas fa-chevron-down"></span></a>

View File

@ -43,9 +43,10 @@
<ul class="nav side-menu">
<li><a><i class="fas fa-home"></i> Home <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="index.html">Dashboard</a></li>
<li><a href="index2.html">Dashboard2</a></li>
<li><a href="index3.html">Dashboard3</a></li>
<li><a href="index.html">Dashboard 1</a></li>
<li><a href="index2.html">Dashboard 2</a></li>
<li><a href="index3.html">Dashboard 3</a></li><li><a href="index4.html">Dashboard 4</a></li>
<li><a href="index3.html">Dashboard 3</a></li>
</ul>
</li>
<li><a><i class="fas fa-edit"></i> Forms <span class="fas fa-chevron-down"></span></a>

View File

@ -43,9 +43,10 @@
<ul class="nav side-menu">
<li><a><i class="fas fa-home"></i> Home <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="index.html">Dashboard</a></li>
<li><a href="index2.html">Dashboard2</a></li>
<li><a href="index3.html">Dashboard3</a></li>
<li><a href="index.html">Dashboard 1</a></li>
<li><a href="index2.html">Dashboard 2</a></li>
<li><a href="index3.html">Dashboard 3</a></li><li><a href="index4.html">Dashboard 4</a></li>
<li><a href="index3.html">Dashboard 3</a></li>
</ul>
</li>
<li><a><i class="fas fa-edit"></i> Forms <span class="fas fa-chevron-down"></span></a>

View File

@ -44,9 +44,10 @@
<ul class="nav side-menu">
<li><a><i class="fas fa-home"></i> Home <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="index.html">Dashboard</a></li>
<li><a href="index2.html">Dashboard2</a></li>
<li><a href="index3.html">Dashboard3</a></li>
<li><a href="index.html">Dashboard 1</a></li>
<li><a href="index2.html">Dashboard 2</a></li>
<li><a href="index3.html">Dashboard 3</a></li><li><a href="index4.html">Dashboard 4</a></li>
<li><a href="index3.html">Dashboard 3</a></li>
</ul>
</li>
<li><a><i class="fas fa-edit"></i> Forms <span class="fas fa-chevron-down"></span></a>

View File

@ -44,9 +44,10 @@
<ul class="nav side-menu">
<li><a><i class="fas fa-home"></i> Home <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="index.html">Dashboard</a></li>
<li><a href="index2.html">Dashboard2</a></li>
<li><a href="index3.html">Dashboard3</a></li>
<li><a href="index.html">Dashboard 1</a></li>
<li><a href="index2.html">Dashboard 2</a></li>
<li><a href="index3.html">Dashboard 3</a></li><li><a href="index4.html">Dashboard 4</a></li>
<li><a href="index3.html">Dashboard 3</a></li>
</ul>
</li>
<li><a><i class="fas fa-edit"></i> Forms <span class="fas fa-chevron-down"></span></a>

View File

@ -44,9 +44,10 @@
<ul class="nav side-menu">
<li><a><i class="fas fa-home"></i> Home <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="index.html">Dashboard</a></li>
<li><a href="index2.html">Dashboard2</a></li>
<li><a href="index3.html">Dashboard3</a></li>
<li><a href="index.html">Dashboard 1</a></li>
<li><a href="index2.html">Dashboard 2</a></li>
<li><a href="index3.html">Dashboard 3</a></li><li><a href="index4.html">Dashboard 4</a></li>
<li><a href="index3.html">Dashboard 3</a></li>
</ul>
</li>
<li><a><i class="fas fa-edit"></i> Forms <span class="fas fa-chevron-down"></span></a>

View File

@ -43,9 +43,10 @@
<ul class="nav side-menu">
<li><a><i class="fas fa-home"></i> Home <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="index.html">Dashboard</a></li>
<li><a href="index2.html">Dashboard2</a></li>
<li><a href="index3.html">Dashboard3</a></li>
<li><a href="index.html">Dashboard 1</a></li>
<li><a href="index2.html">Dashboard 2</a></li>
<li><a href="index3.html">Dashboard 3</a></li><li><a href="index4.html">Dashboard 4</a></li>
<li><a href="index3.html">Dashboard 3</a></li>
</ul>
</li>
<li><a><i class="fas fa-edit"></i> Forms <span class="fas fa-chevron-down"></span></a>

View File

@ -44,9 +44,10 @@
<ul class="nav side-menu">
<li><a><i class="fas fa-home"></i> Home <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="index.html">Dashboard</a></li>
<li><a href="index2.html">Dashboard2</a></li>
<li><a href="index3.html">Dashboard3</a></li>
<li><a href="index.html">Dashboard 1</a></li>
<li><a href="index2.html">Dashboard 2</a></li>
<li><a href="index3.html">Dashboard 3</a></li><li><a href="index4.html">Dashboard 4</a></li>
<li><a href="index3.html">Dashboard 3</a></li>
</ul>
</li>
<li><a><i class="fas fa-edit"></i> Forms <span class="fas fa-chevron-down"></span></a>

View File

@ -48,9 +48,10 @@
<ul class="nav side-menu">
<li><a><i class="fas fa-home"></i> Home <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="index.html">Dashboard</a></li>
<li><a href="index2.html">Dashboard2</a></li>
<li><a href="index3.html">Dashboard3</a></li>
<li><a href="index.html">Dashboard 1</a></li>
<li><a href="index2.html">Dashboard 2</a></li>
<li><a href="index3.html">Dashboard 3</a></li><li><a href="index4.html">Dashboard 4</a></li>
<li><a href="index3.html">Dashboard 3</a></li>
</ul>
</li>
<li><a><i class="fas fa-edit"></i> Forms <span class="fas fa-chevron-down"></span></a>

View File

@ -48,9 +48,10 @@
<ul class="nav side-menu">
<li><a><i class="fas fa-home"></i> Home <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="index.html">Dashboard</a></li>
<li><a href="index2.html">Dashboard2</a></li>
<li><a href="index3.html">Dashboard3</a></li>
<li><a href="index.html">Dashboard 1</a></li>
<li><a href="index2.html">Dashboard 2</a></li>
<li><a href="index3.html">Dashboard 3</a></li><li><a href="index4.html">Dashboard 4</a></li>
<li><a href="index3.html">Dashboard 3</a></li>
</ul>
</li>
<li><a><i class="fas fa-edit"></i> Forms <span class="fas fa-chevron-down"></span></a>

View File

@ -49,9 +49,10 @@
<ul class="nav side-menu">
<li><a><i class="fas fa-home"></i> Home <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="index.html">Dashboard</a></li>
<li><a href="index2.html">Dashboard2</a></li>
<li><a href="index3.html">Dashboard3</a></li>
<li><a href="index.html">Dashboard 1</a></li>
<li><a href="index2.html">Dashboard 2</a></li>
<li><a href="index3.html">Dashboard 3</a></li><li><a href="index4.html">Dashboard 4</a></li>
<li><a href="index3.html">Dashboard 3</a></li>
</ul>
</li>
<li><a><i class="fas fa-edit"></i> Forms <span class="fas fa-chevron-down"></span></a>

View File

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" href="images/favicon.ico" type="image/ico" />
<title>Gentelella Alela!</title>
<title>Dashboard 1 - Gentelella</title>
@ -48,9 +48,10 @@
<ul class="nav side-menu">
<li><a><i class="fas fa-home"></i> Home <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="index.html">Dashboard</a></li>
<li><a href="index2.html">Dashboard2</a></li>
<li><a href="index3.html">Dashboard3</a></li>
<li><a href="index.html">Dashboard 1</a></li>
<li><a href="index2.html">Dashboard 2</a></li>
<li><a href="index3.html">Dashboard 3</a></li>
<li><a href="index4.html">Dashboard 4</a></li>
</ul>
</li>
<li><a><i class="fas fa-edit"></i> Forms <span class="fas fa-chevron-down"></span></a>
@ -261,39 +262,63 @@
<div class="right_col" role="main">
<!-- top tiles -->
<div class="row">
<div class="tile_count">
<div class="col-md-2 col-sm-4 tile_stats_count">
<span class="count_top"><i class="fa fa-user"></i> Total Users</span>
<div class="count">2500</div>
<span class="count_bottom"><i class="green">4% </i> From last Week</span>
</div>
<div class="col-md-2 col-sm-4 tile_stats_count">
<span class="count_top"><i class="fa fa-clock-o"></i> Average Time</span>
<div class="count">123.50</div>
<span class="count_bottom"><i class="green"><i class="fa fa-sort-asc"></i>3% </i> From last Week</span>
</div>
<div class="col-md-2 col-sm-4 tile_stats_count">
<span class="count_top"><i class="fa fa-user"></i> Total Males</span>
<div class="count green">2,500</div>
<span class="count_bottom"><i class="green"><i class="fa fa-sort-asc"></i>34% </i> From last Week</span>
</div>
<div class="col-md-2 col-sm-4 tile_stats_count">
<span class="count_top"><i class="fa fa-user"></i> Total Females</span>
<div class="count">4,567</div>
<span class="count_bottom"><i class="red"><i class="fa fa-sort-desc"></i>12% </i> From last Week</span>
</div>
<div class="col-md-2 col-sm-4 tile_stats_count">
<span class="count_top"><i class="fa fa-user"></i> Total Collections</span>
<div class="count">2,315</div>
<span class="count_bottom"><i class="green"><i class="fa fa-sort-asc"></i>34% </i> From last Week</span>
</div>
<div class="col-md-2 col-sm-4 tile_stats_count">
<span class="count_top"><i class="fa fa-user"></i> Total Connections</span>
<div class="count">7,325</div>
<span class="count_bottom"><i class="green"><i class="fa fa-sort-asc"></i>34% </i> From last Week</span>
<div class="tile_count" style="display: flex; flex-wrap: wrap; gap: 20px; margin-bottom: 30px; width: 100%;">
<div class="col-md-2 col-sm-4 col-xs-6 tile_stats_count" style="flex: 1; min-width: 180px; height: 120px; display: flex; flex-direction: column; justify-content: center; background: #fff; border: 1px solid #e6e9ed; border-radius: 5px; padding: 15px; box-shadow: 0 1px 3px rgba(0,0,0,0.12);">
<span class="count_top" style="display: flex; align-items: center; margin-bottom: 8px;">
<i class="fas fa-users" style="color: #3498db; font-size: 32px; margin-right: 12px;"></i>
<div>
<div class="count" style="font-size: 24px; font-weight: bold; color: #34495e; line-height: 1;">2,500</div>
<span class="count_bottom" style="font-size: 12px; color: #7f8c8d; text-transform: uppercase;">Total Users</span>
</div>
</span>
</div>
<div class="col-md-2 col-sm-4 col-xs-6 tile_stats_count" style="flex: 1; min-width: 180px; height: 120px; display: flex; flex-direction: column; justify-content: center; background: #fff; border: 1px solid #e6e9ed; border-radius: 5px; padding: 15px; box-shadow: 0 1px 3px rgba(0,0,0,0.12);">
<span class="count_top" style="display: flex; align-items: center; margin-bottom: 8px;">
<i class="fas fa-clock" style="color: #e74c3c; font-size: 32px; margin-right: 12px;"></i>
<div>
<div class="count" style="font-size: 24px; font-weight: bold; color: #34495e; line-height: 1;">123.5<small>min</small></div>
<span class="count_bottom" style="font-size: 12px; color: #7f8c8d; text-transform: uppercase;">Average Time</span>
</div>
</span>
</div>
<div class="col-md-2 col-sm-4 col-xs-6 tile_stats_count" style="flex: 1; min-width: 180px; height: 120px; display: flex; flex-direction: column; justify-content: center; background: #fff; border: 1px solid #e6e9ed; border-radius: 5px; padding: 15px; box-shadow: 0 1px 3px rgba(0,0,0,0.12);">
<span class="count_top" style="display: flex; align-items: center; margin-bottom: 8px;">
<i class="fas fa-shopping-cart" style="color: #f39c12; font-size: 32px; margin-right: 12px;"></i>
<div>
<div class="count" style="font-size: 24px; font-weight: bold; color: #34495e; line-height: 1;">1,240</div>
<span class="count_bottom" style="font-size: 12px; color: #7f8c8d; text-transform: uppercase;">Total Orders</span>
</div>
</span>
</div>
<div class="col-md-2 col-sm-4 col-xs-6 tile_stats_count" style="flex: 1; min-width: 180px; height: 120px; display: flex; flex-direction: column; justify-content: center; background: #fff; border: 1px solid #e6e9ed; border-radius: 5px; padding: 15px; box-shadow: 0 1px 3px rgba(0,0,0,0.12);">
<span class="count_top" style="display: flex; align-items: center; margin-bottom: 8px;">
<i class="fas fa-dollar-sign" style="color: #2ecc71; font-size: 32px; margin-right: 12px;"></i>
<div>
<div class="count" style="font-size: 24px; font-weight: bold; color: #34495e; line-height: 1;">$24,567</div>
<span class="count_bottom" style="font-size: 12px; color: #7f8c8d; text-transform: uppercase;">Total Revenue</span>
</div>
</span>
</div>
<div class="col-md-2 col-sm-4 col-xs-6 tile_stats_count" style="flex: 1; min-width: 180px; height: 120px; display: flex; flex-direction: column; justify-content: center; background: #fff; border: 1px solid #e6e9ed; border-radius: 5px; padding: 15px; box-shadow: 0 1px 3px rgba(0,0,0,0.12);">
<span class="count_top" style="display: flex; align-items: center; margin-bottom: 8px;">
<i class="fas fa-chart-line" style="color: #9b59b6; font-size: 32px; margin-right: 12px;"></i>
<div>
<div class="count" style="font-size: 24px; font-weight: bold; color: #34495e; line-height: 1;">2,315</div>
<span class="count_bottom" style="font-size: 12px; color: #7f8c8d; text-transform: uppercase;">Conversions</span>
</div>
</span>
</div>
<div class="col-md-2 col-sm-4 col-xs-6 tile_stats_count" style="flex: 1; min-width: 180px; height: 120px; display: flex; flex-direction: column; justify-content: center; background: #fff; border: 1px solid #e6e9ed; border-radius: 5px; padding: 15px; box-shadow: 0 1px 3px rgba(0,0,0,0.12);">
<span class="count_top" style="display: flex; align-items: center; margin-bottom: 8px;">
<i class="fas fa-eye" style="color: #1abc9c; font-size: 32px; margin-right: 12px;"></i>
<div>
<div class="count" style="font-size: 24px; font-weight: bold; color: #34495e; line-height: 1;">47,325</div>
<span class="count_bottom" style="font-size: 12px; color: #7f8c8d; text-transform: uppercase;">Page Views</span>
</div>
</span>
</div>
</div>
</div>
</div>
<!-- /top tiles -->
<div class="row">
@ -606,10 +631,9 @@
<div class="sidebar-widget">
<h4>Profile Completion</h4>
<canvas width="150" height="80" id="chart_gauge_01" class="" style="width: 160px; height: 100px;"></canvas>
<div id="profile_completion_gauge" style="width:160px;height:120px;margin:0 auto;"></div>
<div class="goal-wrapper">
<span id="gauge-text" class="gauge-value pull-left">0</span>
<span class="gauge-value pull-left">%</span>
<span class="goal-value pull-left">67%</span>
<span id="goal-text" class="goal-value pull-right">100%</span>
</div>
</div>
@ -643,18 +667,18 @@
</div>
<div class="x_content">
<div class="dashboard-widget-content">
<ul class="list-unstyled timeline widget">
<div class="activities-scroll">
<ul class="list-unstyled timeline widget">
<li>
<div class="block">
<div class="block_content">
<h2 class="title">
<a>Who Needs Sundance When You've Got&nbsp;Crowdfunding?</a>
</h2>
<a><i class="fas fa-shopping-cart" style="color: #26B99A; margin-right: 8px;"></i>New Order Received</a>
</h2>
<div class="byline">
<span>13 hours ago</span> by <a>Jane Smith</a>
<span>2 minutes ago</span> by <a>Customer #12455</a>
</div>
<p class="excerpt">Film festivals used to be do-or-die moments for movie makers. They were where you met the producers that could fund your project, and if the buyers liked your flick, they'd pay to Fast-forward andโ€ฆ <a>Read&nbsp;More</a>
<p class="excerpt">Order #ORD-12455 for $2,350.00 has been placed. Customer ordered premium package with expedited shipping. <a>View Details</a>
</p>
</div>
</div>
@ -663,12 +687,12 @@
<div class="block">
<div class="block_content">
<h2 class="title">
<a>Who Needs Sundance When You've Got&nbsp;Crowdfunding?</a>
</h2>
<a><i class="fas fa-user-plus" style="color: #3498DB; margin-right: 8px;"></i>New User Registration</a>
</h2>
<div class="byline">
<span>13 hours ago</span> by <a>Jane Smith</a>
<span>15 minutes ago</span> by <a>john.doe@example.com</a>
</div>
<p class="excerpt">Film festivals used to be do-or-die moments for movie makers. They were where you met the producers that could fund your project, and if the buyers liked your flick, they'd pay to Fast-forward andโ€ฆ <a>Read&nbsp;More</a>
<p class="excerpt">New user registered with premium membership. Account verified and welcome email sent successfully. <a>View Profile</a>
</p>
</div>
</div>
@ -677,12 +701,12 @@
<div class="block">
<div class="block_content">
<h2 class="title">
<a>Who Needs Sundance When You've Got&nbsp;Crowdfunding?</a>
</h2>
<a><i class="fas fa-credit-card" style="color: #F39C12; margin-right: 8px;"></i>Payment Processed</a>
</h2>
<div class="byline">
<span>13 hours ago</span> by <a>Jane Smith</a>
<span>32 minutes ago</span> by <a>Payment Gateway</a>
</div>
<p class="excerpt">Film festivals used to be do-or-die moments for movie makers. They were where you met the producers that could fund your project, and if the buyers liked your flick, they'd pay to Fast-forward andโ€ฆ <a>Read&nbsp;More</a>
<p class="excerpt">Payment of $1,250.00 successfully processed for Order #ORD-12453. Funds have been deposited to merchant account. <a>View Transaction</a>
</p>
</div>
</div>
@ -691,26 +715,298 @@
<div class="block">
<div class="block_content">
<h2 class="title">
<a>Who Needs Sundance When You've Got&nbsp;Crowdfunding?</a>
</h2>
<a><i class="fas fa-star" style="color: #E74C3C; margin-right: 8px;"></i>Product Review Submitted</a>
</h2>
<div class="byline">
<span>13 hours ago</span> by <a>Jane Smith</a>
<span>1 hour ago</span> by <a>Sarah Johnson</a>
</div>
<p class="excerpt">Film festivals used to be do-or-die moments for movie makers. They were where you met the producers that could fund your project, and if the buyers liked your flick, they'd pay to Fast-forward andโ€ฆ <a>Read&nbsp;More</a>
<p class="excerpt">5-star review submitted for "Premium Wireless Headphones". Customer praised excellent sound quality and fast delivery. <a>Read Review</a>
</p>
</div>
</div>
</li>
</ul>
<li>
<div class="block">
<div class="block_content">
<h2 class="title">
<a><i class="fas fa-truck" style="color: #9B59B6; margin-right: 8px;"></i>Shipment Dispatched</a>
</h2>
<div class="byline">
<span>2 hours ago</span> by <a>Logistics Team</a>
</div>
<p class="excerpt">Order #ORD-12448 has been shipped via Express Delivery. Tracking number: EX123456789. Expected delivery: Tomorrow. <a>Track Package</a>
</p>
</div>
</div>
</li>
<li>
<div class="block">
<div class="block_content">
<h2 class="title">
<a><i class="fas fa-chart-line" style="color: #2ECC71; margin-right: 8px;"></i>Sales Milestone Achieved</a>
</h2>
<div class="byline">
<span>3 hours ago</span> by <a>System</a>
</div>
<p class="excerpt">Congratulations! Monthly sales target of $50,000 achieved with 5 days remaining. Current total: $52,450. <a>View Report</a>
</p>
</div>
</div>
</li>
<li>
<div class="block">
<div class="block_content">
<h2 class="title">
<a><i class="fas fa-exclamation-triangle" style="color: #E67E22; margin-right: 8px;"></i>Inventory Alert</a>
</h2>
<div class="byline">
<span>4 hours ago</span> by <a>Inventory System</a>
</div>
<p class="excerpt">Low stock alert: "Wireless Mouse Model X" has only 5 units remaining. Consider reordering to avoid stockouts. <a>Reorder Now</a>
</p>
</div>
</div>
</li>
</ul>
</div>
</div>
</div>
</div>
<!-- Sales Statistics Widget -->
<div class="x_panel" style="min-height: 450px;">
<div class="x_title">
<h2>Sales Statistics <small>Monthly overview</small></h2>
<ul class="nav navbar-right panel_toolbox">
<li><a class="collapse-link"><i class="fas fa-chevron-up"></i></a>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-bs-toggle="dropdown" role="button" aria-expanded="false"><i class="fas fa-wrench"></i></a>
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
<a class="dropdown-item" href="#">Settings 1</a>
<a class="dropdown-item" href="#">Settings 2</a>
</div>
</li>
<li><a class="btn-close-link"><i class="fas fa-times"></i></a>
</li>
</ul>
<div class="clearfix"></div>
</div>
<div class="x_content">
<!-- Chart Area -->
<div style="position: relative; height: 120px; margin-bottom: 20px;">
<svg viewBox="0 0 280 80" style="width: 100%; height: 100%;">
<defs>
<linearGradient id="salesGradient" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" style="stop-color:#26B99A;stop-opacity:0.3" />
<stop offset="100%" style="stop-color:#26B99A;stop-opacity:0.05" />
</linearGradient>
</defs>
<!-- Area under curve -->
<path d="M 20 60 Q 70 40 120 30 T 260 20 L 260 70 L 20 70 Z" fill="url(#salesGradient)"/>
<!-- Main line -->
<path d="M 20 60 Q 70 40 120 30 T 260 20" stroke="#26B99A" stroke-width="2.5" fill="none"/>
<!-- Data points -->
<circle cx="20" cy="60" r="3" fill="#26B99A"/>
<circle cx="70" cy="40" r="3" fill="#26B99A"/>
<circle cx="120" cy="30" r="4" fill="#26B99A"/>
<circle cx="180" cy="25" r="3" fill="#26B99A"/>
<circle cx="260" cy="20" r="3" fill="#26B99A"/>
</svg>
<!-- Floating info card -->
<div style="position: absolute; top: 5px; right: 10px; background: white; border: 1px solid #E6E9ED; border-radius: 5px; padding: 6px 10px; box-shadow: 0 1px 3px rgba(0,0,0,0.1);">
<div style="color: #73879C; font-size: 9px; margin-bottom: 2px;">March</div>
<div style="color: #2A3F54; font-size: 11px; font-weight: 600;">$45k profit</div>
</div>
</div>
<!-- Metrics Grid -->
<div class="row">
<!-- Weekly Sales -->
<div class="col-md-6 col-sm-6" style="margin-bottom: 10px;">
<div style="background: #f7f7f7; border: 1px solid #E6E9ED; border-radius: 3px; padding: 12px;">
<div style="display: flex; align-items: center; margin-bottom: 6px;">
<div style="display: flex; gap: 3px;">
<div style="width: 5px; height: 5px; background: #26B99A; border-radius: 1px;"></div>
<div style="width: 5px; height: 5px; background: #3498DB; border-radius: 1px;"></div>
<div style="width: 5px; height: 5px; background: #E74C3C; border-radius: 1px;"></div>
</div>
</div>
<h5 style="color: #2A3F54; font-size: 12px; font-weight: 600; margin: 0;">Weekly Sales</h5>
<p style="color: #73879C; font-size: 10px; margin: 3px 0 0;">$12.4k this week</p>
</div>
</div>
<!-- New Users -->
<div class="col-md-6 col-sm-6" style="margin-bottom: 10px;">
<div style="background: #f7f7f7; border: 1px solid #E6E9ED; border-radius: 3px; padding: 12px;">
<div style="display: flex; align-items: center; margin-bottom: 6px;">
<div style="width: 18px; height: 18px; background: rgba(52, 152, 219, 0.1); border-radius: 50%; display: flex; align-items: center; justify-content: center;">
<i class="fas fa-user-plus" style="color: #3498DB; font-size: 8px;"></i>
</div>
</div>
<h5 style="color: #2A3F54; font-size: 12px; font-weight: 600; margin: 0;">New Users</h5>
<p style="color: #73879C; font-size: 10px; margin: 3px 0 0;">+245 this month</p>
</div>
</div>
<!-- Item Orders -->
<div class="col-md-6 col-sm-6" style="margin-bottom: 10px;">
<div style="background: #f7f7f7; border: 1px solid #E6E9ED; border-radius: 3px; padding: 12px;">
<div style="display: flex; align-items: center; margin-bottom: 6px;">
<div style="width: 18px; height: 18px; background: rgba(243, 156, 18, 0.1); border-radius: 3px; display: flex; align-items: center; justify-content: center;">
<i class="fas fa-shopping-bag" style="color: #F39C12; font-size: 8px;"></i>
</div>
</div>
<h5 style="color: #2A3F54; font-size: 12px; font-weight: 600; margin: 0;">Item Orders</h5>
<p style="color: #73879C; font-size: 10px; margin: 3px 0 0;">1,240 orders</p>
</div>
</div>
<!-- Growth Rate -->
<div class="col-md-6 col-sm-6" style="margin-bottom: 10px;">
<div style="background: #f7f7f7; border: 1px solid #E6E9ED; border-radius: 3px; padding: 12px;">
<div style="display: flex; align-items: center; margin-bottom: 6px;">
<div style="width: 18px; height: 18px; background: rgba(38, 185, 154, 0.1); border-radius: 3px; display: flex; align-items: center; justify-content: center;">
<i class="fas fa-chart-line" style="color: #26B99A; font-size: 8px;"></i>
</div>
</div>
<h5 style="color: #2A3F54; font-size: 12px; font-weight: 600; margin: 0;">Growth Rate</h5>
<p style="color: #73879C; font-size: 10px; margin: 3px 0 0;">+18.2% growth</p>
</div>
</div>
</div>
</div>
</div>
<!-- End Sales Statistics Widget -->
</div>
<div class="col-md-8 col-sm-8">
<!-- Recent Orders Section -->
<div class="row">
<div class="col-md-12 col-sm-12">
<div class="x_panel">
<div class="x_title">
<h2>Recent Orders <small>Latest transactions</small></h2>
<ul class="nav navbar-right panel_toolbox">
<li><a class="collapse-link"><i class="fas fa-chevron-up"></i></a>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-bs-toggle="dropdown" role="button" aria-expanded="false"><i class="fas fa-wrench"></i></a>
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
<a class="dropdown-item" href="#">Settings 1</a>
<a class="dropdown-item" href="#">Settings 2</a>
</div>
</li>
<li><a class="btn-close-link"><i class="fas fa-times"></i></a>
</li>
</ul>
<div class="clearfix"></div>
</div>
<div class="x_content">
<div class="recent-orders-scroll">
<div class="table-responsive">
<table class="table table-striped jambo_table bulk_action">
<thead>
<tr class="headings">
<th class="column-title">Order ID</th>
<th class="column-title">Customer</th>
<th class="column-title">Product</th>
<th class="column-title">Amount</th>
<th class="column-title">Status</th>
<th class="column-title">Date</th>
<th class="column-title no-link last"><span class="nobr">Action</span></th>
</tr>
</thead>
<tbody>
<tr class="even pointer">
<td class=" "><strong>#ORD-12455</strong></td>
<td class=" ">John Smith</td>
<td class=" ">Premium Wireless Headphones</td>
<td class=" "><strong>$299.99</strong></td>
<td class=" "><span class="badge bg-success">Completed</span></td>
<td class=" ">Jan 15, 2024</td>
<td class=" last"><a href="#" class="btn btn-sm btn-primary">View</a></td>
</tr>
<tr class="odd pointer">
<td class=" "><strong>#ORD-12454</strong></td>
<td class=" ">Emily Johnson</td>
<td class=" ">Smart Watch Pro</td>
<td class=" "><strong>$899.99</strong></td>
<td class=" "><span class="badge bg-warning text-dark">Processing</span></td>
<td class=" ">Jan 15, 2024</td>
<td class=" last"><a href="#" class="btn btn-sm btn-primary">View</a></td>
</tr>
<tr class="even pointer">
<td class=" "><strong>#ORD-12453</strong></td>
<td class=" ">Michael Chen</td>
<td class=" ">Gaming Laptop Elite</td>
<td class=" "><strong>$1,899.99</strong></td>
<td class=" "><span class="badge bg-info">Shipped</span></td>
<td class=" ">Jan 14, 2024</td>
<td class=" last"><a href="#" class="btn btn-sm btn-primary">View</a></td>
</tr>
<tr class="odd pointer">
<td class=" "><strong>#ORD-12452</strong></td>
<td class=" ">Sarah Davis</td>
<td class=" ">Wireless Mouse Deluxe</td>
<td class=" "><strong>$79.99</strong></td>
<td class=" "><span class="badge bg-success">Completed</span></td>
<td class=" ">Jan 14, 2024</td>
<td class=" last"><a href="#" class="btn btn-sm btn-primary">View</a></td>
</tr>
<tr class="even pointer">
<td class=" "><strong>#ORD-12451</strong></td>
<td class=" ">Robert Wilson</td>
<td class=" ">4K Monitor Pro</td>
<td class=" "><strong>$649.99</strong></td>
<td class=" "><span class="badge bg-danger">Cancelled</span></td>
<td class=" ">Jan 13, 2024</td>
<td class=" last"><a href="#" class="btn btn-sm btn-primary">View</a></td>
</tr>
<tr class="odd pointer">
<td class=" "><strong>#ORD-12450</strong></td>
<td class=" ">Lisa Brown</td>
<td class=" ">Bluetooth Speaker Premium</td>
<td class=" "><strong>$199.99</strong></td>
<td class=" "><span class="badge bg-success">Completed</span></td>
<td class=" ">Jan 13, 2024</td>
<td class=" last"><a href="#" class="btn btn-sm btn-primary">View</a></td>
</tr>
<tr class="even pointer">
<td class=" "><strong>#ORD-12449</strong></td>
<td class=" ">David Garcia</td>
<td class=" ">Mechanical Keyboard RGB</td>
<td class=" "><strong>$159.99</strong></td>
<td class=" "><span class="badge bg-warning text-dark">Processing</span></td>
<td class=" ">Jan 12, 2024</td>
<td class=" last"><a href="#" class="btn btn-sm btn-primary">View</a></td>
</tr>
<tr class="odd pointer">
<td class=" "><strong>#ORD-12448</strong></td>
<td class=" ">Anna Martinez</td>
<td class=" ">Tablet Pro 12-inch</td>
<td class=" "><strong>$799.99</strong></td>
<td class=" "><span class="badge bg-info">Shipped</span></td>
<td class=" ">Jan 12, 2024</td>
<td class=" last"><a href="#" class="btn btn-sm btn-primary">View</a></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- /Recent Orders Section -->
<div class="row">

View File

@ -7,7 +7,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Gentelella Alela! | </title> <!-- Compiled CSS (includes Bootstrap, Font Awesome, and all vendor styles) -->
<title>Dashboard 2 - Gentelella</title> <!-- Compiled CSS (includes Bootstrap, Font Awesome, and all vendor styles) -->
<script type="module" src="/src/main-minimal.js"></script>
</head>
@ -43,9 +43,10 @@
<ul class="nav side-menu">
<li><a><i class="fas fa-home"></i> Home <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="index.html">Dashboard</a></li>
<li><a href="index2.html">Dashboard2</a></li>
<li><a href="index3.html">Dashboard3</a></li>
<li><a href="index.html">Dashboard 1</a></li>
<li><a href="index2.html">Dashboard 2</a></li>
<li><a href="index3.html">Dashboard 3</a></li>
<li><a href="index4.html">Dashboard 4</a></li>
</ul>
</li>
<li><a><i class="fas fa-edit"></i> Forms <span class="fas fa-chevron-down"></span></a>
@ -354,60 +355,98 @@
<a class="dropdown-item" href="#">Settings 2</a>
</div>
</li>
<li><a class="btn-close-link"><i class="fas fa-times"></i></a>
<li><a class="close-link"><i class="fas fa-times"></i></a>
</li>
</ul>
<div class="clearfix"></div>
</div>
<ul class="list-unstyled top_profiles scroll-view">
<ul class="list-unstyled top_profiles scroll-view page-index2-profiles">
<li class="media event">
<a class="pull-left border-aero profile_thumb">
<i class="fas fa-user aero"></i>
<img src="images/img.jpg" alt="User" class="profile_img">
</a>
<div class="d-flex-body">
<div class="media-body">
<a class="title" href="#">Sarah Johnson</a>
<p><strong>$4,850.</strong> Top Agent Sales</p>
<p><small>18 Sales Today</small></p>
<p> <small>18 Sales Today</small>
</p>
</div>
</li>
<li class="media event">
<a class="pull-left border-green profile_thumb">
<i class="fas fa-user green"></i>
<img src="images/user.png" alt="User" class="profile_img">
</a>
<div class="d-flex-body">
<div class="media-body">
<a class="title" href="#">Michael Chen</a>
<p><strong>$3,920.</strong> Senior Agent Sales</p>
<p><small>15 Sales Today</small></p>
<p> <small>15 Sales Today</small>
</p>
</div>
</li>
<li class="media event">
<a class="pull-left border-blue profile_thumb">
<i class="fas fa-user blue"></i>
<img src="images/picture.jpg" alt="User" class="profile_img">
</a>
<div class="d-flex-body">
<div class="media-body">
<a class="title" href="#">Emily Rodriguez</a>
<p><strong>$3,450.</strong> Agent Average Sales</p>
<p><small>12 Sales Today</small></p>
<p> <small>12 Sales Today</small>
</p>
</div>
</li>
<li class="media event">
<a class="pull-left border-red profile_thumb">
<i class="fas fa-user red"></i>
<img src="images/img.jpg" alt="User" class="profile_img">
</a>
<div class="d-flex-body">
<div class="media-body">
<a class="title" href="#">David Wilson</a>
<p><strong>$3,180.</strong> Agent Sales</p>
<p><small>10 Sales Today</small></p>
<p> <small>10 Sales Today</small>
</p>
</div>
</li>
<li class="media event">
<a class="pull-left border-purple profile_thumb">
<i class="fas fa-user purple"></i>
<img src="images/user.png" alt="User" class="profile_img">
</a>
<div class="d-flex-body">
<div class="media-body">
<a class="title" href="#">Amanda Foster</a>
<p><strong>$2,890.</strong> Agent Sales</p>
<p><small>9 Sales Today</small></p>
<p> <small>9 Sales Today</small>
</p>
</div>
</li>
<li class="media event">
<a class="pull-left border-aero profile_thumb">
<img src="images/picture.jpg" alt="User" class="profile_img">
</a>
<div class="media-body">
<a class="title" href="#">Jessica Martinez</a>
<p><strong>$2,750.</strong> Agent Sales</p>
<p> <small>9 Sales Today</small>
</p>
</div>
</li>
<li class="media event">
<a class="pull-left border-green profile_thumb">
<img src="images/img.jpg" alt="User" class="profile_img">
</a>
<div class="media-body">
<a class="title" href="#">Daniel Lee</a>
<p><strong>$2,610.</strong> Agent Sales</p>
<p> <small>8 Sales Today</small>
</p>
</div>
</li>
<li class="media event">
<a class="pull-left border-blue profile_thumb">
<img src="images/user.png" alt="User" class="profile_img">
</a>
<div class="media-body">
<a class="title" href="#">Laura Taylor</a>
<p><strong>$2,440.</strong> Agent Sales</p>
<p> <small>7 Sales Today</small>
</p>
</div>
</li>
</ul>
@ -442,28 +481,31 @@
<div class="clearfix"></div>
</div>
<div class="x_content">
<div class="row" style="border-bottom: 1px solid #E0E0E0; padding-bottom: 5px; margin-bottom: 5px;">
<div class="col-md-7" style="overflow:hidden;">
<span class="sparkline_one" style="height: 160px; padding: 10px 25px;"></span>
<h4 style="margin:18px">Weekly sales progress</h4>
<div class="row">
<!-- Weekly Sales Trend -->
<div class="col-md-8">
<h4>Weekly Sales Trend</h4>
<div id="weeklySalesChart" style="height: 300px;"></div>
</div>
<div class="col-md-5">
<div class="row" style="text-align: center;">
<div class="col-md-4">
<canvas class="canvasDoughnut" height="110" width="110" style="margin: 5px 10px 10px 0"></canvas>
<h4 style="margin:0; font-size: 14px;">Bounce Rate</h4>
</div>
<div class="col-md-4">
<canvas class="canvasDoughnut" height="110" width="110" style="margin: 5px 10px 10px 0"></canvas>
<h4 style="margin:0; font-size: 14px;">Conversion Rate</h4>
</div>
<div class="col-md-4">
<canvas class="canvasDoughnut" height="110" width="110" style="margin: 5px 10px 10px 0"></canvas>
<h4 style="margin:0; font-size: 14px;">Mobile Traffic</h4>
</div>
</div>
<!-- Sales Distribution -->
<div class="col-md-4">
<h4>Sales Distribution</h4>
<div id="salesDistributionChart" style="height: 300px;"></div>
</div>
</div>
<div class="row" style="margin-top: 20px;">
<!-- Daily Activity -->
<div class="col-md-6">
<h4>Daily Activity</h4>
<div id="dailyActivityChart" style="height: 300px;"></div>
</div>
<!-- Performance Metrics -->
<div class="col-md-6">
<h4>Performance Metrics</h4>
<div id="performanceMetricsChart" style="height: 300px;"></div>
</div>
</div>
</div>

983
production/index3.html Executable file โ†’ Normal file

File diff suppressed because it is too large Load Diff

473
production/index4.html Executable file
View File

@ -0,0 +1,473 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<!-- Meta, title, CSS, favicons, etc. -->
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Gentelella Alela! | Store Analytics</title> <!-- Compiled CSS (includes Bootstrap, Font Awesome, and all vendor styles) -->
<script type="module" src="/src/main-minimal.js"></script>
</head>
<body class="nav-md page-index4">
<div class="container body">
<div class="main_container">
<div class="col-md-3 left_col">
<div class="left_col scroll-view">
<div class="navbar nav_title" style="border: 0;">
<a href="index.html" class="site_title"><i class="fas fa-paw"></i> <span>Gentelella Alela!</span></a>
</div>
<div class="clearfix"></div>
<!-- menu profile quick info -->
<div class="profile clearfix">
<div class="profile_pic">
<img src="images/img.jpg" alt="..." class="img-circle profile_img">
</div>
<div class="profile_info">
<span>Welcome,</span>
<h2>John Doe</h2>
</div>
</div>
<!-- /menu profile quick info -->
<br />
<!-- sidebar menu -->
<div id="sidebar-menu" class="main_menu_side hidden-print main_menu">
<div class="menu_section">
<h3>General</h3>
<ul class="nav side-menu">
<li><a><i class="fas fa-home"></i> Home <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="index.html">Dashboard 1</a></li>
<li><a href="index2.html">Dashboard 2</a></li>
<li><a href="index3.html">Dashboard 3</a></li>
<li><a href="index4.html">Dashboard 4</a></li>
</ul>
</li>
<li><a><i class="fas fa-edit"></i> Forms <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="form.html">General Form</a></li>
<li><a href="form_advanced.html">Advanced Components</a></li>
<li><a href="form_validation.html">Form Validation</a></li>
<li><a href="form_wizards.html">Form Wizard</a></li>
<li><a href="form_upload.html">Form Upload</a></li>
<li><a href="form_buttons.html">Form Buttons</a></li>
</ul>
</li>
<li><a><i class="fas fa-desktop"></i> UI Elements <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="general_elements.html">General Elements</a></li>
<li><a href="media_gallery.html">Media Gallery</a></li>
<li><a href="typography.html">Typography</a></li>
<li><a href="icons.html">Icons</a></li>
<li><a href="glyphicons.html">Glyphicons</a></li>
<li><a href="widgets.html">Widgets</a></li>
<li><a href="invoice.html">Invoice</a></li>
<li><a href="inbox.html">Inbox</a></li>
<li><a href="calendar.html">Calendar</a></li>
</ul>
</li>
<li><a><i class="fas fa-table"></i> Tables <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="tables.html">Tables</a></li>
<li><a href="tables_dynamic.html">Table Dynamic</a></li>
</ul>
</li>
<li><a><i class="fas fa-chart-column"></i> Data Presentation <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="chartjs.html">Chart JS</a></li>
<li><a href="chartjs2.html">Chart JS2</a></li>
<li><a href="morisjs.html">Moris JS</a></li>
<li><a href="echarts.html">ECharts</a></li>
<li><a href="other_charts.html">Other Charts</a></li>
</ul>
</li>
<li><a><i class="fas fa-clone"></i>Layouts <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="fixed_sidebar.html">Fixed Sidebar</a></li>
<li><a href="fixed_footer.html">Fixed Footer</a></li>
</ul>
</li>
</ul>
</div>
<div class="menu_section">
<h3>Live On</h3>
<ul class="nav side-menu">
<li><a><i class="fas fa-bug"></i> Additional Pages <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="e_commerce.html">E-commerce</a></li>
<li><a href="projects.html">Projects</a></li>
<li><a href="project_detail.html">Project Detail</a></li>
<li><a href="contacts.html">Contacts</a></li>
<li><a href="profile.html">Profile</a></li>
</ul>
</li>
<li><a><i class="fas fa-window-restore"></i> Extras <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="page_403.html">403 Error</a></li>
<li><a href="page_404.html">404 Error</a></li>
<li><a href="page_500.html">500 Error</a></li>
<li><a href="plain_page.html">Plain Page</a></li>
<li><a href="login.html">Login Page</a></li>
<li><a href="pricing_tables.html">Pricing Tables</a></li>
</ul>
</li>
<li><a><i class="fas fa-sitemap"></i> Multilevel Menu <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="#level1_1">Level One</a>
<li><a>Level One<span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li class="sub_menu"><a href="level2.html">Level Two</a>
</li>
<li><a href="#level2_1">Level Two</a>
</li>
<li><a href="#level2_2">Level Two</a>
</li>
</ul>
</li>
<li><a href="#level1_2">Level One</a>
</li>
</ul>
</li>
<li><a href="javascript:void(0)"><i class="fas fa-laptop"></i> Landing Page <span class="label label-success pull-right">Coming Soon</span></a></li>
</ul>
</div>
</div>
<!-- /sidebar menu -->
<!-- /menu footer buttons -->
<div class="sidebar-footer hidden-small">
<a data-bs-toggle="tooltip" data-placement="top" title="Settings">
<span class="fas fa-cog" aria-hidden="true"></span>
</a>
<a data-bs-toggle="tooltip" data-placement="top" title="FullScreen">
<span class="fas fa-expand" aria-hidden="true"></span>
</a>
<a data-bs-toggle="tooltip" data-placement="top" title="Lock">
<span class="fas fa-eye-slash" aria-hidden="true"></span>
</a>
<a data-bs-toggle="tooltip" data-placement="top" title="Logout" href="login.html">
<span class="fas fa-power-off" aria-hidden="true"></span>
</a>
</div>
<!-- /menu footer buttons -->
</div>
</div>
<!-- top navigation -->
<div class="top_nav">
<div class="nav_menu">
<div class="nav toggle">
<a id="menu_toggle"><i class="fas fa-bars"></i></a>
</div>
<nav class="nav navbar-nav">
<ul class="navbar-right">
<li class="nav-item dropdown open" style="padding-left: 15px;">
<a href="javascript:;" class="user-profile dropdown-toggle" aria-haspopup="true" id="navbarDropdown" data-bs-toggle="dropdown" aria-expanded="false">
<img src="images/img.jpg" alt="">John Doe
</a>
<div class="dropdown-menu dropdown-usermenu pull-right" aria-labelledby="navbarDropdown">
<a class="dropdown-item" href="javascript:;"> Profile</a>
<a class="dropdown-item" href="javascript:;">
<span class="badge bg-red pull-right">50%</span>
<span>Settings</span>
</a>
<a class="dropdown-item" href="javascript:;">Help</a>
<a class="dropdown-item" href="login.html"><i class="fas fa-sign-out-alt pull-right"></i> Log Out</a>
</div>
</li>
<li role="presentation" class="nav-item dropdown open">
<a href="javascript:;" class="dropdown-toggle info-number" id="navbarDropdown1" data-bs-toggle="dropdown" aria-expanded="false">
<i class="fas fa-envelope"></i>
<span class="badge bg-green">6</span>
</a>
<ul class="dropdown-menu list-unstyled msg_list" role="menu" aria-labelledby="navbarDropdown1">
<li class="nav-item">
<a class="dropdown-item">
<span class="image"><img src="images/img.jpg" alt="Profile Image" /></span>
<span>
<span>John Smith</span>
<span class="time">3 mins ago</span>
</span>
<span class="message">
Film festivals used to be do-or-die moments for movie makers. They were where...
</span>
</a>
</li>
<li class="nav-item">
<a class="dropdown-item">
<span class="image"><img src="images/img.jpg" alt="Profile Image" /></span>
<span>
<span>John Smith</span>
<span class="time">3 mins ago</span>
</span>
<span class="message">
Film festivals used to be do-or-die moments for movie makers. They were where...
</span>
</a>
</li>
<li class="nav-item">
<a class="dropdown-item">
<span class="image"><img src="images/img.jpg" alt="Profile Image" /></span>
<span>
<span>John Smith</span>
<span class="time">3 mins ago</span>
</span>
<span class="message">
Film festivals used to be do-or-die moments for movie makers. They were where...
</span>
</a>
</li>
<li class="nav-item">
<a class="dropdown-item">
<span class="image"><img src="images/img.jpg" alt="Profile Image" /></span>
<span>
<span>John Smith</span>
<span class="time">3 mins ago</span>
</span>
<span class="message">
Film festivals used to be do-or-die moments for movie makers. They were where...
</span>
</a>
</li>
<li class="nav-item">
<div class="text-center">
<a class="dropdown-item">
<strong>See All Alerts</strong>
<i class="fas fa-angle-right"></i>
</a>
</div>
</li>
</ul>
</li>
</ul>
</nav>
</div>
</div>
<!-- /top navigation -->
<!-- page content -->
<div class="right_col" role="main">
<!-- top tiles -->
<div class="row" style="display: inline-block;" >
<div class="tile_count">
<div class="col-md-3 col-sm-4 tile_stats_count">
<span class="count_top"><i class="fas fa-dollar-sign"></i> Top Sale</span>
<div class="count">$8,450.00</div>
<span class="count_bottom"><i class="green"><i class="fas fa-sort-up"></i>4% </i> From last Week</span>
</div>
<div class="col-md-3 col-sm-4 tile_stats_count">
<span class="count_top"><i class="fas fa-chart-line"></i> Total Profit</span>
<div class="count">$24,380.00</div>
<span class="count_bottom"><i class="green"><i class="fas fa-sort-up"></i>12% </i> From last Week</span>
</div>
<div class="col-md-3 col-sm-4 tile_stats_count">
<span class="count_top"><i class="fas fa-shopping-cart"></i> New Orders</span>
<div class="count">1,204</div>
<span class="count_bottom"><i class="green"><i class="fas fa-sort-up"></i>25% </i> From last Week</span>
</div>
<div class="col-md-3 col-sm-4 tile_stats_count">
<span class="count_top"><i class="fas fa-users"></i> New Customers</span>
<div class="count">43</div>
<span class="count_bottom"><i class="red"><i class="fas fa-sort-down"></i>-5% </i> From last Week</span>
</div>
</div>
</div>
<!-- /top tiles -->
<div class="row">
<div class="col-md-8 col-sm-8">
<div class="x_panel">
<div class="x_title">
<h2>Sales Statistics <small>Sales vs Orders</small></h2>
<div class="clearfix"></div>
</div>
<div class="x_content">
<canvas id="salesStatisticsChart" height="200"></canvas>
</div>
</div>
</div>
<div class="col-md-4 col-sm-4">
<div class="x_panel">
<div class="x_title">
<h2>Weekly Sales <small>Last 7 days</small></h2>
<div class="clearfix"></div>
</div>
<div class="x_content">
<canvas id="weeklySalesChart" height="200"></canvas>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-4 col-sm-4">
<div class="x_panel">
<div class="x_title">
<h2>Top Selling Products</h2>
<div class="clearfix"></div>
</div>
<div class="x_content">
<ul class="list-unstyled top_products_scroll">
<!-- Product items will be dynamically inserted or hardcoded here -->
</ul>
</div>
</div>
</div>
<div class="col-md-8 col-sm-8">
<div class="x_panel">
<div class="x_title">
<h2>Revenue by Location</h2>
<div class="clearfix"></div>
</div>
<div class="x_content">
<div id="revenueMap" style="height: 350px;"></div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="x_panel">
<div class="x_title">
<h2>Latest Orders</h2>
<div class="clearfix"></div>
</div>
<div class="x_content">
<table id="latestOrdersTable" class="table table-striped table-bordered" style="width:100%">
<thead>
<tr>
<th>Order ID</th>
<th>Customer</th>
<th>Date</th>
<th>Total</th>
<th>Status</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>#ORD-12345</strong></td>
<td>John Smith</td>
<td>2024-01-15</td>
<td><strong>$1,250.00</strong></td>
<td><span class="badge bg-success">Completed</span></td>
</tr>
<tr>
<td><strong>#ORD-12346</strong></td>
<td>Emily Johnson</td>
<td>2024-01-15</td>
<td><strong>$875.50</strong></td>
<td><span class="badge bg-warning text-dark">Processing</span></td>
</tr>
<tr>
<td><strong>#ORD-12347</strong></td>
<td>Michael Chen</td>
<td>2024-01-14</td>
<td><strong>$2,150.75</strong></td>
<td><span class="badge bg-success">Completed</span></td>
</tr>
<tr>
<td><strong>#ORD-12348</strong></td>
<td>Sarah Davis</td>
<td>2024-01-14</td>
<td><strong>$650.00</strong></td>
<td><span class="badge bg-info">Shipped</span></td>
</tr>
<tr>
<td><strong>#ORD-12349</strong></td>
<td>Robert Wilson</td>
<td>2024-01-13</td>
<td><strong>$1,480.25</strong></td>
<td><span class="badge bg-danger">Cancelled</span></td>
</tr>
<tr>
<td><strong>#ORD-12350</strong></td>
<td>Lisa Brown</td>
<td>2024-01-13</td>
<td><strong>$920.00</strong></td>
<td><span class="badge bg-success">Completed</span></td>
</tr>
<tr>
<td><strong>#ORD-12351</strong></td>
<td>David Garcia</td>
<td>2024-01-12</td>
<td><strong>$1,125.50</strong></td>
<td><span class="badge bg-warning text-dark">Processing</span></td>
</tr>
<tr>
<td><strong>#ORD-12352</strong></td>
<td>Anna Martinez</td>
<td>2024-01-12</td>
<td><strong>$775.00</strong></td>
<td><span class="badge bg-info">Shipped</span></td>
</tr>
<tr>
<td><strong>#ORD-12353</strong></td>
<td>James Taylor</td>
<td>2024-01-11</td>
<td><strong>$2,340.00</strong></td>
<td><span class="badge bg-success">Completed</span></td>
</tr>
<tr>
<td><strong>#ORD-12354</strong></td>
<td>Maria Rodriguez</td>
<td>2024-01-11</td>
<td><strong>$560.75</strong></td>
<td><span class="badge bg-warning text-dark">Processing</span></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<!-- /page content -->
<!-- footer content -->
<footer>
<div class="pull-right">
Gentelella - Bootstrap Admin Template by <a href="https://colorlib.com">Colorlib</a>
</div>
<div class="clearfix"></div>
</footer>
<!-- /footer content -->
</div>
</div> <!-- Compiled JavaScript (includes jQuery, Bootstrap, and all vendor scripts) -->
<!-- Initialize linked Tempus Dominus pickers for date range -->
<script type="text/javascript">
document.addEventListener('DOMContentLoaded', function() {
if (typeof TempusDominus !== 'undefined') {
const startPicker = new TempusDominus(document.getElementById('startDatePicker'), {
display: { components: { clock: false } },
localization: { format: 'MM/dd/yyyy' }
});
const endPicker = new TempusDominus(document.getElementById('endDatePicker'), {
display: { components: { clock: false } },
localization: { format: 'MM/dd/yyyy' }
});
// Link pickers
document.getElementById('startDatePicker').addEventListener('change.td', function(e) {
endPicker.updateOptions({ restrictions: { minDate: e.detail.date } });
});
document.getElementById('endDatePicker').addEventListener('change.td', function(e) {
startPicker.updateOptions({ restrictions: { maxDate: e.detail.date } });
});
}
});
</script>
</body>
</html>

555
production/index5.html Normal file
View File

@ -0,0 +1,555 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<!-- Meta, title, CSS, favicons, etc. -->
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" href="images/favicon.ico" type="image/ico" />
<title>Dashboard 5 - Gentelella</title>
<!-- Vite Entry Point - will bundle all styles -->
<script type="module" src="/src/main-minimal.js"></script>
</head>
<body class="nav-md page-index5">
<div class="container body">
<div class="main_container">
<div class="col-md-3 left_col">
<div class="left_col scroll-view">
<div class="navbar nav_title" style="border: 0;">
<a href="index.html" class="site_title"><i class="fas fa-paw"></i> <span>Gentelella Alela!</span></a>
</div>
<div class="clearfix"></div>
<!-- menu profile quick info -->
<div class="profile clearfix">
<div class="profile_pic">
<img src="images/img.jpg" alt="..." class="img-circle profile_img">
</div>
<div class="profile_info">
<span>Welcome,</span>
<h2>John Doe</h2>
</div>
</div>
<!-- /menu profile quick info -->
<br />
<!-- sidebar menu -->
<div id="sidebar-menu" class="main_menu_side hidden-print main_menu">
<div class="menu_section">
<h3>General</h3>
<ul class="nav side-menu">
<li><a><i class="fas fa-home"></i> Home <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="index.html">Dashboard 1</a></li>
<li><a href="index2.html">Dashboard 2</a></li>
<li><a href="index5.html">Dashboard 5</a></li>
<li><a href="index4.html">Dashboard 4</a></li>
<li><a href="index5.html">Dashboard 5</a></li>
</ul>
</li>
<li><a><i class="fas fa-edit"></i> Forms <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="form.html">General Form</a></li>
<li><a href="form_advanced.html">Advanced Components</a></li>
<li><a href="form_validation.html">Form Validation</a></li>
<li><a href="form_wizards.html">Form Wizard</a></li>
<li><a href="form_upload.html">Form Upload</a></li>
<li><a href="form_buttons.html">Form Buttons</a></li>
</ul>
</li>
<li><a><i class="fas fa-desktop"></i> UI Elements <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="general_elements.html">General Elements</a></li>
<li><a href="media_gallery.html">Media Gallery</a></li>
<li><a href="typography.html">Typography</a></li>
<li><a href="icons.html">Icons</a></li>
<li><a href="glyphicons.html">Glyphicons</a></li>
<li><a href="widgets.html">Widgets</a></li>
<li><a href="invoice.html">Invoice</a></li>
<li><a href="inbox.html">Inbox</a></li>
<li><a href="calendar.html">Calendar</a></li>
</ul>
</li>
<li><a><i class="fas fa-table"></i> Tables <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="tables.html">Tables</a></li>
<li><a href="tables_dynamic.html">Table Dynamic</a></li>
</ul>
</li>
<li><a><i class="fas fa-chart-column"></i> Data Presentation <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="chartjs.html">Chart JS</a></li>
<li><a href="chartjs2.html">Chart JS2</a></li>
<li><a href="morisjs.html">Moris JS</a></li>
<li><a href="echarts.html">ECharts</a></li>
<li><a href="other_charts.html">Other Charts</a></li>
</ul>
</li>
<li><a><i class="fas fa-clone"></i>Layouts <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="fixed_sidebar.html">Fixed Sidebar</a></li>
<li><a href="fixed_footer.html">Fixed Footer</a></li>
</ul>
</li>
</ul>
</div>
<div class="menu_section">
<h3>Live On</h3>
<ul class="nav side-menu">
<li><a><i class="fas fa-bug"></i> Additional Pages <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="e_commerce.html">E-commerce</a></li>
<li><a href="projects.html">Projects</a></li>
<li><a href="project_detail.html">Project Detail</a></li>
<li><a href="contacts.html">Contacts</a></li>
<li><a href="profile.html">Profile</a></li>
</ul>
</li>
<li><a><i class="fas fa-window-restore"></i> Extras <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="page_403.html">403 Error</a></li>
<li><a href="page_404.html">404 Error</a></li>
<li><a href="page_500.html">500 Error</a></li>
<li><a href="plain_page.html">Plain Page</a></li>
<li><a href="login.html">Login Page</a></li>
<li><a href="pricing_tables.html">Pricing Tables</a></li>
</ul>
</li>
<li><a><i class="fas fa-sitemap"></i> Multilevel Menu <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="#level1_1">Level One</a>
<li><a>Level One<span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li class="sub_menu"><a href="level2.html">Level Two</a>
</li>
<li><a href="#level2_1">Level Two</a>
</li>
<li><a href="#level2_2">Level Two</a>
</li>
</ul>
</li>
<li><a href="#level1_2">Level One</a>
</li>
</ul>
</li>
<li><a href="javascript:void(0)"><i class="fas fa-laptop"></i> Landing Page <span class="label label-success pull-right">Coming Soon</span></a></li>
</ul>
</div>
</div>
<!-- /sidebar menu -->
<!-- /menu footer buttons -->
<div class="sidebar-footer hidden-small">
<a data-bs-toggle="tooltip" data-placement="top" title="Settings">
<span class="fas fa-cog" aria-hidden="true"></span>
</a>
<a data-bs-toggle="tooltip" data-placement="top" title="FullScreen">
<span class="fas fa-expand" aria-hidden="true"></span>
</a>
<a data-bs-toggle="tooltip" data-placement="top" title="Lock">
<span class="fas fa-eye-slash" aria-hidden="true"></span>
</a>
<a data-bs-toggle="tooltip" data-placement="top" title="Logout" href="login.html">
<span class="fas fa-power-off" aria-hidden="true"></span>
</a>
</div>
<!-- /menu footer buttons -->
</div>
</div>
<!-- top navigation -->
<div class="top_nav">
<div class="nav_menu">
<div class="nav toggle">
<a id="menu_toggle"><i class="fas fa-bars"></i></a>
</div>
<nav class="nav navbar-nav">
<ul class="navbar-right">
<li class="nav-item dropdown open" style="padding-left: 15px;">
<a href="javascript:;" class="user-profile dropdown-toggle" aria-haspopup="true" id="navbarDropdown" data-bs-toggle="dropdown" aria-expanded="false">
<img src="images/img.jpg" alt="">John Doe
</a>
<div class="dropdown-menu dropdown-usermenu pull-right" aria-labelledby="navbarDropdown">
<a class="dropdown-item" href="javascript:;"> Profile</a>
<a class="dropdown-item" href="javascript:;">
<span class="badge bg-red pull-right">50%</span>
<span>Settings</span>
</a>
<a class="dropdown-item" href="javascript:;">Help</a>
<a class="dropdown-item" href="login.html"><i class="fas fa-sign-out-alt pull-right"></i> Log Out</a>
</div>
</li>
<li role="presentation" class="nav-item dropdown open">
<a href="javascript:;" class="dropdown-toggle info-number" id="navbarDropdown1" data-bs-toggle="dropdown" aria-expanded="false">
<i class="fas fa-envelope"></i>
<span class="badge bg-green">6</span>
</a>
<ul class="dropdown-menu list-unstyled msg_list" role="menu" aria-labelledby="navbarDropdown1">
<li class="nav-item">
<a class="dropdown-item">
<span class="image"><img src="images/img.jpg" alt="Profile Image" /></span>
<span>
<span>John Smith</span>
<span class="time">3 mins ago</span>
</span>
<span class="message">
Film festivals used to be do-or-die moments for movie makers. They were where...
</span>
</a>
</li>
<li class="nav-item">
<a class="dropdown-item">
<span class="image"><img src="images/img.jpg" alt="Profile Image" /></span>
<span>
<span>John Smith</span>
<span class="time">3 mins ago</span>
</span>
<span class="message">
Film festivals used to be do-or-die moments for movie makers. They were where...
</span>
</a>
</li>
<li class="nav-item">
<a class="dropdown-item">
<span class="image"><img src="images/img.jpg" alt="Profile Image" /></span>
<span>
<span>John Smith</span>
<span class="time">3 mins ago</span>
</span>
<span class="message">
Film festivals used to be do-or-die moments for movie makers. They were where...
</span>
</a>
</li>
<li class="nav-item">
<a class="dropdown-item">
<span class="image"><img src="images/img.jpg" alt="Profile Image" /></span>
<span>
<span>John Smith</span>
<span class="time">3 mins ago</span>
</span>
<span class="message">
Film festivals used to be do-or-die moments for movie makers. They were where...
</span>
</a>
</li>
<li class="nav-item">
<div class="text-center">
<a class="dropdown-item">
<strong>See All Alerts</strong>
<i class="fas fa-angle-right"></i>
</a>
</div>
</li>
</ul>
</li>
</ul>
</nav>
</div>
</div>
<!-- /top navigation -->
<!-- page content -->
<div class="right_col" role="main">
<!-- Stat Cards Row -->
<div class="row" style="margin-bottom: 24px;">
<div class="col-md-3 col-sm-6 col-12">
<div class="tile-stats modern-tile">
<div class="icon"><i class="fas fa-dollar-sign"></i></div>
<div class="count">$24,500</div>
<h3>Revenue</h3>
<p>+8.2% this week</p>
</div>
</div>
<div class="col-md-3 col-sm-6 col-12">
<div class="tile-stats modern-tile">
<div class="icon"><i class="fas fa-shopping-cart"></i></div>
<div class="count">1,204</div>
<h3>Orders</h3>
<p>+2.1% this week</p>
</div>
</div>
<div class="col-md-3 col-sm-6 col-12">
<div class="tile-stats modern-tile">
<div class="icon"><i class="fas fa-users"></i></div>
<div class="count">3,890</div>
<h3>Customers</h3>
<p>+5.4% this week</p>
</div>
</div>
<div class="col-md-3 col-sm-6 col-12">
<div class="tile-stats modern-tile">
<div class="icon"><i class="fas fa-chart-line"></i></div>
<div class="count">$7,200</div>
<h3>Profit</h3>
<p>+1.7% this week</p>
</div>
</div>
</div>
<!-- Main Analytics Row -->
<div class="row">
<div class="col-md-8">
<div class="x_panel">
<div class="x_title">
<h2>Sales Overview <small>Last 30 days</small></h2>
<ul class="nav navbar-right panel_toolbox">
<li><a class="collapse-link"><i class="fas fa-chevron-up"></i></a></li>
<li><a class="btn-close-link"><i class="fas fa-times"></i></a></li>
</ul>
<div class="clearfix"></div>
</div>
<div class="x_content">
<div id="salesOverviewChart" style="height: 350px;"></div>
</div>
</div>
</div>
<div class="col-md-4">
<div class="x_panel">
<div class="x_title">
<h2>Revenue Breakdown</h2>
<ul class="nav navbar-right panel_toolbox">
<li><a class="collapse-link"><i class="fas fa-chevron-up"></i></a></li>
<li><a class="btn-close-link"><i class="fas fa-times"></i></a></li>
</ul>
<div class="clearfix"></div>
</div>
<div class="x_content">
<div id="revenueBreakdownChart" style="height: 350px;"></div>
</div>
</div>
</div>
</div>
<!-- Orders and Activity Row -->
<div class="row">
<div class="col-md-8">
<div class="x_panel">
<div class="x_title">
<h2>Recent Orders</h2>
<ul class="nav navbar-right panel_toolbox">
<li><a class="collapse-link"><i class="fas fa-chevron-up"></i></a></li>
<li><a class="btn-close-link"><i class="fas fa-times"></i></a></li>
</ul>
<div class="clearfix"></div>
</div>
<div class="x_content">
<div class="table-responsive">
<table class="table table-striped jambo_table bulk_action">
<thead>
<tr class="headings">
<th class="column-title">Order ID </th>
<th class="column-title">Customer </th>
<th class="column-title">Product </th>
<th class="column-title">Amount </th>
<th class="column-title">Status </th>
</tr>
</thead>
<tbody>
<tr class="even pointer">
<td>#12345</td>
<td>John Doe</td>
<td>Product 1</td>
<td>$100</td>
<td><span class="badge bg-success">Completed</span></td>
</tr>
<tr class="odd pointer">
<td>#12346</td>
<td>Jane Smith</td>
<td>Product 2</td>
<td>$200</td>
<td><span class="badge bg-warning">Pending</span></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<div class="col-md-4">
<div class="x_panel">
<div class="x_title">
<h2>Recent Activity</h2>
<ul class="nav navbar-right panel_toolbox">
<li><a class="collapse-link"><i class="fas fa-chevron-up"></i></a></li>
<li><a class="btn-close-link"><i class="fas fa-times"></i></a></li>
</ul>
<div class="clearfix"></div>
</div>
<div class="x_content">
<div class="dashboard-widget-content">
<ul class="list-unstyled timeline widget">
<li>
<div class="block">
<div class="block_content">
<h2 class="title">New Order</h2>
<p class="excerpt">Order #12345 has been placed</p>
<div class="byline">
<span>13 minutes ago</span>
</div>
</div>
</div>
</li>
<li>
<div class="block">
<div class="block_content">
<h2 class="title">New Customer</h2>
<p class="excerpt">John Doe has registered</p>
<div class="byline">
<span>2 hours ago</span>
</div>
</div>
</div>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<!-- Additional Analytics Row -->
<div class="row">
<div class="col-md-4">
<div class="x_panel">
<div class="x_title">
<h2>Top Products</h2>
<ul class="nav navbar-right panel_toolbox">
<li><a class="collapse-link"><i class="fas fa-chevron-up"></i></a></li>
<li><a class="btn-close-link"><i class="fas fa-times"></i></a></li>
</ul>
<div class="clearfix"></div>
</div>
<div class="x_content">
<div id="topProductsChart" style="height: 300px;"></div>
</div>
</div>
</div>
<div class="col-md-4">
<div class="x_panel">
<div class="x_title">
<h2>Conversion Funnel</h2>
<ul class="nav navbar-right panel_toolbox">
<li><a class="collapse-link"><i class="fas fa-chevron-up"></i></a></li>
<li><a class="btn-close-link"><i class="fas fa-times"></i></a></li>
</ul>
<div class="clearfix"></div>
</div>
<div class="x_content">
<div id="conversionFunnelChart" style="height: 300px;"></div>
</div>
</div>
</div>
<div class="col-md-4">
<div class="x_panel">
<div class="x_title">
<h2>Traffic Sources</h2>
<ul class="nav navbar-right panel_toolbox">
<li><a class="collapse-link"><i class="fas fa-chevron-up"></i></a></li>
<li><a class="btn-close-link"><i class="fas fa-times"></i></a></li>
</ul>
<div class="clearfix"></div>
</div>
<div class="x_content">
<div id="trafficSourcesChart" style="height: 300px;"></div>
</div>
</div>
</div>
</div>
</div>
<!-- /page content -->
<!-- footer content -->
<footer>
<div class="pull-right">
Gentelella - Bootstrap Admin Template by <a href="https://colorlib.com">Colorlib</a>
</div>
<div class="clearfix"></div>
</footer>
<!-- /footer content -->
</div>
</div>
<!-- Date Range Picker Logic -->
<script type="text/javascript">
document.addEventListener('DOMContentLoaded', function() {
if (typeof TempusDominus !== 'undefined') {
// Initialize the date pickers
const startPicker = new TempusDominus(document.getElementById('startDatePicker'), {
display: {
components: {
clock: false,
seconds: false,
useTwentyfourHour: false
}
},
localization: {
format: 'MM/dd/yyyy'
}
});
const endPicker = new TempusDominus(document.getElementById('endDatePicker'), {
display: {
components: {
clock: false,
seconds: false,
useTwentyfourHour: false
}
},
localization: {
format: 'MM/dd/yyyy'
}
});
// Set default dates (last 30 days)
const today = new Date();
const thirtyDaysAgo = new Date(today.getTime() - (30 * 24 * 60 * 60 * 1000));
// Format dates properly for Tempus Dominus using DateTime
try {
if (typeof DateTime !== 'undefined') {
startPicker.dates.setValue(new DateTime(thirtyDaysAgo));
endPicker.dates.setValue(new DateTime(today));
} else {
// Fallback without DateTime wrapper
startPicker.dates.setValue(thirtyDaysAgo);
endPicker.dates.setValue(today);
}
} catch (error) {
console.warn('Error setting default dates:', error);
// Final fallback: set dates using string format
const todayStr = today.toLocaleDateString('en-US');
const thirtyDaysAgoStr = thirtyDaysAgo.toLocaleDateString('en-US');
const startInput = document.querySelector('#startDatePicker input[data-td-target="#startDatePicker"]');
const endInput = document.querySelector('#endDatePicker input[data-td-target="#endDatePicker"]');
if (startInput) startInput.value = thirtyDaysAgoStr;
if (endInput) endInput.value = todayStr;
}
// Link pickers without summary display
document.getElementById('startDatePicker').addEventListener('change.td', function(e) {
endPicker.updateOptions({ restrictions: { minDate: e.detail.date } });
});
document.getElementById('endDatePicker').addEventListener('change.td', function(e) {
startPicker.updateOptions({ restrictions: { maxDate: e.detail.date } });
});
} else {
console.warn('TempusDominus is not available');
}
});
</script>
</body>
</html>

View File

@ -48,9 +48,10 @@
<ul class="nav side-menu">
<li><a><i class="fas fa-home"></i> Home <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="index.html">Dashboard</a></li>
<li><a href="index2.html">Dashboard2</a></li>
<li><a href="index3.html">Dashboard3</a></li>
<li><a href="index.html">Dashboard 1</a></li>
<li><a href="index2.html">Dashboard 2</a></li>
<li><a href="index3.html">Dashboard 3</a></li><li><a href="index4.html">Dashboard 4</a></li>
<li><a href="index3.html">Dashboard 3</a></li>
</ul>
</li>
<li><a><i class="fas fa-edit"></i> Forms <span class="fas fa-chevron-down"></span></a>

View File

@ -44,9 +44,10 @@
<ul class="nav side-menu">
<li><a><i class="fas fa-home"></i> Home <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="index.html">Dashboard</a></li>
<li><a href="index2.html">Dashboard2</a></li>
<li><a href="index3.html">Dashboard3</a></li>
<li><a href="index.html">Dashboard 1</a></li>
<li><a href="index2.html">Dashboard 2</a></li>
<li><a href="index3.html">Dashboard 3</a></li><li><a href="index4.html">Dashboard 4</a></li>
<li><a href="index3.html">Dashboard 3</a></li>
</ul>
</li>
<li><a><i class="fas fa-edit"></i> Forms <span class="fas fa-chevron-down"></span></a>

View File

@ -77,7 +77,7 @@
</li>
<li><a href="index2.html">Dashboard2</a>
</li>
<li><a href="index3.html">Dashboard3</a>
<li><a href="index3.html">Dashboard 3</a>
</li>
</ul>
</li>

View File

@ -49,9 +49,10 @@
<ul class="nav side-menu">
<li><a><i class="fas fa-home"></i> Home <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="index.html">Dashboard</a></li>
<li><a href="index2.html">Dashboard2</a></li>
<li><a href="index3.html">Dashboard3</a></li>
<li><a href="index.html">Dashboard 1</a></li>
<li><a href="index2.html">Dashboard 2</a></li>
<li><a href="index3.html">Dashboard 3</a></li><li><a href="index4.html">Dashboard 4</a></li>
<li><a href="index3.html">Dashboard 3</a></li>
</ul>
</li>
<li><a><i class="fas fa-edit"></i> Forms <span class="fas fa-chevron-down"></span></a>

View File

@ -62,9 +62,10 @@
<ul class="nav side-menu">
<li><a><i class="fas fa-home"></i> Home <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="index.html">Dashboard</a></li>
<li><a href="index2.html">Dashboard2</a></li>
<li><a href="index3.html">Dashboard3</a></li>
<li><a href="index.html">Dashboard 1</a></li>
<li><a href="index2.html">Dashboard 2</a></li>
<li><a href="index3.html">Dashboard 3</a></li><li><a href="index4.html">Dashboard 4</a></li>
<li><a href="index3.html">Dashboard 3</a></li>
</ul>
</li>
<li><a><i class="fas fa-edit"></i> Forms <span class="fas fa-chevron-down"></span></a>

View File

@ -43,9 +43,10 @@
<ul class="nav side-menu">
<li><a><i class="fas fa-home"></i> Home <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="index.html">Dashboard</a></li>
<li><a href="index2.html">Dashboard2</a></li>
<li><a href="index3.html">Dashboard3</a></li>
<li><a href="index.html">Dashboard 1</a></li>
<li><a href="index2.html">Dashboard 2</a></li>
<li><a href="index3.html">Dashboard 3</a></li><li><a href="index4.html">Dashboard 4</a></li>
<li><a href="index3.html">Dashboard 3</a></li>
</ul>
</li>
<li><a><i class="fas fa-edit"></i> Forms <span class="fas fa-chevron-down"></span></a>
@ -316,7 +317,7 @@
<h4>Easy Pie Charts - Performance Metrics</h4>
</div>
<p>Interactive gauge charts showing various performance metrics and KPIs with color-coded indicators.</p>
<p>Interactive pie charts showing various performance metrics and KPIs with color-coded indicators.</p>
<!-- Three Column Layout -->
<div class="row">

View File

@ -44,9 +44,10 @@
<ul class="nav side-menu">
<li><a><i class="fas fa-home"></i> Home <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="index.html">Dashboard</a></li>
<li><a href="index2.html">Dashboard2</a></li>
<li><a href="index3.html">Dashboard3</a></li>
<li><a href="index.html">Dashboard 1</a></li>
<li><a href="index2.html">Dashboard 2</a></li>
<li><a href="index3.html">Dashboard 3</a></li><li><a href="index4.html">Dashboard 4</a></li>
<li><a href="index3.html">Dashboard 3</a></li>
</ul>
</li>
<li><a><i class="fas fa-edit"></i> Forms <span class="fas fa-chevron-down"></span></a>

View File

@ -43,9 +43,10 @@
<ul class="nav side-menu">
<li><a><i class="fas fa-home"></i> Home <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="index.html">Dashboard</a></li>
<li><a href="index2.html">Dashboard2</a></li>
<li><a href="index3.html">Dashboard3</a></li>
<li><a href="index.html">Dashboard 1</a></li>
<li><a href="index2.html">Dashboard 2</a></li>
<li><a href="index3.html">Dashboard 3</a></li><li><a href="index4.html">Dashboard 4</a></li>
<li><a href="index3.html">Dashboard 3</a></li>
</ul>
</li>
<li><a><i class="fas fa-edit"></i> Forms <span class="fas fa-chevron-down"></span></a>

View File

@ -43,9 +43,10 @@
<ul class="nav side-menu">
<li><a><i class="fas fa-home"></i> Home <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="index.html">Dashboard</a></li>
<li><a href="index2.html">Dashboard2</a></li>
<li><a href="index3.html">Dashboard3</a></li>
<li><a href="index.html">Dashboard 1</a></li>
<li><a href="index2.html">Dashboard 2</a></li>
<li><a href="index3.html">Dashboard 3</a></li><li><a href="index4.html">Dashboard 4</a></li>
<li><a href="index3.html">Dashboard 3</a></li>
</ul>
</li>
<li><a><i class="fas fa-edit"></i> Forms <span class="fas fa-chevron-down"></span></a>

View File

@ -43,9 +43,10 @@
<ul class="nav side-menu">
<li><a><i class="fas fa-home"></i> Home <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="index.html">Dashboard</a></li>
<li><a href="index2.html">Dashboard2</a></li>
<li><a href="index3.html">Dashboard3</a></li>
<li><a href="index.html">Dashboard 1</a></li>
<li><a href="index2.html">Dashboard 2</a></li>
<li><a href="index3.html">Dashboard 3</a></li><li><a href="index4.html">Dashboard 4</a></li>
<li><a href="index3.html">Dashboard 3</a></li>
</ul>
</li>
<li><a><i class="fas fa-edit"></i> Forms <span class="fas fa-chevron-down"></span></a>

View File

@ -43,9 +43,10 @@
<ul class="nav side-menu">
<li><a><i class="fas fa-home"></i> Home <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="index.html">Dashboard</a></li>
<li><a href="index2.html">Dashboard2</a></li>
<li><a href="index3.html">Dashboard3</a></li>
<li><a href="index.html">Dashboard 1</a></li>
<li><a href="index2.html">Dashboard 2</a></li>
<li><a href="index3.html">Dashboard 3</a></li><li><a href="index4.html">Dashboard 4</a></li>
<li><a href="index3.html">Dashboard 3</a></li>
</ul>
</li>
<li><a><i class="fas fa-edit"></i> Forms <span class="fas fa-chevron-down"></span></a>

View File

@ -43,9 +43,10 @@
<ul class="nav side-menu">
<li><a><i class="fas fa-home"></i> Home <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="index.html">Dashboard</a></li>
<li><a href="index2.html">Dashboard2</a></li>
<li><a href="index3.html">Dashboard3</a></li>
<li><a href="index.html">Dashboard 1</a></li>
<li><a href="index2.html">Dashboard 2</a></li>
<li><a href="index3.html">Dashboard 3</a></li><li><a href="index4.html">Dashboard 4</a></li>
<li><a href="index3.html">Dashboard 3</a></li>
</ul>
</li>
<li><a><i class="fas fa-edit"></i> Forms <span class="fas fa-chevron-down"></span></a>

View File

@ -43,9 +43,10 @@
<ul class="nav side-menu">
<li><a><i class="fas fa-home"></i> Home <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="index.html">Dashboard</a></li>
<li><a href="index2.html">Dashboard2</a></li>
<li><a href="index3.html">Dashboard3</a></li>
<li><a href="index.html">Dashboard 1</a></li>
<li><a href="index2.html">Dashboard 2</a></li>
<li><a href="index3.html">Dashboard 3</a></li><li><a href="index4.html">Dashboard 4</a></li>
<li><a href="index3.html">Dashboard 3</a></li>
</ul>
</li>
<li><a><i class="fas fa-edit"></i> Forms <span class="fas fa-chevron-down"></span></a>

View File

@ -48,9 +48,10 @@
<ul class="nav side-menu">
<li><a><i class="fas fa-home"></i> Home <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="index.html">Dashboard</a></li>
<li><a href="index2.html">Dashboard2</a></li>
<li><a href="index3.html">Dashboard3</a></li>
<li><a href="index.html">Dashboard 1</a></li>
<li><a href="index2.html">Dashboard 2</a></li>
<li><a href="index3.html">Dashboard 3</a></li><li><a href="index4.html">Dashboard 4</a></li>
<li><a href="index3.html">Dashboard 3</a></li>
</ul>
</li>
<li><a><i class="fas fa-edit"></i> Forms <span class="fas fa-chevron-down"></span></a>

View File

@ -43,9 +43,10 @@
<ul class="nav side-menu">
<li><a><i class="fas fa-home"></i> Home <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="index.html">Dashboard</a></li>
<li><a href="index2.html">Dashboard2</a></li>
<li><a href="index3.html">Dashboard3</a></li>
<li><a href="index.html">Dashboard 1</a></li>
<li><a href="index2.html">Dashboard 2</a></li>
<li><a href="index3.html">Dashboard 3</a></li><li><a href="index4.html">Dashboard 4</a></li>
<li><a href="index3.html">Dashboard 3</a></li>
</ul>
</li>
<li><a><i class="fas fa-edit"></i> Forms <span class="fas fa-chevron-down"></span></a>

View File

@ -436,10 +436,7 @@ function init_chart_doughnut() {
}
// Gauge initialization is now handled in src/js/init.js initializeGauges() function
function init_gauge() {
console.log('init_gauge: Gauge initialization is now handled centrally in init.js');
}
/* SPARKLINES */
@ -2624,49 +2621,7 @@ function init_echarts() {
}
}
},
gauge: {
startAngle: 225,
endAngle: -45,
axisLine: {
show: true,
lineStyle: {
color: [[0.2, '#86b379'], [0.8, '#68a54a'], [1, '#408829']],
width: 8
}
},
axisTick: {
splitNumber: 10,
length: 12,
lineStyle: {
color: 'auto'
}
},
axisLabel: {
textStyle: {
color: 'auto'
}
},
splitLine: {
length: 18,
lineStyle: {
color: 'auto'
}
},
pointer: {
length: '90%',
color: 'auto'
},
title: {
textStyle: {
color: '#333'
}
},
detail: {
textStyle: {
color: 'auto'
}
}
},
textStyle: {
fontFamily: 'Arial, Verdana, sans-serif'
}
@ -2881,126 +2836,6 @@ function init_echarts() {
}
//echart Gauge
if ($('#echart_gauge').length) {
var echartGauge = echarts.init(document.getElementById('echart_gauge'), theme);
echartGauge.setOption({
tooltip: {
formatter: "{a} <br/>{b} : {c}%"
},
toolbox: {
show: true,
feature: {
restore: {
show: true,
title: "Restore"
},
saveAsImage: {
show: true,
title: "Save Image"
}
}
},
series: [{
name: 'Performance',
type: 'gauge',
center: ['50%', '50%'],
startAngle: 140,
endAngle: -140,
min: 0,
max: 100,
precision: 0,
splitNumber: 10,
axisLine: {
show: true,
lineStyle: {
color: [
[0.2, 'lightgreen'],
[0.4, 'orange'],
[0.8, 'skyblue'],
[1, '#ff4500']
],
width: 30
}
},
axisTick: {
show: true,
splitNumber: 5,
length: 8,
lineStyle: {
color: '#eee',
width: 1,
type: 'solid'
}
},
axisLabel: {
show: true,
formatter: function (v) {
switch (v + '') {
case '10':
return 'a';
case '30':
return 'b';
case '60':
return 'c';
case '90':
return 'd';
default:
return '';
}
},
textStyle: {
color: '#333'
}
},
splitLine: {
show: true,
length: 30,
lineStyle: {
color: '#eee',
width: 2,
type: 'solid'
}
},
pointer: {
length: '80%',
width: 8,
color: 'auto'
},
title: {
show: true,
offsetCenter: ['-65%', -10],
textStyle: {
color: '#333',
fontSize: 15
}
},
detail: {
show: true,
backgroundColor: 'rgba(0,0,0,0)',
borderWidth: 0,
borderColor: '#ccc',
width: 100,
height: 40,
offsetCenter: ['-60%', 10],
formatter: '{value}%',
textStyle: {
color: 'auto',
fontSize: 30
}
},
data: [{
value: 50,
name: 'Performance'
}]
}]
});
}
//echart Line
if ($('#echart_line').length) {
@ -4758,7 +4593,6 @@ $(document).ready(function () {
init_validator();
init_DataTables();
init_chart_doughnut();
init_gauge();
init_PNotify();
init_starrr();
init_calendar();

File diff suppressed because it is too large Load Diff

View File

@ -25,11 +25,6 @@ import { TempusDominus } from '@eonasdan/tempus-dominus';
window.TempusDominus = TempusDominus;
console.log('โœ… TempusDominus loaded');
// GaugeJS - Modern gauge library (Bootstrap 5 compatible)
import Gauge from 'gauge.js';
window.Gauge = Gauge;
console.log('โœ… GaugeJS loaded');
// Chart.js v4 - No jQuery dependency
import { Chart, registerables } from 'chart.js';
Chart.register(...registerables);

View File

@ -69,10 +69,6 @@ import { TempusDominus, DateTime } from '@eonasdan/tempus-dominus';
window.TempusDominus = TempusDominus;
window.DateTime = DateTime;
// GaugeJS - Modern gauge library (Bootstrap 5 compatible)
import { Gauge } from 'gaugejs';
window.Gauge = Gauge;
// jQuery Sparkline (Small charts)
import 'jquery-sparkline';

View File

@ -1,6 +1,8 @@
// SCSS files using @use (must come first)
@use "bootstrap/scss/bootstrap";
@use "./scss/custom.scss";
@use "./scss/index2.scss";
@use "./scss/index4.scss";
// CSS files using @import (legacy approach for .css files)
@import "@fortawesome/fontawesome-free/css/all.min.css";
@ -19,8 +21,7 @@
// jqvmap
// @import "jqvmap/dist/jqvmap.min.css";
// Custom Theme Style
@import "scss/custom.scss";
// Custom Theme Style is now handled with @use at the top
// Page-specific styles
@import "scss/index2.scss";

View File

@ -15,10 +15,6 @@ import SkyconsFactory from 'skycons';
const Skycons = SkyconsFactory(window);
window.Skycons = Skycons;
// GaugeJS for gauge charts
import { Gauge } from 'gaugejs';
window.Gauge = Gauge;
// jQuery Sparkline for mini charts
import 'jquery-sparkline';
@ -28,6 +24,5 @@ import 'jquery-sparkline';
export default {
Chart,
Skycons,
Gauge,
initialized: true
};

View File

@ -4680,3 +4680,167 @@ ul.notifications {
#nprogress {
pointer-events: none;
}
/* Improved Tile Stats Layout */
.tile-stats-container {
display: flex;
flex-wrap: wrap;
gap: 20px;
margin-bottom: 30px;
}
.tile_stats_count {
flex: 1;
min-width: 200px;
max-width: 300px;
height: 120px; /* Fixed height for equal height widgets */
display: flex;
align-items: center;
background: #fff;
border: 1px solid #e6e9ed;
border-radius: 5px;
padding: 20px;
box-shadow: 0 1px 3px rgba(0,0,0,0.12);
transition: all 0.3s ease;
}
.tile_stats_count:hover {
box-shadow: 0 3px 10px rgba(0,0,0,0.15);
transform: translateY(-2px);
}
.tile_stats_count .tile-icon {
width: 60px;
height: 60px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 50%;
margin-right: 20px;
flex-shrink: 0;
}
.tile_stats_count .tile-content {
flex: 1;
min-width: 0;
}
.tile_stats_count .tile-content .count {
font-size: 28px;
font-weight: bold;
line-height: 1;
margin-bottom: 5px;
color: #34495e;
}
.tile_stats_count .tile-content span {
font-size: 14px;
color: #7f8c8d;
text-transform: uppercase;
letter-spacing: 0.5px;
}
/* Icon color themes */
.tile-icon.icon-users { background-color: #3498db; color: white; }
.tile-icon.icon-time { background-color: #e74c3c; color: white; }
.tile-icon.icon-orders { background-color: #f39c12; color: white; }
.tile-icon.icon-revenue { background-color: #2ecc71; color: white; }
.tile-icon.icon-conversions { background-color: #9b59b6; color: white; }
.tile-icon.icon-views { background-color: #1abc9c; color: white; }
/* Scrollable widgets */
.scrollable-widget {
max-height: 400px;
overflow-y: auto;
}
.scrollable-widget::-webkit-scrollbar {
width: 6px;
}
.scrollable-widget::-webkit-scrollbar-track {
background: #f1f1f1;
border-radius: 3px;
}
.scrollable-widget::-webkit-scrollbar-thumb {
background: #c1c1c1;
border-radius: 3px;
}
.scrollable-widget::-webkit-scrollbar-thumb:hover {
background: #a8a8a8;
}
/* Recent Orders table scrollable */
.recent-orders-scroll {
max-height: 350px;
overflow-y: auto;
margin-top: 10px;
}
.recent-orders-scroll::-webkit-scrollbar {
width: 6px;
}
.recent-orders-scroll::-webkit-scrollbar-track {
background: #f1f1f1;
border-radius: 3px;
}
.recent-orders-scroll::-webkit-scrollbar-thumb {
background: #c1c1c1;
border-radius: 3px;
}
.recent-orders-scroll::-webkit-scrollbar-thumb:hover {
background: #a8a8a8;
}
/* Recent Activities scrollable */
.activities-scroll {
max-height: 350px;
overflow-y: auto;
}
.activities-scroll::-webkit-scrollbar {
width: 6px;
}
.activities-scroll::-webkit-scrollbar-track {
background: #f1f1f1;
border-radius: 3px;
}
.activities-scroll::-webkit-scrollbar-thumb {
background: #c1c1c1;
border-radius: 3px;
}
.activities-scroll::-webkit-scrollbar-thumb:hover {
background: #a8a8a8;
}
/* Responsive design */
@media (max-width: 768px) {
.tile-stats-container {
flex-direction: column;
gap: 15px;
}
.tile_stats_count {
max-width: none;
height: auto;
min-height: 100px;
}
.tile_stats_count .tile-icon {
width: 50px;
height: 50px;
margin-right: 15px;
}
.tile_stats_count .tile-content .count {
font-size: 24px;
}
}

View File

@ -23,39 +23,37 @@
align-items: center;
justify-content: center;
text-decoration: none;
i {
font-size: 20px;
color: white;
padding: 3px;
.profile_img {
width: 100%;
height: 100%;
object-fit: cover;
border-radius: 50%;
}
&.border-aero {
background-color: #1ABB9C;
border: 2px solid #1ABB9C;
}
&.border-green {
background-color: #26B99A;
border: 2px solid #26B99A;
}
&.border-blue {
background-color: #3498DB;
border: 2px solid #3498DB;
}
&.border-red {
background-color: #E74C3C;
border: 2px solid #E74C3C;
}
&.border-purple {
background-color: #9B59B6;
border: 2px solid #9B59B6;
}
}
.d-flex-body {
.media-body {
flex: 1;
.title {
@ -121,6 +119,30 @@
}
}
/* Engagement Metrics Styling */
.metric {
margin-bottom: 15px;
p {
margin: 0 0 5px 0;
font-size: 14px;
.metric-label {
color: #73879C;
}
.metric-value {
font-weight: 600;
color: #333;
}
}
.progress.progress_sm {
height: 8px;
border-radius: 4px;
}
}
/* Tiles Styling for Statistics */
.tiles {
.tile {
@ -150,8 +172,8 @@
}
/* Scroll View for Lists - Only apply to Top Profiles */
.top_profiles.scroll-view {
max-height: 300px;
.top_profiles.scroll-view.page-index2-profiles {
max-height: 385px;
overflow-y: auto;
&::-webkit-scrollbar {
@ -175,10 +197,10 @@
/* Media Object Flexbox Support */
.media {
display: flex;
align-items: flex-start;
align-items: center;
}
.d-flex-body {
.media-body {
flex: 1;
}

78
src/scss/index4.scss Normal file
View File

@ -0,0 +1,78 @@
/*
* index4.scss
* ------------------
* Styles for the Store Analytics dashboard page (index4.html).
*/
// Custom styles for the new widgets will go here.
.top_products_scroll {
max-height: 340px;
overflow-y: auto;
&::-webkit-scrollbar {
width: 6px;
}
&::-webkit-scrollbar-track {
background: #f1f1f1;
}
&::-webkit-scrollbar-thumb {
background: #888;
border-radius: 3px;
&:hover {
background: #555;
}
}
.media.event {
padding-bottom: 10px;
border-bottom: 1px solid #f0f0f0;
&:last-child {
border-bottom: none;
}
.product_img {
width: 60px;
height: 60px;
object-fit: cover;
border-radius: 6px;
margin-right: 15px;
}
.media-body {
.title {
font-weight: 600;
font-size: 14px;
color: #333;
text-decoration: none;
display: block;
margin-bottom: 5px;
&:hover {
color: #1ABB9C;
}
}
p {
margin: 0;
font-size: 13px;
color: #666;
strong {
color: #1ABB9C;
font-weight: 600;
}
}
}
}
}
// Custom badge color for 'Pending' status
.badge.bg-orange {
background-color: #f39c12 !important;
color: white;
}

View File

@ -46,9 +46,11 @@
<ul class="nav side-menu">
<li><a><i class="fas fa-home"></i> Home <span class="fas fa-chevron-down"></span></a>
<ul class="nav child_menu">
<li><a href="index.html">Dashboard</a></li>
<li><a href="index2.html">Dashboard2</a></li>
<li><a href="index3.html">Dashboard3</a></li>
<li><a href="index.html">Dashboard 1</a></li>
<li><a href="index2.html">Dashboard 2</a></li>
<li><a href="index3.html">Dashboard 3</a></li>
<li><a href="index4.html">Dashboard 4</a></li>
<li><a href="index3.html">Dashboard 3</a></li>
</ul>
</li>
<li><a><i class="fas fa-edit"></i> Forms <span class="fas fa-chevron-down"></span></a>
@ -592,10 +594,9 @@
<div class="sidebar-widget">
<h4>Profile Completion</h4>
<canvas width="150" height="80" id="chart_gauge_01" class="" style="width: 160px; height: 100px;"></canvas>
<div id="profile_completion_gauge_test" style="width:160px;height:120px;margin:0 auto;"></div>
<div class="goal-wrapper">
<span id="gauge-text" class="gauge-value pull-left">0</span>
<span class="gauge-value pull-left">%</span>
<span class="goal-value pull-left">75%</span>
<span id="goal-text" class="goal-value pull-right">100%</span>
</div>
</div>

View File

@ -16,7 +16,7 @@ export default defineConfig({
'vendor-charts': ['chart.js', 'echarts', 'leaflet'],
'vendor-forms': ['select2', 'ion-rangeslider', 'autosize', 'switchery', '@eonasdan/tempus-dominus'],
'vendor-ui': ['jquery-ui', 'nprogress', 'datatables.net', 'datatables.net-bs5'],
'vendor-utils': ['dayjs', 'jquery-sparkline', 'skycons', 'gaugejs']
'vendor-utils': ['dayjs', 'jquery-sparkline', 'skycons']
},
assetFileNames: (assetInfo) => {
const info = assetInfo.name.split('.');
@ -36,6 +36,7 @@ export default defineConfig({
main: 'production/index.html',
index2: 'production/index2.html',
index3: 'production/index3.html',
index4: 'production/index4.html',
form: 'production/form.html',
form_advanced: 'production/form_advanced.html',