Skip to content

Sales portal, bug fixes, Salesforce integration - #2323

Merged
jmgasper merged 46 commits into
masterfrom
dev
Sep 18, 2026
Merged

jmgasper merged 46 commits into
masterfrom
dev

Conversation

himaniraghav3 and others added 30 commits September 11, 2026 10:02
…n-colors

PM-6323: Correct Work navigation and System Admin dropdown colors
…-upload

PM-6324: Scroll Submit a solution to the upload form
…iverables

PM-6231: Save pending final deliverables on Design challenges
…test-status

PM-6311: Combine Marathon test progress and status per design feedback
[DO NOT MERGE] PM-5327 Update text on system admin UI
PM-6329 Expand Work showcases and add WIN sharing
PM-6343 Add Sales app and Work integration
PM-6343 Align Sales search and filter fields
PS-616 Display full installment totals in Wallet Admin -> dev
PM-6289 Restore Topgear URL submissions -> dev
…eEnd-to-bulk-ingestion

Add updated date end to bulk ingestion
PM-6087 Display review config to submitters
Search and column filter controls now update the report automatically after a
short debounce; pressing Enter still applies immediately.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
jmgasper and others added 16 commits September 17, 2026 14:03
Share a labelled details summary and story sections between the Work preview
modal and customer portal showcase, hiding any field or section that is empty.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
PM-6347 Search sales dynamically and remove Apply button
PM-6329 Show new showcase fields in preview and customer showcase
Remove the isolated sales-app viewer-request rewrite so CircleCI deploys of the
root Platform UI build update sales.topcoder-dev.com, and document the route.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
PM-6087 Fix the review config for anonymous user
Adds a date range section at the top of the Sales Portal so sales and
leadership can separate pipeline generation, analysed by Created Date, from
revenue realization, analysed by Close Date.

The Filter type dropdown lists the report's own date columns rather than
hard-coded Salesforce field IDs, and opens on Created Date. From and To are
inclusive and either may be left empty. The range applies on Apply filter,
Reset filter clears it without disturbing search, column filters or sorting,
and clearing the report filters leaves the range intact. An inverted range is
reported inline and never sent.

Summary tiles show the metrics the active filters produce: opportunity count,
a total per numeric column, and a per-stage breakdown. The Reports API
computes these over every matching record, so they describe the filtered
result rather than the page on screen, and a cross-currency total is rendered
as a plain number and labelled as mixed. The tiles are hidden when the API
returns no summary, so the page still works against an API that predates it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…arts turbo threshold

The Dashboard tab drew an empty plot area on larger Marathon Matches. The
scatter series passes keyed point configs ({ x, y, name, color, custom }),
but Highcharts switches to turbo mode once a series exceeds
`turboThreshold` (default 1000). Turbo mode only accepts numeric or array
point configs, so it discarded every point, logged error #12, and left the
chart blank with no visible failure.

Challenge e53d30e9-c4b1-40bc-b834-f92483a73223 graphs 1100 points from
1882 review summations, just past the default limit. community-app's
equivalent graph already sets `turboThreshold: 0`, which is why the same
challenge renders there.

Disable the threshold to match community-app, and cover it with a
regression test that renders 1200 points through real Highcharts.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Work app — Edit Project Details:
- Adds a Salesforce Opportunity ID field. A valid id is looked up through
  projects-api-v6 and populates Customer (Subcontracting End Customer), SMU
  (Reporting SMU) and Deal Close Date, leaving fields Salesforce does not
  supply untouched. Reopening a linked project shows the link without
  overwriting details that were edited by hand afterwards.
- Shows a "View in Salesforce" link once the opportunity resolves, opening the
  record in a new tab.

Sales app:
- Report cells carrying a Salesforce opportunity id render the opportunity name
  as a button that opens a popup showing the description first, then customer,
  SMU, close date and stage, plus a link to the record. The popup closes with
  its Close button or the X icon.

SMU options are renamed to the Salesforce codes (APME, EURP, AMR1, AMR2) so the
imported Reporting SMU matches the dropdown. Projects saved with the previous
labels render and save as the current option.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
fix(opportunities): render Marathon Match dashboards above the Highcharts turbo threshold
PM-6363: Import project details from a Salesforce opportunity
PM-6363 landed the Salesforce opportunity popup in the same app. The two
features touch different parts of SalesPage, so only the README heading and
the appended test blocks conflicted, and both sides are kept.

The shared fixture now carries PM-6364's stage, amount and date columns, which
the opportunity tests tolerate because they override rows with their own cells
and none of the added values match the 006 opportunity key prefix.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
PM-6364 Date range filters and filtered totals for the Sales Portal
PM-6347 Serve Sales dev host from the shared root build
Files attached to The Challenge, The Solution and Business Impact
Realised upload correctly and the markdown image tag is saved on the
post, but the image never appeared on the showcase preview or the
published showcase page.

renderRichTextToHtml sanitizes with a DOMPurify allowlist that did not
include the img tag or the src/alt attributes, so marked's <img> output
was stripped after conversion, leaving an empty paragraph.

Allow img plus alt, src, title and loading in the rich text allowlist,
and style images in the showcase story sections so they scale to the
container. DOMPurify's default URI allowlist still blocks unsafe
schemes.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
PM-6329 Render uploaded images in showcase rich text sections
@jmgasper
jmgasper requested a review from kkartunov as a code owner September 18, 2026 00:50
@jmgasper
jmgasper merged commit 3d15a16 into master Sep 18, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants