Altinn / Altinn/info.altinn.no
Erstatte intern-lenker som har side-id
- Dominant language
- TypeScript
- Stars
- 1
- Forks
- 2
- Avg merge
- 20h 21m
- Merged PRs (30d)
- 32
Description
### Bakgrunn
Ved import fra vårt gamle CMS ble URLer for intern-lenker beholdt. Disse slutter på .aspx og inneholder global id for en side det skal lenkes til, eksempelvis ~/link/cfd0636821fd4fa086216a9665640a0f.aspx
Til nå har vi erstattet disse med normale URLer ved visning av sider. Dette fungerer bra så lenge den siden det lenkes til fortsatt er publisert. Når siden det lenkes til blir avpublisert klarer vi ikke å erstatte lenken med noe fornuftig og brukeren får en 404-side.
En annen ulempe med dagens løsning er at når en side avpubliseres oppdages det ikke at andre sider har lenker til den.
### Forslag til løsning
Foreslått løsning er å kjøre en maskinell engangsjobb som erstatter alle de gamle intern-lenkene med Umbraco sin måte å intern-lenke på. Slik vil redaktører få advarsel hvis de prøver å avpublisere en side som er lenket til fra andre sider og kan finne gode løsninger.
### Intern-lenking i Umbraco
Bildet under viser eksempel på intern-lenking i Umbraco, hvor redaktør har klikket for å redigere en lenke i brødtekst og har valgt siden "Be om fullmakt" fra sidetreet slik at lenken går dit:
### Forslag til teknisk løsning
Lage en jobb som kan startes manuelt av administrator inne i Umbraco.
Se implementasjonen av "Search reindex" eller finn andre måter å lage manuelt startet bakgrunnsjobb på i Umbraco.
Jobben går igjennom alle publiserte sider en etter en og erstatter .aspx-lenker med Umbraco-måten å lenke internt på. Deretter republiseres siden automatisk. Hva som er endret bør logges. Unngå tunge operasjoner som kan gå ut over redaktørbrukere og sidevisninger.
Typisk gammelt format:
`
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by inspecting the existing "Search reindex" implementation or another manually started Umbraco background job. Trace the legacy-link handling in MarkupFilter.cs and the redirect exceptions from issue #699. Done means all published pages have legacy .aspx links converted to Umbraco internal links, attributes and parameters preserved, pages republished, and changes logged without disruptive heavy operations.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 62/100