Commit graph

191 commits

Author SHA1 Message Date
b69ea06ad3 Fix logged-out user menu - show only Sign in button
Removed Profile, Settings, and Help & Support items from user menu
when user is not authenticated. Now only Sign in button is visible.
2026-02-04 08:57:31 -03:00
bd49ee3892 Add logged-out navigation menu component
- Simplified menu showing only Sign in button
- Uses HTMX for authentication redirect
- Follows existing UI component patterns
- Responsive design with CSS variables
2026-02-04 00:03:10 -03:00
34d55825bc feat: Hide omnibox and apps menu based on product configuration
- Hide omnibox search mechanism when search_enabled=false in product config
- Hide apps menu launcher when menu_launcher_enabled=false or when no apps are visible
- Check effectiveApps (after filtering by compiled features) to determine if menu should be shown
- Automatically hide the apps menu button when there are no apps to display

This provides UI controls that respect the new search_enabled and menu_launcher_enabled
directives added to the .product configuration.
2026-01-29 23:56:00 -03:00
27e839f22a Fix bot_id routing: Extract bot name from URL path
- Add bot_name field to WsQuery struct
- Extract bot_name from URL path (e.g., /edu, /chat/edu)
- Pass bot_name to backend WebSocket URL
- Use URL path for bot identification instead of relying on client message
2026-01-28 17:17:36 -03:00
db0f0c1178 fix(ui): Use absolute paths for CSS/JS assets in suite apps to resolve loading errors 2026-01-28 16:26:09 -03:00
f4dcae288a chore: Revert default log level to info 2026-01-27 18:44:22 -03:00
bb8b35d885 chore: Set default internal log level to trace 2026-01-27 18:37:21 -03:00
497d0dd18c fix(ui): add filesystem fallback for embedded mode
Some checks failed
GBCI / build (push) Failing after 11s
2026-01-26 14:53:32 -03:00
22fa29b3ec fix(ui): improve asset discovery and error logging
Some checks failed
GBCI / build (push) Failing after 11s
2026-01-26 14:50:27 -03:00
12c1e3210f feat(ui): implement embedded ui assets and robust path resolution
Some checks failed
GBCI / build (push) Failing after 12s
2026-01-26 11:44:47 -03:00
5657e33006 refactor(suite): clean up base layout and modularize app scripts 2026-01-25 13:33:03 -03:00
fee8b3d2a3 fix(clippy): resolve unused code warning 2026-01-25 10:29:56 -03:00
74a2122827 fix(ui): resolve clippy warnings and update dependencies 2026-01-25 08:42:35 -03:00
97b96faa89 Update UI 2026-01-24 22:06:22 -03:00
e3219d8a4f Refactor: Use workspace dependencies 2026-01-23 09:37:48 -03:00
55947a20b9 feat: add app feature flags and gate static routes 2026-01-22 21:23:41 -03:00
1435d1016f Update PROMPT.md and UI changes 2026-01-22 20:24:16 -03:00
e32e9b793a Update UI components and add drive-sentient.js 2026-01-16 11:29:47 -03:00
eb785b9a69 Fix UI button handlers and add missing JS modules
- Add admin-functions.js with 40+ button handlers
- Load admin scripts in main suite/index.html
- Fix slides.html gbSlides -> window.slidesApp
- Add canvas.js, dashboards.js, goals.js modules
- Export missing functions in drive.js, chat.js
2026-01-13 14:49:22 -03:00
e3b5929b99 fix(slides): remove duplicate cacheElements/bindEvents functions causing null error
The duplicate functions at lines 455-486 were redefining cacheElements and
bindEvents with wrong element IDs (kebab-case vs camelCase in HTML).
This caused 'Cannot read properties of null' error on slides app init.
2026-01-12 14:05:06 -03:00
08469ecbf6 fix(social): remove auto-loading API calls that cause 404 errors
- Remove hx-trigger='load' from social sidebar sections
- Replace loading placeholders with static empty state messages
- Add empty-state CSS styling
- Prevents page from breaking when backend APIs are not available
2026-01-12 00:25:31 -03:00
43be86bad4 fix(social): add social.css to index.html and clean up HTML formatting
- Add social.css to main index.html CSS includes
- Remove redundant link tag from social.html
- Clean up HTML formatting
2026-01-12 00:21:28 -03:00
a9dc598dd1 fix(docs): add data-app attribute and move CSS to index.html
- Add docs.css to main index.html CSS includes
- Remove redundant link tag from docs.html
- Add body data-app attribute in htmx-app.js when section changes
- Use body[data-app='docs'] selector for reliable CSS targeting
- Force light background on #main-content when docs is active
2026-01-12 00:11:28 -03:00
cc40ddb65f fix(docs): fix layout - AI panel on right, remove black strips, clean toolbar
- Remove editor-header/footer from default view (caused blue bar)
- Force light background (#f8f9fa) on all parent containers
- Fix chat-panel to be true flex child with order:2 for right side
- Simplify CSS with hardcoded colors instead of variables for reliability
- Set chat panel width to 280px with proper flex properties
- Hide header/footer by default, show only when content exists
- Clean up responsive breakpoints
2026-01-12 00:03:48 -03:00
7b2cf282ae fix(docs): respect PROMPT.md guidelines - replace emoji icons with SVG, fix layout issues
- Replace emoji icons (📄, 📝, 🌐, 📃, ✏️) in export modal with proper SVG icons
- Update CSS variables to use sentient bridge variables with fallbacks
- Fix docs-main flexbox layout to display canvas and chat panel side by side
- Add parent container overrides to prevent black strips from dark themes
- Fix chat panel width constraints and collapsed state transitions
- Update responsive breakpoints to use --header-height variable
- Add !important overrides on backgrounds to ensure proper light theme
2026-01-11 23:59:24 -03:00
9b39088e37 Fix theme cascade: use sentient variables directly in sheet/slides CSS
- Remove intermediate variable aliases in :root (they don't cascade)
- Replace --sheet-* and --slides-* with direct --sentient-* references
- Headers, borders, and cells now properly follow theme colors
- Dark themes will now paint dark backgrounds correctly
2026-01-11 21:08:43 -03:00
443f611289 Fix theme loading: add light.css and make default theme load it
- Created light.css with explicit sentient bridge hex values
- Updated theme-manager to always load a theme file (no null)
- Default and Light themes now both load light.css
- Sheet/Docs/Slides will now show white background with light themes
2026-01-11 20:58:11 -03:00
a389dc845e Add sentient-* bridge variables to ALL themes for Sheet/Docs/Slides support
- All 18 themes now include --sentient-* CSS variables
- Variables map theme HSL values to office suite apps
- Sheet, Docs, Slides will now respect all theme colors
- Includes: backgrounds, text, accents, borders, surfaces, inputs, status, shadows, radius
2026-01-11 20:53:44 -03:00
0662099ed1 Fix theme variables for Sheet/Docs/Slides in sentient theme
- Add complete sentient-* bridge variables inside [data-theme=sentient] block
- Variables now properly cascade to office suite apps
- Includes direct hex values for dark theme colors
2026-01-11 20:38:05 -03:00
91c54933f3 Fix theme support for Sheet/Docs/Slides
- Add complete sentient-* bridge variables in app.css
- Map all HSL theme variables to sentient-* naming
- Includes: backgrounds, text, accents, borders, surfaces, inputs, status colors, shadows, radius
- Rewrite 3dbevel theme to use CSS variables instead of !important overrides
- All themes now properly cascade to office suite apps
2026-01-11 20:28:11 -03:00
76627ae9f0 feat(suite): Enhanced UI for Sheet, Docs, and Slides editors 2026-01-11 12:01:59 -03:00
10299814b2 M365-like UI for Sheet, Docs, and Slides editors
- Clean editor experience without document list sidebars
- Theme-aware using --sentient-* CSS variables
- Modern toolbar design like Microsoft 365
- Sheet: Formula bar, spreadsheet grid, sheet tabs, zoom controls
- Docs: A4 page centered with shadow, formatting toolbar
- Slides: Thumbnails on left, canvas in center, properties panel
- AI chat panel (collapsible) for all editors
- Responsive design with mobile support
- Print styles for all editors
- Dark/light mode support via theme system
2026-01-11 09:56:44 -03:00
47abba8a99 chore: remove unused askama dependencies
- Removed askama and askama_axum from Cargo.toml
- Deleted askama.toml configuration file
- botui serves static HTML files directly, no template engine needed
2026-01-10 20:32:25 -03:00
69654f37d6 refactor(ui): extract inline CSS/JS to external files
Phase 2 of CSS/JS extraction - replace inline styles and scripts with
external file references for better maintainability and caching.

Files updated:
- home.html -> css/home.css, js/home.js
- tasks/tasks.html -> tasks/tasks.css, tasks/tasks.js
- admin/index.html -> admin/admin.css, admin/admin.js
- analytics/analytics.html -> analytics/analytics.css, analytics/analytics.js
- mail/mail.html -> mail/mail.css, mail/mail.js
- monitoring/monitoring.html -> monitoring/monitoring.css, monitoring/monitoring.js
- attendant/index.html -> attendant/attendant.css, attendant/attendant.js

All JS wrapped in IIFE pattern to prevent global namespace pollution.
Functions called from HTML onclick handlers exposed via window object.
HTMX reload handlers included for proper reinitialization.

Per PROMPT.md: no CDN links, HTMX-first approach, local assets only.
2026-01-10 20:12:48 -03:00
d4dc504d69 feat(auth): add security bootstrap and improve auth handling
- Add security-bootstrap.js for centralized auth token management
- Improve login flow with token persistence
- Update htmx-app.js auth integration
- Fix settings and tasks auth handling
2026-01-10 17:32:01 -03:00
c6fc5306c6 debug: add logging to htmx auth header 2026-01-10 14:22:31 -03:00
7bb230b59c fix(htmx): register auth header listener on document immediately
The listener was being registered on document.body inside initHTMX(),
but HTMX requests could start before body was ready.

Now register on document at script load time (immediately) to ensure
all HTMX requests get the Authorization header.
2026-01-10 14:19:22 -03:00
b5c75e650b fix(htmx): add Authorization header to all HTMX requests
- Include gb-access-token in Authorization header for all HTMX requests
- Add X-Session-ID header for session tracking
- Fix 401 errors on all HTMX-powered API calls
2026-01-10 14:00:43 -03:00
ab8c7ae02b feat(api-client): add centralized API client with auth token injection
- Create api-client.js for automatic auth token handling
- Include Authorization header in all API requests
- Support for localStorage/sessionStorage token persistence
- Handle 401/403 errors with global event dispatch
- Add file upload with progress tracking
- Update drive.js to use ApiClient
- Add api-client.js to index.html
2026-01-10 11:47:54 -03:00
955568c8e4 fix(i18n): fix DOM timing issue in i18n.js
- Wait for document.body before attaching event listeners
- Prevents TypeError when script loads before body exists
2026-01-10 10:54:05 -03:00
9a4c8bf6a6 Add Phase 4 (@ Mentions) and Phase 5 (Business Reports)
Phase 4 - Chat @ Mentions:
- Add mention dropdown with entity type search
- Add mention tags rendering in messages
- Add entity card tooltip on hover
- Add navigation to entity on click
- Support @lead, @opportunity, @account, @contact, @invoice, @case, @product, @service

Phase 5 - Business Reports:
- Create analytics/partials/business-reports.html
- Add CRM reports: Sales Pipeline, Lead Conversion, Won/Lost, Forecast
- Add Billing reports: Revenue Summary, Aging, Payment History, Monthly
- Add Support reports: Cases by Priority, Resolution Time, Category, AI Rate
- Add tabbed interface for report sections

i18n:
- Add chat mention translations (en, pt-BR, es)
2026-01-10 07:06:39 -03:00
c24ff23a07 Add CRM to header tabs and update CSS breakpoints
- Add CRM tab to header navigation after tasks
- Add CSS breakpoint at 1350px for CRM tab hiding
- Add app-item breakpoint for CRM in dropdown
- Delete i18n.js (translations moved to botlib .ftl files)
- Update TODO.md with completed phases
2026-01-10 06:59:58 -03:00
d4082b612a Add SMB Suite apps: CRM, Billing, Products, Tickets, Forms
- CRM: Pipeline view with Lead → Opportunity → Account flow (Dynamics nomenclature)
  - Kanban pipeline with stages: Lead, Qualified, Proposal, Negotiation, Won, Lost
  - List views for Leads, Opportunities, Accounts, Contacts
  - Summary stats: Pipeline value, Conversion rate, Avg deal, Won this month

- Billing: Invoices, Payments, Quotes management
  - Summary cards: Pending, Overdue, Paid this month, Revenue
  - Invoice list with status filters (draft, sent, paid, overdue, cancelled)
  - Payments tracking with method filters
  - Quotes with status workflow (draft → sent → accepted/rejected)

- Products: Product & Service catalog
  - Grid and List views with category/status filters
  - Services tab with type filters (hourly, fixed, recurring)
  - Price Lists management with currency support

- Tickets: AI-assisted support cases
  - Case management with priority/category filters
  - AI suggestion banner and auto-suggestions on description
  - List + Detail split view
  - Summary stats: Open, Urgent, Resolved today, AI resolved %

- Forms: Redirect to Tasks with AI prompt
  - Quick example chips for common form types
  - Redirects to Tasks with 'Create a form for me about [topic]'

- Menu: Added all 5 apps to dropdown menu after People
- i18n: Added nav labels in English and Portuguese
2026-01-09 22:41:32 -03:00
80c91f6304 Redesign home page with beautiful layout, add People/Contacts, rename Tools to Compliance
- Complete home page redesign with large icons, full descriptions, recent documents
- Add People (Contacts) menu item and page with contacts management
- Move Paper right after Chat in menu order
- Rename Tools to Compliance with shield icon
- Settings moved to end of menu
- Logo click now shows home page
- Add Project, Canvas, Goals, Player, Workspace, Video, Learn to menu
- New CSS for home page with modern card layout
2026-01-09 20:56:59 -03:00
cb33a75d39 Add admin, dashboards, learn, social, and video UI components 2026-01-08 13:16:06 -03:00
5f65a62808 fix(auth): Save access_token in login.html before redirect 2026-01-07 07:21:28 -03:00
454fd5a8b0 fix(auth): Simplify user profile loading with direct API call 2026-01-07 07:09:29 -03:00
a4b9d013e1 fix(auth): Integrate user menu with GBAuth service
- Use GBAuth service events for user profile updates
- Use correct storage keys (gb-access-token, gb-user-data)
- Listen to userUpdated, login, logout events
- Store tokens using AuthService.storeTokens() method
- Add fallback for when GBAuth is not immediately available
2026-01-07 07:03:07 -03:00
d8e52bf330 feat(auth): Add user profile loading and auth state management
- Add JavaScript to load user profile from /api/auth/me endpoint
- Save access_token to localStorage/sessionStorage on login
- Update user menu to show actual user name and email
- Toggle Sign in/Sign out based on authentication state
- Add IDs to user menu elements for dynamic updates
2026-01-06 22:57:00 -03:00
faaabefc1c Fix All Applications dropdown order to match main menu
- Reorder apps: Chat, Paper, Mail, Drive, Calendar, Tasks first
- Then other apps: Research, Meet, Analytics, Monitoring
2026-01-04 08:48:28 -03:00