generated from corrad-software/corrad-af-2024
5.9 KiB
5.9 KiB
Site Settings Feature
Overview
The Site Settings feature allows administrators to customize the appearance and branding of the application through a user-friendly interface. All settings are globally applied across the entire application including SEO, meta tags, and visual elements.
Features
1. Basic Information
- Site Name: Customize the application name displayed globally in:
- Header and sidebar
- Browser title and meta tags
- SEO and Open Graph tags
- Loading screen
- All pages and components
- Site Description: Set a description used for:
- SEO meta descriptions
- Open Graph descriptions
- Twitter Card descriptions
- Theme Selection: Choose from available themes:
- Standard themes (from themeList.js)
- Accessibility themes (from themeList2.js)
- Custom themes added to theme.css
2. Branding
- Site Logo: Upload a custom logo displayed in:
- Header (horizontal layout)
- Sidebar (vertical layout)
- Loading screen
- Login page
- Any component using site settings
- Favicon: Upload a custom favicon displayed in:
- Browser tabs
- Bookmarks
- Mobile home screen icons
3. Advanced Settings
- Custom CSS: Add custom CSS injected into document head
- Custom Theme File: Upload CSS files saved to
/assets/style/css/
- Add Custom Theme to theme.css: Directly add themes to the main theme.css file
How to Access
- Navigate to Pentadbiran → Konfigurasi → Site Settings
- Use the tabbed interface:
- Basic Info: Site name, description, and theme selection
- Branding: Logo and favicon uploads
- Advanced: Custom CSS and theme management
- Use the Live Preview panel to see changes in real-time
- Click Save Changes to apply your settings
Technical Implementation
Database Schema
The settings are stored in the site_settings
table with the following fields:
siteName
,siteDescription
siteLogo
,siteFavicon
selectedTheme
- Selected theme namecustomCSS
,customThemeFile
- Legacy fields maintained for backward compatibility
API Endpoints
GET /api/devtool/config/site-settings
- Retrieve current settingsPOST /api/devtool/config/site-settings
- Update settingsPOST /api/devtool/config/upload-file
- Upload files (logos, themes)POST /api/devtool/config/add-custom-theme
- Add custom theme to theme.css
File Upload Locations
- Logo and Favicon files: Saved to
public/uploads/site-settings/
- Theme CSS files: Saved to
assets/style/css/
directory - Custom themes: Added directly to
assets/style/css/base/theme.css
Composable
The useSiteSettings()
composable provides:
siteSettings
- Reactive settings objectloadSiteSettings()
- Load settings from APIupdateSiteSettings()
- Update settingssetTheme()
- Set theme using existing theme systemgetCurrentTheme()
- Get current themeapplyThemeSettings()
- Apply theme changes to DOMupdateGlobalMeta()
- Update global meta tags and SEOaddCustomThemeToFile()
- Add custom theme to theme.css
Global Integration
The site settings are globally integrated across:
Header Component
- Uses site settings for logo and name display
- Theme selection dropdown uses same system as site settings
- Synced with site settings theme selection
Loading Component
- Uses site logo if available, fallback to default
- Displays site name in loading screen
App.vue
- Global meta tags updated from site settings
- Title, description, and favicon managed globally
- Theme initialization from site settings
SEO and Meta Tags
- Document title updated globally
- Meta descriptions for SEO
- Open Graph tags for social sharing
- Twitter Card tags
- Favicon and apple-touch-icon
Theme System Integration
- Integrates with existing theme system (themeList.js, themeList2.js)
- Theme selection in header dropdown synced with site settings
- Custom themes can be added directly to theme.css
- Backward compatibility with existing theme structure
Custom Theme Structure
Custom themes added to theme.css should follow this structure:
html[data-theme="your-theme-name"] {
--color-primary: 255, 0, 0;
--color-secondary: 0, 255, 0;
--color-success: 0, 255, 0;
--color-info: 0, 0, 255;
--color-warning: 255, 255, 0;
--color-danger: 255, 0, 0;
/* Add your theme variables here */
}
Default Values
If no settings are configured, the system uses these defaults:
- Site Name: "corradAF"
- Site Description: "corradAF Base Project"
- Selected Theme: "biasa"
- Logo: Default corradAF logo
- Favicon: Default favicon
Migration Notes
- Legacy color fields (primaryColor, secondaryColor, etc.) are maintained for backward compatibility
themeMode
field is mapped toselectedTheme
for compatibility- Existing installations will automatically use default values
- Theme selection integrates with existing theme dropdown in header
Notes
- Changes are applied immediately in the preview
- Theme changes affect the entire application
- Custom CSS is injected into the document head
- Theme files are saved to
/assets/style/css/
for proper integration - File uploads are validated for type and size
- Settings persist across browser sessions
- Site name and description updates are reflected globally and immediately
- All meta tags and SEO elements are automatically updated
- Logo changes are reflected in all components that use site settings
Important Notes
- Changes are applied immediately in the preview
- Theme changes affect the entire application
- Custom CSS is injected into the document head
- Theme files are saved to
/assets/style/css/
for proper integration - File uploads are validated for type and size
- Settings persist across browser sessions
- Site name and description updates are reflected globally and immediately
- All meta tags and SEO elements are automatically updated
- Logo changes are reflected in all components that use site settings