bmc_hub/migrations/191_user_menu_preferences.sql
Christian ce75f12f56 feat: integrate bug reporting module and enhance screenshot functionality
- Added bug reporting API router to main application.
- Enhanced screenshot functionality in bug-report.js with timeout handling and dynamic loading of html2canvas library.
- Improved screenshot capture strategies and error handling for better user experience.
- Updated modal handling for bug reports to include screenshot previews and status messages.
- Refactored code for better readability and maintainability.

feat: implement user-specific case status and preferences

- Created migration to allow dynamic case statuses in sag_sager table.
- Added user_sag_list_preferences table for per-user preferences on case list filters.
- Introduced user_menu_preferences table to manage per-user menu visibility preferences with triggers for updated_at timestamps.
2026-06-18 22:20:39 +02:00

41 lines
1.2 KiB
PL/PgSQL

-- Migration 191: Per-user menu visibility preferences
CREATE TABLE IF NOT EXISTS user_menu_preferences (
id SERIAL PRIMARY KEY,
user_id INTEGER NOT NULL REFERENCES users(user_id) ON DELETE CASCADE,
menu_key VARCHAR(120) NOT NULL,
visible BOOLEAN NOT NULL DEFAULT TRUE,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
UNIQUE (user_id, menu_key)
);
CREATE INDEX IF NOT EXISTS idx_user_menu_preferences_user_id
ON user_menu_preferences(user_id);
CREATE INDEX IF NOT EXISTS idx_user_menu_preferences_menu_key
ON user_menu_preferences(menu_key);
CREATE OR REPLACE FUNCTION update_user_menu_preferences_updated_at()
RETURNS TRIGGER AS $$
BEGIN
NEW.updated_at = CURRENT_TIMESTAMP;
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
DO $$
BEGIN
IF NOT EXISTS (
SELECT 1
FROM pg_trigger
WHERE tgname = 'user_menu_preferences_updated_at_trigger'
) THEN
CREATE TRIGGER user_menu_preferences_updated_at_trigger
BEFORE UPDATE ON user_menu_preferences
FOR EACH ROW
EXECUTE FUNCTION update_user_menu_preferences_updated_at();
END IF;
END;
$$;