Files

50 lines
3.1 KiB
Markdown

# extension-shell Specification
## Purpose
Provide predictable entry points, navigation, modal interaction and printing across the supported browser extension targets.
## Requirements
### Requirement: Supported Fusion pages expose the extension
The extension SHALL provide its entry tile on the configured Oracle Fusion hcmUI and fscmUI FuseWelcome pages. A bookmarked URL with the extension shortcut marker SHALL open the main modal without requiring a click on the Sales group.
#### Scenario: Fusion rewrites the URL
- **WHEN** the user follows the shortcut URL and Fusion subsequently replaces its query string
- **THEN** the captured shortcut intent still permits the extension to open once when ready
### Requirement: Favorites use an explicit folder choice
Ctrl+Shift+F within the extension SHALL open a searchable browser-bookmark folder picker. Saving SHALL use the chosen writable folder and extension shortcut URL rather than silently choosing an arbitrary location.
#### Scenario: User selects a bookmark folder
- **WHEN** the user confirms a writable folder and saves
- **THEN** the extension shortcut is saved in that folder
### Requirement: Bookmark discovery keeps Last update first
When the shortcut is not bookmarked, the header SHALL show a prominent shortcut hint for 20 seconds. Last update SHALL remain the first badge and other badges SHALL appear to its right.
#### Scenario: Favorite is saved while the hint is visible
- **WHEN** the shortcut is successfully added to bookmarks
- **THEN** the favorite hint is removed without waiting for the remaining timeout
### Requirement: Non-full-page modals can be dragged by their header
Non-full-page modals SHALL support dragging from noninteractive areas of their title bar, allowing up to 70 percent of their width and height beyond viewport edges. Header controls SHALL retain their own interactions and full-page views SHALL not become draggable.
#### Scenario: Drag exceeds viewport edge
- **WHEN** the user drags a movable modal far outside the viewport
- **THEN** movement is clamped so at least 30 percent of each modal dimension remains within the allowed bounds
### Requirement: Shared presentation remains consistent
Modal titles, spacing, loading skeletons and table presentation SHALL follow the extension's shared visual patterns in light and dark themes. User-facing labels SHALL use English, with service-provided names preserved.
#### Scenario: Customer detail is opened while loading
- **WHEN** the user opens a customer table before its data arrives
- **THEN** its title and loading skeleton use the shared modal styling
### Requirement: Print output reflects the current opportunity view
The print action beside Booking/Workload filters SHALL produce a landscape-oriented browser print layout containing active filter summaries, indicators and the opportunity list with page padding.
#### Scenario: All customers and owners are selected
- **WHEN** the user opens the print layout with unrestricted Customer and Owner selections
- **THEN** it labels them `All customers` and `All owners` instead of expanding every selected name