Release 1.0.8
This commit is contained in:
13
README.md
13
README.md
@@ -447,6 +447,19 @@ a focused chart fixture. Stop the server with Ctrl+C when finished.
|
|||||||
- Show requestOpportunitiesSavedSearch in the Opportunities debug category and stop dependent queries when the default search is missing or invalid.
|
- Show requestOpportunitiesSavedSearch in the Opportunities debug category and stop dependent queries when the default search is missing or invalid.
|
||||||
- Regenerated Chromium/Edge and Firefox distributions. Release validation uses synthetic automated tests; live Oracle calls and installed-browser smoke tests were not performed for this release.
|
- Regenerated Chromium/Edge and Firefox distributions. Release validation uses synthetic automated tests; live Oracle calls and installed-browser smoke tests were not performed for this release.
|
||||||
|
|
||||||
|
## Release 1.0.8 - 2026-10-27
|
||||||
|
|
||||||
|
- Added customer Organization Charts with contact search, contact creation, person details, notes, hierarchy editing and locally persisted chart data.
|
||||||
|
- Added paginated, sortable opportunities by contact using the contact PartyNumber.
|
||||||
|
- Unified modal and table layouts, loading skeletons and typography; added Rate Card order-number filtering and simplified Overview customer names using PartyName.
|
||||||
|
- Added Reference-bounded scrolling calendars with all daily opportunity cards and positioning around the current week.
|
||||||
|
- Added Booking/Workload filters and improved ramp/projection access, alerts and unavailable-workload indicators.
|
||||||
|
- Removed AI-generated opportunity summaries and their dedicated requests.
|
||||||
|
- Persisted debug requests in localStorage with lazy rendering; history resets only when a new opportunity query starts.
|
||||||
|
- Reuse successful current-user identity during the browser session; fixed debug timer invocation and added Token Relay timeout/retry support.
|
||||||
|
- Prepare SPA and SR sessions concurrently, inspect SPA before visual assets finish loading, and provide SR session retry with a 70-second timeout.
|
||||||
|
- Regenerated Chromium/Edge and Firefox distributions. Validation uses synthetic automated tests; live Oracle calls and installed-browser smoke tests are not included.
|
||||||
|
|
||||||
## Loading in Development Mode
|
## Loading in Development Mode
|
||||||
|
|
||||||
### Chrome or Microsoft Edge
|
### Chrome or Microsoft Edge
|
||||||
|
|||||||
2
dist/chromium/manifest.json
vendored
2
dist/chromium/manifest.json
vendored
@@ -2,7 +2,7 @@
|
|||||||
"manifest_version": 3,
|
"manifest_version": 3,
|
||||||
"name": "Opportunities Extension",
|
"name": "Opportunities Extension",
|
||||||
"description": "Adiciona um atalho de Opportunities Extension nas paginas Oracle Fusion permitidas.",
|
"description": "Adiciona um atalho de Opportunities Extension nas paginas Oracle Fusion permitidas.",
|
||||||
"version": "1.0.7",
|
"version": "1.0.8",
|
||||||
"permissions": [
|
"permissions": [
|
||||||
"cookies",
|
"cookies",
|
||||||
"storage",
|
"storage",
|
||||||
|
|||||||
2
dist/firefox/manifest.json
vendored
2
dist/firefox/manifest.json
vendored
@@ -2,7 +2,7 @@
|
|||||||
"manifest_version": 3,
|
"manifest_version": 3,
|
||||||
"name": "Opportunities Extension",
|
"name": "Opportunities Extension",
|
||||||
"description": "Adiciona um atalho de Opportunities Extension nas paginas Oracle Fusion permitidas.",
|
"description": "Adiciona um atalho de Opportunities Extension nas paginas Oracle Fusion permitidas.",
|
||||||
"version": "1.0.7",
|
"version": "1.0.8",
|
||||||
"permissions": [
|
"permissions": [
|
||||||
"cookies",
|
"cookies",
|
||||||
"storage",
|
"storage",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "opportunities-extension",
|
"name": "opportunities-extension",
|
||||||
"version": "1.0.7",
|
"version": "1.0.8",
|
||||||
"private": true,
|
"private": true,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ const baseManifest = {
|
|||||||
manifest_version: 3,
|
manifest_version: 3,
|
||||||
name: "Opportunities Extension",
|
name: "Opportunities Extension",
|
||||||
description: "Adiciona um atalho de Opportunities Extension nas paginas Oracle Fusion permitidas.",
|
description: "Adiciona um atalho de Opportunities Extension nas paginas Oracle Fusion permitidas.",
|
||||||
version: "1.0.7",
|
version: "1.0.8",
|
||||||
permissions: [
|
permissions: [
|
||||||
"cookies",
|
"cookies",
|
||||||
"storage",
|
"storage",
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ test("distribution contracts: manifests, execution boundaries and deterministic
|
|||||||
const base = {
|
const base = {
|
||||||
manifest_version: 3, name: "Opportunities Extension",
|
manifest_version: 3, name: "Opportunities Extension",
|
||||||
description: "Adiciona um atalho de Opportunities Extension nas paginas Oracle Fusion permitidas.",
|
description: "Adiciona um atalho de Opportunities Extension nas paginas Oracle Fusion permitidas.",
|
||||||
version: "1.0.7", permissions: ["cookies", "storage", "webRequest", "declarativeNetRequestWithHostAccess"],
|
version: "1.0.8", permissions: ["cookies", "storage", "webRequest", "declarativeNetRequestWithHostAccess"],
|
||||||
host_permissions: ["https://eeho.fa.us2.oraclecloud.com/*", "https://spa.oracle.com/*", "https://comcipapic-oalprod.integration.ocp.oraclecloud.com/*"],
|
host_permissions: ["https://eeho.fa.us2.oraclecloud.com/*", "https://spa.oracle.com/*", "https://comcipapic-oalprod.integration.ocp.oraclecloud.com/*"],
|
||||||
content_scripts: [{
|
content_scripts: [{
|
||||||
matches: ["https://eeho.fa.us2.oraclecloud.com/hcmUI/faces/FuseWelcome*", "https://eeho.fa.us2.oraclecloud.com/fscmUI/faces/FuseWelcome*"],
|
matches: ["https://eeho.fa.us2.oraclecloud.com/hcmUI/faces/FuseWelcome*", "https://eeho.fa.us2.oraclecloud.com/fscmUI/faces/FuseWelcome*"],
|
||||||
@@ -124,7 +124,7 @@ test("opportunity query preserves fields, record-set OR, date AND, and paginatio
|
|||||||
{ op: "$and", criteria: [{ op: "$or", criteria: types.map(value => ({ op: "$eq", attribute: "RecordSet", value })) }] },
|
{ op: "$and", criteria: [{ op: "$or", criteria: types.map(value => ({ op: "$eq", attribute: "RecordSet", value })) }] },
|
||||||
{ op: "$wi", attribute: "EffectiveDate", value1: "2026-06-01T00:00:00.000+0000", value2: "2026-09-01T00:00:00.000+0000" }
|
{ op: "$wi", attribute: "EffectiveDate", value1: "2026-06-01T00:00:00.000+0000", value2: "2026-09-01T00:00:00.000+0000" }
|
||||||
] }, keywords: null, keywordsFields: fields,
|
] }, keywords: null, keywordsFields: fields,
|
||||||
fields: [...fields, "CustomerAccount.PartyUniqueName", "CustomerAccount.PartyId", "CustomerAccount.PartyNumber", "CustomerAccount.Region_c", "CustomerAccount.PrimaryAddress.CountryCode"],
|
fields: [...fields, "CustomerAccount.PartyUniqueName", "CustomerAccount.PartyName", "CustomerAccount.PartyId", "CustomerAccount.PartyNumber", "CustomerAccount.Region_c", "CustomerAccount.PrimaryAddress.CountryCode"],
|
||||||
sort: null, language: "en", skipInValidFields: true, skipHiddenFromUIFields: true,
|
sort: null, language: "en", skipInValidFields: true, skipHiddenFromUIFields: true,
|
||||||
copiedFrom: "queries/default-search", limit: 15, offset: 15
|
copiedFrom: "queries/default-search", limit: 15, offset: 15
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ const walk = node => [node, ...node.children.flatMap(walk)];
|
|||||||
const hasClass = (node, name) => (node.className || "").split(" ").includes(name);
|
const hasClass = (node, name) => (node.className || "").split(" ").includes(name);
|
||||||
const findClass = (node, name) => walk(node).find(child => hasClass(child, name));
|
const findClass = (node, name) => walk(node).find(child => hasClass(child, name));
|
||||||
const synthetic = (number = "TEST-1", name = "Synthetic opportunity") => ({
|
const synthetic = (number = "TEST-1", name = "Synthetic opportunity") => ({
|
||||||
Name: name, OptyNumber: number, CustomerAccount: { PartyUniqueName: "Synthetic customer", PartyId: "party/id", PartyNumber: "reg-123" },
|
Name: name, OptyNumber: number, CustomerAccount: { PartyName: "Synthetic customer", PartyUniqueName: "Synthetic customer (Location)", PartyId: "party/id", PartyNumber: "reg-123" },
|
||||||
Owner: { PersonFirstName: "Test", PersonLastName: "Owner" }, PrimaryRevenue: { RevnAmount: "123456.78", RevnAmountCurcyCode: "USD", WinProb: 60 },
|
Owner: { PersonFirstName: "Test", PersonLastName: "Owner" }, PrimaryRevenue: { RevnAmount: "123456.78", RevnAmountCurcyCode: "USD", WinProb: 60 },
|
||||||
EffectiveDate: "2026-10-23", LastUpdateDate: "2026-09-22T13:15:00Z", StatusCode: "OPEN", ForecastGroup_c: "FORECAST"
|
EffectiveDate: "2026-10-23", LastUpdateDate: "2026-09-22T13:15:00Z", StatusCode: "OPEN", ForecastGroup_c: "FORECAST"
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user