For å fortsette, vennligst rediger "web.config"-filen (bruk Visual Studio eller din favoritteditor), rull ned til bunnen, og legg til tilkoblingsstrengen for din database i nøkkelen "umbracoDbDSN" og lagre filen.
]]>
+ Vennligst kontakt din ISP om nødvendig. Hvis du installerer på en lokal maskin eller server, må du kanskje skaffe informasjonen fra din systemadministrator.]]>
+ Trykk på knappen oppgrader for å oppgradere databasen din til Umbraco %0%
Ikke vær urolig - intet innhold vil bli slettet og alt vil fortsette å virke etterpå!
]]>
+ Trykk Neste for å fortsette.]]>
+ neste for å fortsette konfigurasjonsveiviseren]]>
+ Passordet til standardbrukeren må endres!]]>
+ Standardbrukeren har blitt deaktivert eller har ingen tilgang til Umbraco!
Ingen videre handling er nødvendig. Klikk neste for å fortsette.]]>
+ Passordet til standardbrukeren har blitt forandret etter installasjonen!
Ingen videre handling er nødvendig. Klikk Neste for å fortsette.]]>
Passordet er blitt endret!
- <p> Umbraco skaper en standard bruker med login <strong> ( "admin") </ strong> og passord <strong> ( "default") </ strong>. Det er <strong> viktig </ strong> at passordet er endret til noe unikt. </ p> <p> Dette trinnet vil sjekke standard brukerens passord og foreslår hvis det må skiftes </ p>
+ Umbraco skaper en standard bruker med login ( "admin") strong> og passord ( "default") strong>. Det er viktig strong> at passordet er endret til noe unikt. p>
Dette trinnet vil sjekke standard brukerens passord og foreslår hvis det må skiftes p>]]>
Få en god start med våre introduksjonsvideoerVed å klikke på Neste-knappen (eller endre UmbracoConfigurationStatus i Web.config), godtar du lisensen for denne programvaren som angitt i boksen nedenfor. Legg merke til at denne Umbraco distribusjon består av to ulike lisenser, åpen kilde MIT lisens for rammen og Umbraco frivareverktøy lisens som dekker brukergrensesnittet.Ikke installert.Berørte filer og mapperMer informasjon om å sette opp rettigheter for Umbraco herDu må gi ASP.NET brukeren rettigheter til å endre de følgende filer og mapper
- <strong>Rettighetene er nesten perfekt satt opp!</strong><br/><br/> Du kan kjøre Umbraco uten problemer, men du vil ikke være i stand til å installere de anbefalte pakkene for å utnytte Umbraco fullt ut.
+ Rettighetene er nesten perfekt satt opp!
Du kan kjøre Umbraco uten problemer, men du vil ikke være i stand til å installere de anbefalte pakkene for å utnytte Umbraco fullt ut.]]>Hvordan løse problemetKlikk her for å lese tekstversjonen
- Se vår <strong>innføringsvideo</strong> om å sette opp rettigheter for Umbraco eller les tekstversjonen.
- <strong>Rettighetsinnstillingene kan være et problem!</strong><br/><br/> Du kan kjøre Umbraco uten problemer, men du vil ikke være i stand til å installere de anbefalte pakkene for å utnytte Umbraco fullt ut.
- <strong>Rettighetsinstillingene er ikke klargjort for Umbraco!</strong><br/><br/> For å kunne kjøre Umbraco, må du oppdatere rettighetsinnstillingene dine.
- <strong>Rettighetsinnstillingene er perfekt!</strong><br/><br/>Du er klar for å kjøre Umbraco og installere pakker!
+ innføringsvideo om å sette opp rettigheter for Umbraco eller les tekstversjonen.]]>
+ Rettighetsinnstillingene kan være et problem!
Du kan kjøre Umbraco uten problemer, men du vil ikke være i stand til å installere de anbefalte pakkene for å utnytte Umbraco fullt ut.]]>
+ Rettighetsinstillingene er ikke klargjort for Umbraco!
For å kunne kjøre Umbraco, må du oppdatere rettighetsinnstillingene dine.]]>
+ Rettighetsinnstillingene er perfekt!
Du er klar for å kjøre Umbraco og installere pakker!]]>Løser mappeproblemFølg denne linken for mer informasjon om problemer med ASP.NET og oppretting av mapperKonfigurerer mappetillatelser
- Umbraco trenger skrive/endre tilgang til enkelte mapper for å kunne lagre filer som bilder og PDF-dokumenter. Den lagrer også midlertidig data (aka: hurtiglager) for å øke ytelsen på websiden din.
+ Jeg ønsker å starte fra bunnen.
- Din website er helt tom for øyeblikket. Dette er perfekt hvis du vil begynne helt forfra og lage dine egne dokumenttyper og maler. (<a href="http://Umbraco.tv/documentation/videos/for-site-builders/foundation/document-types">lær hvordan</a>) Du kan fortsatt velge å installere Runway senere. Vennligst gå til Utvikler-seksjonen og velg Pakker.
+ lær hvordan) Du kan fortsatt velge å installere Runway senere. Vennligst gå til Utvikler-seksjonen og velg Pakker.]]>Du har akkurat satt opp en ren Umbraco plattform. Hva vil du gjøre nå?Runway er installert
- Du har nå fundamentet på plass. Velg hvilke moduler du ønsker å installer på toppen av det.<br/> Dette er vår liste av anbefalte moduler- Kryss av de du ønsker å installere, eller se den<a href="#" onclick="toggleModules(); return false;" id="toggleModuleList">fulle listen av moduler</a>
+ Dette er vår liste av anbefalte moduler- Kryss av de du ønsker å installere, eller se denfulle listen av moduler ]]>Bare anbefalt for erfarne brukereJeg vil starte med en enkel webside
- <p> "Runway" er en enkel webside som utstyrer deg med noen grunnleggende dokumenttyper og maler. Veiviseren kan sette opp Runway for deg automatisk, men du kan enkelt endre, utvide eller slette den. Runway er ikke nødvendig, og du kan enkelt bruke Umbraco uten den. Imidlertidig tilbyr Runway et enkelt fundament basert på de beste metodene for å hjelpe deg i gang fortere enn noensinne. Hvis du velger å installere Runway, kan du også velge blant grunnleggende byggeklosser kalt Runway Moduler for å forøke dine Runway-sider. </p> <small> <em>Sider inkludert i Runway:</em> Hjemmeside, Komme-i-gang, Installere moduler.<br /> <em>Valgfrie Moduler:</em> Toppnavigasjon, Sidekart, Kontakt, Galleri. </small>
+ "Runway" er en enkel webside som utstyrer deg med noen grunnleggende dokumenttyper og maler. Veiviseren kan sette opp Runway for deg automatisk, men du kan enkelt endre, utvide eller slette den. Runway er ikke nødvendig, og du kan enkelt bruke Umbraco uten den. Imidlertidig tilbyr Runway et enkelt fundament basert på de beste metodene for å hjelpe deg i gang fortere enn noensinne. Hvis du velger å installere Runway, kan du også velge blant grunnleggende byggeklosser kalt Runway Moduler for å forøke dine Runway-sider. Sider inkludert i Runway: Hjemmeside, Komme-i-gang, Installere moduler. Valgfrie Moduler: Toppnavigasjon, Sidekart, Kontakt, Galleri. ]]>Hva er RunwaySteg 1/5 Godta lisensSteg 2/5 Database konfigurasjon
@@ -394,17 +466,17 @@
Steg 4/5: Skjekk Umbraco sikkerhetenSteg 5/5: Umbraco er klar for deg til å starte!Tusen takk for at du valgte Umbraco!
- <h3>Se ditt nye nettsted</h3> Du har installert Runway, hvorfor ikke se hvordan ditt nettsted ser ut.
- <h3>Mer hjelp og info</h3> Få hjelp fra vårt prisbelønte samfunn, bla gjennom dokumentasjonen eller se noen gratis videoer på hvordan man bygger et enkelt nettsted, hvordan bruke pakker og en rask guide til Umbraco terminologi
+ Se ditt nye nettsted Du har installert Runway, hvorfor ikke se hvordan ditt nettsted ser ut.]]>
+ Mer hjelp og info Få hjelp fra vårt prisbelønte samfunn, bla gjennom dokumentasjonen eller se noen gratis videoer på hvordan man bygger et enkelt nettsted, hvordan bruke pakker og en rask guide til Umbraco terminologi]]>Umbraco %0% er installert og klar til bruk
- For å fullføre installasjonen, må du manuelt endre <strong>web.config</strong> filen, og oppdatere AppSetting-nøkkelen <strong>UmbracoConfigurationStatus</strong> til verdien <strong>'%0%'</strong>
- Du kan <strong>starte øyeblikkelig</strong> ved å klikke på "Start Umbraco" knappen nedenfor. <br/>Hvis du er <strong>ny på Umbraco</strong>, kan du finne mange ressurser på våre komme-i-gang sider.
- <h3>Start Umbraco</h3> For å administrere din webside, åpne Umbraco og begynn å legge til innhold, oppdatere maler og stilark eller utvide funksjonaliteten
+ web.config filen, og oppdatere AppSetting-nøkkelen UmbracoConfigurationStatus til verdien '%0%']]>
+ starte øyeblikkelig ved å klikke på "Start Umbraco" knappen nedenfor. Hvis du er ny på Umbraco, kan du finne mange ressurser på våre komme-i-gang sider.]]>
+ Start Umbraco For å administrere din webside, åpne Umbraco og begynn å legge til innhold, oppdatere maler og stilark eller utvide funksjonaliteten]]>Tilkobling til databasen mislyktes.Umbraco Versjon 3Umbraco Versjon 4
- Pass på
- Denne veiviseren vil hjelpe deg gjennom prosessen med å konfigurere <strong>Umbraco %0%</strong> for en ny installasjon eller oppgradering fra versjon 3.0. <br/><br/> Trykk <strong>"neste"</strong> for å starte veiviseren.
+ Se
+ Umbraco %0% for en ny installasjon eller oppgradering fra versjon 3.0.
+ ]]>[%0%] Varsling om %1% utført på %2%
- Varsling
+ Varslinger
- Klikke browse og velg pakke fra lokal disk. Umbraco-pakker har vanligvis endelsen ".umb" eller ".zip".
+ Umbraco-pakker har vanligvis endelsen ".umb" eller ".zip".]]>UtviklerDemonstrasjonDokumentasjonMetadataPakkenavnPakken inneholder ingen elementer
- Denne pakkefilen inneholder ingen elementer å avinstallere.<br/><br/>Du kan trygt fjerne pakken fra systemet ved å klikke "avinstaller pakke" nedenfor.
+ Du kan trygt fjerne pakken fra systemet ved å klikke "avinstaller pakke" nedenfor.]]>Ingen oppdateringer tilgjengeligAlternativer for pakkeLesmeg for pakke
@@ -498,12 +579,13 @@ Vennlig hilsen Umbraco roboten
Pakken ble avinstallertPakken ble vellykket avinstallertAvinstaller pakke
- Du kan velge bort elementer du ikke vil slette på dette tidspunkt, nedenfor. Når du klikker "bekreft avinstallering" vil alle elementer som er krysset av bli slettet.<br/> <span style="color:red;font-weight:bold;">Advarsel:</span> alle dokumenter, media, etc. som som er avhengig av elementene du sletter, vil slutte å virke, noe som kan føre til ustabilitet, så avinstaller med forsiktighet. Hvis du er i tvil, kontakt pakkeutvikleren.
+ Advarsel: alle dokumenter, media, etc. som som er avhengig av elementene du sletter, vil slutte å virke, noe som kan føre til ustabilitet, så avinstaller med forsiktighet. Hvis du er i tvil, kontakt pakkeutvikleren.]]>Last ned oppdatering fra pakkeregisteretOppgrader pakkeOppgraderingsinstrukserDet er en oppdatering tilgjengelig for denne pakken. Du kan laste den ned direkte fra pakkebrønnen.Pakkeversjon
+ PakkeversjonshistorieSe pakkens nettsted
@@ -514,8 +596,8 @@ Vennlig hilsen Umbraco roboten
Avansert: Beskytt ved å velge hvilke brukergrupper som har tilgang til siden
- Om du ønsker å kontrollere tilgang til siden ved å bruke rolle-basert autentisering,<br /> ved å bruke Umbraco's medlems-grupper
- Du må opprette en medlemsgruppe før du kan bruke <br /> rollebasert autentikasjon.
+ ved å bruke Umbraco's medlems-grupper]]>
+ rollebasert autentikasjon.]]>FeilsideBrukt når personer logger på, men ikke har tilgangHvordan vil du beskytte siden din?
@@ -531,32 +613,36 @@ Vennlig hilsen Umbraco roboten
Om du ønsker å bruke enkel autentisering via ett enkelt brukernavn og passord
+ %0% kunne ikke publiseres fordi den har planlagt utgivelsesdato.
+ %0% ble ikke publisert. Ett eller flere felter ble ikke godkjent av validering.%0% kunne ikke publiseres fordi et tredjepartstillegg avbrøt handlingen.
+ %0% kan ikke publiseres fordi en overordnet side ikke er publisert.Inkluder upubliserte undersiderPubliserer - vennligst vent...%0% av %1% sider har blitt publisert...%0% er nå publisert%0% og alle undersider er nå publisertPubliser alle undersider
- Klikk <em>ok</em> for å publisere <strong>%0%</strong> og dermed gjøre innholdet synlig for alle.<br/><br />Du kan publisere denne siden og alle dens undersider ved å krysse av <em>Publiser alle undersider</em> nedenfor.
- %0% ble ikke publisert. Ett eller flere felter ble ikke godkjent av validering.
- %0% kan ikke publiseres fordi en overordnet side ikke er publisert.
+ ok for å publisere %0% og dermed gjøre innholdet synlig for alle.
Du kan publisere denne siden og alle dens undersider ved å krysse av Publiser alle undersider nedenfor.]]>
+
+
+ Du har ikke konfigurert noen godkjente farger
- Legg til ekstern lenke
- Legg til intern lenke
- Legg til
+ skriv inn ekstern lenke
+ velg en intern sideTittel
- Intern side
- Url
- Flytt ned
- Flytt opp
+ LenkeÅpne i nytt vindu
- Fjern lenke
+ Skriv inn en tekst
+ Skriv inn en lenke
+
+
+ NullstillGjeldende versjon
- Dette viser forskjellene mellom den gjeldende og den valgte versjonen<br /><del>Rød</del> tekst vil ikke bli vist i den valgte versjonen. , <ins>grønn betyr lagt til</ins>
+ Rød tekst vil ikke bli vist i den valgte versjonen. , grønn betyr lagt til]]>Dokumentet er tilbakeført til en tidligere versjonDette viser den valgte versjonen som HTML, bruk avviksvisningen hvis du ønsker å se forksjellene mellom to versjoner samtidig.Tilbakefør til
@@ -579,6 +665,15 @@ Vennlig hilsen Umbraco roboten
StatistikkOversettelseBrukere
+ Hjelp
+ Skjemaer
+ Analytics
+
+
+ gå til
+ Hjelpeemner for
+ Videokapitler for
+ De beste Umbraco opplæringsvideoerStandardmal
@@ -588,6 +683,7 @@ Vennlig hilsen Umbraco roboten
NodetypeTypeStilark
+ ScriptStilark-egenskapArkfaneTittel på arkfane
@@ -595,17 +691,24 @@ Vennlig hilsen Umbraco roboten
Hovedinnholdstype aktivertDenne dokumenttypen brukersom hoveddokumenttype. Arkfaner fra hoveddokumenttyper vises ikke og kan kun endres på hoveddokumenttypen selv.
+ Ingen egenskaper definert i denne arkfanen. Klikk på "legg til ny egenskap" lenken i toppen for å opprette en ny egenskap.
+ Hovedinnholdstype
+ Opprett tilhørende malSortering ferdig.Dra elementene opp eller ned for å arrangere dem. Du kan også klikke kolonneoverskriftene for å sortere alt på en gang.
- Vennligst vent. Elementene blir sortert, dette kan ta litt tid.<br/> <br/> Ikke lukk dette vinduet under sortering
+ Ikke lukk dette vinduet under sortering]]>
+ En feil oppsto
+ Utilstrekkelige brukertillatelser, kunne ikke fullføre operasjonen
+ Avbrutt
+ Handlingen ble avbrutt av et tredjepartstilleggPublisering ble avbrutt av et tredjepartstilleggEgenskaptypen finnes alleredeEgenskapstype opprettet
- Navn: %0% <br /> DataType: %1%
+ DataType: %1%]]>Egenskapstype slettetInnholdstype lagretDu har opprettet en arkfane
@@ -623,12 +726,15 @@ Vennlig hilsen Umbraco roboten
Husk å publisere for å gjøre endringene synlig for besøkendeSendt for godkjenningEndringer har blitt sendt til godkjenning
+ Media lagret
+ Media lagret uten feilMedlem lagretStilarksegenskap lagretStilark lagretMal lagretFeil ved lagring av bruker (sjekk loggen)Bruker lagret
+ Brukertypen lagretFilen ble ikke lagretFilen kunne ikke lagres. Vennligst sjekk filrettigheterFilen ble lagret
@@ -647,13 +753,16 @@ Vennlig hilsen Umbraco roboten
XSLT-koden ble ikke lagret, sjekk filrettigheterXSLT lagretIngen feil i XSLT!
- Media lagret
- Brukertypen lagretInnhold avpublisertDelmal lagretDelmal lagret uten feilDelmal ble ikke lagret!En feil oppsto ved lagring av delmal
+ Script visning lagret
+ Script visning lagret uten feil!
+ Script visning ikke lagret
+ En feil oppsto under lagring av filen.
+ En feil oppsto under lagring av filen.Bruk CSS syntaks f.eks: h1, .redHeader, .blueText
@@ -675,50 +784,40 @@ Vennlig hilsen Umbraco roboten
Mal
- Choose type of content
- Choose a layout
- Add a row
- Add content
- Settings applied
-
- This content is not allowed here
- This content is allowed here
-
- Click to embed
- Click to insert image
- Image caption...
- Write here...
-
- Grid Layouts
- Layouts are the overall work area for the grid editor, usually you only need one or two different layouts
- Add Grid Layout
- Adjust the layout by setting column widths and adding additional sections
- Row configurations
- Rows are predefined cells arranged horizontally
- Add row configuration
- Adjust the row by setting cell widths and adding additional cells
-
- Columns
- Total combined number of columns in the grid layout
-
- Settings
- Configure what settings editors can change
-
- Styles
- Configure what styling editors can change
-
- Settings will only save if the entered json configuration is valid
-
- Allow all editors
- Allow all row configurations
+ Sett inn element
+ Velg ett oppsett for denne seksjonen
+ nedenfor og legg til det første elementet]]>
+ Klikk for å bygge inn
+ Klikk for å sette inn et bilde
+ Bildetekst...
+ Skriv her...
+ Rutenettoppsett
+ Et oppsett er det overordnede arbeidsområdet til ditt rutenett - du vil typisk kun behøve ét eller to
+ Legg til rutenettoppsett
+ Juster oppsettet ved at justere kolonnebredder og legg til ytterligere seksjoner
+ Radkonfigurasjoner
+ Rader er forhåndsdefinerte celler arrangert vannrett
+ Legg til radkonfigurasjon
+ Juster raden ved å sette celle bredder og legge til flere celler
+ Kolonner
+ Totale antallet kolonner i rutenettet
+ Innstillinger
+ Konfigurer hvilke innstillinger brukeren kan endre
+ Stiler
+ Konfigurer hvilke stiler redaktørene kan endre
+ Innstillingene lagres kun når json-konfigurasjonen er gyldig
+ Tillatt alle editorer
+ Tillat alle radkonfigurasjonerAlternativt feltAlternativ tekstStore/små bokstaver
+ EncodingFelt som skal settes innKonverter linjeskift
- Erstatter et linjeskift med htmltaggen <br>
+ Erstatter et linjeskift med htmltaggen <br>
+ Egendefinerte feltJa, kun datoFormatter som datoHTML koding
@@ -731,19 +830,18 @@ Vennlig hilsen Umbraco roboten
Sett inn før feltRekursivtFjern paragraftagger
- Fjerner eventuelle <P> rundt teksten
+ Fjerner eventuelle <P> rundt teksten
+ StandardfelterStore bokstaverURL kodingDersom innholdet av feltene skal sendes til en URL skal spesialtegn formatteresDenne teksten vil benyttes dersom feltene over er tommeDette feltet vil benyttes dersom feltet over er tomtJa, med klokkeslett. Dato/tid separator:
- Egendefinerte felt
- StandardfelterOppgaver satt til deg
- Listen nedenfor viser oversettelsesoppgaver <strong>som du er tildelt</strong>. For å se en detaljert visning inkludert kommentarer, klikk på "Detaljer" eller navnet på siden. Du kan også laste ned siden som XML direkte ved å klikke på linken "Last ned XML". <br/> For å lukke en oversettelsesoppgave, vennligst gå til detaljvisningen og klikk på "Lukk" knappen.
+ som du er tildelt. For å se en detaljert visning inkludert kommentarer, klikk på "Detaljer" eller navnet på siden. Du kan også laste ned siden som XML direkte ved å klikke på linken "Last ned XML". For å lukke en oversettelsesoppgave, vennligst gå til detaljvisningen og klikk på "Lukk" knappen.]]>Lukk oppgaveOversettelses detaljerLast ned all oversettelsesoppgaver som XML
@@ -751,7 +849,7 @@ Vennlig hilsen Umbraco roboten
Last ned XML DTDFeltInkluder undersider
-
+
+ ]]>[%0%] Oversettingsoppgave for %1%Ingen oversettelses-bruker funnet. Vennligst opprett en oversettelses-bruker før du begynner å sende innhold til oversettingOppgaver opprettet av deg
- Listen under viser sider <strong>opprettet av deg</strong>. For å se en detaljert visning inkludert kommentarer, klikk på "Detaljer" eller navnet på siden. Du kan også laste ned siden som XML direkte ved å klikke på linken "Last ned XML". For å lukke en oversettelsesoppgave, vennligst gå til detaljvisningen og klikk på "Lukk" knappen.
+ opprettet av deg. For å se en detaljert visning inkludert kommentarer, klikk på "Detaljer" eller navnet på siden. Du kan også laste ned siden som XML direkte ved å klikke på linken "Last ned XML". For å lukke en oversettelsesoppgave, vennligst gå til detaljvisningen og klikk på "Lukk" knappen.]]>Siden '%0%' har blitt sendt til oversettingSend til oversettingTildelt av
@@ -784,7 +882,7 @@ Vennlig hilsen Umbraco roboten
HurtigbufferleserPapirkurvOpprettede pakker
- Datatyper
+ DatatyperOrdbokInstallerte pakkerInstaller utseende
@@ -794,10 +892,10 @@ Vennlig hilsen Umbraco roboten
MakroerMediatyperMedlemmer
- Medlemsgrupper
+ MedlemsgrupperRoller
- Medlemstyper
- Dokumenttyper
+ Medlemstyper
+ DokumenttyperPakkerPakkerPython Filer
@@ -809,6 +907,7 @@ Vennlig hilsen Umbraco roboten
StilerMalerXSLT Filer
+ AnalyticsNy oppdatering er klar
@@ -820,6 +919,8 @@ Vennlig hilsen Umbraco roboten
AdministratorKategorifeltBytt passord
+ Nytt passord
+ Bekreft nytt passordDu kan endre passordet til Umbraco ved å fylle ut skjemaet under og klikke "Bytt passord" knappen.InnholdskanalBeskrivelsesfelt
@@ -828,15 +929,18 @@ Vennlig hilsen Umbraco roboten
RedaktørUtdragsfeltSpråk
- Login
+ BrukernavnØverste nivå i MediaModulerDeaktiver tilgang til UmbracoPassord
+ Nullstill passordPassordet er endretBekreft nytt passordNytt passordNytt passord kan ikke være blankt
+ Gjeldende passord
+ Feil passordNytt og bekreftet passord må være likeNytt og bekreftet passord må være likeOverskriv tillatelser på undernoder
@@ -844,14 +948,15 @@ Vennlig hilsen Umbraco roboten
Velg sider for å redigere deres tillatelserSøk i alle undersiderStartnode
- Brukernavn
+ NavnBrukertillatelserBrukertypeBrukertyperForfatter
- Nytt passord
- Bekreft nytt passord
- Gjeldende passord
- Feil passord
+ Oversetter
+ Endre
+ Din profil
+ Din historikk
+ Sesjonen utløper om
\ No newline at end of file
diff --git a/src/Umbraco.Web/Models/Mapping/MediaModelMapper.cs b/src/Umbraco.Web/Models/Mapping/MediaModelMapper.cs
index 9cb680f204..3c27d0f183 100644
--- a/src/Umbraco.Web/Models/Mapping/MediaModelMapper.cs
+++ b/src/Umbraco.Web/Models/Mapping/MediaModelMapper.cs
@@ -84,6 +84,33 @@ namespace Umbraco.Web.Models.Mapping
private static void AfterMap(IMedia media, MediaItemDisplay display, IDataTypeService dataTypeService)
{
+ // Adapted from ContentModelMapper
+ //map the IsChildOfListView (this is actually if it is a descendant of a list view!)
+ //TODO: Fix this shorthand .Ancestors() lookup, at least have an overload to use the current
+ if (media.HasIdentity)
+ {
+ var ancesctorListView = media.Ancestors().FirstOrDefault(x => x.ContentType.IsContainer);
+ display.IsChildOfListView = ancesctorListView != null;
+ }
+ else
+ {
+ //it's new so it doesn't have a path, so we need to look this up by it's parent + ancestors
+ var parent = media.Parent();
+ if (parent == null)
+ {
+ display.IsChildOfListView = false;
+ }
+ else if (parent.ContentType.IsContainer)
+ {
+ display.IsChildOfListView = true;
+ }
+ else
+ {
+ var ancesctorListView = parent.Ancestors().FirstOrDefault(x => x.ContentType.IsContainer);
+ display.IsChildOfListView = ancesctorListView != null;
+ }
+ }
+
//map the tree node url
if (HttpContext.Current != null)
{
diff --git a/src/Umbraco.Web/umbraco.presentation/macro.cs b/src/Umbraco.Web/umbraco.presentation/macro.cs
index 19768d15b5..e14cef4eb1 100644
--- a/src/Umbraco.Web/umbraco.presentation/macro.cs
+++ b/src/Umbraco.Web/umbraco.presentation/macro.cs
@@ -24,6 +24,7 @@ using Umbraco.Core.IO;
using Umbraco.Core.Logging;
using Umbraco.Core.Macros;
using Umbraco.Core.Models;
+using Umbraco.Core.Services;
using Umbraco.Core.Xml.XPath;
using Umbraco.Core.Profiling;
using umbraco.interfaces;
@@ -62,7 +63,7 @@ namespace umbraco
private readonly StringBuilder _content = new StringBuilder();
private const string MacrosAddedKey = "macrosAdded";
public IList Exceptions = new List();
-
+
protected static ISqlHelper SqlHelper
{
get { return Application.SqlHelper; }
@@ -157,7 +158,7 @@ namespace umbraco
public macro(string alias)
{
Macro m = Macro.GetByAlias(alias);
- Model = new MacroModel(m);
+ Model = new MacroModel(m);
}
public MacroModel Model { get; set; }
@@ -168,7 +169,7 @@ namespace umbraco
}
public static macro GetMacro(int id)
- {
+ {
return new macro(id);
}
@@ -199,9 +200,9 @@ namespace umbraco
{
if (this.Model != null)
{
- DistributedCache.Instance.RemoveMacroCache(this);
+ DistributedCache.Instance.RemoveMacroCache(this);
}
-
+
//this always returned false... hrm. oh well i guess we leave it like that
return false;
}
@@ -253,7 +254,7 @@ namespace umbraco
/// An event that is raised just before the macro is rendered allowing developers to modify the macro before it executes.
///
public static event TypedEventHandler MacroRendering;
-
+
///
/// Raises the MacroRendering event
///
@@ -281,7 +282,7 @@ namespace umbraco
using (DisposableTimer.DebugDuration(macroInfo))
{
- TraceInfo("renderMacro", macroInfo, excludeProfiling:true);
+ TraceInfo("renderMacro", macroInfo, excludeProfiling: true);
StateHelper.SetContextValue(MacrosAddedKey, StateHelper.GetContextValue(MacrosAddedKey) + 1);
@@ -301,12 +302,13 @@ namespace umbraco
{
var renderFailed = false;
var macroType = Model.MacroType != MacroTypes.Unknown
- ? (int) Model.MacroType
+ ? (int)Model.MacroType
: MacroType;
+ var textService = ApplicationContext.Current.Services.TextService;
switch (macroType)
{
- case (int) MacroTypes.PartialView:
+ case (int)MacroTypes.PartialView:
//error handler for partial views, is an action because we need to re-use it twice below
Func handleError = e =>
@@ -322,12 +324,14 @@ namespace umbraco
Exception = e,
Behaviour = UmbracoConfig.For.UmbracoSettings().Content.MacroErrorBehaviour
};
- return GetControlForErrorBehavior("Error loading Partial View script (file: " + ScriptFile + ")", macroErrorEventArgs);
+
+ var errorMessage = textService.Localize("errors/macroErrorLoadingPartialView", new[] { ScriptFile });
+ return GetControlForErrorBehavior(errorMessage, macroErrorEventArgs);
};
using (DisposableTimer.DebugDuration("Executing Partial View: " + Model.TypeName))
{
- TraceInfo("umbracoMacro", "Partial View added (" + Model.TypeName + ")", excludeProfiling:true);
+ TraceInfo("umbracoMacro", "Partial View added (" + Model.TypeName + ")", excludeProfiling: true);
try
{
var result = LoadPartialViewMacro(Model);
@@ -362,13 +366,13 @@ namespace umbraco
break;
}
- case (int) MacroTypes.UserControl:
+ case (int)MacroTypes.UserControl:
using (DisposableTimer.DebugDuration("Executing UserControl: " + Model.TypeName))
{
try
{
- TraceInfo("umbracoMacro", "Usercontrol added (" + Model.TypeName + ")", excludeProfiling:true);
+ TraceInfo("umbracoMacro", "Usercontrol added (" + Model.TypeName + ")", excludeProfiling: true);
// Add tilde for v4 defined macros
if (string.IsNullOrEmpty(Model.TypeName) == false &&
@@ -394,7 +398,8 @@ namespace umbraco
Behaviour = UmbracoConfig.For.UmbracoSettings().Content.MacroErrorBehaviour
};
- macroControl = GetControlForErrorBehavior("Error loading userControl '" + Model.TypeName + "'", macroErrorEventArgs);
+ var errorMessage = textService.Localize("errors/macroErrorLoadingUsercontrol", new[] { Model.TypeName });
+ macroControl = GetControlForErrorBehavior(errorMessage, macroErrorEventArgs);
//if it is null, then we are supposed to throw the (original) exception
// see: http://issues.umbraco.org/issue/U4-497 at the end
if (macroControl == null)
@@ -405,8 +410,8 @@ namespace umbraco
break;
}
}
-
- case (int) MacroTypes.CustomControl:
+
+ case (int)MacroTypes.CustomControl:
using (DisposableTimer.DebugDuration("Executing CustomControl: " + Model.TypeName + "." + Model.TypeAssembly))
{
@@ -435,7 +440,8 @@ namespace umbraco
Behaviour = UmbracoConfig.For.UmbracoSettings().Content.MacroErrorBehaviour
};
- macroControl = GetControlForErrorBehavior("Error loading customControl (Assembly: " + Model.TypeAssembly + ", Type: '" + Model.TypeName + "'", macroErrorEventArgs);
+ var errorMessage = textService.Localize("errors/macroErrorLoadingCustomControl", new[] { Model.TypeAssembly, Model.TypeName });
+ macroControl = GetControlForErrorBehavior(errorMessage, macroErrorEventArgs);
//if it is null, then we are supposed to throw the (original) exception
// see: http://issues.umbraco.org/issue/U4-497 at the end
if (macroControl == null)
@@ -446,10 +452,10 @@ namespace umbraco
break;
}
}
- case (int) MacroTypes.XSLT:
+ case (int)MacroTypes.XSLT:
macroControl = LoadMacroXslt(this, Model, pageElements, true);
- break;
- case (int) MacroTypes.Script:
+ break;
+ case (int)MacroTypes.Script:
//error handler for partial views, is an action because we need to re-use it twice below
Func handleMacroScriptError = e =>
@@ -467,7 +473,8 @@ namespace umbraco
Behaviour = UmbracoConfig.For.UmbracoSettings().Content.MacroErrorBehaviour
};
- return GetControlForErrorBehavior("Error loading MacroEngine script (file: " + ScriptFile + ")", macroErrorEventArgs);
+ var errorMessage = textService.Localize("errors/macroErrorLoadingMacroEngineScript", new[] { ScriptFile });
+ return GetControlForErrorBehavior(errorMessage, macroErrorEventArgs);
};
using (DisposableTimer.DebugDuration("Executing MacroEngineScript: " + ScriptFile))
@@ -505,7 +512,7 @@ namespace umbraco
break;
}
}
- case (int) MacroTypes.Unknown:
+ case (int)MacroTypes.Unknown:
default:
if (GlobalSettings.DebugMode)
{
@@ -601,9 +608,9 @@ namespace umbraco
CacheItemPriority.NotRemovable,
new TimeSpan(0, 0, Model.CacheDuration),
() => DateTime.Now);
-
+
}
-
+
}
}
}
@@ -745,7 +752,7 @@ namespace umbraco
switch (model.MacroType)
{
case MacroTypes.XSLT:
- return string.Concat("~/xslt/", model.Xslt);
+ return string.Concat("~/xslt/", model.Xslt);
case MacroTypes.Python:
case MacroTypes.Script:
return string.Concat("~/macroScripts/", model.ScriptName);
@@ -753,7 +760,7 @@ namespace umbraco
return model.ScriptName; //partial views are saved with the full virtual path
case MacroTypes.UserControl:
return model.TypeName; //user controls saved with the full virtual path
- case MacroTypes.CustomControl:
+ case MacroTypes.CustomControl:
case MacroTypes.Unknown:
default:
return "/" + model.TypeName;
@@ -777,7 +784,7 @@ namespace umbraco
{
switch (model.MacroType)
{
- case MacroTypes.XSLT:
+ case MacroTypes.XSLT:
case MacroTypes.Python:
case MacroTypes.Script:
case MacroTypes.PartialView:
@@ -798,12 +805,12 @@ namespace umbraco
CacheItemPriority.Default,
new CacheDependency(IOHelper.MapPath(SystemDirectories.Xslt + "/" + XsltFile)),
() =>
+ {
+ using (var xslReader = new XmlTextReader(IOHelper.MapPath(SystemDirectories.Xslt.EnsureEndsWith('/') + XsltFile)))
{
- using (var xslReader = new XmlTextReader(IOHelper.MapPath(SystemDirectories.Xslt.EnsureEndsWith('/') + XsltFile)))
- {
- return CreateXsltTransform(xslReader, GlobalSettings.DebugMode);
- }
- });
+ return CreateXsltTransform(xslReader, GlobalSettings.DebugMode);
+ }
+ });
}
public void UpdateMacroModel(Hashtable attributes)
@@ -884,7 +891,7 @@ namespace umbraco
if (!canNavigate)
{
- // get master xml document
+ // get master xml document
var cache = UmbracoContext.Current.ContentCache.InnerCache as Umbraco.Web.PublishedCache.XmlPublishedCache.PublishedContentCache;
if (cache == null) throw new Exception("Unsupported IPublishedContentCache, only the Xml one is supported.");
XmlDocument umbracoXml = cache.GetXml(UmbracoContext.Current, UmbracoContext.Current.InPreviewMode);
@@ -916,7 +923,8 @@ namespace umbraco
"