Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
9884528
fix(#2873): tolerate stale slugs in auto-dispatched rebuild filter
jung-thomas Oct 21, 2026
e3753dc
Merge pull request #2874 from sap-tutorials/fix/qa-stale-slug-tolerance
jung-thomas Oct 21, 2026
ebe3118
fix(#2866): keep redo tutorial URL active for out-of-window completions
jung-thomas Oct 21, 2026
d5f273b
Merge pull request #2875 from sap-tutorials/worktree-2866-redo-url-ac…
jung-thomas Oct 21, 2026
f07c66e
feat(#2865): drawing service skeleton + listEvents (Admin-gated)
jung-thomas Oct 21, 2026
69423b2
test(#2865): strengthen listEvents ordering assertion
jung-thomas Oct 21, 2026
de4d982
feat(#2865): pool + draw functions, anonymized-user exclusion
jung-thomas Oct 21, 2026
129500b
test(#2865): add draw 404-on-unknown-event test
jung-thomas Oct 21, 2026
e6131bc
feat(#2865): scaffold drawings Vue display app
jung-thomas Oct 21, 2026
ddaa00a
fix(options): indent code boxes trailing an OPTION block (#2820)
jung-thomas Oct 21, 2026
5a7c00d
Merge pull request #2876 from sap-tutorials/fix-2820-codebox-indent
jung-thomas Oct 21, 2026
1533454
fix(#2865): add .gitignore exception for PNG, create index.template.html
jung-thomas Oct 21, 2026
ce3f1d0
feat(#2865): drawings UI — event picker, draw, winner reveal with Kas…
jung-thomas Oct 21, 2026
85c364b
revert(#2864): remove mission-header-level temporarilyUnavailable (wr…
jung-thomas Oct 21, 2026
9f59e1b
feat(#2865): wire /drawings-ui approuter route + MTA builder (Admin s…
jung-thomas Oct 21, 2026
6974c28
docs(#2864): restore prior mission-disable planning docs (overzealous…
jung-thomas Oct 21, 2026
5fc7e59
docs(#2865): document drawings UI + DrawingService endpoints
jung-thomas Oct 21, 2026
18e656e
feat(#2864): add temporarilyUnavailable + unavailableReason to Comple…
jung-thomas Oct 21, 2026
8702d7c
feat(#2864): expose path-item unavailable toggle on admin detail form
jung-thomas Oct 21, 2026
8d86130
Merge pull request #2877 from sap-tutorials/worktree-drawings-ui-2865
jung-thomas Oct 21, 2026
5e2f4b4
feat(#2864): surface per-path-item unavailable flag in loadMissionCon…
jung-thomas Oct 21, 2026
393d133
docs(#2865): add daily-drawings design spec + implementation plan
jung-thomas Oct 21, 2026
b5811a8
Merge pull request #2878 from sap-tutorials/docs-drawings-2865
jung-thomas Oct 21, 2026
d67a774
feat(#2864): grey out + delink temporarily-unavailable path items on …
jung-thomas Oct 21, 2026
e4ccf73
feat(#2865): add real tuxedo-Kasimir mascot image for drawings reveal
jung-thomas Oct 21, 2026
619a11e
Merge pull request #2879 from sap-tutorials/worktree-kasimir-img-2865
jung-thomas Oct 21, 2026
ee162db
chore(#2864): add CompletionPathItems unavailable fields to GraphQL SDL
jung-thomas Oct 21, 2026
6efa399
docs(#2864): add path-item temporarily-unavailable design + plan
jung-thomas Oct 21, 2026
6993101
Merge pull request #2880 from sap-tutorials/worktree-2864-path-item-d…
jung-thomas Oct 21, 2026
18e245d
chore(release): 1.40.4
jung-thomas Oct 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion .deploy/mta.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ ID: tutorials-ims
# Bump this on each release you deploy — it's the version shown by `cf mtas`
# and in the mtar filename (tutorials-ims_<version>.mtar). Deploy is manual:
# `cd .deploy && mbt build && cf deploy mta_archives/tutorials-ims_<version>.mtar -e ../deploy/<env>.mtaext -f`.
version: 1.40.3
version: 1.40.4

# Top-level parameters (overridable per-env via deploy/<env>.mtaext).
parameters:
Expand Down Expand Up @@ -283,6 +283,12 @@ modules:
- npm --prefix ../app/display-app run build
- mkdir -p static/display-app
- cp -r ../app/display-app/dist/. static/display-app/
# Drawings UI (#2865) — Vue 3 + Vite, Admin scope, base '/drawings-ui/'.
# Served from static/drawings-ui via the /drawings-ui/ approuter route.
- npm --prefix ../app/display-app-drawings install
- npm --prefix ../app/display-app-drawings run build
- mkdir -p static/drawings-ui
- cp -r ../app/display-app-drawings/dist/. static/drawings-ui/
# Data Inspector UI (#999) — bundled inside @cap-js/data-inspector's
# node_modules. Rewrite the UI5 bootstrap CDN in index.html from
# sapui5.hana.ondemand.com (plugin default) to ui5.sap.com — the
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ hugo/static-qa/
!hugo/static/images/devtoberfest/selfie/thumbnails/*.png
!hugo/static/images/devtoberfest/selfie/stickers/*.png
!hugo/static/images/devtoberfest/selfie/backgrounds/*.png
!app/display-app-drawings/public/*.png
hugo/static/js/*
!hugo/static/js/joule.js
!hugo/static/js/joule-render.js
Expand Down
11 changes: 5 additions & 6 deletions app/admin-annotations.cds
Original file line number Diff line number Diff line change
Expand Up @@ -127,8 +127,6 @@ annotate AdminService.Missions with {
missionType @Common.Label: 'Type' @Common.ValueListWithFixedValues;
event @Common.Label: 'Event';
published @Common.Label: 'Published';
temporarilyUnavailable @Common.Label: 'Temporarily Unavailable';
unavailableReason @Common.Label: 'Unavailable Reason' @UI.MultiLineText;
status @Common.Label: 'Status' @Common.ValueListWithFixedValues;
averageTimeToComplete @Common.Label: 'Avg Time (min)';
qaPreviewUrl @Common.Label: 'QA Preview' @Common.FieldControl: #ReadOnly;
Expand All @@ -151,7 +149,6 @@ annotate AdminService.Missions with @UI: {
{ Value: experienceTag },
{ Value: primaryTagRef.name, Label: 'Primary Tag' },
{ Value: published, @UI.Importance: #High },
{ Value: temporarilyUnavailable },
{ Value: status }
],
Facets: [
Expand All @@ -169,8 +166,6 @@ annotate AdminService.Missions with @UI: {
{ Value: experienceTag },
{ Value: missionType },
{ Value: published, @UI.FieldControl: publishedFieldControl },
{ Value: temporarilyUnavailable },
{ Value: unavailableReason },
{ Value: status },
{ $Type: 'UI.DataFieldWithUrl', Value: qaPreviewLabel, Url: qaPreviewUrl, Label: 'QA Preview' },
{ $Type: 'UI.DataFieldWithUrl', Value: mainPreviewLabel, Url: mainPreviewUrl, Label: 'Live Mission' }
Expand Down Expand Up @@ -269,6 +264,8 @@ annotate AdminService.CompletionPathItems with {
showTutorial @UI.Hidden;
showGroup @UI.Hidden;
showCheckpoint @UI.Hidden;
temporarilyUnavailable @Common.Label: 'Temporarily Unavailable';
unavailableReason @Common.Label: 'Unavailable Reason' @UI.MultiLineText;
};

annotate AdminService.CompletionPathItems with {
Expand Down Expand Up @@ -326,7 +323,9 @@ annotate AdminService.CompletionPathItems with @UI: {
{ Value: prize_ID },
{ Value: altGroupKey },
{ Value: altGroupLabel },
{ Value: altCondition }
{ Value: altCondition },
{ Value: temporarilyUnavailable },
{ Value: unavailableReason }
]
},
PresentationVariant: { SortOrder: [ { Property: itemOrder } ] },
Expand Down
16 changes: 16 additions & 0 deletions app/display-app-drawings/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<!DOCTYPE html>
<!-- GENERATED file. DO NOT EDIT manually — content scaffolded from display-app template. -->
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Tutorial Drawings</title>
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
<link rel="icon" type="image/x-icon" href="/favicon.ico" sizes="48x48">
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
</head>
<body>
<div id="app"></div>
<script type="module" src="/src/main.ts"></script>
</body>
</html>
20 changes: 20 additions & 0 deletions app/display-app-drawings/index.template.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<!DOCTYPE html>
<!-- TEMPLATE — do not edit index.html directly; it is generated from this file by
scripts/apply-ui5-version.cjs. The {{UI5_CDN_VERSION}} token is filled from
app/admin-shell/ui5-version.json. Edit the version there, then run
`npm run apply:ui5-version`. CI guard `check-ui5-version` enforces no drift. -->
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Tutorial Drawings</title>
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
<link rel="icon" type="image/x-icon" href="/favicon.ico" sizes="48x48">
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
<link href="https://ui5.sap.com/{{UI5_CDN_VERSION}}/resources/sap/ui/core/themes/sap_horizon/fonts/72-fonts.css" rel="stylesheet">
</head>
<body>
<div id="app"></div>
<script type="module" src="/src/main.ts"></script>
</body>
</html>
Loading
Loading