Umbraco 7.15.3

This commit is contained in:
2019-11-23 21:51:02 -05:00
parent 7e9bd9ee5b
commit 866cfa29d7
219 changed files with 66394 additions and 66487 deletions
+5 -5
View File
@@ -8,23 +8,23 @@
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
<bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" culture="neutral" />
+1 -1
View File
@@ -10,7 +10,7 @@ NOTES:
* Compression/Combination/Minification is not enabled unless debug="false" is specified on the 'compiliation' element in the web.config
* A new version will invalidate both client and server cache and create new persisted files
-->
<clientDependency version="1550335859" fileDependencyExtensions=".js,.css" loggerType="Umbraco.Web.UI.CdfLogger, umbraco">
<clientDependency version="1230030195" fileDependencyExtensions=".js,.css" loggerType="Umbraco.Web.UI.CdfLogger, umbraco">
<!--
This section is used for Web Forms only, the enableCompositeFiles="true" is optional and by default is set to true.
+8 -1
View File
@@ -124,11 +124,18 @@
<provider name="Twitgoo" type="Umbraco.Web.Media.EmbedProviders.Twitgoo, umbraco">
<urlShemeRegex><![CDATA[twitgoo\.com/]]></urlShemeRegex>
</provider>
<!-- Twitter Settigs -->
<!-- Twitter Settings -->
<provider name="Twitter" type="Umbraco.Web.Media.EmbedProviders.OEmbedJson, umbraco">
<urlShemeRegex><![CDATA[twitter\.com/]]></urlShemeRegex>
<apiEndpoint><![CDATA[https://publish.twitter.com/oembed]]></apiEndpoint>
<requestParams type="Umbraco.Web.Media.EmbedProviders.Settings.Dictionary, umbraco">
</requestParams>
</provider>
<!-- Giphy Embed support -->
<provider name="Giphy" type="Umbraco.Web.Media.EmbedProviders.OEmbedJson, umbraco">
<urlShemeRegex><![CDATA[giphy\.com/]]></urlShemeRegex>
<apiEndpoint><![CDATA[https://giphy.com/services/oembed?url=]]></apiEndpoint>
<requestParams type="Umbraco.Web.Media.EmbedProviders.Settings.Dictionary, umbraco">
</requestParams>
</provider>
</embed>
+3 -2
View File
@@ -1,10 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<caching currentCache="DiskCache">
<caches>
<cache trimCache="false" name="DiskCache" type="ImageProcessor.Web.Caching.DiskCache, ImageProcessor.Web" maxDays="365" memoryMaxMinutes="1" browserMaxDays="7">
<cache trimCache="false" name="DiskCache" type="ImageProcessor.Web.Caching.DiskCache, ImageProcessor.Web" maxDays="365" memoryMaxMinutes="1"
browserMaxDays="7">
<settings>
<setting key="VirtualCachePath" value="~/app_data/cache" />
<setting key="VirtualCachePath" value="~/app_data/cache"/>
</settings></cache>
</caches>
</caching>
+36 -36
View File
@@ -4,64 +4,64 @@
<presets>
</presets><plugins>
<plugin name="Alpha" type="ImageProcessor.Web.Processors.Alpha, ImageProcessor.Web" />
<plugin name="AutoRotate" type="ImageProcessor.Web.Processors.AutoRotate, ImageProcessor.Web" enabled="true" />
<plugin name="Alpha" type="ImageProcessor.Web.Processors.Alpha, ImageProcessor.Web"/>
<plugin name="AutoRotate" type="ImageProcessor.Web.Processors.AutoRotate, ImageProcessor.Web" enabled="true"/>
<plugin name="Background" type="ImageProcessor.Web.Processors.Background, ImageProcessor.Web">
<settings>
<setting key="VirtualPath" value="~/images/imageprocessor/background/" />
<setting key="VirtualPath" value="~/images/imageprocessor/background/"/>
</settings>
</plugin>
<plugin name="BackgroundColor" type="ImageProcessor.Web.Processors.BackgroundColor, ImageProcessor.Web" enabled="true" />
<plugin name="Brightness" type="ImageProcessor.Web.Processors.Brightness, ImageProcessor.Web" />
<plugin name="Contrast" type="ImageProcessor.Web.Processors.Contrast, ImageProcessor.Web" />
<plugin name="Crop" type="ImageProcessor.Web.Processors.Crop, ImageProcessor.Web" enabled="true" />
<plugin name="DetectEdges" type="ImageProcessor.Web.Processors.DetectEdges, ImageProcessor.Web" />
<plugin name="EntropyCrop" type="ImageProcessor.Web.Processors.EntropyCrop, ImageProcessor.Web" />
<plugin name="Filter" type="ImageProcessor.Web.Processors.Filter, ImageProcessor.Web" />
<plugin name="Flip" type="ImageProcessor.Web.Processors.Flip, ImageProcessor.Web" />
<plugin name="Format" type="ImageProcessor.Web.Processors.Format, ImageProcessor.Web" enabled="true" />
<plugin name="Gamma" type="ImageProcessor.Web.Processors.Gamma, ImageProcessor.Web" />
<plugin name="BackgroundColor" type="ImageProcessor.Web.Processors.BackgroundColor, ImageProcessor.Web" enabled="true"/>
<plugin name="Brightness" type="ImageProcessor.Web.Processors.Brightness, ImageProcessor.Web"/>
<plugin name="Contrast" type="ImageProcessor.Web.Processors.Contrast, ImageProcessor.Web"/>
<plugin name="Crop" type="ImageProcessor.Web.Processors.Crop, ImageProcessor.Web" enabled="true"/>
<plugin name="DetectEdges" type="ImageProcessor.Web.Processors.DetectEdges, ImageProcessor.Web"/>
<plugin name="EntropyCrop" type="ImageProcessor.Web.Processors.EntropyCrop, ImageProcessor.Web"/>
<plugin name="Filter" type="ImageProcessor.Web.Processors.Filter, ImageProcessor.Web"/>
<plugin name="Flip" type="ImageProcessor.Web.Processors.Flip, ImageProcessor.Web"/>
<plugin name="Format" type="ImageProcessor.Web.Processors.Format, ImageProcessor.Web" enabled="true"/>
<plugin name="Gamma" type="ImageProcessor.Web.Processors.Gamma, ImageProcessor.Web"/>
<plugin name="GaussianBlur" type="ImageProcessor.Web.Processors.GaussianBlur, ImageProcessor.Web">
<settings>
<setting key="MaxSize" value="22" />
<setting key="MaxSigma" value="5.1" />
<setting key="MaxThreshold" value="100" />
<setting key="MaxSize" value="22"/>
<setting key="MaxSigma" value="5.1"/>
<setting key="MaxThreshold" value="100"/>
</settings>
</plugin>
<plugin name="GaussianSharpen" type="ImageProcessor.Web.Processors.GaussianSharpen, ImageProcessor.Web">
<settings>
<setting key="MaxSize" value="22" />
<setting key="MaxSigma" value="5.1" />
<setting key="MaxThreshold" value="100" />
<setting key="MaxSize" value="22"/>
<setting key="MaxSigma" value="5.1"/>
<setting key="MaxThreshold" value="100"/>
</settings>
</plugin>
<plugin name="Halftone" type="ImageProcessor.Web.Processors.Halftone, ImageProcessor.Web" />
<plugin name="Hue" type="ImageProcessor.Web.Processors.Hue, ImageProcessor.Web" />
<plugin name="Halftone" type="ImageProcessor.Web.Processors.Halftone, ImageProcessor.Web"/>
<plugin name="Hue" type="ImageProcessor.Web.Processors.Hue, ImageProcessor.Web"/>
<plugin name="Mask" type="ImageProcessor.Web.Processors.Mask, ImageProcessor.Web">
<settings>
<setting key="VirtualPath" value="~/images/imageprocessor/mask/" />
<setting key="VirtualPath" value="~/images/imageprocessor/mask/"/>
</settings>
</plugin>
<plugin name="Meta" type="ImageProcessor.Web.Processors.Meta, ImageProcessor.Web" />
<plugin name="Meta" type="ImageProcessor.Web.Processors.Meta, ImageProcessor.Web"/>
<plugin name="Overlay" type="ImageProcessor.Web.Processors.Overlay, ImageProcessor.Web">
<settings>
<setting key="VirtualPath" value="~/images/imageprocessor/overlay/" />
<setting key="VirtualPath" value="~/images/imageprocessor/overlay/"/>
</settings>
</plugin>
<plugin name="Pixelate" type="ImageProcessor.Web.Processors.Pixelate, ImageProcessor.Web" />
<plugin name="Quality" type="ImageProcessor.Web.Processors.Quality, ImageProcessor.Web" enabled="true" />
<plugin name="ReplaceColor" type="ImageProcessor.Web.Processors.ReplaceColor, ImageProcessor.Web" />
<plugin name="Pixelate" type="ImageProcessor.Web.Processors.Pixelate, ImageProcessor.Web"/>
<plugin name="Quality" type="ImageProcessor.Web.Processors.Quality, ImageProcessor.Web" enabled="true"/>
<plugin name="ReplaceColor" type="ImageProcessor.Web.Processors.ReplaceColor, ImageProcessor.Web"/>
<plugin name="Resize" type="ImageProcessor.Web.Processors.Resize, ImageProcessor.Web" enabled="true">
<settings>
<setting key="MaxWidth" value="5000" />
<setting key="MaxHeight" value="5000" />
<setting key="MaxWidth" value="5000"/>
<setting key="MaxHeight" value="5000"/>
</settings>
</plugin>
<plugin name="Rotate" type="ImageProcessor.Web.Processors.Rotate, ImageProcessor.Web" />
<plugin name="RotateBounded" type="ImageProcessor.Web.Processors.RotateBounded, ImageProcessor.Web" />
<plugin name="RoundedCorners" type="ImageProcessor.Web.Processors.RoundedCorners, ImageProcessor.Web" />
<plugin name="Saturation" type="ImageProcessor.Web.Processors.Saturation, ImageProcessor.Web" />
<plugin name="Tint" type="ImageProcessor.Web.Processors.Tint, ImageProcessor.Web" />
<plugin name="Vignette" type="ImageProcessor.Web.Processors.Vignette, ImageProcessor.Web" />
<plugin name="Watermark" type="ImageProcessor.Web.Processors.Watermark, ImageProcessor.Web" />
<plugin name="Rotate" type="ImageProcessor.Web.Processors.Rotate, ImageProcessor.Web"/>
<plugin name="RotateBounded" type="ImageProcessor.Web.Processors.RotateBounded, ImageProcessor.Web"/>
<plugin name="RoundedCorners" type="ImageProcessor.Web.Processors.RoundedCorners, ImageProcessor.Web"/>
<plugin name="Saturation" type="ImageProcessor.Web.Processors.Saturation, ImageProcessor.Web"/>
<plugin name="Tint" type="ImageProcessor.Web.Processors.Tint, ImageProcessor.Web"/>
<plugin name="Vignette" type="ImageProcessor.Web.Processors.Vignette, ImageProcessor.Web"/>
<plugin name="Watermark" type="ImageProcessor.Web.Processors.Watermark, ImageProcessor.Web"/>
</plugins></processing>
+1 -1
View File
@@ -38,7 +38,7 @@
<encoding value="utf-8" />
</appender>
<appender name="AsynchronousLog4NetAppender" type="Umbraco.Core.Logging.ParallelForwardingAppender,Umbraco.Core">
<appender name="AsynchronousLog4NetAppender" type="Log4Net.Async.ParallelForwardingAppender,Log4Net.Async">
<appender-ref ref="rollingFile" />
<appender-ref ref="rollingFileLeafWeb" />
</appender>
-3
View File
@@ -1,3 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<metablogapi>
</metablogapi>
+9 -3
View File
@@ -48,10 +48,10 @@
- throw - Throw an exception which can be caught by the global error handler defined in Application_OnError. If no such
error handler is defined then you'll see the Yellow Screen Of Death (YSOD) error page.
Note the error can also be handled by the umbraco.macro.Error event, where you can log/alarm with your own code and change the behaviour per event. -->
<MacroErrors>inline</MacroErrors>
<MacroErrors>throw</MacroErrors>
<!-- These file types will not be allowed to be uploaded via the upload control for media and content -->
<disallowedUploadFiles>ashx,aspx,ascx,config,cshtml,vbhtml,asmx,air,axd,swf,xml,xhtml,html,htm,svg,php,htaccess</disallowedUploadFiles>
<disallowedUploadFiles>ashx,aspx,ascx,config,cshtml,vbhtml,asmx,air,axd,swf,xml,xhtml,html,htm,php,htaccess</disallowedUploadFiles>
<!-- Defines the default document type property used when adding properties in the back-office (if missing or empty, defaults to Textstring -->
<defaultDocumentTypeProperty>Textstring</defaultDocumentTypeProperty>
@@ -152,6 +152,12 @@
will make Umbraco render the content on the current page with the template you requested, for example:
http://mysite.com/about-us/?altTemplate=Home and http://mysite.com/about-us/Home would render the
"About Us" page with a template with the alias Home. Setting this setting to true stops that behavior
@validateAlternativeTemplates
By default you can add a altTemplate querystring or append a template name to the current URL which
will make Umbraco render the content on the current page with the template you requested, for example:
http://mysite.com/about-us/?altTemplate=Home and http://mysite.com/about-us/Home would render the
"About Us" page with a template with the alias Home. Setting this setting to true will ensure that
only templates that have been permitted on the document type will be allowed
@disableFindContentByIdPath
By default you can call any content Id in the url and show the content with that id, for example:
http://mysite.com/1092 or http://mysite.com/1092.aspx would render the content with id 1092. Setting
@@ -163,7 +169,7 @@
-->
<web.routing
trySkipIisCustomErrors="false"
internalRedirectPreservesTemplate="false" disableAlternativeTemplates="false" disableFindContentByIdPath="false"
internalRedirectPreservesTemplate="false" disableAlternativeTemplates="false" validateAlternativeTemplates="false" disableFindContentByIdPath="false"
umbracoApplicationUrl="">
</web.routing>
+36 -10
View File
@@ -32,8 +32,12 @@
<key alias="rename" version="7.3.0">Omdøb</key>
<key alias="restore" version="7.3.0">Gendan</key>
<key alias="SetPermissionsForThePage">Sæt rettigheder for siden %0%</key>
<key alias="chooseWhereToCopy">Vælg hvor du vil kopiere</key>
<key alias="chooseWhereToMove">Vælg hvortil du vil flytte</key>
<key alias="toInTheTreeStructureBelow">I træstrukturen nedenfor</key>
<key alias="toInTheTreeStructureBelow">til i træstrukturen nedenfor</key>
<key alias="wasMovedTo">blev flyttet til</key>
<key alias="wasCopiedTo">blev kopieret til</key>
<key alias="wasDeleted">blev slettet</key>
<key alias="rights">Rettigheder</key>
<key alias="rollback">Fortryd ændringer</key>
<key alias="sendtopublish">Send til udgivelse</key>
@@ -147,6 +151,7 @@
<key alias="rollback">Brugeren har tilbagerullet indholdet til en tidligere tilstand</key>
<key alias="sendtopublish">Brugeren har sendt indholdet til udgivelse</key>
<key alias="sendtotranslate">Brugeren har sendt indholdet til oversættelse</key>
<key alias="sort">Brugeren har sorteret de underliggende sider</key>
<key alias="smallCopy">Kopieret</key>
<key alias="smallPublish">Udgivet</key>
<key alias="smallMove">Flyttet</key>
@@ -156,6 +161,7 @@
<key alias="smallRollBack">Indhold tilbagerullet</key>
<key alias="smallSendToPublish">Sendt til udgivelse</key>
<key alias="smallSendToTranslate">Sendt til oversættelse</key>
<key alias="smallSort">Sorteret</key>
</area>
<area alias="changeDocType">
<key alias="changeDocTypeInstruction">For at skifte det valgte indholds dokumenttype, skal du først vælge en ny dokumenttype, som er gyldig på denne placering.</key>
@@ -177,6 +183,11 @@
<key alias="validationErrorPropertyWithMoreThanOneMapping">Overførsel af egenskaber kunne ikke fuldføres, da en eller flere egenskaber er indstillet til at blive overført mere end én gang.</key>
<key alias="validDocTypesNote">Kun andre dokumenttyper, der er gyldige på denne placering, vises.</key>
</area>
<area alias="codefile">
<key alias="createFolderFailedById">Oprettelse af mappen under parent med ID %0% fejlede</key>
<key alias="createFolderFailedByName">Oprettelse af mappen under parent med navnet %0% fejlede</key>
<key alias="deleteItemFailed">Sletning af filen/mappen fejlede: %0%</key>
</area>
<area alias="content">
<key alias="isPublished" version="7.2">Udgivet</key>
<key alias="about">Om siden</key>
@@ -209,7 +220,7 @@
<key alias="nodeName">Sidetitel</key>
<key alias="otherElements">Egenskaber</key>
<key alias="parentNotPublished">Dette dokument er udgivet, men ikke synligt da den overliggende side '%0%' ikke er udgivet!</key>
<key alias="parentNotPublishedAnomaly">Upd: dette dokument er udgiver, men er ikke i cachen (intern fejl)</key>
<key alias="parentNotPublishedAnomaly">Ups: dette dokument er udgivet, men er ikke i cachen (intern fejl)</key>
<key alias="getUrlException">Kunne ikke hente url'en</key>
<key alias="routeError">Dette dokument er udgivet, men dets url ville kollidere med indholdet %0%</key>
<key alias="publish">Udgiv</key>
@@ -259,11 +270,15 @@
<key alias="dropFilesHere">Slip filerne her...</key>
<key alias="urls">Link til medie</key>
<key alias="orClickHereToUpload">eller klik her for at vælge filer</key>
<key alias="dragFilesHereToUpload">Du kan trække filer herind for at uploade</key>
<key alias="dragFilesHereToUpload">Du kan trække filer herind for at uploade.</key>
<key alias="onlyAllowedFiles">Tilladte filtyper er kun</key>
<key alias="disallowedFileType">Kan ikke uploade denne fil, den har ikke en godkendt filtype</key>
<key alias="maxFileSize">Maks filstørrelse er</key>
<key alias="mediaRoot">Medie rod</key>
<key alias="moveFailed">Flytning af mediet fejlede</key>
<key alias="copyFailed">Kopiering af mediet fejlede</key>
<key alias="createFolderFailed">Oprettelse af mappen under parent med id %0% fejlede</key>
<key alias="renameFolderFailed">Omdøbning af mappen med id %0% fejlede</key>
</area>
<area alias="member">
<key alias="createNewMember">Opret et nyt medlem</key>
@@ -273,6 +288,7 @@
<key alias="chooseNode">Hvor ønsker du at oprette den nye %0%</key>
<key alias="createUnder">Opret under</key>
<key alias="createContentBlueprint">Vælg den dokumenttype, du vil oprette en indholdsskabelon til</key>
<key alias="enterFolderName">Angiv et navn for mappen</key>
<key alias="updateData">Vælg en type og skriv en titel</key>
<key alias="noDocumentTypes" version="7.0"><![CDATA[Der kunne ikke findes nogen tilladte dokument typer. Du skal tillade disse i indstillinger under <strong>"dokument typer"</strong>.]]></key>
<key alias="noMediaTypes" version="7.0"><![CDATA[Der kunne ikke findes nogen tilladte media typer. Du skal tillade disse i indstillinger under <strong>"media typer"</strong>.]]></key>
@@ -441,6 +457,8 @@
<key alias="email">Indtast din e-mail</key>
<key alias="enterMessage">Indtast en besked...</key>
<key alias="usernameHint">Dit brugernavn er typisk din e-mailadresse</key>
<key alias="enterAlias">Indtast alias...</key>
<key alias="generatingAlias">Genererer alias...</key>
</area>
<area alias="editcontenttype">
<key alias="allowAtRoot" version="7.2">Tillad på rodniveau</key>
@@ -562,6 +580,7 @@
<key alias="hide">Skjul</key>
<key alias="history">Historik</key>
<key alias="icon">Ikon</key>
<key alias="id">Id</key>
<key alias="import">Importer</key>
<key alias="innerMargin">Indre margen</key>
<key alias="insert">Indsæt</key>
@@ -821,7 +840,8 @@
<key alias="relateToOriginal">Relater det kopierede element til originalen</key>
</area>
<area alias="notifications">
<key alias="editNotifications">Rediger dine notificeringer for %0%</key>
<key alias="editNotifications"><![CDATA[Vælg dine notificeringer for <strong>%0%</strong>]]></key>
<key alias="notificationsSavedFor">Notificeringer er gemt for</key>
<key alias="mailBody">
<![CDATA[
Hej %0%
@@ -989,10 +1009,13 @@ Mange hilsner fra Umbraco robotten
</area>
<area alias="imagecropper">
<key alias="reset">Nulstil</key>
<key alias="updateEditCrop">Acceptér</key>
<key alias="undoEditCrop">Fortryd</key>
</area>
<area alias="rollback">
<key alias="headline">Vælg en version at sammenligne med den nuværende version</key>
<key alias="currentVersion">Nuværende version</key>
<key alias="diffHelp"><![CDATA[Her vises forskellene mellem den nuværende version og den valgte version<br /><del>Rød</del> tekst vil ikke blive vist i den valgte version. <ins>Grøn betyder tilføjet</ins>]]></key>
<key alias="documentRolledBack">Dokument tilbagerullet</key>
@@ -1068,8 +1091,10 @@ Mange hilsner fra Umbraco robotten
<key alias="dictionaryItemSaved">Ordbogsnøgle gemt</key>
<key alias="editContentPublishedHeader">Indhold publiceret</key>
<key alias="editContentPublishedText">og nu synligt for besøgende</key>
<key alias="editContentPublishedWithExpireDateText">og nu synligt for besøgende indtil %0% kl. %1%</key>
<key alias="editContentSavedHeader">Indhold gemt</key>
<key alias="editContentSavedText">Husk at publicere for at gøre det synligt for besøgende</key>
<key alias="editContentSavedWithReleaseDateText">Ændringerne bliver publiceret den %0% kl. %1%</key>
<key alias="editContentSendToPublish">Send til Godkendelse</key>
<key alias="editContentSendToPublishText">Rettelser er blevet sendt til godkendelse</key>
<key alias="editMediaSaved">Medie gemt</key>
@@ -1140,6 +1165,7 @@ Mange hilsner fra Umbraco robotten
</area>
<area alias="template">
<key alias="deleteByIdFailed">Sletning af skabelonen med ID %0% fejlede</key>
<key alias="edittemplate">Rediger skabelon</key>
<key alias="insertSections">Sektioner</key>
@@ -1433,9 +1459,9 @@ Mange hilsner fra Umbraco robotten
<key alias="macros">Makroer</key>
<key alias="mediaTypes">Medietyper</key>
<key alias="member">Medlemmer</key>
<key alias="memberGroups">Medlemsgruppe</key>
<key alias="memberGroups">Medlemsgrupper</key>
<key alias="memberRoles">Roller</key>
<key alias="memberTypes">Medlemstype</key>
<key alias="memberTypes">Medlemstyper</key>
<key alias="documentTypes">Dokumenttyper</key>
<key alias="relationTypes">Relationstyper</key>
<key alias="packager">Pakker</key>
@@ -1551,7 +1577,7 @@ Mange hilsner fra Umbraco robotten
<key alias="userInvited">er blevet inviteret</key>
<key alias="userInvitedSuccessHelp">En invitation er blevet sendt til den nye bruger med oplysninger om, hvordan man logger ind i Umbraco.</key>
<key alias="userinviteWelcomeMessage">Hej og velkommen til Umbraco! På bare 1 minut vil du være klar til at komme i gang, vi skal bare have dig til at oprette en adgangskode og tilføje et billede til din avatar.</key>
<key alias="userinviteAvatarMessage">Upload et billede for at gøre det nemt for andre brugere at genkende dig.</key>
<key alias="userinviteAvatarMessage">Hvis du uploader et billede af dig selv, gør du det nemt for andre brugere at genkende dig. Klik på cirklen ovenfor for at uploade et billede.</key>
<key alias="writer">Forfatter</key>
<key alias="translator">Oversætter</key>
<key alias="change">Skift</key>
@@ -1609,8 +1635,8 @@ Mange hilsner fra Umbraco robotten
<area alias="recycleBin">
<key alias="contentTrashed">Slettet indhold med Id: {0} Relateret til original "parent" med id: {1}</key>
<key alias="mediaTrashed">Slettet medie med Id: {0} relateret til original "parent" / mappe med id: {1}</key>
<key alias="itemCannotBeRestored">Kan ikke automatisk genoprette dette dokument/medie</key>
<key alias="noRestoreRelation">Der findes ikke nogen "Genopret" relation for dette dokument/medie. Brug "Flyt" muligheden fra menuen for at flytte det manuelt.</key>
<key alias="restoreUnderRecycled">Det dokument/medie du ønsker at genoprette under ('%0%') er i skraldespanden. Brug "Flyt" muligheden fra menuen for at flytte det manuelt.</key>
<key alias="itemCannotBeRestored">Kan ikke automatisk genoprette dette element</key>
<key alias="itemCannotBeRestoredHelpText">Der er ikke nogen placering hvor dette element automatisk kan genoprettes. Du kan flytte elementet manuelt i træet nedenfor.</key>
<key alias="wasRestored">blev genoprettet under</key>
</area>
</language>
+48 -16
View File
@@ -33,8 +33,12 @@
<key alias="rename" version="7.3.0">Rename</key>
<key alias="restore" version="7.3.0">Restore</key>
<key alias="SetPermissionsForThePage">Set permissions for the page %0%</key>
<key alias="chooseWhereToCopy">Choose where to copy</key>
<key alias="chooseWhereToMove">Choose where to move</key>
<key alias="toInTheTreeStructureBelow">In the tree structure below</key>
<key alias="toInTheTreeStructureBelow">to in the tree structure below</key>
<key alias="wasMovedTo">was moved to</key>
<key alias="wasCopiedTo">was copied to</key>
<key alias="wasDeleted">was deleted</key>
<key alias="rights">Permissions</key>
<key alias="rollback">Rollback</key>
<key alias="sendtopublish">Send To Publish</key>
@@ -153,6 +157,7 @@
<key alias="rollback">Content rollback performed by user</key>
<key alias="sendtopublish">Content Send To Publish performed by user</key>
<key alias="sendtotranslate">Content Send To Translation performed by user</key>
<key alias="sort">Sort child items performed by user</key>
<key alias="smallCopy">Copy</key>
<key alias="smallPublish">Publish</key>
<key alias="smallMove">Move</key>
@@ -162,6 +167,7 @@
<key alias="smallRollBack">Rollback</key>
<key alias="smallSendToPublish">Send To Publish</key>
<key alias="smallSendToTranslate">Send To Translation</key>
<key alias="smallSort">Sort</key>
</area>
<area alias="changeDocType">
<key alias="changeDocTypeInstruction">To change the document type for the selected content, first select from the list of valid types for this location.</key>
@@ -183,6 +189,11 @@
<key alias="validationErrorPropertyWithMoreThanOneMapping">Could not complete property mapping as one or more properties have more than one mapping defined.</key>
<key alias="validDocTypesNote">Only alternate types valid for the current location are displayed.</key>
</area>
<area alias="codefile">
<key alias="createFolderFailedById">Failed to create a folder under parent with ID %0%</key>
<key alias="createFolderFailedByName">Failed to create a folder under parent with name %0%</key>
<key alias="deleteItemFailed">Failed to delete item: %0%</key>
</area>
<area alias="content">
<key alias="isPublished" version="7.2">Is Published</key>
<key alias="about">About this page</key>
@@ -267,11 +278,15 @@
<key alias="dropFilesHere">Drop your files here...</key>
<key alias="urls">Link to media</key>
<key alias="orClickHereToUpload">or click here to choose files</key>
<key alias="dragFilesHereToUpload">You can drag files here to upload</key>
<key alias="dragFilesHereToUpload">You can drag files here to upload.</key>
<key alias="onlyAllowedFiles">Only allowed file types are</key>
<key alias="disallowedFileType">Cannot upload this file, it does not have an approved file type</key>
<key alias="maxFileSize">Max file size is</key>
<key alias="mediaRoot">Media root</key>
<key alias="moveFailed">Failed to move media</key>
<key alias="copyFailed">Failed to copy media</key>
<key alias="createFolderFailed">Failed to create a folder under parent id %0%</key>
<key alias="renameFolderFailed">Failed to rename the folder with id %0%</key>
</area>
<area alias="member">
<key alias="createNewMember">Create a new member</key>
@@ -281,13 +296,14 @@
<key alias="chooseNode">Where do you want to create the new %0%</key>
<key alias="createUnder">Create an item under</key>
<key alias="createContentBlueprint">Select the document type you want to make a content template for</key>
<key alias="enterFolderName">Enter a folder name</key>
<key alias="updateData">Choose a type and a title</key>
<key alias="noDocumentTypes" version="7.0"><![CDATA[There are no allowed document types available. You must enable these in the settings section under <strong>"document types"</strong>.]]></key>
<key alias="noMediaTypes" version="7.0"><![CDATA[There are no allowed media types available. You must enable these in the settings section under <strong>"media types"</strong>.]]></key>
<key alias="documentTypeWithoutTemplate">Document Type without a template</key>
<key alias="newFolder">New folder</key>
<key alias="newDataType">New data type</key>
<key alias="newJavascriptFile">New javascript file</key>
<key alias="newJavascriptFile">New JavaScript file</key>
<key alias="newEmptyPartialView">New empty partial view</key>
<key alias="newPartialViewMacro">New partial view macro</key>
<key alias="newPartialViewFromSnippet">New partial view from snippet</key>
@@ -462,6 +478,8 @@
<key alias="enterMessage">Enter a message...</key>
<key alias="usernameHint">Your username is usually your email</key>
<key alias="anchor">#value or ?key=value</key>
<key alias="enterAlias">Enter alias...</key>
<key alias="generatingAlias">Generating alias...</key>
</area>
<area alias="editcontenttype">
<key alias="allowAtRoot" version="7.2">Allow at root</key>
@@ -595,6 +613,7 @@
<key alias="hide">Hide</key>
<key alias="history">History</key>
<key alias="icon">Icon</key>
<key alias="id">Id</key>
<key alias="import">Import</key>
<key alias="info">Info</key>
<key alias="innerMargin">Inner margin</key>
@@ -647,7 +666,7 @@
<key alias="rights">Permissions</key>
<key alias="scheduledPublishing">Scheduled Publishing</key>
<key alias="search">Search</key>
<key alias="searchNoResult">Sorry, we can not find what you are looking for</key>
<key alias="searchNoResult">Sorry, we can not find what you are looking for.</key>
<key alias="noItemsInList">No items have been added</key>
<key alias="server">Server</key>
<key alias="show">Show</key>
@@ -684,6 +703,7 @@
<key alias="embed">Embed</key>
<key alias="retrieve">Retrieve</key>
<key alias="selected">selected</key>
<key alias="includeFromsubFolders">Include subfolders in search</key>
</area>
<area alias="colors">
@@ -1028,7 +1048,8 @@ To manage your website, simply open the Umbraco back office and start adding con
<key alias="relateToOriginal">Relate copied items to original</key>
</area>
<area alias="notifications">
<key alias="editNotifications">Edit your notification for %0%</key>
<key alias="editNotifications"><![CDATA[Select your notification for <strong>%0%</strong>]]></key>
<key alias="notificationsSavedFor">Notification settings saved for</key>
<key alias="mailBody">
<![CDATA[
Hi %0%
@@ -1216,7 +1237,7 @@ To manage your website, simply open the Umbraco back office and start adding con
</area>
<area alias="publicAccess">
<key alias="paAdvanced">Role based protection</key>
<key alias="paAdvancedHelp"><![CDATA[If you wish to control access to the page using role-based authentication,<br /> using Umbraco's member groups.]]></key>
<key alias="paAdvancedHelp">If you wish to control access to the page using role-based authentication, using Umbraco's member groups.</key>
<key alias="paAdvancedNoGroups">You need to create a membergroup before you can use role-based authentication</key>
<key alias="paErrorPage">Error Page</key>
<key alias="paErrorPageHelp">Used when people are logged on, but do not have access</key>
@@ -1293,13 +1314,14 @@ To manage your website, simply open the Umbraco back office and start adding con
<key alias="externalLinkPlaceholder">Enter the link</key>
</area>
<area alias="imagecropper">
<key alias="reset">Reset</key>
<key alias="defineCrop">Define crop</key>
<key alias="defineCropDescription">Give the crop an alias and its default width and height</key>
<key alias="reset">Reset crop</key>
<key alias="saveCrop">Save crop</key>
<key alias="addCrop">Add new crop</key>
<key alias="updateEditCrop">Done</key>
<key alias="undoEditCrop">Undo edits</key>
</area>
<area alias="rollback">
<key alias="headline">Select a version to compare with the current version</key>
<key alias="currentVersion">Current version</key>
<key alias="diffHelp"><![CDATA[This shows the differences between the current version and the selected version<br /><del>Red</del> text will not be shown in the selected version. , <ins>green means added</ins>]]></key>
<key alias="documentRolledBack">Document has been rolled back</key>
@@ -1387,11 +1409,14 @@ To manage your website, simply open the Umbraco back office and start adding con
<key alias="editContentPublishedFailedByParent">Publishing failed because the parent page isn't published</key>
<key alias="editContentPublishedHeader">Content published</key>
<key alias="editContentPublishedText">and visible on the website</key>
<key alias="editContentPublishedWithExpireDateText">and visible on the website until %0% at %1%</key>
<key alias="editContentSavedHeader">Content saved</key>
<key alias="editContentSavedText">Remember to publish to make changes visible</key>
<key alias="editContentSavedWithReleaseDateText">Changes will be published on %0% at %1%</key>
<key alias="editContentSendToPublish">Sent For Approval</key>
<key alias="editContentSendToPublishText">Changes have been sent for approval</key>
<key alias="editMediaSaved">Media saved</key>
<key alias="editMemberGroupSaved">Member group saved</key>
<key alias="editMediaSavedText">Media saved without any errors</key>
<key alias="editMemberSaved">Member saved</key>
<key alias="editStylesheetPropertySaved">Stylesheet Property Saved</key>
@@ -1465,6 +1490,7 @@ To manage your website, simply open the Umbraco back office and start adding con
</area>
<area alias="template">
<key alias="deleteByIdFailed">Failed to delete template with ID %0%</key>
<key alias="edittemplate">Edit template</key>
<key alias="insertSections">Sections</key>
@@ -1688,8 +1714,8 @@ To manage your website, simply open the Umbraco back office and start adding con
<key alias="tabHasNoSortOrder">tab has no sort order</key>
<key alias="compositionUsageHeading">Where is this composition used?</key>
<key alias="compositionUsageSpecification">This composition is currently used in the composition of the following content types:</key>
<key alias="compositionUsageHeading">Where is this composition used?</key>
<key alias="compositionUsageSpecification">This composition is currently used in the composition of the following content types:</key>
</area>
<area alias="modelsBuilder">
@@ -1864,7 +1890,7 @@ To manage your website, simply open the Umbraco back office and start adding con
<key alias="goToProfile">Go to user profile</key>
<key alias="groupsHelp">Add groups to assign access and permissions</key>
<key alias="inviteAnotherUser">Invite another user</key>
<key alias="inviteUserHelp">Invite new users to give them access to Umbraco. An invite email will be sent to the user with information on how to log in to Umbraco.</key>
<key alias="inviteUserHelp">Invite new users to give them access to Umbraco. An invite email will be sent to the user with information on how to log in to Umbraco. Invites last for 72 hours.</key>
<key alias="language">Language</key>
<key alias="languageHelp">Set the language you will see in menus and dialogs</key>
<key alias="lastLockoutDate">Last lockout date</key>
@@ -1928,7 +1954,8 @@ To manage your website, simply open the Umbraco back office and start adding con
<key alias="userInvited">has been invited</key>
<key alias="userInvitedSuccessHelp">An invitation has been sent to the new user with details about how to log in to Umbraco.</key>
<key alias="userinviteWelcomeMessage">Hello there and welcome to Umbraco! In just 1 minute youll be good to go, we just need you to setup a password and add a picture for your avatar.</key>
<key alias="userinviteAvatarMessage">Upload a picture to make it easy for other users to recognize you.</key>
<key alias="userinviteExpiredMessage">Welcome to Umbraco! Unfortunately your invite has expired. Please contact your administrator and ask them to resend it.</key>
<key alias="userinviteAvatarMessage">Uploading a photo of yourself will make it easy for other users to recognize you. Click the circle above to upload your photo.</key>
<key alias="writer">Writer</key>
<key alias="translator">Translator</key>
<key alias="change">Change</key>
@@ -2179,13 +2206,18 @@ To manage your website, simply open the Umbraco back office and start adding con
<key alias="notificationEmailsCheckSuccessMessage"><![CDATA[Notification email has been set to <strong>%0%</strong>.]]></key>
<key alias="notificationEmailsCheckErrorMessage"><![CDATA[Notification email is still set to the default value of <strong>%0%</strong>.]]></key>
<key alias="scheduledHealthCheckEmailBody"><![CDATA[<html><body><p>Results of the scheduled Umbraco Health Checks run on %0% at %1% are as follows:</p>%2%</body></html>]]></key>
<key alias="scheduledHealthCheckEmailSubject">Umbraco Health Check Status</key>
<key alias="scheduledHealthCheckEmailSubject">Umbraco Health Check Status: %0%</key>
<key alias="tls12HealthCheckSuccess">Your site can use the TLS 1.2 security protocol when making outbound connections to HTTPS endpoints.</key>
<key alias="tls12HealthCheckWarn">Your site isn't configured to allow the TLS 1.2 security protocol when making outbound connections: some HTTPS endpoints might not be reachable using a less secure protocol.</key>
</area>
<area alias="redirectUrls">
<key alias="disableUrlTracker">Disable URL tracker</key>
<key alias="enableUrlTracker">Enable URL tracker</key>
<key alias="originalUrl">Original URL</key>
<key alias="redirectedTo">Redirected To</key>
<key alias="redirectUrlManagement">Redirect Url Management</key>
<key alias="panelInformation">The following URLs redirect to this content item:</key>
<key alias="noRedirects">No redirects have been made</key>
<key alias="noRedirectsDescription">When a published page gets renamed or moved a redirect will automatically be made to the new page.</key>
<key alias="removeButton">Remove</key>
@@ -2208,7 +2240,7 @@ To manage your website, simply open the Umbraco back office and start adding con
<key alias="contentTrashed">Trashed content with Id: {0} related to original parent content with Id: {1}</key>
<key alias="mediaTrashed">Trashed media with Id: {0} related to original parent media item with Id: {1}</key>
<key alias="itemCannotBeRestored">Cannot automatically restore this item</key>
<key alias="noRestoreRelation">There is no 'restore' relation found for this node. Use the Move menu item to move it manually.</key>
<key alias="restoreUnderRecycled">The item you want to restore it under ('%0%') is in the recycle bin. Use the Move menu item to move the item manually.</key>
<key alias="itemCannotBeRestoredHelpText">There is no location where this item can be automatically restored. You can move the item manually using the tree below.</key>
<key alias="wasRestored">was restored under</key>
</area>
</language>
+49 -20
View File
@@ -33,8 +33,12 @@
<key alias="rename" version="7.3.0">Rename</key>
<key alias="restore" version="7.3.0">Restore</key>
<key alias="SetPermissionsForThePage">Set permissions for the page %0%</key>
<key alias="chooseWhereToCopy">Choose where to copy</key>
<key alias="chooseWhereToMove">Choose where to move</key>
<key alias="toInTheTreeStructureBelow">In the tree structure below</key>
<key alias="toInTheTreeStructureBelow">to in the tree structure below</key>
<key alias="wasMovedTo">was moved to</key>
<key alias="wasCopiedTo">was copied to</key>
<key alias="wasDeleted">was deleted</key>
<key alias="rights">Permissions</key>
<key alias="rollback">Rollback</key>
<key alias="sendtopublish">Send To Publish</key>
@@ -153,6 +157,7 @@
<key alias="rollback">Content rollback performed by user</key>
<key alias="sendtopublish">Content Send To Publish performed by user</key>
<key alias="sendtotranslate">Content Send To Translation performed by user</key>
<key alias="sort">Sort child items performed by user</key>
<key alias="smallCopy">Copy</key>
<key alias="smallPublish">Publish</key>
<key alias="smallMove">Move</key>
@@ -162,6 +167,7 @@
<key alias="smallRollBack">Rollback</key>
<key alias="smallSendToPublish">Send To Publish</key>
<key alias="smallSendToTranslate">Send To Translation</key>
<key alias="smallSort">Sort</key>
</area>
<area alias="changeDocType">
@@ -184,6 +190,11 @@
<key alias="validationErrorPropertyWithMoreThanOneMapping">Could not complete property mapping as one or more properties have more than one mapping defined.</key>
<key alias="validDocTypesNote">Only alternate types valid for the current location are displayed.</key>
</area>
<area alias="codefile">
<key alias="createFolderFailedById">Failed to create a folder under parent with ID %0%</key>
<key alias="createFolderFailedByName">Failed to create a folder under parent with name %0%</key>
<key alias="deleteItemFailed">Failed to delete item: %0%</key>
</area>
<area alias="content">
<key alias="isPublished" version="7.2">Is Published</key>
<key alias="about">About this page</key>
@@ -268,11 +279,16 @@
<key alias="dropFilesHere">Drop your files here...</key>
<key alias="urls">Link to media</key>
<key alias="orClickHereToUpload">or click here to choose files</key>
<key alias="dragFilesHereToUpload">You can drag files here to upload</key>
<key alias="dragFilesHereToUpload">You can drag files here to upload.</key>
<key alias="onlyAllowedFiles">Only allowed file types are</key>
<key alias="disallowedFileType">Cannot upload this file, it does not have an approved file type</key>
<key alias="maxFileSize">Max file size is</key>
<key alias="mediaRoot">Media root</key>
<key alias="moveFailed">Failed to move media</key>
<key alias="moveToSameFolderFailed">Parent and destination folders cannot be the same</key>
<key alias="copyFailed">Failed to copy media</key>
<key alias="createFolderFailed">Failed to create a folder under parent id %0%</key>
<key alias="renameFolderFailed">Failed to rename the folder with id %0%</key>
</area>
<area alias="member">
<key alias="createNewMember">Create a new member</key>
@@ -282,13 +298,14 @@
<key alias="chooseNode">Where do you want to create the new %0%</key>
<key alias="createUnder">Create an item under</key>
<key alias="createContentBlueprint">Select the document type you want to make a content template for</key>
<key alias="enterFolderName">Enter a folder name</key>
<key alias="updateData">Choose a type and a title</key>
<key alias="noDocumentTypes" version="7.0"><![CDATA[There are no allowed document types available. You must enable these in the settings section under <strong>"document types"</strong>.]]></key>
<key alias="noMediaTypes" version="7.0"><![CDATA[There are no allowed media types available. You must enable these in the settings section under <strong>"media types"</strong>.]]></key>
<key alias="documentTypeWithoutTemplate">Document Type without a template</key>
<key alias="newFolder">New folder</key>
<key alias="newDataType">New data type</key>
<key alias="newJavascriptFile">New javascript file</key>
<key alias="newJavascriptFile">New JavaScript file</key>
<key alias="newEmptyPartialView">New empty partial view</key>
<key alias="newPartialViewMacro">New partial view macro</key>
<key alias="newPartialViewFromSnippet">New partial view from snippet</key>
@@ -462,6 +479,8 @@
<key alias="enterMessage">Enter a message...</key>
<key alias="usernameHint">Your username is usually your email</key>
<key alias="anchor">#value or ?key=value</key>
<key alias="enterAlias">Enter alias...</key>
<key alias="generatingAlias">Generating alias...</key>
</area>
<area alias="editcontenttype">
<key alias="allowAtRoot" version="7.2">Allow at root</key>
@@ -595,6 +614,7 @@
<key alias="hide">Hide</key>
<key alias="history">History</key>
<key alias="icon">Icon</key>
<key alias="id">Id</key>
<key alias="import">Import</key>
<key alias="info">Info</key>
<key alias="innerMargin">Inner margin</key>
@@ -647,7 +667,7 @@
<key alias="rights">Permissions</key>
<key alias="scheduledPublishing">Scheduled Publishing</key>
<key alias="search">Search</key>
<key alias="searchNoResult">Sorry, we can not find what you are looking for</key>
<key alias="searchNoResult">Sorry, we can not find what you are looking for.</key>
<key alias="noItemsInList">No items have been added</key>
<key alias="server">Server</key>
<key alias="show">Show</key>
@@ -684,6 +704,7 @@
<key alias="embed">Embed</key>
<key alias="retrieve">Retrieve</key>
<key alias="selected">selected</key>
<key alias="includeFromsubFolders">Include subfolders in search</key>
</area>
<area alias="colors">
<key alias="black">Black</key>
@@ -1026,7 +1047,8 @@ To manage your website, simply open the Umbraco back office and start adding con
<key alias="relateToOriginal">Relate copied items to original</key>
</area>
<area alias="notifications">
<key alias="editNotifications">Edit your notification for %0%</key>
<key alias="editNotifications"><![CDATA[Select your notification for <strong>%0%</strong>]]></key>
<key alias="notificationsSavedFor">Notification settings saved for</key>
<key alias="mailBody">
<![CDATA[
Hi %0%
@@ -1214,7 +1236,7 @@ To manage your website, simply open the Umbraco back office and start adding con
</area>
<area alias="publicAccess">
<key alias="paAdvanced">Role based protection</key>
<key alias="paAdvancedHelp"><![CDATA[If you wish to control access to the page using role-based authentication,<br /> using Umbraco's member groups.]]></key>
<key alias="paAdvancedHelp">If you wish to control access to the page using role-based authentication, using Umbraco's member groups.</key>
<key alias="paAdvancedNoGroups">You need to create a membergroup before you can use role-based authentication</key>
<key alias="paErrorPage">Error Page</key>
<key alias="paErrorPageHelp">Used when people are logged on, but do not have access</key>
@@ -1291,13 +1313,14 @@ To manage your website, simply open the Umbraco back office and start adding con
<key alias="externalLinkPlaceholder">Enter the link</key>
</area>
<area alias="imagecropper">
<key alias="reset">Reset</key>
<key alias="defineCrop">Define crop</key>
<key alias="defineCropDescription">Give the crop an alias and its default width and height</key>
<key alias="reset">Reset crop</key>
<key alias="saveCrop">Save crop</key>
<key alias="addCrop">Add new crop</key>
<key alias="updateEditCrop">Done</key>
<key alias="undoEditCrop">Undo edits</key>
</area>
<area alias="rollback">
<key alias="headline">Select a version to compare with the current version</key>
<key alias="currentVersion">Current version</key>
<key alias="diffHelp"><![CDATA[This shows the differences between the current version and the selected version<br /><del>Red</del> text will not be shown in the selected version. , <ins>green means added</ins>]]></key>
<key alias="documentRolledBack">Document has been rolled back</key>
@@ -1385,13 +1408,16 @@ To manage your website, simply open the Umbraco back office and start adding con
<key alias="editContentPublishedFailedByParent">Publishing failed because the parent page isn't published</key>
<key alias="editContentPublishedHeader">Content published</key>
<key alias="editContentPublishedText">and visible on the website</key>
<key alias="editContentPublishedWithExpireDateText">and visible on the website until %0% at %1%</key>
<key alias="editContentSavedHeader">Content saved</key>
<key alias="editContentSavedText">Remember to publish to make changes visible</key>
<key alias="editContentSavedWithReleaseDateText">Changes will be published on %0% at %1%</key>
<key alias="editContentSendToPublish">Sent For Approval</key>
<key alias="editContentSendToPublishText">Changes have been sent for approval</key>
<key alias="editMediaSaved">Media saved</key>
<key alias="editMediaSavedText">Media saved without any errors</key>
<key alias="editMemberSaved">Member saved</key>
<key alias="editMemberGroupSaved">Member group saved</key>
<key alias="editStylesheetPropertySaved">Stylesheet Property Saved</key>
<key alias="editStylesheetSaved">Stylesheet saved</key>
<key alias="editTemplateSaved">Template saved</key>
@@ -1462,6 +1488,7 @@ To manage your website, simply open the Umbraco back office and start adding con
<key alias="styles">Styles</key>
</area>
<area alias="template">
<key alias="deleteByIdFailed">Failed to delete template with ID %0%</key>
<key alias="edittemplate">Edit template</key>
<key alias="insertSections">Sections</key>
@@ -1681,8 +1708,8 @@ To manage your website, simply open the Umbraco back office and start adding con
<key alias="tabHasNoSortOrder">tab has no sort order</key>
<key alias="compositionUsageHeading">Where is this composition used?</key>
<key alias="compositionUsageSpecification">This composition is currently used in the composition of the following content types:</key>
<key alias="compositionUsageHeading">Where is this composition used?</key>
<key alias="compositionUsageSpecification">This composition is currently used in the composition of the following content types:</key>
</area>
<area alias="modelsBuilder">
@@ -1857,7 +1884,7 @@ To manage your website, simply open the Umbraco back office and start adding con
<key alias="goToProfile">Go to user profile</key>
<key alias="groupsHelp">Add groups to assign access and permissions</key>
<key alias="inviteAnotherUser">Invite another user</key>
<key alias="inviteUserHelp">Invite new users to give them access to Umbraco. An invite email will be sent to the user with information on how to log in to Umbraco.</key>
<key alias="inviteUserHelp">Invite new users to give them access to Umbraco. An invite email will be sent to the user with information on how to log in to Umbraco. Invites last for 72 hours.</key>
<key alias="language">Language</key>
<key alias="languageHelp">Set the language you will see in menus and dialogs</key>
<key alias="lastLockoutDate">Last lockout date</key>
@@ -1921,7 +1948,8 @@ To manage your website, simply open the Umbraco back office and start adding con
<key alias="userInvited">has been invited</key>
<key alias="userInvitedSuccessHelp">An invitation has been sent to the new user with details about how to log in to Umbraco.</key>
<key alias="userinviteWelcomeMessage">Hello there and welcome to Umbraco! In just 1 minute youll be good to go, we just need you to setup a password and add a picture for your avatar.</key>
<key alias="userinviteAvatarMessage">Upload a picture to make it easy for other users to recognize you.</key>
<key alias="userinviteExpiredMessage">Welcome to Umbraco! Unfortunately your invite has expired. Please contact your administrator and ask them to resend it.</key>
<key alias="userinviteAvatarMessage">Uploading a photo of yourself will make it easy for other users to recognize you. Click the circle above to upload your photo.</key>
<key alias="writer">Writer</key>
<key alias="translator">Translator</key>
<key alias="change">Change</key>
@@ -2171,13 +2199,18 @@ To manage your website, simply open the Umbraco back office and start adding con
<key alias="notificationEmailsCheckSuccessMessage"><![CDATA[Notification email has been set to <strong>%0%</strong>.]]></key>
<key alias="notificationEmailsCheckErrorMessage"><![CDATA[Notification email is still set to the default value of <strong>%0%</strong>.]]></key>
<key alias="scheduledHealthCheckEmailBody"><![CDATA[<html><body><p>Results of the scheduled Umbraco Health Checks run on %0% at %1% are as follows:</p>%2%</body></html>]]></key>
<key alias="scheduledHealthCheckEmailSubject">Umbraco Health Check Status</key>
<key alias="scheduledHealthCheckEmailSubject">Umbraco Health Check Status: %0%</key>
<key alias="tls12HealthCheckSuccess">Your site can use the TLS 1.2 security protocol when making outbound connections to HTTPS endpoints.</key>
<key alias="tls12HealthCheckWarn">Your site isn't configured to allow the TLS 1.2 security protocol when making outbound connections: some HTTPS endpoints might not be reachable using a less secure protocol.</key>
</area>
<area alias="redirectUrls">
<key alias="disableUrlTracker">Disable URL tracker</key>
<key alias="enableUrlTracker">Enable URL tracker</key>
<key alias="originalUrl">Original URL</key>
<key alias="redirectedTo">Redirected To</key>
<key alias="redirectUrlManagement">Redirect Url Management</key>
<key alias="panelInformation">The following URLs redirect to this content item:</key>
<key alias="noRedirects">No redirects have been made</key>
<key alias="noRedirectsDescription">When a published page gets renamed or moved a redirect will automatically be made to the new page.</key>
<key alias="removeButton">Remove</key>
@@ -2200,11 +2233,7 @@ To manage your website, simply open the Umbraco back office and start adding con
<key alias="contentTrashed">Trashed content with Id: {0} related to original parent content with Id: {1}</key>
<key alias="mediaTrashed">Trashed media with Id: {0} related to original parent media item with Id: {1}</key>
<key alias="itemCannotBeRestored">Cannot automatically restore this item</key>
<key alias="noRestoreRelation">There is no 'restore' relation found for this node. Use the Move menu item to move it manually.</key>
<key alias="restoreUnderRecycled">The item you want to restore it under ('%0%') is in the recycle bin. Use the Move menu item to move the item manually.</key>
</area>
<area alias="notify">
<key alias="notifySet">Select your notifications for</key>
<key alias="notificationsSavedFor">Notification settings saved for </key>
<key alias="itemCannotBeRestoredHelpText">There is no location where this item can be automatically restored. You can move the item manually using the tree below.</key>
<key alias="wasRestored">was restored under</key>
</area>
</language>
+205 -204
View File
@@ -5,8 +5,8 @@
<link>https://our.umbraco.com/documentation/Extending-Umbraco/Language-Files</link>
</creator>
<area alias="actions">
<key alias="assignDomain">Administrar hostnames</key>
<key alias="auditTrail">Auditoría</key>
<key alias="assignDomain">Administrar dominios</key>
<key alias="auditTrail">Historial</key>
<key alias="browse">Nodo de Exploración</key>
<key alias="changeDocType">Cambiar tipo de documento</key>
<key alias="copy">Copiar</key>
@@ -20,26 +20,26 @@
<key alias="exportDocumentType">Exportar Documento (tipo)</key>
<key alias="importDocumentType">Importar Documento (tipo)</key>
<key alias="importPackage">Importar Paquete</key>
<key alias="liveEdit">Editar en lienzo</key>
<key alias="logout">Salir</key>
<key alias="liveEdit">Editar en vivo</key>
<key alias="logout">Cerrar sesión</key>
<key alias="move">Mover</key>
<key alias="notify">Notificaciones</key>
<key alias="protect">Acceso Público</key>
<key alias="publish">Publicar</key>
<key alias="unpublish">Unpublish</key>
<key alias="unpublish">Retirar publicación</key>
<key alias="refreshNode">Recargar Nodos</key>
<key alias="republish">Republicar sitio completo</key>
<key alias="rename" version="7.3.0">Renombrar</key>
<key alias="restore" version="7.3.0">Restaurar</key>
<key alias="SetPermissionsForThePage">Establecer permisos para la página %0%</key>
<key alias="chooseWhereToMove">Elije dónde mover</key>
<key alias="chooseWhereToMove">Elige dónde mover</key>
<key alias="toInTheTreeStructureBelow">En el árbol de contenido</key>
<key alias="rights">Permisos</key>
<key alias="rollback">Deshacer</key>
<key alias="sendtopublish">Enviar a Publicar</key>
<key alias="sendToTranslate">Enviar a Traducir</key>
<key alias="setGroup">Establecer grupo</key>
<key alias="sort">Ordernar</key>
<key alias="sort">Ordenar</key>
<key alias="translate">Traducir</key>
<key alias="update">Actualizar</key>
<key alias="setPermissions">Establecer permisos</key>
@@ -54,7 +54,7 @@
</area>
<area alias="actionDescriptions">
<key alias="assignDomain">Permitir acceso para asignar cultura y dominios</key>
<key alias="auditTrail">Permitir acceso para ver informes de nodos</key>
<key alias="auditTrail">Permitir acceso para ver el historial de un nodo</key>
<key alias="browse">Permitir acceso para ver un nodo</key>
<key alias="changeDocType">Permitir acceso para cambiar el tipo de documento de un nodo</key>
<key alias="copy">Permitir acceso para copiar un nodo</key>
@@ -79,7 +79,7 @@
<key alias="invalidNode">Nodo no válido.</key>
<key alias="invalidDomain">Formato de dominio no válido.</key>
<key alias="duplicateDomain">Este dominio ya ha sido asignado.</key>
<key alias="language">Language</key>
<key alias="language">Idioma</key>
<key alias="domain">Dominio</key>
<key alias="domainCreated">El nuevo dominio %0% ha sido creado</key>
<key alias="domainDeleted">El dominio %0% ha sido borrado</key>
@@ -91,9 +91,9 @@
"https://www.tudominio.com/".<br /><br />Los dominios de un nivel están soportados, por ej. "example.com/en". De todas formas deberían de evitarse. Mejor usar la configuración cultural especificada arriba.]]>
</key>
<key alias="inherit">Heredar</key>
<key alias="setLanguage">Cultura</key>
<key alias="setLanguage">Idioma</key>
<key alias="setLanguageHelp">
<![CDATA[Configura la cultura para los nodos por debajo del nodo actual,<br /> o hereda la cultura de los nodos padres. También se aplicará<br />
<![CDATA[Configura el idioma para los nodos por debajo del nodo actual,<br /> o hereda el idioma de los nodos padres. También se aplicará<br />
para el nodo actual, a menos que un dominio por debajo lo aplique también.]]>
</key>
<key alias="setDomains">Dominios</key>
@@ -117,7 +117,7 @@
<key alias="justifyLeft">Alinear a la Izquierda</key>
<key alias="justifyRight">Alinear a la Derecha</key>
<key alias="linkInsert">Insertar Link</key>
<key alias="linkLocal">Insertar link local (anchor)</key>
<key alias="linkLocal">Insertar link local (ancla)</key>
<key alias="listBullet">Lista en Viñetas</key>
<key alias="listNumeric">Lista Numérica</key>
<key alias="macroInsert">Insertar macro</key>
@@ -140,7 +140,7 @@
</area>
<area alias="changeDocType">
<key alias="changeDocTypeInstruction">Para cambiar el tipo de documento al contenido seleccionado, primero selecciona uno de la lista de tipos válidos.</key>
<key alias="changeDocTypeInstruction2">Entonces confirma el mapeo de propiedades del tipo actual al nuevo y haz click en Guardar.</key>
<key alias="changeDocTypeInstruction2">Entonces confirma el mapeo de propiedades del tipo actual al nuevo y haz clic en Guardar.</key>
<key alias="contentRepublished">El contenido se ha vuelto a publicar.</key>
<key alias="currentProperty">Propiedad actual</key>
<key alias="currentType">Tipo actual</key>
@@ -163,8 +163,8 @@
<key alias="about">Acerca de</key>
<key alias="alias">Link alternativo</key>
<key alias="alternativeTextHelp">(como describe la imagen sobre el teléfono)</key>
<key alias="alternativeUrls">Vinculos Alternativos</key>
<key alias="clickToEdit">Click para editar esta entrada</key>
<key alias="alternativeUrls">Vínculos Alternativos</key>
<key alias="clickToEdit">Clic para editar esta entrada</key>
<key alias="createBy">Creado por</key>
<key alias="createByDesc" version="7.0">Autor original</key>
<key alias="updatedBy" version="7.0">Actualizado por</key>
@@ -189,16 +189,16 @@
<key alias="nodeName">Título de la página</key>
<key alias="otherElements">Propiedades</key>
<key alias="parentNotPublished">Este documento ha sido publicado pero no es visible porque el padre '%0%' no esta publicado</key>
<key alias="parentNotPublishedAnomaly">Upss: este documento está publicado pero no está en la caché (error interno)</key>
<key alias="parentNotPublishedAnomaly">Ups: este documento está publicado pero no está en la caché (error interno)</key>
<key alias="getUrlException">No se pudo obtener la url</key>
<key alias="routeError">Este documento está publicado pero su url colisionará con contenido %0%</key>
<key alias="routeError">Este documento está publicado pero tu url colisionará con contenido %0%</key>
<key alias="publish">Publicar</key>
<key alias="publishStatus">Estado de la Publicación</key>
<key alias="releaseDate">Publicar el</key>
<key alias="unpublishDate">Despublicar el</key>
<key alias="unpublishDate">Retirar publicación el</key>
<key alias="removeDate">Fecha de Eliminación</key>
<key alias="sortDone">El Orden esta actualizado</key>
<key alias="sortHelp">Para organizar los nodos, simplemente arrastre los nodos o realice un clic en uno de los encabezados de columna. Puede seleccionar multiple nodos manteniendo presionados "Shift" o "Control" mientras selecciona</key>
<key alias="sortHelp">Para organizar los nodos, simplemente arrastra los nodos o realice un clic en uno de los encabezados de columna. Puedes seleccionar múltiple nodos manteniendo presionados "Shift" o "Control" mientras seleccionas</key>
<key alias="statistics">Estadísticas</key>
<key alias="titleOptional">Título (opcional)</key>
<key alias="altTextOptional">Texto alternativo (opcional)</key>
@@ -209,16 +209,16 @@
<key alias="uploadClear">Eliminar archivo</key>
<key alias="urls">Vínculo al documento</key>
<key alias="memberof">Miembro de grupo(s)</key>
<key alias="notmemberof">No es miembreo de grupo(s)</key>
<key alias="notmemberof">No es miembro de grupo(s)</key>
<key alias="childItems" version="7.0">Nodos hijo</key>
<key alias="target" version="7.0">Target</key>
<key alias="target" version="7.0">Destino</key>
<key alias="scheduledPublishServerTime">Esto se traduce en la siguiente hora en el servidor:</key>
<key alias="scheduledPublishDocumentation"><![CDATA[<a href="https://our.umbraco.com/documentation/Getting-Started/Data/Scheduled-Publishing/#timezones" target="_blank">¿Esto qué significa?</a>]]></key>
<key alias="nestedContentDeleteItem">¿Estás seguro que quieres eliminar este elemento?</key>
<key alias="nestedContentEditorNotSupported">Propiedad %0% utiliza editor %1% que no está soportado por Nested Content.</key>
<key alias="addTextBox">Añadir otra caja de texto</key>
<key alias="removeTextBox">Eliminar caja de texto</key>
<key alias="contentRoot">Raiz de contenido</key>
<key alias="contentRoot">Raíz de contenido</key>
</area>
<area alias="blueprints">
<key alias="createBlueprintFrom">Crear nueva Plantilla de Contenido desde '%0%'</key>
@@ -230,7 +230,7 @@
<key alias="blueprintDescription">Una Plantilla de Contenido es contenido predefinido que un editor puede usar como base para crear nuevo contenido</key>
</area>
<area alias="media">
<key alias="clickToUpload">Haz click para subir archivos</key>
<key alias="clickToUpload">Haz clic para subir archivos</key>
<key alias="dropFilesHere">Arrastra los archivos aquí...</key>
</area>
<area alias="member">
@@ -241,7 +241,7 @@
<key alias="chooseNode">¿Dónde quieres crear el nuevo %0%</key>
<key alias="createUnder">Crear debajo de</key>
<key alias="createContentBlueprint">Selecciona el Tipo de Documento para el que quieres crear una plantilla de contenido</key>
<key alias="updateData">Elije un tipo y un título</key>
<key alias="updateData">Elige un tipo y un título</key>
<key alias="noDocumentTypes" version="7.0"><![CDATA[No hay disponibles tipos de documentos permitidos. Debes habilitarlos en la sección "Ajustes" en <strong>"Tipos de documentos"</strong>.]]></key>
<key alias="noMediaTypes" version="7.0"><![CDATA[No hay disponibles tipos de medios permitidos. Debes habilitarlos en la sección "Ajustes" en <strong>"Tipos de medios"</strong>.]]></key>
<key alias="documentTypeWithoutTemplate">Tipo de Documento sin plantilla</key>
@@ -304,16 +304,16 @@
<key alias="anchorInsert">Nombre</key>
<key alias="assignDomain">Administrar dominios</key>
<key alias="closeThisWindow">Cerrar esta ventana</key>
<key alias="confirmdelete">Esta usted seguro que desea borrar</key>
<key alias="confirmdisable">Esta usted seguro que desea deshabilitar</key>
<key alias="confirmEmptyTrashcan">Por favor seleccione esta casilla para confirmar la eliminación de %0% entrada(s)</key>
<key alias="confirmlogout">Esta usted seguro?</key>
<key alias="confirmSure">Esta usted Seguro?</key>
<key alias="confirmdelete">Estás seguro que quieres borrar</key>
<key alias="confirmdisable">Estás seguro que quieres deshabilitar</key>
<key alias="confirmEmptyTrashcan">Por favor selecciona esta casilla para confirmar la eliminación de %0% entrada(s)</key>
<key alias="confirmlogout">¿Estás seguro?</key>
<key alias="confirmSure">¿Estás seguro?</key>
<key alias="cut">Cortar</key>
<key alias="editdictionary">Editar entrada del Diccionario</key>
<key alias="editlanguage">Editar idioma</key>
<key alias="insertAnchor">Agregar enlace interno</key>
<key alias="insertCharacter">Insertar caracter</key>
<key alias="insertCharacter">Insertar carácter</key>
<key alias="insertgraphicheadline">Insertar titular gráfico</key>
<key alias="insertimage">Insertar imagen</key>
<key alias="insertlink">Insertar enlace</key>
@@ -331,9 +331,9 @@
<key alias="permissionsSet">Establecer permisos para</key>
<key alias="permissionsSetForGroup">Establecer permisos para %0% para grupo %1%</key>
<key alias="permissionsHelp">Selecciona el grupo de usuarios para el cual quieres establecer permisos</key>
<key alias="recycleBinDeleting">Se está vaciando la papelera. No cierre esta ventana mientras se ejecuta este proceso</key>
<key alias="recycleBinDeleting">Se está vaciando la papelera. No cierres esta ventana mientras se ejecuta este proceso</key>
<key alias="recycleBinIsEmpty">La papelera está vacía</key>
<key alias="recycleBinWarning">No podrá recuperar los items una vez sean borrados de la papelera</key>
<key alias="recycleBinWarning">No podrás recuperar los elementos una vez sean borrados de la papelera</key>
<key alias="regexSearchError"><![CDATA[El servicio web <a target='_blank' href='http://regexlib.com'>regexlib.com</a> está experimentando algunos problemas en estos momentos, de los cuales no somos responsables. Pedimos disculpas por las molestias.]]></key>
<key alias="regexSearchHelp">Buscar una expresión regular para agregar validación a un campo de formulario. Ejemplo: 'correo electrónico', código postal "," url "</key>
<key alias="removeMacro">Eliminar macro</key>
@@ -344,16 +344,16 @@
<key alias="tableColumns">Número de columnas</key>
<key alias="tableRows">Número de filas</key>
<key alias="templateContentAreaHelp"><![CDATA[<strong>Coloca un 'placeholder' id</strong> al colocar un ID en tu 'placeholder' puedes insertar contenido en esta plantilla desde una plantilla hija, referenciando este ID usando un elemento<code>&lt;asp:content /&gt;</code>.]]></key>
<key alias="templateContentPlaceHolderHelp">Seleccione una tecla de la lista abajo indicada. Sólo puede elegir a partir de la ID de la plantilla actual del dominio.</key>
<key alias="thumbnailimageclickfororiginal">Haga clic sobre la imagen para verla a tamaño completo.</key>
<key alias="treepicker">Seleccionar item</key>
<key alias="viewCacheItem">Ver item en la caché</key>
<key alias="templateContentPlaceHolderHelp">Selecciona una tecla de la lista abajo indicada. Sólo puedes elegir a partir de la ID de la plantilla actual del dominio.</key>
<key alias="thumbnailimageclickfororiginal">Haz clic sobre la imagen para verla a tamaño completo.</key>
<key alias="treepicker">Seleccionar elemento</key>
<key alias="viewCacheItem">Ver elemento en la caché</key>
<key alias="createFolder">Crear carpeta...</key>
<key alias="relateToOriginalLabel">Relacionar con original</key>
<key alias="includeDescendants">Incluir descendientes</key>
<key alias="theFriendliestCommunity">La amigable comunidad</key>
<key alias="linkToPage">Enlazar a página</key>
<key alias="openInNewWindow">Abre el documento enlazado en una nueva ventana o Opens the linked document in a new window o pestaña</key>
<key alias="openInNewWindow">Abre el documento enlazado en una nueva ventana o pestaña</key>
<key alias="linkToMedia">Enlazar a medio</key>
<key alias="linkToFile">Enlazar a archivo</key>
<key alias="selectContentStartNode">Selecciona nodo de inicio de contenido</key>
@@ -370,8 +370,8 @@
<key alias="selectSections">Selecciona secciones</key>
<key alias="selectUsers">Selecciona usuarios</key>
<key alias="noIconsFound">No se encontraron iconos</key>
<key alias="noMacroParams">No hay parametros para esta macro</key>
<key alias="noMacros">No hay maros disponibles para insertar</key>
<key alias="noMacroParams">No hay parámetros para esta macro</key>
<key alias="noMacros">No hay macros disponibles para insertar</key>
<key alias="externalLoginProviders">Proveedores de login externo</key>
<key alias="exceptionDetail">Detalles de la Excepción</key>
<key alias="stacktrace">Stacktrace</key>
@@ -383,12 +383,12 @@
<key alias="selectSnippet">Selecciona snippet</key>
</area>
<area alias="dictionaryItem">
<key alias="description">Editar las diferentes versiones lingüísticas para la entrada en el diccionario '% 0%' debajo añadir otros idiomas en el menu de 'idiomas' en el menú de la izquierda</key>
<key alias="description">Editar las diferentes versiones lingüísticas para la entrada en el diccionario '% 0%' debajo añadir otros idiomas en el menú de 'idiomas' en el menú de la izquierda</key>
<key alias="displayName">
<![CDATA[nombre de la cultura
]]>
</key>
<key alias="changeKey">Edita clave de elemento de dictionario.</key>
<key alias="changeKey">Edita clave de elemento de diccionario.</key>
<key alias="changeKeyError">
<![CDATA[
La clave '%0%' ya existe.
@@ -432,17 +432,17 @@
</area>
<area alias="renamecontainer">
<key alias="renamed">Renombrado</key>
<key alias="enterNewFolderName">Introduce un nuevo nombre para la carpeta aqui</key>
<key alias="enterNewFolderName">Introduce un nuevo nombre para la carpeta aquí</key>
<key alias="folderWasRenamed">%0% fue renombrada a %1%</key>
</area>
<area alias="editdatatype">
<key alias="addPrevalue">añadir prevalor</key>
<key alias="addPrevalue">añadir valor preestablecido</key>
<key alias="dataBaseDatatype">
<![CDATA[Base de datos
]]>
</key>
<key alias="guid">Tipo de datos GUID</key>
<key alias="renderControl">Tipo de datos GUIDprestar control</key>
<key alias="renderControl">Renderizar control</key>
<key alias="rteButtons">Botones</key>
<key alias="rteEnableAdvancedSettings">Habilitar la configuración avanzada para</key>
<key alias="rteEnableContextMenu">Habilitar menú contextual</key>
@@ -470,41 +470,41 @@
<key alias="errorExistsWithoutTab">%0% ya existe</key>
<key alias="errorHeader">Se han encontrado los siguientes errores:</key>
<key alias="errorHeaderWithoutTab">Se han encontrado los siguientes errores:</key>
<key alias="errorInPasswordFormat">La clave debe tener como mínimo %0% caracteres y %1% caracter(es) no alfanuméricos</key>
<key alias="errorInPasswordFormat">La clave debe tener como mínimo %0% caracteres y %1% carácter(es) no alfanuméricos</key>
<key alias="errorIntegerWithoutTab">%0% debe ser un número entero</key>
<key alias="errorMandatory">Debe llenar los campos del %0% al %1%</key>
<key alias="errorMandatoryWithoutTab">Debe llenar el campo %0%</key>
<key alias="errorRegExp">Debe poner el formato correcto del %0% al %1% </key>
<key alias="errorRegExpWithoutTab">Debe poner un formato correcto en %0%</key>
<key alias="errorMandatory">Debes llenar los campos del %0% al %1%</key>
<key alias="errorMandatoryWithoutTab">Debes llenar el campo %0%</key>
<key alias="errorRegExp">Debes poner el formato correcto del %0% al %1% </key>
<key alias="errorRegExpWithoutTab">Debes poner un formato correcto en %0%</key>
</area>
<area alias="errors">
<key alias="receivedErrorFromServer">Se recibió un error desde el servidor</key>
<key alias="dissallowedMediaType">El tipo de archivo especificado ha sido deshabilitado por el administrador</key>
<key alias="codemirroriewarning">NOTA: Aunque CodeMirror esté activado en los ajustes de configuracion, no se muestra en Internet Explorer debido a que no es lo suficientemente estable.'</key>
<key alias="contentTypeAliasAndNameNotNull">Debe llenar el alias y el nombre en el propertytype</key>
<key alias="codemirroriewarning">NOTA: Aunque CodeMirror esté activado en los ajustes de configuración, no se muestra en Internet Explorer debido a que no es lo suficientemente estable.'</key>
<key alias="contentTypeAliasAndNameNotNull">Debes rellenar el alias y el nombre en el tipo de propiedad</key>
<key alias="filePermissionsError">Hay un problema de lectura y escritura al acceder a un archivo o carpeta</key>
<key alias="macroErrorLoadingPartialView">Error cargando Vista Parcial (archivo: %0%)</key>
<key alias="macroErrorLoadingUsercontrol">Error cargando userControl '%0%'</key>
<key alias="macroErrorLoadingCustomControl">Error cargandog customControl (Assembly: %0%, Type: '%1%')</key>
<key alias="macroErrorLoadingCustomControl">Error cargando customControl (Assembly: %0%, Type: '%1%')</key>
<key alias="macroErrorLoadingMacroEngineScript">Error cargando MacroEngine script (file: %0%)</key>
<key alias="macroErrorParsingXSLTFile">"Error analizando archivo XSLT: %0%</key>
<key alias="macroErrorReadingXSLTFile">"Error leyendo archivo XSLT: %0%</key>
<key alias="missingTitle">
<![CDATA[Por favor, introduzca un título
<![CDATA[Por favor, introduce un título
]]>
</key>
<key alias="missingType">Por favor, elija un tipo </key>
<key alias="pictureResizeBiggerThanOrg">Usted está a punto de hacer la foto más grande que el tamaño original. ¿Está seguro de que desea continuar?</key>
<key alias="missingType">Por favor, elige un tipo </key>
<key alias="pictureResizeBiggerThanOrg">Estás a punto de hacer la foto más grande que el tamaño original. ¿Estás seguro de que desea continuar?</key>
<key alias="pythonErrorHeader">Error en script python</key>
<key alias="pythonErrorText">El script python no se ha guardado debido a que contenía error(es)</key>
<key alias="startNodeDoesNotExists">
<![CDATA[Startnode suprimido, por favor, póngase en contacto con su administrador
<![CDATA[Startnode suprimido, por favor, ponte en contacto con tu administrador
]]>
</key>
<key alias="stylesMustMarkBeforeSelect">Por favor, marque el contenido antes de cambiar de estilo</key>
<key alias="stylesNoStylesOnPage">No active estilos disponibles</key>
<key alias="stylesMustMarkBeforeSelect">Por favor, marca el contenido antes de cambiar de estilo</key>
<key alias="stylesNoStylesOnPage">No actives estilos disponibles</key>
<key alias="tableColMergeLeft">
<![CDATA[Por favor, coloque el cursor a la izquierda de las dos celdas que quiere combinar
<![CDATA[Por favor, coloca el cursor a la izquierda de las dos celdas que quieres combinar
]]>
</key>
<key alias="tableSplitNotSplittable">
@@ -524,7 +524,7 @@
<key alias="actions">Acciones</key>
<key alias="add">Añadir</key>
<key alias="alias">Alias</key>
<key alias="areyousure">¿Está seguro?</key>
<key alias="areyousure">¿Estás seguro?</key>
<key alias="border">Borde</key>
<key alias="by">o</key>
<key alias="cancel">Cancelar</key>
@@ -545,7 +545,7 @@
<key alias="deleted">Borrado</key>
<key alias="deleting">Borrando...</key>
<key alias="design">Diseño</key>
<key alias="dictionary">Dictionario</key>
<key alias="dictionary">Diccionario</key>
<key alias="dimensions">Dimensiones</key>
<key alias="down">Abajo</key>
<key alias="download">Descargar</key>
@@ -565,11 +565,11 @@
<key alias="innerMargin">Margen interno</key>
<key alias="insert">Insertar</key>
<key alias="install">Instalar</key>
<key alias="invalid">Invalido</key>
<key alias="invalid">Inválido</key>
<key alias="justify">Justificar</key>
<key alias="label">Etiqueta</key>
<key alias="language">Idioma</key>
<key alias="last">Ultimo</key>
<key alias="last">Último</key>
<key alias="layout">Diseño</key>
<key alias="loading">Cargando</key>
<key alias="locked">Bloqueado</key>
@@ -581,7 +581,7 @@
<key alias="message">Mensaje</key>
<key alias="move">Mover</key>
<key alias="name">Nombre</key>
<key alias="new">New</key>
<key alias="new">Nuevo</key>
<key alias="next">Próximo</key>
<key alias="no">No</key>
<key alias="of">de</key>
@@ -643,7 +643,7 @@
<key alias="saving">Guardando...</key>
<key alias="current">actual</key>
<key alias="embed">Insertar</key>
<key alias="selected">selecionado</key>
<key alias="selected">seleccionado</key>
</area>
<area alias="colors">
<key alias="black">Negro</key>
@@ -669,10 +669,10 @@
<key alias="showShortcuts">mostrar atajos</key>
<key alias="toggleListView">Activar/Desactivar vista de lista</key>
<key alias="toggleAllowAsRoot">Activar/Desactivar permitir como raiz</key>
<key alias="toggleAllowAsRoot">Activar/Desactivar permitir como raíz</key>
<key alias="commentLine">Act/Desact Comentar líneas</key>
<key alias="removeLine">Elimiar línea</key>
<key alias="commentLine">Comentar/Descomentar líneas</key>
<key alias="removeLine">Eliminar línea</key>
<key alias="copyLineUp">Copiar líneas arriba</key>
<key alias="copyLineDown">Copiar líneas abajo</key>
<key alias="moveLineUp">Mover líneas arriba</key>
@@ -693,18 +693,18 @@
</area>
<area alias="installer">
<key alias="databaseErrorCannotConnect">El instalador no puede conectar con la base de datos.</key>
<key alias="databaseErrorWebConfig">No se ha podido guardar el archivo Web.config. Por favor, modifique la cadena de conexión manualmente.</key>
<key alias="databaseFound">Su base de datos ha sido encontrada y ha sido identificada como</key>
<key alias="databaseErrorWebConfig">No se ha podido guardar el archivo Web.config. Por favor, modifica la cadena de conexión manualmente.</key>
<key alias="databaseFound">Tu base de datos ha sido encontrada y ha sido identificada como</key>
<key alias="databaseHeader">Configuración de la base de datos</key>
<key alias="databaseInstall"><![CDATA[Pulse el botón <strong> instalar </ strong> para instalar %0% la base de datos de Umbraco]]></key>
<key alias="databaseInstallDone"><![CDATA[Se ha copiado Umbraco %0% a la base de datos. Pulse <strong>Próximo</strong> para continuar]]></key>
<key alias="databaseNotFound"><![CDATA[<p>¡No se ha encontrado ninguna base de datos! Mira si la información en la "connection string" del “web.config” es correcta.</p> <p>Para continuar, edite el "web.config" (bien sea usando Visual Studio o su editor de texto preferido), vaya al final del archivo y añada la cadena de conexión para la base de datos con el nombre (key) "umbracoDbDSN" y guarde el archivo. </p> <p>Pinche en <strong>reintentar</strong> cuando haya terminado.<br /><a href="https://our.umbraco.com/documentation/Using-Umbraco/Config-files/webconfig7" target="_blank">Pinche aquí para mayor información de como editar el web.config (en inglés)</a></p>]]></key>
<key alias="databaseInstall"><![CDATA[Pulsa el botón <strong> instalar </ strong> para instalar %0% la base de datos de Umbraco]]></key>
<key alias="databaseInstallDone"><![CDATA[Se ha copiado Umbraco %0% a la base de datos. Pulsa <strong>Próximo</strong> para continuar]]></key>
<key alias="databaseNotFound"><![CDATA[<p>¡No se ha encontrado ninguna base de datos! Mira si la información en la cadena de conexión del “web.config” es correcta.</p> <p>Para continuar, edita el "web.config" (bien sea usando Visual Studio o tu editor de texto preferido), ve al final del archivo y añade la cadena de conexión para la base de datos con el nombre (key) "umbracoDbDSN" y guarda el archivo. </p> <p>Pincha en <strong>reintentar</strong> cuando hayas terminado.<br /><a href="https://our.umbraco.com/documentation/Using-Umbraco/Config-files/webconfig7" target="_blank">Pincha aquí para mayor información de como editar el web.config (en inglés)</a></p>]]></key>
<key alias="databaseText"><![CDATA[Para completar este paso, debes conocer la información correspondiente a tu servidor de base de datos ("cadena de conexión").<br /> Por favor, contacta con tu ISP si es necesario. Si estás realizando la instalación en una máquina o servidor local, quizás necesites información de tu administrador de sistemas.]]></key>
<key alias="databaseUpgrade"><![CDATA[<p> Pinche en <strong>actualizar</strong> para actualizar la base de datos a Umbraco %0%</p> <p> Ningún contenido será borrado de la base de datos y seguirá funcionando después de la actualización </p> ]]></key>
<key alias="databaseUpgradeDone"><![CDATA[La base de datos ha sido actualizada a la versión 0%.<br />Pinche en <strong>Próximo</strong> para continuar. ]]></key>
<key alias="databaseUpToDate"><![CDATA[La base de datos está actualizada. Pinche en <strong>próximo</strong> para continuar con el asistente de configuración]]></key>
<key alias="databaseUpgrade"><![CDATA[<p> Pincha en <strong>actualizar</strong> para actualizar la base de datos a Umbraco %0%</p> <p> Ningún contenido será borrado de la base de datos y seguirá funcionando después de la actualización </p> ]]></key>
<key alias="databaseUpgradeDone"><![CDATA[La base de datos ha sido actualizada a la versión 0%.<br />Pincha en <strong>Próximo</strong> para continuar. ]]></key>
<key alias="databaseUpToDate"><![CDATA[La base de datos está actualizada. Pincha en <strong>próximo</strong> para continuar con el asistente de configuración]]></key>
<key alias="defaultUserChangePass"><![CDATA[<strong>La contraseña del usuario por defecto debe ser cambiada</strong>]]></key>
<key alias="defaultUserDisabled"><![CDATA[<strong>El usuario por defecto ha sido desabilitado o ha perdido el acceso a Umbraco!</strong></p><p>Pinche en <b>Próximo</b> para continuar.]]></key>
<key alias="defaultUserDisabled"><![CDATA[<strong>El usuario por defecto ha sido deshabilitado o ha perdido el acceso a Umbraco!</strong></p><p>Pincha en <b>Próximo</b> para continuar.]]></key>
<key alias="defaultUserPassChanged"><![CDATA[<strong>¡La contraseña del usuario por defecto ha sido cambiada desde que se instaló!</strong></p><p>No hay que realizar ninguna tarea más. Pulsa <strong>Siguiente</strong> para proseguir.]]></key>
<key alias="defaultUserPasswordChanged">¡La contraseña se ha cambiado!</key>
<key alias="greatStart">Ten un buen comienzo, visita nuestros videos de introducción</key>
@@ -723,15 +723,15 @@
<key alias="permissionsResolveFolderIssues">Resolviendo problemas con directorios</key>
<key alias="permissionsResolveFolderIssuesLink">Sigue este enlace para más información sobre problemas con ASP.NET y creación de directorios</key>
<key alias="permissionsSettingUpPermissions">Configurando los permisos de directorios</key>
<key alias="permissionsText">Umbraco necesita permisos de lectura/escritura en algunos directorios para poder almacenar archivos tales como imagenes y PDFs. También almacena datos en la caché para mejorar el rendimiento de su sitio web</key>
<key alias="permissionsText">Umbraco necesita permisos de lectura/escritura en algunos directorios para poder almacenar archivos tales como imágenes y PDFs. También almacena datos en la caché para mejorar el rendimiento de tu sitio web</key>
<key alias="runwayFromScratch">Quiero empezar de cero</key>
<key alias="runwayFromScratchText"><![CDATA[Tu sitio web está completamente vacío en estos momentos, lo cual es perfecto si quieres empezar de cero y crear tus propios tipos de documentos y plantillas (<a href="http://Umbraco.tv/documentation/videos/for-site-builders/foundation/document-types">learn how</a>). Todavía podrás elegir instalar Runway más adelante. Por favor ve a la sección del Desarrollador y elije Paquetes.]]></key>
<key alias="runwayFromScratchText"><![CDATA[Tu sitio web está completamente vacío en estos momentos, lo cual es perfecto si quieres empezar de cero y crear tus propios tipos de documentos y plantillas (<a href="http://Umbraco.tv/documentation/videos/for-site-builders/foundation/document-types">aprende cómo</a>). Todavía podrás elegir instalar Runway más adelante. Por favor ve a la sección del Desarrollador y elige Paquetes.]]></key>
<key alias="runwayHeader">Acabas de configurar una nueva plataforma Umbraco. ¿Qué deseas hacer ahora?</key>
<key alias="runwayInstalled">Se ha instalado Runway</key>
<key alias="runwayInstalledText"><![CDATA[Tienes puestos los cimientos. Selecciona los módulos que desees instalar sobre ellos.<br /> Esta es nuestra lista de módulos recomendados, selecciona los que desees instalar, o mira la <a href="#" onclick="toggleModules(); return false;" id="toggleModuleList">lista completa de módulos</a> ]]></key>
<key alias="runwayOnlyProUsers">Sólo recomendado para usuarios expertos</key>
<key alias="runwaySimpleSite">Quiero empezar con un sitio web sencillo</key>
<key alias="runwaySimpleSiteText"><![CDATA[<p> "Runway" es un sitio web sencillo que contiene unos tipos de documentos y plantillas básicos. El instalador puede configurar Runway por ti de forma automática, pero fácilmente puedes editarlo, extenderlo o eliminarlo. No es necesario y puedes usar Umbrao perfectamente sin él. Sin embargo, Runway ofrece unos cimientos sencillos basados en buenas prácticas para iniciarte más rápido que nunca. Si eliges instalar Runway, puedes seleccionar bloques de construcción básicos llamados Módulos de Runway de forma opcional para realzar tus páginas de Runway. </> <small> <em>Incluido con Runway:</em> Página de inicio, página de Cómo empezar, página de Instalación de módulos.<br /> <em>Módulos opcionales:</em> Navegación superior, Mapa del sitio, Contacto, Galería. </small> ]]></key>
<key alias="runwaySimpleSiteText"><![CDATA[<p> "Runway" es un sitio web sencillo que contiene unos tipos de documentos y plantillas básicos. El instalador puede configurar Runway por ti de forma automática, pero fácilmente puedes editarlo, extenderlo o eliminarlo. No es necesario y puedes usar Umbraco perfectamente sin él. Sin embargo, Runway ofrece unos cimientos sencillos basados en buenas prácticas para iniciarte más rápido que nunca. Si eliges instalar Runway, puedes seleccionar bloques de construcción básicos llamados Módulos de Runway de forma opcional para realzar tus páginas de Runway. </> <small> <em>Incluido con Runway:</em> Página de inicio, página de Cómo empezar, página de Instalación de módulos.<br /> <em>Módulos opcionales:</em> Navegación superior, Mapa del sitio, Contacto, Galería. </small> ]]></key>
<key alias="runwayWhatIsRunway">¿Qué es Runway?</key>
<key alias="step1">Paso 1 de 5. Aceptar los términos de la licencia</key>
<key alias="step2">Paso 2 de 5. Configuración de la base de datos</key>
@@ -749,15 +749,15 @@
<key alias="Version3">Umbraco versión 3</key>
<key alias="Version4">Umbraco versión 4</key>
<key alias="watch">Mirar</key>
<key alias="welcomeIntro"><![CDATA[El asistente de configuración le guiará en los pasos para instalar <strong>Umbraco %0%</strong> o actualizar la versión 3.0 a <strong>Umbraco %0%</strong>. <br /><br /> Pinche en <strong>"próximo"</strong> para empezar con el asistente de configuración.]]></key>
<key alias="welcomeIntro"><![CDATA[El asistente de configuración te guiará en los pasos para instalar <strong>Umbraco %0%</strong> o actualizar la versión 3.0 a <strong>Umbraco %0%</strong>. <br /><br /> Pincha en <strong>"próximo"</strong> para empezar con el asistente de configuración.]]></key>
</area>
<area alias="language">
<key alias="cultureCode">Código de cultura</key>
<key alias="displayName">Nombre de cultura</key>
</area>
<area alias="lockout">
<key alias="lockoutWillOccur">No ha habido ninguna actividad y su sessión se cerrará en </key>
<key alias="renewSession">Renovar su sesión para guardar sus cambios</key>
<key alias="lockoutWillOccur">No ha habido ninguna actividad y tu sesión se cerrará en </key>
<key alias="renewSession">Renovar tu sesión para guardar sus cambios</key>
</area>
<area alias="login">
<key alias="greeting0">Feliz super domingo</key>
@@ -772,10 +772,10 @@
<key alias="bottomText"><![CDATA[<p style="text-align:right;">&copy; 2001 - %0% <br /><a href="http://umbraco.com" style="text-decoration: none" target="_blank">umbraco.com</a></p> ]]></key>
<key alias="forgottenPassword">¿Olvidaste tu contraseña?</key>
<key alias="forgottenPasswordInstruction">Enviaremos un email a la dirección especificada con un enlace para restaurar tu contraseña</key>
<key alias="requestPasswordResetConfirmation">Un email con instrucciones para restaurar tu contraseña será enviado a la dirección especificada si esta está registrada.</key>
<key alias="returnToLogin">Volver a formularion de acceso</key>
<key alias="requestPasswordResetConfirmation">Un email con instrucciones para restaurar tu contraseña será enviado a la dirección especificada si ésta está registrada.</key>
<key alias="returnToLogin">Volver al formulario de acceso</key>
<key alias="setPasswordInstruction">Por favor, introduce una nueva contraseña</key>
<key alias="setPasswordConfirmation">Tu contraseña has sido actualizada</key>
<key alias="setPasswordConfirmation">Tu contraseña ha sido actualizada</key>
<key alias="resetCodeExpired">El enlace pulsado es inválido o ha caducado</key>
<key alias="resetPasswordEmailCopySubject">Umbraco: Restaurar contraseña</key>
<key alias="resetPasswordEmailCopyFormat">
@@ -869,36 +869,36 @@
<key alias="tree">Contenido</key>
</area>
<area alias="moveOrCopy">
<key alias="choose">Elija una página arriba...</key>
<key alias="choose">Elige una página arriba...</key>
<key alias="copyDone">%0% ha sido copiado al %1%</key>
<key alias="copyTo">Seleccione donde el documento %0% debe ser copiado abajo</key>
<key alias="copyTo">Selecciona donde el documento %0% debe ser copiado abajo</key>
<key alias="moveDone">%0% ha sido movido a %1%</key>
<key alias="moveTo">Seleccione debajo donde mover el documento %0%</key>
<key alias="nodeSelected">ha sido seleccionado como raíz de su nuevo contenido, haga click sobre 'ok' debajo.</key>
<key alias="noNodeSelected">No ha seleccionado ningún nodo. Seleccione un nodo en la lista mostrada arriba antes the pinchar en 'continuar' (continue)</key>
<key alias="notAllowedByContentType">No se puede colgar el nodo actual bajo el nodo elegido debido a su tipo</key>
<key alias="moveTo">Selecciona debajo donde mover el documento %0%</key>
<key alias="nodeSelected">ha sido seleccionado como raíz de tu nuevo contenido, haga clic sobre 'ok' debajo.</key>
<key alias="noNodeSelected">No ha seleccionado ningún nodo. Selecciona un nodo en la lista mostrada arriba antes de pinchar en 'continuar'</key>
<key alias="notAllowedByContentType">No se puede colgar el nodo actual bajo el nodo elegido debido a tu tipo</key>
<key alias="notAllowedByPath">El nodo actual no puede moverse a ninguna de sus subpáginas</key>
<key alias="notAllowedAtRoot">El nodo actual no puede existir en la raiz</key>
<key alias="notValid">Acción no permitida. No tiene permisos suficientes para uno o más subnodos.'</key>
<key alias="notAllowedAtRoot">El nodo actual no puede existir en la raíz</key>
<key alias="notValid">Acción no permitida. No tienes permisos suficientes para uno o más subnodos.'</key>
<key alias="relateToOriginal">Relacionar elemento copiado al original</key>
</area>
<area alias="notifications">
<key alias="editNotifications">Edite su notificación para %0%</key>
<key alias="mailBody">Hola %0% Esto es un e-mail automático para informarle que la tarea '%1%' ha sido realizada sobre la página '%2%' por el usuario '%3%' Vaya a http://%4%/#/content/content/edit/%5% para editarla. ¡Espero que tenga un buen día! Saludos del robot de Umbraco</key>
<key alias="editNotifications">Edita tu notificación para %0%</key>
<key alias="mailBody">Hola %0% Esto es un e-mail automático para informarte que la tarea '%1%' ha sido realizada sobre la página '%2%' por el usuario '%3%' Vaya a http://%4%/#/content/content/edit/%5% para editarla. ¡Espero que tenga un buen día! Saludos del robot de Umbraco</key>
<key alias="mailBodyHtml"><![CDATA[<p>Hola %0%</p> <p>Esto es un e-mail generado automáticamente para informarle que la tarea <strong>'%1%'</strong> ha sido realizada sobre la página <a href="http://%4%/#/content/content/edit/%5%"><strong>'%2%'</strong></a> por el usuario <strong>'%3%'</strong> </p> <div style="margin: 8px 0; padding: 8px; display: block;"> <br /> <a style="color: white; font-weight: bold; background-color: #5372c3; text-decoration : none; margin-right: 20px; border: 8px solid #5372c3; width: 150px;" href="http://%4%/#/content/content/edit/%5%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EDIT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</a> &nbsp; <br /> </div> <p> <h3>Resumen de actualización:</h3> <table style="width: 100%;"> %6% </table> </p> <div style="margin: 8px 0; padding: 8px; display: block;"> <br /> <a style="color: white; font-weight: bold; background-color: #66cc66; text-decoration : none; margin-right: 20px; border: 8px solid #66cc66; width: 150px;" href="http://%4%/actions/publish.aspx?id=%5%">&nbsp;&nbsp;PUBLISH&nbsp;&nbsp;</a> &nbsp; <a style="color: white; font-weight: bold; background-color: #5372c3; text-decoration : none; margin-right: 20px; border: 8px solid #5372c3; width: 150px;" href="http://%4%/#/content/content/edit/%5%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EDIT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</a> &nbsp; <a style="color: white; font-weight: bold; background-color: #ca4a4a; text-decoration : none; margin-right: 20px; border: 8px solid #ca4a4a; width: 150px;" href="http://%4%/actions/delete.aspx?id=%5%">&nbsp;&nbsp;&nbsp;&nbsp;DELETE&nbsp;&nbsp;&nbsp;&nbsp;</a> <br /> </div> <p>¡Espero que tenga un buen día!<br /><br /> Saludos del robot Umbraco. </p>]]></key>
<key alias="mailSubject">[%0%] Notificación acerca de %1% realizado en %2%</key>
<key alias="notifications">Notificaciones</key>
</area>
<area alias="packager">
<key alias="chooseLocalPackageText"><![CDATA[Elige un paquete de tu máquina, seleccionando el botón Examinar<br />y localizando el paquete. Los paquetes de Umbraco normalmente tienen la extensión ".umb" o ".zip".]]></key>
<key alias="dropHere">Suelte para subir archivo</key>
<key alias="orClickHereToUpload">o pulse aquí para elegir paquete</key>
<key alias="dropHere">Suelta para subir archivo</key>
<key alias="orClickHereToUpload">o Pulsa aquí para elegir paquete</key>
<key alias="uploadPackage">Subir paquete</key>
<key alias="localPackageDescription">Instala un paquete local seleccionándolo desde tu ordenador. Sólo instala paquetes de fuentes que conoces y en las que confías</key>
<key alias="localPackageDescription">Instala un paquete local seleccionándolo desde tu ordenador. instala sólo paquetes de fuentes que conoces y en las que confías</key>
<key alias="uploadAnother">Subir otro paquete</key>
<key alias="cancelAndUploadAnother">Cancelar y subir otro paquete</key>
<key alias="packageLicense">Licencia</key>
<key alias="accept">Aceptop</key>
<key alias="accept">Aceptar</key>
<key alias="termsOfUse">términos de uso</key>
<key alias="packageInstall">Instalar paquete</key>
<key alias="installFinish">Terminar</key>
@@ -914,13 +914,13 @@
<key alias="packageHas">tiene</key>
<key alias="packageKarmaPoints">puntos de karma</key>
<key alias="packageInfo">Información</key>
<key alias="packageOwner">Propetarioa</key>
<key alias="packageOwner">Propietario</key>
<key alias="packageContrib">Contribuidores</key>
<key alias="packageCreated">Creado</key>
<key alias="packageCurrentVersion">Versión actual</key>
<key alias="packageNetVersion">Versión .NET</key>
<key alias="packageDownloads">Descargas</key>
<key alias="packageLikes">Gustas</key>
<key alias="packageLikes">Me Gusta</key>
<key alias="packageCompatibility">Compatibilidad</key>
<key alias="packageCompatibilityDescription">Este paquete es compatible con las siguientes versiones de Umbraco, declaradas según miembros de la comunidad. No se puede garantizar compatibilidad completa para versiones declaradas debajo del 100%</key>
<key alias="packageExternalSources">Fuentes externas</key>
@@ -930,19 +930,19 @@
]]>
</key>
<key alias="packageDocumentation">Documentación</key>
<key alias="packageMetaData">Meta datos del paquete</key>
<key alias="packageMetaData">Metadatos del paquete</key>
<key alias="packageName">Nombre del paquete</key>
<key alias="packageNoItemsHeader">El paquete no contiene ningún elemento</key>
<key alias="packageNoItemsText"><![CDATA[Este archivo de paquete no contiene ningún elemento para desinstalar.<br /><br />Puedes eliminarlo del sistema de forma segura seleccionando la opción "desinstalar paquete" de abajo.]]></key>
<key alias="packageNoUpgrades">No hay actualizaciones disponibles</key>
<key alias="packageOptions">Opciones del paquete</key>
<key alias="packageReadme">Leeme del paquete</key>
<key alias="packageReadme">Léeme del paquete</key>
<key alias="packageRepository">Repositorio de paquetes</key>
<key alias="packageUninstallConfirm">Confirma la desinstalación</key>
<key alias="packageUninstalledHeader">El paquete ha sido desinstalado</key>
<key alias="packageUninstalledText">El paquete se ha desinstalado correctamente</key>
<key alias="packageUninstallHeader">Desinstalar paquete</key>
<key alias="packageUninstallText"><![CDATA[Debajo puedes deseleccionar elementos que no desees eliminar en este momento. Cuando elijas "confirmar la desinstalación" todos los elementos marcados serán eliminados.<br /> <span style="color: Red; font-weight: bold;">Nota:</span> cualquier documento, archivo etc dependiente de los elementos eliminados, dejará de funcionar, y puede conllevar inestabilidad en el sistema, por lo que lleva cuidado al desinstalar elementos. En caso de duda, contacta con el autor del paquete.]]></key>
<key alias="packageUninstallText"><![CDATA[Debajo puedes deseleccionar elementos que no desees eliminar en este momento. Cuando eliges "confirmar la desinstalación" todos los elementos marcados serán eliminados.<br /> <span style="color: Red; font-weight: bold;">Nota:</span> cualquier documento, archivo etc dependiente de los elementos eliminados, dejará de funcionar, y puede conllevar inestabilidad en el sistema, por lo que lleva cuidado al desinstalar elementos. En caso de duda, contacta con el autor del paquete.]]></key>
<key alias="packageUpgradeDownload">Descargar actualización del repositorio</key>
<key alias="packageUpgradeHeader">Actualizar paquete</key>
<key alias="packageUpgradeInstructions">Instrucciones de actualización</key>
@@ -962,27 +962,27 @@
</area>
<area alias="paste">
<key alias="doNothing">Pegar con formato completo (No recomendado)</key>
<key alias="errorMessage">El texto que estás intentando pegar contiene caractéres o formato especial. El problema puede ser debido al copiar texto desde Microsoft Word. Umbraco puede eliminar estos caractéres o formato especial automáticamente, de esa manera el contenido será más adecuado para la web.</key>
<key alias="errorMessage">El texto que estás intentando pegar contiene caracteres o formato especial. El problema puede ser debido al copiar texto desde Microsoft Word. Umbraco puede eliminar estos caracteres o formato especial automáticamente, de esa manera el contenido será más adecuado para la web.</key>
<key alias="removeAll">Pegar como texto sin formato</key>
<key alias="removeSpecialFormattering">Pegar, pero quitando el formato (Recomendado)</key>
</area>
<area alias="publicAccess">
<key alias="paAdvanced">Proteccion basada en roles</key>
<key alias="paAdvancedHelp"><![CDATA[Si desea controlar el acceso a la página usando autenticación basada en roles,<br /> usando los grupos de miembros de Umbraco.]]></key>
<key alias="paAdvancedNoGroups">Necesita crear un grupo de miembros antes de poder usar autenticación basada en roles</key>
<key alias="paAdvanced">Protección basada en roles</key>
<key alias="paAdvancedHelp"><![CDATA[Si deseas controlar el acceso a la página usando autenticación basada en roles,<br /> usando los grupos de miembros de Umbraco.]]></key>
<key alias="paAdvancedNoGroups">Necesitas crear un grupo de miembros antes de poder usar autenticación basada en roles</key>
<key alias="paErrorPage">Página de error</key>
<key alias="paErrorPageHelp">Usada cuando alguien hace login, pero no tiene acceso</key>
<key alias="paHowWould">Elija cómo restringir el acceso a esta página</key>
<key alias="paHowWould">Elige cómo restringir el acceso a esta página</key>
<key alias="paIsProtected">%0% está protegido</key>
<key alias="paIsRemoved">Protección borrada de %0%</key>
<key alias="paLoginPage">Página de login</key>
<key alias="paLoginPageHelp">Elija la página que contenga el formulario de login</key>
<key alias="paLoginPageHelp">Elige la página que contenga el formulario de login</key>
<key alias="paRemoveProtection">Borrar protección</key>
<key alias="paSelectPages">Elija las páginas que contendrán el formulario de login y mensajes de error</key>
<key alias="paSelectRoles">Elija los roles que tendrán acceso a esta página</key>
<key alias="paSetLogin">Elija el login y password para esta página</key>
<key alias="paSelectPages">Elige las páginas que contendrán el formulario de login y mensajes de error</key>
<key alias="paSelectRoles">Elige los roles que tendrán acceso a esta página</key>
<key alias="paSetLogin">Elige el login y contraseña para esta página</key>
<key alias="paSimple">Protección de usuario único</key>
<key alias="paSimpleHelp">Si sólo necesita configurar una protección simple usando un único login y password</key>
<key alias="paSimpleHelp">Si sólo necesita configurar una protección simple usando un único login y contraseña</key>
</area>
<area alias="publish">
<key alias="contentPublishedFailedAwaitingRelease">
@@ -1014,7 +1014,7 @@
<key alias="nodePublish">%0% se ha publicado</key>
<key alias="nodePublishAll">%0% y sus subpáginas se han publicado</key>
<key alias="publishAll">Publicar %0% y todas sus subpáginas</key>
<key alias="publishHelp"><![CDATA[Pulsa en <em>aceptar</em> para publicar <strong>%0%</strong> y por lo tanto, hacer que su contenido esté disponible al público.<br/><br /> Puedes publicar esta página y todas sus subpáginas marcando <em>publicar todos los hijos</em> debajo. ]]></key>
<key alias="publishHelp"><![CDATA[Pulsa en <em>aceptar</em> para publicar <strong>%0%</strong> y por lo tanto, hacer que tu contenido esté disponible al público.<br/><br /> Puedes publicar esta página y todas sus subpáginas marcando <em>publicar todos los hijos</em> debajo. ]]></key>
</area>
<area alias="colorpicker">
<key alias="noColors">No has configurado ningún color</key>
@@ -1035,22 +1035,20 @@
<key alias="link">Enlace</key>
<key alias="newWindow">Abrir en una nueva ventana</key>
<key alias="captionPlaceholder">Introduce texto</key>
<key alias="externalLinkPlaceholder">Introduzce el enlace</key>
<key alias="externalLinkPlaceholder">Introduce el enlace</key>
</area>
<area alias="imagecropper">
<key alias="reset">Reiniciar</key>
<key alias="defineCrop">Definir corte</key>
<key alias="defineCropDescription">Da al corte un alias y su anchura y altura por defecto</key>
<key alias="saveCrop">Guardar corte</key>
<key alias="addCrop">Añadir nuevo corte</key>
</area>
<area alias="rollback">
<key alias="currentVersion">Versión actual</key>
<key alias="diffHelp"><![CDATA[Esto muestra las diferencias entre la versión actual y la versión seleccionada<br /><del>Red</del> el texto de la versión seleccionada no se mostrará. , <ins>green means added</ins>]]></key>
<key alias="diffHelp"><![CDATA[Esto muestra las diferencias entre la versión actual y la versión seleccionada<br /><del>Red</del> el texto de la versión seleccionada no se mostrará. , <ins>el verde significa añadido</ins>]]></key>
<key alias="documentRolledBack">Se ha recuperado la última versión del documento.</key>
<key alias="htmlHelp">Esto muestra la versión seleccionada como html, si desea ver la diferencia entre 2 versiones al mismo tiempo, por favor use la vista diff</key>
<key alias="htmlHelp">Esto muestra la versión seleccionada como html, si deseas ver la diferencia entre 2 versiones al mismo tiempo, por favor usa la vista diff</key>
<key alias="rollbackTo">Volver a</key>
<key alias="selectVersion">Elija versión</key>
<key alias="selectVersion">Elige versión</key>
<key alias="view">Ver</key>
</area>
<area alias="scripts">
@@ -1070,7 +1068,7 @@
<key alias="translation">Traducción</key>
<key alias="users">Usuarios</key>
<key alias="help" version="7.0">Ayuda</key>
<key alias="analytics">Analisis</key>
<key alias="analytics">Análisis</key>
</area>
<area alias="help">
<key alias="goTo">ir a</key>
@@ -1081,7 +1079,7 @@
<area alias="settings">
<key alias="defaulttemplate">Plantilla por defecto</key>
<key alias="dictionary editor egenskab">Clave de diccionario</key>
<key alias="importDocumentTypeHelp">Para importar un tipo de documento encuentre el fichero ".udt" en su ordenador haciendo click sobre el botón "Navegar" y pulsando "Importar" (se le solicitará confirmación en la siguiente pantalla)</key>
<key alias="importDocumentTypeHelp">Para importar un tipo de documento encuentra el fichero ".udt" en tu ordenador haciendo clic sobre el botón "Navegar" y pulsando "Importar" (se te solicitará confirmación en la siguiente pantalla)</key>
<key alias="newtabname">Nuevo nombre de la pestaña</key>
<key alias="nodetype">Tipo de nodo</key>
<key alias="objecttype">Tipo</key>
@@ -1094,7 +1092,7 @@
<key alias="contentTypeEnabled">Tipo de Contenido Maestro activado</key>
<key alias="contentTypeUses">Este Tipo de Contenido usa</key>
<key alias="asAContentMasterType">como Tipo de Contenido Maestro. Las pestañas para los Tipos de Contenido Maestros no se muestran y solo se pueden modificar desde el Tipo de Contenido Maestro</key>
<key alias="noPropertiesDefinedOnTab">No existen propiedades para esta pestaña. Haga clic en el enlace "añadir nueva propiedad" para crear una nueva propiedad.</key>
<key alias="noPropertiesDefinedOnTab">No existen propiedades para esta pestaña. Haz clic en el enlace "añadir nueva propiedad" para crear una nueva propiedad.</key>
<key alias="masterDocumentType">Tipo de documento Maestro</key>
<key alias="createMatchingTemplate">Crear plantilla correspondiente</key>
<key alias="addIcon">Añadir icono</key>
@@ -1103,12 +1101,12 @@
<key alias="sortOrder">Ordenar</key>
<key alias="sortCreationDate">Fecha Creado</key>
<key alias="sortDone">Ordenación completa</key>
<key alias="sortHelp">Arrastra las diferentes páginas debajo para colocarlas como deberían estar. O haz click en las cabeceras de las columnas para ordenar todas las páginas</key>
<key alias="sortPleaseWait"><![CDATA[Espere por favor, las páginas están siendo ordenadas. El proceso puede durar un poco.]]></key>
<key alias="sortHelp">Arrastra las diferentes páginas debajo para colocarlas como deberían estar o haz clic en las cabeceras de las columnas para ordenar todas las páginas</key>
<key alias="sortPleaseWait"><![CDATA[Espera por favor, las páginas están siendo ordenadas. El proceso puede durar un poco.]]></key>
</area>
<area alias="speechBubbles">
<key alias="validationFailedHeader">Validación</key>
<key alias="validationFailedMessage">Los errors de validación deben ser arreglados antes de que el elemento pueda ser guardado</key>
<key alias="validationFailedMessage">Los errores de validación deben ser arreglados antes de que el elemento pueda ser guardado</key>
<key alias="operationFailedHeader">Fallo</key>
<key alias="operationSavedHeader">Guardado</key>
<key alias="invalidUserPermissionsText">Insuficientes permisos de usuario, no se pudo completar la operación</key>
@@ -1168,7 +1166,7 @@
<key alias="contentUnpublished">Contenido oculto</key>
<key alias="partialViewSavedHeader">Vista parcial guardada</key>
<key alias="partialViewSavedText">Vista parcial guardada sin errores</key>
<key alias="partialViewErrorHeader">ista parcial no guardada</key>
<key alias="partialViewErrorHeader">Vista parcial no guardada</key>
<key alias="partialViewErrorText">Error guardando el archivo.</key>
<key alias="permissionsSavedFor">Permisos guardados para</key>
<key alias="scriptSavedHeader">Script guardado</key>
@@ -1189,7 +1187,7 @@
<key alias="setUserGroupOnUsersSuccess">Grupos de usuario establecidos</key>
<key alias="deleteUserGroupsSuccess">%0% grupos de usuario borrados</key>
<key alias="deleteUserGroupSuccess">%0% fue borrado</key>
<key alias="unlockUsersSuccess">%0% usuarios desbloquedaos</key>
<key alias="unlockUsersSuccess">%0% usuarios desbloqueados</key>
<key alias="unlockUsersError">Error desbloqueando usuarios</key>
<key alias="unlockUserSuccess">%0% está desbloqueado</key>
<key alias="unlockUserError">Error desbloqueando usuario</key>
@@ -1208,21 +1206,21 @@
<key alias="insertContentArea">Insertar área de contenido</key>
<key alias="insertContentAreaPlaceHolder">Insertar marcador de posición de área de contenido</key>
<key alias="insert">Insertar</key>
<key alias="insertDesc">Elije que insertar en tu plantilla</key>
<key alias="insertDesc">Elige que insertar en tu plantilla</key>
<key alias="insertDictionaryItem">Insertar objeto del diccionario</key>
<key alias="insertDictionaryItemDesc">A dictionary item is a placeholder for a translatable piece of text, which makes it easy to create designs for multilingual websites.</key>
<key alias="insertDictionaryItemDesc">Un objeto de diccionario es una variable para un texto traducible, lo que facilita crear sitios multi idioma.</key>
<key alias="insertMacro">Insertar macro</key>
<key alias="insertMacroDesc">
Una Macor es un componente configurable que es genial como partes reutilizables de tu diseño,
Una Macro es un componente configurable que es genial como partes reutilizables de tu diseño,
donde necesites una forma de proporcionar parámetros,
como galerías, formularios y listas.
</key>
<key alias="insertPageField">Insertar campo de página de Umbraco</key>
<key alias="insertPageFieldDesc">Muestra el valor de una propiedad de la página actual, con opciones para modificar el valor or usar valores alternativos.</key>
<key alias="insertPageFieldDesc">Muestra el valor de una propiedad de la página actual, con opciones para modificar el valor o usar valores alternativos.</key>
<key alias="insertPartialView">Vista parcial</key>
<key alias="insertPartialViewDesc">
Una vista parcial es una platilla separada que puede ser mostrada dentro de otra plantilla.
Es útil para reutilizar código or para distribuir plantillas complejas en archivos separados.
Es útil para reutilizar código o para distribuir plantillas complejas en archivos separados.
</key>
<key alias="mastertemplate">Plantilla principal</key>
<key alias="noMastertemplate">Sin plantilla principal</key>
@@ -1247,14 +1245,14 @@
<key alias="renderSectionDesc">
<![CDATA[
Muestra un area nombrada de una plantilla hija insertando <code>@RenderSection(name)</code> placeholder.
Esto muestra un area de una plantilla hija rodeada de la corresponsiente definición <code>@section [name]{ ... }</code>.
Esto muestra un area de una plantilla hija rodeada de la correspondiente definición <code>@section [name]{ ... }</code>.
]]>
</key>
<key alias="sectionName">Nombre de sección</key>
<key alias="sectionMandatory">Sección es obligatoria</key>
<key alias="sectionMandatoryDesc">
Si obligatoria, la plantilla hija debe contener una definición de <code>@section</code> o se mostrará un error.
Si está marcada como obligatoria, la plantilla hija debe contener una definición de <code>@section</code> o se mostrará un error.
</key>
@@ -1297,26 +1295,26 @@
<key alias="template">Plantilla</key>
</area>
<area alias="grid">
<key alias="rte">Rich Text Editor</key>
<key alias="media">Image</key>
<key alias="rte">Editor de texto enriquecido</key>
<key alias="media">Imagen</key>
<key alias="macro">Macro</key>
<key alias="embed">Embed</key>
<key alias="headline">Headline</key>
<key alias="quote">Quote</key>
<key alias="embed">Incrustado</key>
<key alias="headline">Encabezado</key>
<key alias="quote">Cita</key>
<key alias="insertControl">Insertar control</key>
<key alias="chooseLayout">Elije configuración</key>
<key alias="chooseLayout">Elige configuración</key>
<key alias="addRows">Añade más filas</key>
<key alias="addElement">Añadir contenido</key>
<key alias="dropElement">Soltar contenido</key>
<key alias="settingsApplied">Settings applied</key>
<key alias="settingsApplied">Configuración aplicada</key>
<key alias="contentNotAllowed">Contenido no permitido aquí</key>
<key alias="contentAllowed">Contenido permitido aquí</key>
<key alias="clickToEmbed">Pulse para insertar</key>
<key alias="clickToInsertImage">Pulse para insertar imagen</key>
<key alias="clickToEmbed">Pulsa para insertar</key>
<key alias="clickToInsertImage">Pulsa para insertar imagen</key>
<key alias="placeholderImageCaption">Leyenda de imagen...</key>
<key alias="placeholderWriteHere">Escribe aqui...</key>
<key alias="placeholderWriteHere">Escribe aquí...</key>
<key alias="gridLayouts">Plantillas de Grid</key>
<key alias="gridLayoutsDetail">Las plantillas son el área de trabajo para el editor de grids, normalmente sólo necesitas una o dos plantillas diferentes</key>
@@ -1352,7 +1350,7 @@
<area alias="contentTypeEditor">
<key alias="compositions">Composiciones</key>
<key alias="noTabs">No has añadido nunguna pestaña</key>
<key alias="noTabs">No has añadido ninguna pestaña</key>
<key alias="addNewTab">Añadir nueva pestaña</key>
<key alias="addAnotherTab">Añadir otra pestaña</key>
<key alias="inheritedFrom">Heredado de</key>
@@ -1363,11 +1361,11 @@
<key alias="enableListViewDescription">Configura la página para mostrar una lista de sus hijas que puedes ordenar y buscar, los hijas no se mostrarán en el árbol de contenido</key>
<key alias="allowedTemplatesHeading">Platillas permitidas</key>
<key alias="allowedTemplatesDescription">Elije que plantillas se permite a los editores utilizar en contenido de este tipo</key>
<key alias="allowedTemplatesDescription">Elige que plantillas se permite a los editores utilizar en contenido de este tipo</key>
<key alias="allowAsRootHeading">Permitir como raiz</key>
<key alias="allowAsRootDescription">Permite a los editores crear contenido de este tipo en la raiz del árbol de contenido</key>
<key alias="allowAsRootCheckbox">Si - permitir contenido de este tipo en la raiz</key>
<key alias="allowAsRootHeading">Permitir como raíz</key>
<key alias="allowAsRootDescription">Permite a los editores crear contenido de este tipo en la raíz del árbol de contenido</key>
<key alias="allowAsRootCheckbox">Si - permitir contenido de este tipo en la raíz</key>
<key alias="childNodesHeading">Tipos de nodos hijos permitidos</key>
<key alias="childNodesDescription">Permite contenido de los tipos permitidos ser creados debajo de este tipo de contenido </key>
@@ -1428,15 +1426,15 @@
<key alias="casing">MAYÚSCULA/minúscula</key>
<key alias="chooseField">Elegir campo</key>
<key alias="convertLineBreaks">Convertir a salto de línea</key>
<key alias="convertLineBreaksDescription">Sí, convertir salto de linea</key>
<key alias="convertLineBreaksDescription">Sí, convertir salto de línea</key>
<key alias="convertLineBreaksHelp">Reemplaza los saltos de línea con la etiqueta HTML &amp;lt;br&amp;gt;</key>
<key alias="customFields">Campos personalizados</key>
<key alias="dateOnly">Si, solamente la fecha</key>
<key alias="formatAndEncoding">Formato y codificación</key>
<key alias="formatAsDate">Cambiar formato a fecha</key>
<key alias="formatAsDateDescr">Formatear el valor como una fecha o una fecha con hora , de acuerdo con la cultura activa</key>
<key alias="formatAsDateDescr">Formatear el valor como una fecha o una fecha con hora, de acuerdo con el idioma activa</key>
<key alias="htmlEncode">Codificar HTML</key>
<key alias="htmlEncodeHelp">Se reemplazarán los caracteres especiales por su código HTML equivalente.</key>
<key alias="htmlEncodeHelp">Se reemplazarán los caracteres especiales por tu código HTML equivalente.</key>
<key alias="insertedAfter">Será insertado después del valor del campo</key>
<key alias="insertedBefore">Será insertado antes del valor del campo</key>
<key alias="lowercase">Minúscula</key>
@@ -1452,13 +1450,13 @@
<key alias="uppercase">Mayúscula</key>
<key alias="urlEncode">Codificar URL</key>
<key alias="urlEncodeHelp">Formateará los caracteres especiales de las URLs</key>
<key alias="usedIfAllEmpty">Sólo será usado cuando el campo superior esté vacio</key>
<key alias="usedIfEmpty">Este campo será usado unicamente si el campo primario está vacío</key>
<key alias="usedIfAllEmpty">Sólo será usado cuando el campo superior esté vacío</key>
<key alias="usedIfEmpty">Este campo será usado únicamente si el campo primario está vacío</key>
<key alias="withTime">Si, con el tiempo. Separador:</key>
</area>
<area alias="translation">
<key alias="assignedTasks">Tareas asignadas a usted</key>
<key alias="assignedTasksHelp"><![CDATA[La lista de debajo le muestra las tareas de traducción <strong>asignadas a usted</strong>. Para acceder a la vista detallaa incluyendo comentarios, haga click sobre "Detalles" o sobre el nombre de la página. También puede descargar la página como XML directamente pulsando sobre el enlace "Descarga XML". <br/> Para terminar la tarea de traducción, por favor dirijase a la vista de detalles y haga click sobre el botón de "Cerrar". ]]></key>
<key alias="assignedTasks">Tareas asignadas</key>
<key alias="assignedTasksHelp"><![CDATA[La lista de debajo le muestra las tareas de traducción <strong>asignadas</strong>. Para acceder a la vista detallada incluyendo comentarios, haz clic sobre "Detalles" o sobre el nombre de la página. También puedes descargar la página como XML directamente pulsando sobre el enlace "Descarga XML". <br/> Para terminar la tarea de traducción, por favor dirígete a la vista de detalles y haz clic sobre el botón de "Cerrar". ]]></key>
<key alias="closeTask">cerrar tarea</key>
<key alias="details">Detalles de traducción</key>
<key alias="downloadAllAsXml">Descargar todas las tareas pendientes de traducción como archivo xml</key>
@@ -1470,17 +1468,17 @@
<![CDATA[
Hola %0%.
Este mail se ha generado automáticamente para informale que %2% ha solicitado que el documento '%1%' sea traducido en '%5%'.
Este mail se ha generado automáticamente para informale que %2% has solicitado que el documento '%1%' sea traducido en '%5%'.
Para editarlo, vaya a la dirección http://%3%/translation/details.aspx?id=%4% o inicie la sesión en umbraco y vaya a http://%3% para ver las tareas pendientes de traducir.
Para editarlo, vaya a la dirección http://%3%/translation/details.aspx?id=%4% o inicia sesión en umbraco y ve a http://%3% para ver las tareas pendientes de traducir.
Espero que tenga un buen dia.
Saludos de parte de el robot de Umbraco
]]>
</key>
<key alias="mailSubject">Tarea para tradudir [%0%] por %1%</key>
<key alias="noTranslators">No se encontraron usuarios traductores. Por favor, crea un usuario traductor antes de empezar a mandar contenido para su traducción</key>
<key alias="mailSubject">Tarea para traducir [%0%] por %1%</key>
<key alias="noTranslators">No se encontraron usuarios traductores. Por favor, crea un usuario traductor antes de empezar a mandar contenido para tu traducción</key>
<key alias="ownedTasks">Tareas creadas por ti</key>
<key alias="ownedTasksHelp"><![CDATA[La lista de debajo muestra las páginas <strong>creadas por tí</strong>. Para ver una vista detallada incluyendo los comentarios, pulsa en "Detalles" o tan solo en el nombre de la página. También puedes descargar la página como XML directamente pulsando en el enlace "Descargar Xml". Para cerrar una tarea de traducción, por favor ve a la vista de Detalles y pulsa el botón de "Cerrar".]]></key>
<key alias="pageHasBeenSendToTranslation">La página '%0%' se ha mandado a traducción</key>
@@ -1545,17 +1543,17 @@
<key alias="accessHelp">Basado en los grupos asignados y los nodos iniciales, el usuario tiene acceso a los siguientes nodos.</key>
<key alias="assignAccess">Asignar acceso</key>
<key alias="administrators">Administrador</key>
<key alias="categoryField">Campo de categoria</key>
<key alias="categoryField">Campo de categoría</key>
<key alias="changePassword">Cambiar contraseña</key>
<key alias="changePhoto">Cambiar foto</key>
<key alias="newPassword">Nueva contraseña</key>
<key alias="noLockouts">no ha sido bloqueado</key>
<key alias="noPasswordChange">La contraseña no se ha cambiado</key>
<key alias="confirmNewPassword">Confirma nueva contraseña</key>
<key alias="changePasswordDescription">Puede cambiar su contraseña para acceder al 'back office' de Umbraco rellenando el siguiente formulario y haciendo clic en el botón 'Cambiar contraseña'</key>
<key alias="changePasswordDescription">Puedes cambiar tu contraseña para acceder al 'back office' de Umbraco rellenando el siguiente formulario y haciendo clic en el botón 'Cambiar contraseña'</key>
<key alias="contentChannel">Canal de contenido</key>
<key alias="createAnotherUser">Crear otro usuario</key>
<key alias="createUserHelp">Crear nuevos usuarios para darles acceso a Umbraco. Cuando un nuevo usuario es creado, una nueva contrasela será generada y la podrás compartir con el usuario.</key>
<key alias="createUserHelp">Crear nuevos usuarios para darles acceso a Umbraco. Cuando un nuevo usuario es creado, una nueva contraseña será generada y la podrás compartir con el usuario.</key>
<key alias="descriptionField">Campo descriptivo</key>
<key alias="disabled">Deshabilitar usuario</key>
<key alias="documentType">Tipo de documento</key>
@@ -1567,39 +1565,39 @@
<key alias="inviteAnotherUser">Invitar otro usuario</key>
<key alias="inviteUserHelp">Invita nuevos usuarios para darles acceso a Umbraco. Un email de invitación será enviado al usuario con información sobre cómo acceder a Umbraco.</key>
<key alias="language">Idioma</key>
<key alias="languageHelp">Establecer el idioma que verás en menús y dialogos</key>
<key alias="languageHelp">Establecer el idioma que verás en menús y diálogos</key>
<key alias="lastLockoutDate">Última fecha bloqueado</key>
<key alias="lastLogin">Último acceso</key>
<key alias="lastPasswordChangeDate">Última contraseña cambiada</key>
<key alias="loginname">Acceso</key>
<key alias="mediastartnode">Nodo de comienzo en la libreria de medios</key>
<key alias="mediastartnodehelp">Limitar la librería de medios al siguiente nodo de inicio</key>
<key alias="mediastartnode">Nodo de comienzo en la biblioteca de medios</key>
<key alias="mediastartnodehelp">Limitar la biblioteca de medios al siguiente nodo de inicio</key>
<key alias="mediastartnodes">Nodos de inicio para Medios</key>
<key alias="mediastartnodeshelp">Limitar la librería de medios a los siguientes nodos de inicio</key>
<key alias="mediastartnodeshelp">Limitar la biblioteca de medios a los siguientes nodos de inicio</key>
<key alias="modules">Secciones</key>
<key alias="noConsole">Deshabilitar acceso a Umbraco</key>
<key alias="noLogin">no se ha conectado aún</key>
<key alias="oldPassword">Contraseña antigüa</key>
<key alias="oldPassword">Contraseña antigua</key>
<key alias="password">Contraseña</key>
<key alias="resetPassword">Reiniciar contraseña</key>
<key alias="passwordChanged">Su contraseña ha sido cambiada</key>
<key alias="passwordConfirm">Por favor confirme su nueva contraseña</key>
<key alias="passwordEnterNew">Introduzca su nueva contraseña</key>
<key alias="passwordChanged">Tu contraseña ha sido cambiada</key>
<key alias="passwordConfirm">Por favor confirma tu nueva contraseña</key>
<key alias="passwordEnterNew">Introduce tu nueva contraseña</key>
<key alias="passwordIsBlank">La nueva contraseña no puede estar vacía</key>
<key alias="passwordCurrent">Contraseña actual</key>
<key alias="passwordInvalid">Contraseña actual inválida</key>
<key alias="passwordIsDifferent">La nueva contraseña no coincide con la contraseña de confirmación. Por favor, vuela a intentarlo!'</key>
<key alias="passwordMismatch">La contraseña de confirmación no coincide con la nueva contraseña!'</key>
<key alias="passwordIsDifferent">La nueva contraseña no coincide con la contraseña de confirmación. Por favor, vuele a intentarlo!</key>
<key alias="passwordMismatch">La contraseña de confirmación no coincide con la nueva contraseña!</key>
<key alias="permissionReplaceChildren">Reemplazar los permisos de los nodos hijo</key>
<key alias="permissionSelectedPages">Estas modificando los permisos para las páginas:</key>
<key alias="permissionSelectedPages">Estás modificando los permisos para las páginas:</key>
<key alias="permissionSelectPages">Selecciona las páginas para modificar sus permisos</key>
<key alias="removePhoto">Eliminar photo</key>
<key alias="removePhoto">Eliminar imagen</key>
<key alias="permissionsDefault">Permisos por defecto</key>
<key alias="permissionsGranular">Permisos granulares</key>
<key alias="permissionsGranularHelp">Establecer permisos para nodos especificos</key>
<key alias="permissionsGranularHelp">Establecer permisos para nodos específicos</key>
<key alias="profile">Perfil</key>
<key alias="searchAllChildren">Buscar en todos los hijos</key>
<key alias="sectionsHelp">Añadir secciones para dar aceso a usuarios</key>
<key alias="sectionsHelp">Añadir secciones para dar acceso a usuarios</key>
<key alias="selectUserGroups">Seleccionar grupos de usuarios</key>
<key alias="noStartNode">Nodo de inicio no seleccionado</key>
<key alias="noStartNodes">Nodos de inicio no seleccionado</key>
@@ -1615,17 +1613,17 @@
<key alias="sortNameAscending">Nombre (A-Z)</key>
<key alias="sortNameDescending">Nombre (Z-A)</key>
<key alias="sortCreateDateDescending">Más nuevo</key>
<key alias="sortCreateDateAscending">Más antigüo</key>
<key alias="sortLastLoginDateDescending">Último accesso</key>
<key alias="sortCreateDateAscending">Más antiguo</key>
<key alias="sortLastLoginDateDescending">Último acceso</key>
<key alias="updateDate">Última actualización en usuario</key>
<key alias="userCreated">ha sido creado</key>
<key alias="userCreatedSuccessHelp">Se ha creado el nuevo usuario con éxito. Para acceder a Umbraco usa la contraseña siguiente.</key>
<key alias="userManagement">Administración de usuario</key>
<key alias="username">Nombre de usuario</key>
<key alias="userPermissions">Permisos de usuarios</key>
<key alias="userGroupPermissions">Permisos de group de usuario</key>
<key alias="userGroupPermissions">Permisos de grupo de usuario</key>
<key alias="usergroup">Grupo de usuario</key>
<key alias="userGroups">Grupos ds usuario</key>
<key alias="userGroups">Grupos de usuario</key>
<key alias="userInvited">ha sido invitado</key>
<key alias="userInvitedSuccessHelp">Se ha enviado una invitación al nuevo usuario con detalles sobre cómo acceder a Umbraco.</key>
<key alias="userinviteWelcomeMessage">¡Hola y bienvenido a Umbraco!. En un minuto todo estará listo para empezar, sólo necesitamos que configures tu contraseña y una imagen para tu avatar.</key>
@@ -1638,7 +1636,7 @@
<key alias="sessionExpires" version="7.0">La sesión caduca en</key>
<key alias="inviteUser">Invitar usuario</key>
<key alias="createUser">Crear usuario</key>
<key alias="sendInvite">Enviar invitatión</key>
<key alias="sendInvite">Enviar invitación</key>
<key alias="backToUsers">Volver a usuarios</key>
<key alias="inviteEmailCopySubject">Umbraco: Invitación</key>
<key alias="inviteEmailCopyFormat">
@@ -1741,7 +1739,7 @@
<key alias="validateAsEmail">Validar como email</key>
<key alias="validateAsNumber">Validar como número</key>
<key alias="validateAsUrl">Validar como Url</key>
<key alias="enterCustomValidation">...or introduce tu propia validación</key>
<key alias="enterCustomValidation">...o introduce tu propia validación</key>
<key alias="fieldIsMandatory">Campo obligatorio</key>
<key alias="validationRegExp">Introduce una expresión regular</key>
<key alias="minCount">Necesitas añadir al menos</key>
@@ -1790,18 +1788,18 @@
<key alias="configurationServiceNodeNotFound"><![CDATA[No se puedo encontrar <strong>'%0%'</strong> en archivo de configuración <strong>'%1%'</strong>.]]></key>
<key alias="configurationServiceError">Hubo un error, revisa los logs para ver el error completo: %0%.</key>
<key alias="xmlDataIntegrityCheckMembers">Miembros - Total XML: %0%, Total: %1%, Total invalidos: %2%</key>
<key alias="xmlDataIntegrityCheckMedia">Media - Total XML: %0%, Total: %1%, Total invalidos: %2%</key>
<key alias="xmlDataIntegrityCheckContent">Contenido - Total XML: %0%, Total publicados: %1%, Total invalidos: %2%</key>
<key alias="xmlDataIntegrityCheckMembers">Miembros - Total XML: %0%, Total: %1%, Total inválidos: %2%</key>
<key alias="xmlDataIntegrityCheckMedia">Media - Total XML: %0%, Total: %1%, Total inválidos: %2%</key>
<key alias="xmlDataIntegrityCheckContent">Contenido - Total XML: %0%, Total publicados: %1%, Total inválidos: %2%</key>
<key alias="httpsCheckValidCertificate">El certificado de tu sitio es válido.</key>
<key alias="httpsCheckInvalidCertificate">Error validando certificado: '%0%'</key>
<key alias="httpsCheckExpiredCertificate">El ceriticado SSL de tu sitio ha caducado.</key>
<key alias="httpsCheckExpiringCertificate">El ceriticado SSL de tu sitio caducará en %0% días.</key>
<key alias="healthCheckInvalidUrl">Error pinging la URL %0% - '%1%'</key>
<key alias="httpsCheckExpiredCertificate">El certificado SSL de tu sitio ha caducado.</key>
<key alias="httpsCheckExpiringCertificate">El certificado SSL de tu sitio caducará en %0% días.</key>
<key alias="healthCheckInvalidUrl">Error haciendo ping a la URL %0% - '%1%'</key>
<key alias="httpsCheckIsCurrentSchemeHttps">Actualmente estás %0% viendo el sitio usando el esquema HTTPS.</key>
<key alias="httpsCheckConfigurationRectifyNotPossible">El appSetting 'umbracoUseSSL' está configurado como 'false' en tu archivo web.config. Una vez que accedes al sitio usando HTTPS, debería ser configuraio como 'true'.</key>
<key alias="httpsCheckConfigurationCheckResult">Ele appSetting 'umbracoUseSSL' está configurado como '%0%' en tu archivo your web.config, tus cookies son %1% marcadas como seguras.</key>
<key alias="httpsCheckConfigurationRectifyNotPossible">El appSetting 'umbracoUseSSL' está configurado como 'false' en tu archivo web.config. Una vez que accedes al sitio usando HTTPS, debería ser configurado como 'true'.</key>
<key alias="httpsCheckConfigurationCheckResult">Ele appSetting 'umbracoUseSSL' está configurado como '%0%' en tu archivo web.config, tus cookies son %1% marcadas como seguras.</key>
<key alias="httpsCheckEnableHttpsError">No se pudo actualizar 'umbracoUseSSL' en tu archivo web.config. Error: %0%</key>
<!-- The following keys don't get tokens passed in -->
@@ -1814,8 +1812,8 @@
<key alias="cannotRectifyShouldEqualWithValue">No se pudo arreglar chequeo con un valor de comparación 'ShouldEqual' con el valor introducido.</key>
<key alias="valueToRectifyNotProvided">Valor para arreglar chequeo no introducido.</key>
<key alias="compilationDebugCheckSuccessMessage">Modo Debug en compilacion está desactivado.</key>
<key alias="compilationDebugCheckErrorMessage">Modo Debug en compilacion está activado. Se recomienda desactivarlo antes de publicar el sitio.</key>
<key alias="compilationDebugCheckSuccessMessage">Modo Debug en compilación está desactivado.</key>
<key alias="compilationDebugCheckErrorMessage">Modo Debug en compilación está activado. Se recomienda desactivarlo antes de publicar el sitio.</key>
<key alias="compilationDebugCheckRectifySuccessMessage">Modo Debug en compilación se ha desactivado correctamente.</key>
<key alias="traceModeCheckSuccessMessage">Modo Trace está desactivado.</key>
@@ -1838,16 +1836,16 @@
<key alias="clickJackingCheckHeaderFound"><![CDATA[El header or meta-tag <strong>X-Frame-Options</strong> usado para controlar si un sitio puede ser IFRAMEd por otra fue encontrado.]]></key>
<key alias="clickJackingCheckHeaderNotFound"><![CDATA[El header or meta-tag <strong>X-Frame-Options</strong> usado para controlar si un sitio puede ser IFRAMEd por otra no se ha encontrado.]]></key>
<key alias="setHeaderInConfig">Establecer Header en Config</key>
<key alias="clickJackingSetHeaderInConfigDescription">Adds a value to the httpProtocol/customHeaders section of web.config to prevent the site being IFRAMEd by other websites.</key>
<key alias="clickJackingSetHeaderInConfigSuccess">A setting to create a header preventing IFRAMEing of the site by other websites has been added to your web.config file.</key>
<key alias="setHeaderInConfigError">Could not update web.config file. Error: %0%</key>
<key alias="setHeaderInConfig">Establecer Cabecera en Config</key>
<key alias="clickJackingSetHeaderInConfigDescription">Añade una entrada a la sección httpProtocol/customHeaders del archivo web.config para prevenir que el sitio sea incrustado en un iframe por otros sitios web.</key>
<key alias="clickJackingSetHeaderInConfigSuccess">Una entrada ha sido añadida a la sección httpProtocol/customHeaders del archivo web.config para prevenir que el sitio sea incrustado en un iframe por otros sitios web.</key>
<key alias="setHeaderInConfigError">No se ha podido actualizar el archivo web.config. Error: %0%</key>
<!-- The following key get these tokens passed in:
0: Comma delimitted list of headers found
-->
<key alias="excessiveHeadersFound"><![CDATA[The following headers revealing information about the website technology were found: <strong>%0%</strong>.]]></key>
<key alias="excessiveHeadersNotFound">No se ha encontrado ninguna cabecerá que revele información sobre la tecnología del sitio.</key>
<key alias="excessiveHeadersNotFound">No se ha encontrado ninguna cabecera que revele información sobre la tecnología del sitio.</key>
<key alias="smtpMailSettingsNotFound">No se encontró system.net/mailsettings en Web.config.</key>
<key alias="smtpMailSettingsHostNotConfigured">En la sección system.net/mailsettings section de web.config, el host no está configurado.</key>
@@ -1855,9 +1853,12 @@
<key alias="smtpMailSettingsConnectionFail">El servidor SMTP configurado con host '%0%' y puerto '%1%' no se pudo alcanzar. Por favor revisa que la configuración en la sección system.net/mailsettings del archivo Web.config es correcta.</key>
<key alias="notificationEmailsCheckSuccessMessage"><![CDATA[Email de notificación has sido configurado como <strong>%0%</strong>.]]></key>
<key alias="notificationEmailsCheckErrorMessage"><![CDATA[El email de notificación está todavía configurado en su valor por defecto: <strong>%0%</strong>.]]></key>
<key alias="notificationEmailsCheckErrorMessage"><![CDATA[El email de notificación está todavía configurado en tuvalor por defecto: <strong>%0%</strong>.]]></key>
<key alias="scheduledHealthCheckEmailBody"><![CDATA[<html><body><p>Los resultados de los Chequeos de Salud de Umbraco programados para ejecutarse el %0% a las %1% son:</p>%2%</body></html>]]></key>
<key alias="scheduledHealthCheckEmailSubject">Status de los Chequeos de Salud de Umbraco</key>
<key alias="scheduledHealthCheckEmailSubject">Status de los Chequeos de Salud de Umbraco: %0%</key>
<key alias="tlsHealthCheckSuccess">Su sitio web está configurado para usar TLS 1.2 o superior para las conexiones salientes.</key>
<key alias="tlsHealthCheckWarn">Las conexiones salientes de su sitio web están siendo servidas a través de un protocolo antiguo. Deberías considerar actualizarlo para usar TLS 1.2 o superior.</key>
</area>
<area alias="redirectUrls">
<key alias="disableUrlTracker">Desactivar URL tracker</key>
@@ -1869,7 +1870,7 @@
<key alias="removeButton">Eliminar</key>
<key alias="confirmRemove">¿Estás seguro que quieres eliminar la redirección de '%0%' a '%1%'?</key>
<key alias="redirectRemoved">Redirección URL eliminada.</key>
<key alias="redirectRemoveError">Error removing redirect URL.</key>
<key alias="redirectRemoveError">Error borrando la redirección URL.</key>
<key alias="confirmDisable">¿Seguro que quieres desactivar URL tracker?</key>
<key alias="disabledConfirm">URL tracker ha sido desactivado.</key>
<key alias="disableError">Error desactivando URL tracker, más información se puede encontrar en los logs.</key>
+1 -2
View File
@@ -1286,7 +1286,6 @@ Pour gérer votre site, ouvrez simplement le backoffice Umbraco et commencez à
<area alias="imagecropper">
<key alias="reset">Réinitialiser</key>
<key alias="defineCrop">Définir le recadrage</key>
<key alias="defineCropDescription">Donnez un alias au recadrage ainsi que sa largeur et sa hauteur par défaut</key>
<key alias="saveCrop">Sauvegarder le recadrage</key>
<key alias="addCrop">Ajouter un nouveau recadrage</key>
</area>
@@ -2170,7 +2169,7 @@ Pour gérer votre site, ouvrez simplement le backoffice Umbraco et commencez à
<key alias="notificationEmailsCheckSuccessMessage"><![CDATA[Un email de notification a été envoyé à <strong>%0%</strong>.]]></key>
<key alias="notificationEmailsCheckErrorMessage"><![CDATA[L'adresse email de notification est toujours à sa valeur par défaut : <strong>%0%</strong>.]]></key>
<key alias="scheduledHealthCheckEmailBody"><![CDATA[<html><body><p>Les résultats de l'exécution du Umbraco Health Checks planifiée le %0% à %1% sont les suivants :</p>%2%</body></html>]]></key>
<key alias="scheduledHealthCheckEmailSubject">Statut du Umbraco Health Check</key>
<key alias="scheduledHealthCheckEmailSubject">Statut du Umbraco Health Check: %0%</key>
</area>
<area alias="redirectUrls">
<key alias="disableUrlTracker">Désactiver URL tracker</key>
+73 -70
View File
@@ -8,7 +8,7 @@
<key alias="assignDomain">Beheer domeinnamen</key>
<key alias="auditTrail">Documentgeschiedenis</key>
<key alias="browse">Node bekijken</key>
<key alias="changeDocType">Wijzig document type</key>
<key alias="changeDocType">Wijzig documenttype</key>
<key alias="copy">Kopiëren</key>
<key alias="create">Nieuw</key>
<key alias="createPackage">Nieuwe package</key>
@@ -38,7 +38,7 @@
<key alias="update">Bijwerken</key>
<key alias="setPermissions">Rechten instellen</key>
<key alias="unlock">Deblokkeer</key>
<key alias="createblueprint">Content sjabloon aanmaken</key>
<key alias="createblueprint">Content template aanmaken</key>
<key alias="resendInvite">Uitnodiging opnieuw versturen</key>
</area>
<area alias="assignDomain">
@@ -60,7 +60,7 @@
zouden moeten worden vermeden. Gebruik bij voorkeur de cultuurinstelling hierboven.]]></key>
<key alias="inherit">Overerven</key>
<key alias="setLanguage">Cultuur</key>
<key alias="setLanguageHelp"><![CDATA[Zet de cultuur voor de nodes onder de huidige node,<br /> of erf de cultuur over van de ouder nodes. Zal ook van toepassing <br />
<key alias="setLanguageHelp"><![CDATA[Zet de cultuur voor de nodes onder de huidige node,<br /> of erf de cultuur over van de oudernodes. Zal ook van toepassing <br />
zijn op de huidige node, tenzij een domein hieronder ook van toepassing is.]]></key>
<key alias="setDomains">Domeinen</key>
</area>
@@ -112,7 +112,7 @@
<key alias="docTypeChanged">Documenttype gewijzigd</key>
<key alias="mapProperties">Eigenschappen toewijzen</key>
<key alias="mapToProperty">Toewijzen aan eigenschap</key>
<key alias="newTemplate">Nieuw sjabloon</key>
<key alias="newTemplate">Nieuwe template</key>
<key alias="newType">Nieuw type</key>
<key alias="none">geen</key>
<key alias="selectedContent">Inhoud</key>
@@ -151,7 +151,7 @@
<key alias="nodeName">Pagina Titel</key>
<key alias="otherElements">Eigenschappen</key>
<key alias="parentNotPublished">Dit document is gepubliceerd maar niet zichtbaar omdat de bovenliggende node '%0%' niet gepubliceerd is</key>
<key alias="parentNotPublishedAnomaly">Dit document is gepubliceerd, maar het is niet in de cache (interne serverfout)</key>
<key alias="parentNotPublishedAnomaly">Dit document is gepubliceerd, maar het staat niet in de cache (interne serverfout)</key>
<key alias="getUrlException">Kan de Url niet ophalen</key>
<key alias="routeError">Dit document is gepubliceerd, maar de Url conflicteert met %0%</key>
<key alias="publish">Publiceren</key>
@@ -181,7 +181,7 @@
<key alias="addTextBox">Voeg nog een tekstvak toe</key>
<key alias="removeTextBox">Verwijder dit tekstvak</key>
<key alias="contentRoot">Content root</key>
<key alias="isSensitiveValue">Deze waarde is verborgen. Indien u toegang nodig heeft om deze waarde te bekijken, contacteer dan uw website administrator.</key>
<key alias="isSensitiveValue">Deze waarde is verborgen. Indien u toegang nodig heeft om deze waarde te bekijken, neem dan contact op met uw websitebeheerder.</key>
<key alias="isSensitiveValue_short">Deze waarde is verborgen</key>
</area>
<area alias="media">
@@ -191,7 +191,7 @@
<key alias="orClickHereToUpload">Of klik hier om bestanden te kiezen</key>
<key alias="onlyAllowedFiles">De toegestane bestandtypen zijn</key>
<key alias="disallowedFileType">Dit bestand heeft niet het juiste file-type. Dit bestand kan niet geupload worden.</key>
<key alias="maxFileSize">Max file size is</key>
<key alias="maxFileSize">Maximale bestandsgrootte is</key>
</area>
<area alias="member">
<key alias="createNewMember">Maak nieuwe member aan</key>
@@ -205,16 +205,16 @@
<key alias="chooseNode">Waar wil je de nieuwe %0% aanmaken?</key>
<key alias="createUnder">Aanmaken onder</key>
<key alias="updateData">Kies een type en een titel</key>
<key alias="noDocumentTypes" version="7.0"><![CDATA[Er zijn geen toegestane documenttypes beschikbaar. Je moet deze inschakelen in de Instellingen sectie onder <strong>"Documenttypes"</ strong>.]]></key>
<key alias="noMediaTypes" version="7.0"><![CDATA[Er zijn geen toegestande mediatypes beschikbaar. Je moet deze in schakelen in de Instellingen sectie onder <strong>"Mediatypes"</strong>.]]></key>
<key alias="noDocumentTypes" version="7.0"><![CDATA[Er zijn geen toegestane documenttypes beschikbaar. Schakel deze in in de sectie Instellingen onder <strong>"Documenttypes"</ strong>.]]></key>
<key alias="noMediaTypes" version="7.0"><![CDATA[Er zijn geen toegestande mediatypes beschikbaar. Schakel deze in in de sectie Instellingen onder <strong>"Mediatypes"</strong>.]]></key>
<key alias="documentTypeWithoutTemplate">Document Type zonder template</key>
<key alias="newFolder">Nieuwe folder</key>
<key alias="newFolder">Nieuwe map</key>
<key alias="newDataType">Nieuw data type</key>
</area>
<area alias="dashboard">
<key alias="browser">Open je website</key>
<key alias="dontShowAgain">- Verbergen</key>
<key alias="nothinghappens">Als Umbraco niet geopend wordt dan moet je misschien popups toelaten voor deze site. </key>
<key alias="nothinghappens">Als Umbraco niet geopend wordt dan moet je mogelijk popups toestaan voor deze site. </key>
<key alias="openinnew">is geopend in een nieuw venster</key>
<key alias="restart">Herstarten</key>
<key alias="visit">Bezoek</key>
@@ -225,7 +225,7 @@
<key alias="discardChanges">Negeer wijzigingen</key>
<key alias="unsavedChanges">Wijzigingen niet opgeslagen</key>
<key alias="unsavedChangesWarning">Weet je zeker dat deze pagina wilt verlaten? - er zijn onopgeslagen wijzigingen</key>
<key alias="confirmUnpublish">Depubliceren zal deze pagina en alle onderliggend paginas verwijderen van de site.</key>
<key alias="confirmUnpublish">Depubliceren zal deze pagina en alle onderliggende paginas verwijderen van de site.</key>
</area>
<area alias="bulk">
<key alias="done">Done</key>
@@ -288,8 +288,8 @@
<key alias="recycleBinDeleting">De items worden nu uit de prullenbak verwijderd. Sluit dit venster niet terwijl de actie nog niet voltooid is.</key>
<key alias="recycleBinIsEmpty">De prullenbak is nu leeg.</key>
<key alias="recycleBinWarning">Als items worden verwijderd uit de prullenbak, zijn ze voorgoed verwijderd.</key>
<key alias="regexSearchError"><![CDATA[De webservice van <a target='_blank' href='http://regexlib.com'>regexlib.com</a> ondervindt momenteel prolemen waarover we geen controle hebben. Onze excuses voor het ongemak.]]></key>
<key alias="regexSearchHelp">Zoek naar een regular expressie om validatie aan een formulierveld toe te voegen. Voorbeeld: 'email, 'post-code' 'url'</key>
<key alias="regexSearchError"><![CDATA[De webservice van <a target='_blank' href='http://regexlib.com'>regexlib.com</a> ondervindt momenteel problemen waarover we geen controle hebben. Onze excuses voor het ongemak.]]></key>
<key alias="regexSearchHelp">Zoek naar een reguliere expressie om validatie aan een formulierveld toe te voegen. Voorbeeld: 'email, 'post-code' 'url'</key>
<key alias="removeMacro">Verwijder Macro</key>
<key alias="requiredField">Verplicht veld</key>
<key alias="sitereindexed">Site is opnieuw geïndexeerd</key>
@@ -298,15 +298,15 @@
<key alias="tableColumns">Aantal kolommen</key>
<key alias="tableRows">Aantal regels</key>
<key alias="templateContentAreaHelp"><![CDATA[<strong>Plaats een placeholder id</strong> door een ID op uw placeholder te zetten kunt u inhoud plaatsen in deze template vanuit onderliggende templates,
door te referreren naar deze ID door gebruik te maken van een <code>&lt;asp:content /&gt;</code> element.]]></key>
door te verwijzen naar deze ID door gebruik te maken van een <code>&lt;asp:content /&gt;</code> element.]]></key>
<key alias="templateContentPlaceHolderHelp"><![CDATA[<strong>Selecteer een placeholder id</strong> uit onderstaande lijst. U kunt alleen
Id's kiezen van de master van de huidige template..]]></key>
<key alias="thumbnailimageclickfororiginal">Klik op de afbeelding voor volledige grootte</key>
<key alias="treepicker">Kies een item</key>
<key alias="viewCacheItem">Toon cache item</key>
<key alias="createFolder">Maak folder aan...</key>
<key alias="createFolder">Maak map aan...</key>
<key alias="relateToOriginalLabel">Relateer aan origineel</key>
<key alias="includeDescendants">Descendants meenemen</key>
<key alias="includeDescendants">Onderliggende nodes meenemen</key>
<key alias="theFriendliestCommunity">De vriendelijkste community</key>
<key alias="linkToPage">Link naar pagina</key>
<key alias="openInNewWindow">Opent het gelinkte document in een nieuw venster of tab</key>
@@ -334,7 +334,7 @@
Wijzig de verschillende taalversies voor het woordenboek item '%0%'. Je kunt extra talen toevoegen bij 'talen' in het menu links
]]></key>
<key alias="displayName">Cultuurnaam</key>
<key alias="changeKey">Verander de key van het dictionary item.</key>
<key alias="changeKey">Verander de key van het woordenboek item.</key>
<key alias="changeKeyError">
<![CDATA[
De key '%0%' bestaat al.
@@ -358,9 +358,9 @@
<area alias="editcontenttype">
<key alias="allowAtRoot" version="7.2">Toestaan op root-niveau</key>
<key alias="allowAtRootDesc" version="7.2">Wanneer aangevinkt dan mag dit document type aangemaakt worden op het root-niveau van content of media trees.</key>
<key alias="allowAtRootDesc" version="7.2">Wanneer aangevinkt dan mag dit documenttype aangemaakt worden op het root-niveau van content- of media trees.</key>
<key alias="allowedchildnodetypes">Toegelaten subnodetypes</key>
<key alias="contenttypecompositions">Document Type Composities</key>
<key alias="contenttypecompositions">Documenttype Composities</key>
<key alias="create">Nieuw</key>
<key alias="deletetab">Tab verwijderen</key>
<key alias="description">Omschrijving</key>
@@ -388,8 +388,8 @@
<key alias="rteWidthAndHeight">Breedte en hoogte</key>
</area>
<area alias="errorHandling">
<key alias="errorButDataWasSaved">Je data is opgeslagen, maar voordat je deze pagina kunt publiceren moet je eerst aan paar problemen herstellen:</key>
<key alias="errorChangingProviderPassword">Het wachtwoord veranderen wordt door de huidige Membership Provider niet ondersteund (EnablePasswordRetrieval moet op true staan)</key>
<key alias="errorButDataWasSaved">Je data is opgeslagen, maar voordat je deze pagina kunt publiceren moet je eerst aan paar problemen oplossen:</key>
<key alias="errorChangingProviderPassword">Veranderen van het wachtwoord wordt door de huidige Membership Provider niet ondersteund (EnablePasswordRetrieval moet op true staan)</key>
<key alias="errorExistsWithoutTab">%0% bestaat al</key>
<key alias="errorHeader">Er zijn fouten geconstateerd:</key>
<key alias="errorHeaderWithoutTab">Er zijn fouten geconstateerd:</key>
@@ -404,8 +404,8 @@
<key alias="receivedErrorFromServer">Een error ontvangen van de server</key>
<key alias="dissallowedMediaType">Het opgegeven bestandstype is niet toegestaan door de beheerder</key>
<key alias="codemirroriewarning">OPMERKING! Ondanks dat CodeMiror is ingeschakeld, is het uitgeschakeld in Internet Explorer omdat het niet stabiel genoeg is.</key>
<key alias="contentTypeAliasAndNameNotNull">Zowel de alias als de naam van het nieuwe eigenschappen type moeten worden ingevuld!</key>
<key alias="filePermissionsError">Er is een probleem met de lees/schrijf rechten op een bestand of map</key>
<key alias="contentTypeAliasAndNameNotNull">Zowel de alias als de naam van het nieuwe eigenschappentype moeten worden ingevuld!</key>
<key alias="filePermissionsError">Er is een probleem met de lees/schrijfrechten op een bestand of map</key>
<key alias="macroErrorLoadingPartialView">Error bij het laden van Partial View script (file: %0%)</key>
<key alias="macroErrorLoadingUsercontrol">Error bij het laden van userControl '%0%'</key>
<key alias="macroErrorLoadingCustomControl">Error bij het laden van customControl (Assembly: %0%, Type: '%1%')</key>
@@ -720,7 +720,7 @@ Echter, Runway biedt een gemakkelijke basis om je snel op weg te helpen. Als je
<key alias="forgottenPasswordInstruction">Er zal een email worden gestuurd naar het emailadres van jouw account. Hierin staat een link om je wachtwoord te resetten</key>
<key alias="requestPasswordResetConfirmation">Een email met daarin de wachtwoord reset uitleg zal worden gestuurd als het emailadres in onze database voorkomt.</key>
<key alias="returnToLogin">Terug naar loginformulier</key>
<key alias="setPasswordInstruction">Geeft alsjeblieft een nieuw wachtwoord op</key>
<key alias="setPasswordInstruction">Geef alsjeblieft een nieuw wachtwoord op</key>
<key alias="setPasswordConfirmation">Je wachtwoord is aangepast</key>
<key alias="resetCodeExpired">De link die je hebt aangeklikt is niet (meer) geldig.</key>
<key alias="resetPasswordEmailCopySubject">Umbraco: Wachtwoord Reset</key>
@@ -744,7 +744,7 @@ Echter, Runway biedt een gemakkelijke basis om je snel op weg te helpen. Als je
<key alias="notAllowedByContentType">De huidige node is niet toegestaan onder de geselecteerde node vanwege het node type</key>
<key alias="notAllowedByPath">De huidige node kan niet naar een van zijn subpaginas worden verplaatst.</key>
<key alias="notAllowedAtRoot">De huidige node kan niet worden gebruikt op root-niveau</key>
<key alias="notValid">Deze actie is niet toegestaan omdat je onvoldoende rechten hebt op 1 of meer subitems.</key>
<key alias="notValid">Deze actie is niet toegestaan omdat je onvoldoende rechten hebt op één of meer subitems.</key>
<key alias="relateToOriginal">Relateer gekopieerde items aan het origineel</key>
</area>
<area alias="notifications">
@@ -803,7 +803,7 @@ Echter, Runway biedt een gemakkelijke basis om je snel op weg te helpen. Als je
<key alias="packageName">Package naam</key>
<key alias="packageNoItemsHeader">Package bevat geen inhoud</key>
<key alias="packageNoItemsText"><![CDATA[Deze package bevat geen inhoud om te verwijderen.<br/><br/>
Je kunt dit package veilig verwijderen door 'verwijder package' te klikken.
Je kunt deze package veilig verwijderen door op 'verwijder package' te klikken.
]]></key>
<key alias="packageNoUpgrades">Geen upgrades beschikbaar</key>
<key alias="packageOptions">Package opties</key>
@@ -815,7 +815,7 @@ Echter, Runway biedt een gemakkelijke basis om je snel op weg te helpen. Als je
<key alias="packageUninstallHeader">Verwijder package</key>
<key alias="packageUninstallText"><![CDATA[Je kunt de items die je niet wilt verwijderen deselecteren. Als je 'Bevestig verwijderen' klikt worden alle geselecteerde items verwijderd.<br />
<span style="color: Red; font-weight: bold;">Waarschuwing:</span> alle documenten, media etc, die afhankelijk zijn van de items die je verwijderd, zullen niet meer werken en kan leiden tot een instabiele installatie,
wees dus voorzichtig met verwijderen. Als je niet zeker bent, neem dan contact op met de auteur van de package.
wees dus voorzichtig met verwijderen. Als je het niet zeker weet, neem dan contact op met de auteur van de package.
]]></key>
<key alias="packageUpgradeDownload">Download update uit de repository</key>
<key alias="packageUpgradeHeader">Upgrade package</key>
@@ -832,11 +832,11 @@ Echter, Runway biedt een gemakkelijke basis om je snel op weg te helpen. Als je
<key alias="installStateInstalling">Aan het installeren...</key>
<key alias="installStateRestarting">Aan het herstarten, een ongenblik geduld aub...</key>
<key alias="installStateComplete">Geinstalleerd! Je browser zal nu automatisch ververst worden...</key>
<key alias="installStateCompleted">Kruk op "finish" om de installate te voltooien en de pagina te verversen.</key>
<key alias="installStateCompleted">Klik op "finish" om de installatie te voltooien en de pagina te verversen.</key>
</area>
<area alias="paste">
<key alias="doNothing">Plakken met alle opmaak (Niet aanbevolen)</key>
<key alias="errorMessage">De tekst die je probeert te plakken bevat speciale karakters en/of opmaak. Dit kan veroorzaakt worden doordat de tekst vanuit Microsoft Word is gekopieerd. Umbraco kan deze speciale karakters en formattering automatisch verwijderen zodat de geplakte tekst geschikt is voor het web.</key>
<key alias="errorMessage">De tekst die je probeert te plakken bevat speciale tekens en/of opmaak. Dit kan veroorzaakt worden doordat de tekst vanuit Microsoft Word is gekopieerd. Umbraco kan deze speciale tekens en formattering automatisch verwijderen zodat de geplakte tekst geschikt is voor het web.</key>
<key alias="removeAll">Plakken als ruwe tekst en alle opmaak verwijderen</key>
<key alias="removeSpecialFormattering">Plakken, en verwijder de opmaak (aanbevolen)</key>
</area>
@@ -853,7 +853,7 @@ Echter, Runway biedt een gemakkelijke basis om je snel op weg te helpen. Als je
<key alias="paLoginPageHelp">Kies de pagina met het login-formulier</key>
<key alias="paRemoveProtection">Verwijder beveiliging</key>
<key alias="paSelectPages">Kies de pagina's die het login-formulier en de error-berichten bevatten</key>
<key alias="paSelectRoles">Kies de roles wie toegang hebben tot deze pagina</key>
<key alias="paSelectRoles">Kies de roles die toegang hebben tot deze pagina</key>
<key alias="paSetLogin">Geef de gebruikersnaam en wachtwoord voor deze pagina</key>
<key alias="paSimple">Eenvoudig: Beveilig door middel van gebruikersnaam en wachtwoord</key>
<key alias="paSimpleHelp">Als je eenvoudige beveiliging wilt gebruiken met behulp van een enkele gebruikersnaam en wachtwoord</key>
@@ -895,7 +895,7 @@ Echter, Runway biedt een gemakkelijke basis om je snel op weg te helpen. Als je
<key alias="caption">Bijschrift</key>
<key alias="link">Link</key>
<key alias="newWindow">In een nieuw venster openen</key>
<key alias="captionPlaceholder">Voer het bijschrijft in</key>
<key alias="captionPlaceholder">Voer het bijschrift in</key>
<key alias="externalLinkPlaceholder">Voer de link in</key>
</area>
<area alias="imagecropper">
@@ -903,9 +903,9 @@ Echter, Runway biedt een gemakkelijke basis om je snel op weg te helpen. Als je
</area>
<area alias="rollback">
<key alias="currentVersion">Huidige versie</key>
<key alias="diffHelp"><![CDATA[Hier worden de verschillen getoond tussen de huidige en de geselecteerde versie<br /><del>Rode</del> tekst wordt niet getoond in de geselecteerde versie , <ins>groen betekent toegevoegd</ins>]]></key>
<key alias="diffHelp"><![CDATA[Hier worden de verschillen getoond tussen de huidige en de geselecteerde versie<br /><del>Rode</del> tekst wordt niet getoond in de geselecteerde versie, <ins>groen betekent toegevoegd</ins>]]></key>
<key alias="documentRolledBack">Document is teruggezet</key>
<key alias="htmlHelp">Hiermee wordt de geselecteerde versie als html getoond, als u de verschillen tussen de 2 versies tegelijk wilt zien, gebruik dan de diff view</key>
<key alias="htmlHelp">Hiermee wordt de geselecteerde versie als html getoond, als u de verschillen tussen de twee versies tegelijk wilt zien, gebruik dan de diff view</key>
<key alias="rollbackTo">Terugzetten naar</key>
<key alias="selectVersion">Selecteer versie</key>
<key alias="view">Bekijk</key>
@@ -970,12 +970,12 @@ Echter, Runway biedt een gemakkelijke basis om je snel op weg te helpen. Als je
<key alias="operationFailedHeader">Mislukt</key>
<key alias="invalidUserPermissionsText">Wegens onvoldoende rechten kon deze handeling kon niet worden uitegevoerd </key>
<key alias="operationCancelledHeader">Geannuleerd</key>
<key alias="operationCancelledText">Uitvoering is g eannuleerd door de plugin van een 3e partij</key>
<key alias="contentPublishedFailedByEvent">Publicatie werd geannuleerd doordeeen plugin van een 3e partij</key>
<key alias="contentTypeDublicatePropertyType">Eigenschappen type bestaat al</key>
<key alias="contentTypePropertyTypeCreated">Eigenschappen type aangemaakt</key>
<key alias="operationCancelledText">Uitvoering is geannuleerd door de plugin van een 3e partij</key>
<key alias="contentPublishedFailedByEvent">Publicatie werd geannuleerd door een plugin van een 3e partij</key>
<key alias="contentTypeDublicatePropertyType">Eigenschappentype bestaat al</key>
<key alias="contentTypePropertyTypeCreated">Eigenschappentype aangemaakt</key>
<key alias="contentTypePropertyTypeCreatedText"><![CDATA[Naam: %0% <br /> Data type: %1%]]></key>
<key alias="contentTypePropertyTypeDeleted">Eigenschappen type verwijderd</key>
<key alias="contentTypePropertyTypeDeleted">Eigenschappentype verwijderd</key>
<key alias="contentTypeSavedHeader">Inhoudstype opgeslagen</key>
<key alias="contentTypeTabCreated">Tab aangemaakt</key>
<key alias="contentTypeTabDeleted">Tab verwijderd</key>
@@ -1069,9 +1069,9 @@ Echter, Runway biedt een gemakkelijke basis om je snel op weg te helpen. Als je
<key alias="insertDictionaryItem">Invoegen dictionary item</key>
<key alias="insertMacro">Invoegen Macro</key>
<key alias="insertPageField">Invoegen Umbraco page field</key>
<key alias="mastertemplate">Basis sjabloon</key>
<key alias="mastertemplate">Basistemplate</key>
<key alias="quickGuide">Quick Guide voor Umbraco template tags</key>
<key alias="template">Sjabloon</key>
<key alias="template">Template</key>
</area>
<area alias="grid">
<key alias="rte">Rich Text Editor</key>
@@ -1145,12 +1145,12 @@ Echter, Runway biedt een gemakkelijke basis om je snel op weg te helpen. Als je
<key alias="allowAsRootCheckbox">Ja - sta content van dit type toe op root-niveau</key>
<key alias="childNodesHeading">Toegestane child node types</key>
<key alias="childNodesDescription">Sta contetn van een bepaalde type toe om onder dit type aangemaakt te kunnen worden</key>
<key alias="childNodesDescription">Sta content van een bepaald type toe om onder dit type aangemaakt te kunnen worden</key>
<key alias="chooseChildNode">Kies child node</key>
<key alias="compositionsDescription">Overerfde tabs en properties van een bestaand document-type. Nieuwe tabs worden toegevoegd aan het huidige document-type of samengevoegd als een tab met de identieke naam al bestaat.</key>
<key alias="compositionInUse">Dit content-type wordt gebruikt in een compositie en kan daarom niet zelf een compositie worden.</key>
<key alias="noAvailableCompositions">Er zijn geen content-typen beschikbaar om als compositie te gebruiken.</key>
<key alias="compositionsDescription">Overgeërfde tabs en properties van een bestaand documenttype. Nieuwe tabs worden toegevoegd aan het huidige documenttype of samengevoegd als een tab met dezelfde naam al bestaat.</key>
<key alias="compositionInUse">Dit contenttype wordt gebruikt in een compositie en kan daarom niet zelf een compositie worden.</key>
<key alias="noAvailableCompositions">Er zijn geen contenttypen beschikbaar om als compositie te gebruiken.</key>
<key alias="availableEditors">Beschikbare editors</key>
<key alias="reuse">Herbruik</key>
@@ -1166,11 +1166,11 @@ Echter, Runway biedt een gemakkelijke basis om je snel op weg te helpen. Als je
<key alias="folderToCopy">Selecteer de map om te kopieren</key>
<key alias="structureBelow">naar de boomstructuur onder</key>
<key alias="allDocumentTypes">Alle Document types</key>
<key alias="allDocumentTypes">Alle Documenttypes</key>
<key alias="allDocuments">Alle documenten</key>
<key alias="allMediaItems">Alle media items</key>
<key alias="usingThisDocument">die gebruik maken van dit document type zullen permanent verwijderd worden. Bevestig aub dat je deze ook wilt verwijderen.</key>
<key alias="usingThisDocument">die gebruik maken van dit documenttype zullen permanent verwijderd worden. Bevestig aub dat je deze ook wilt verwijderen.</key>
<key alias="usingThisMedia">die gebruik maken van dit media type zullen permanent verwijderd worden. Bevestig aub dat je deze ook wilt verwijderen.</key>
<key alias="usingThisMember">die gebruik maken van dit member type zullen permanent verwijderd worden. Bevestig aub dat je deze ook wilt verwijderen.</key>
@@ -1191,7 +1191,7 @@ Echter, Runway biedt een gemakkelijke basis om je snel op weg te helpen. Als je
</area>
<area alias="modelsBuilder">
<key alias="buildingModels">Models aan het gereneren</key>
<key alias="buildingModels">Models aan het genereren</key>
<key alias="waitingMessage">dit kan enige tijd duren, geduld aub</key>
<key alias="modelsGenerated">Models gegenereerd</key>
<key alias="modelsGeneratedError">Models konden niet gegenereerd worden</key>
@@ -1222,13 +1222,13 @@ Echter, Runway biedt een gemakkelijke basis om je snel op weg te helpen. Als je
<key alias="uppercase">Hoofdletters</key>
<key alias="urlEncode">URL-encoderen</key>
<key alias="urlEncodeHelp">Speciale karakters in URL's worden geëncodeerd</key>
<key alias="usedIfAllEmpty">Zal alleen worden gebruikt waneer de bovenstaande veld waardes leeg zijn</key>
<key alias="usedIfAllEmpty">Zal alleen worden gebruikt waneer de bovenstaande veldwaardes leeg zijn</key>
<key alias="usedIfEmpty">Dit veld zal alleen worden gebruikt als het primaire veld leeg is</key>
<key alias="withTime">Ja, met tijd. Scheidingsteken: </key>
</area>
<area alias="translation">
<key alias="assignedTasks">Taken aan jou toegewezen</key>
<key alias="assignedTasksHelp"><![CDATA[Onderstaande lijst toont vertalingstaken aan jou toegewezen. Om een meer gedetailleerd overzicht te zien, met comments, klik op "Details" of de naam van de pagina.
<key alias="assignedTasksHelp"><![CDATA[Onderstaande lijst toont vertalingstaken die aan jou zijn toegewezen. Om een meer gedetailleerd overzicht te zien, met comments, klik op "Details" of de naam van de pagina.
Je kan ook de pagina direct downloaden als XML door te klikken op "Download Xml".
Om een vertalingstaak te sluiten, ga aub naar het detailoverzicht en klik op de "Sluit" knop.
]]></key>
@@ -1255,14 +1255,14 @@ Om een vertalingstaak te sluiten, ga aub naar het detailoverzicht en klik op de
De Umbraco Robot
]]></key>
<key alias="mailSubject">[%0%] Vertaalopdracht voor %1%</key>
<key alias="noTranslators">Geen vertaal-gebruikers gevonden. Maak eerst een vertaal-gebruiker aan voordat je pagina's voor vertaling verstuurd</key>
<key alias="noTranslators">Geen vertaal-gebruikers gevonden. Maak eerst een vertaal-gebruiker aan voordat je pagina's voor vertaling verstuurt</key>
<key alias="ownedTasks">Taken aangemaakt door jou</key>
<key alias="ownedTasksHelp"><![CDATA[De lijst hieronder toont pagina's <strong>die je aanmaakte</strong>.
Om een detailweergave met opmerkingen te zien, klik op "Detail" of op de paginanaam.
Je kan ook de pagina in XML-formaat downloaden door op de "Download XML"-link te klikken.
Om een vertalingstaak te sluiten, klik je op de "Sluiten"-knop in detailweergave.]]></key>
<key alias="pageHasBeenSendToTranslation">De pagina '%0%' is verstuurd voor vertaling</key>
<key alias="noLanguageSelected">Kies de taal waarin deze contetn vertaald moet worden</key>
<key alias="noLanguageSelected">Kies de taal waarin deze content vertaald moet worden</key>
<key alias="sendToTranslate">Stuur voor vertaling</key>
<key alias="taskAssignedBy">Toegewezen door</key>
<key alias="taskOpened">Taak geopend</key>
@@ -1315,7 +1315,7 @@ Om een vertalingstaak te sluiten, ga aub naar het detailoverzicht en klik op de
</area>
<area alias="user">
<key alias="access">Toegang</key>
<key alias="accessHelp">Gebaseerd op de gebruikers groepen en start pagina's heeft de bruiker toegang tot de volgende pagina's</key>
<key alias="accessHelp">Gebaseerd op de gebruikersgroepen en startpagina's heeft de gebruiker toegang tot de volgende pagina's</key>
<key alias="assignAccess">Toegang geven</key>
<key alias="administrators">Beheerders</key>
<key alias="categoryField">Categorieveld</key>
@@ -1326,7 +1326,7 @@ Om een vertalingstaak te sluiten, ga aub naar het detailoverzicht en klik op de
<key alias="noLockouts">is niet gedeblokkeerd</key>
<key alias="noPasswordChange">Het wachtwoord is niet gewijzigd</key>
<key alias="confirmNewPassword">Bevestig nieuw password</key>
<key alias="changePasswordDescription">Je kunt je wachtwoord veranderen door onderstaan formulier in te vullen en op de knop 'Verander wachtwoord' te klikken </key>
<key alias="changePasswordDescription">Je kunt je wachtwoord veranderen door onderstaand formulier in te vullen en op de knop 'Verander wachtwoord' te klikken </key>
<key alias="contentChannel">Inhoudskanaal</key>
<key alias="createAnotherUser">Nog een gebruiker aanmaken</key>
<key alias="createUserHelp">Maak nieuwe gebruikers aan om hun toegang te geven tot Umbraco. Wanneer een nieuwe gebruiker wordt aangemaakt wordt er een wachtwoord gegenereerd dat je met hun kan delen.</key>
@@ -1341,15 +1341,15 @@ Om een vertalingstaak te sluiten, ga aub naar het detailoverzicht en klik op de
<key alias="inviteAnotherUser">Nog een gebruiker uitnodigen</key>
<key alias="inviteUserHelp">Nodig gebruikers uit om hen toegang te geven to Umbraco. Een uitnodiging wordt via e-mail verstuurd met instructies hoe de gebruiker kan inloggen.</key>
<key alias="language">Taal</key>
<key alias="languageHelp">Stel de taal in die gebruiker zal zien in menu's en dialoog vensters</key>
<key alias="lastLockoutDate">Laatst geblokkeerd datu,</key>
<key alias="languageHelp">Stel de taal in die gebruiker zal zien in menu's en dialoogvensters</key>
<key alias="lastLockoutDate">Laatst geblokkeerd datum</key>
<key alias="lastLogin">Laatste keer ingelogd</key>
<key alias="lastPasswordChangeDate">Laatste keer paswoord gewijzigd</key>
<key alias="lastPasswordChangeDate">Laatste keer wachtwoord gewijzigd</key>
<key alias="loginname">Loginnaam</key>
<key alias="mediastartnode">Startnode in Mediabibliotheek</key>
<key alias="mediastartnodehelp">Beperk de mediabibliotheek tot een specifieke startnode</key>
<key alias="mediastartnodes">Startnodes in Mediabibliotheek</key>
<key alias="mediastartnodeshelp">Beperk de mediabibliotheek tot een specifieke startnodes</key>
<key alias="mediastartnodeshelp">Beperk de mediabibliotheek tot een specifieke startnode</key>
<key alias="modules">Secties</key>
<key alias="noConsole">Blokkeer Umbraco toegang</key>
<key alias="noLogin">heeft nog niet ingelogd</key>
@@ -1383,9 +1383,9 @@ Om een vertalingstaak te sluiten, ga aub naar het detailoverzicht en klik op de
<key alias="stateLockedOut">Geblokkeerd</key>
<key alias="stateInvited">Uitgenodigd</key>
<key alias="startnode">Startnode in Content</key>
<key alias="startnodehelp">Beperk de content toegan een specifieke start node</key>
<key alias="startnodehelp">Beperk de content toegang tot een specifieke startnode</key>
<key alias="startnodes">Startnodes in Content</key>
<key alias="startnodeshelp">Beperk de content toegan een specifieke start nodes</key>
<key alias="startnodeshelp">Beperk de content toegang tot specifieke startnodes</key>
<key alias="sortNameAscending">Naam (A-Z)</key>
<key alias="sortNameDescending">Naam (Z-A)</key>
<key alias="sortCreateDateDescending">Nieuwste</key>
@@ -1402,7 +1402,7 @@ Om een vertalingstaak te sluiten, ga aub naar het detailoverzicht en klik op de
<key alias="userGroups">Gebruikersgroepen</key>
<key alias="userInvited">is uitgenodigd</key>
<key alias="userInvitedSuccessHelp">Een uitnodiging is gestuurd naar de nieuwe gebruiker met informatie over hoe in te loggen in Umbraco</key>
<key alias="userinviteWelcomeMessage">Hallo en welk in Umbraco! Binnen ongeveer 1 minuut kan je aan de slag. Je moet enkel je wachtwoord instellen en een foto toevoegen.</key>
<key alias="userinviteWelcomeMessage">Hallo en welkom in Umbraco! Binnen ongeveer één minuut kan je aan de slag. Je moet enkel je wachtwoord instellen en een foto toevoegen.</key>
<key alias="userinviteAvatarMessage">Wijzig je foto zodat andere gebruikers je makkelijk kunnen herkennen.</key>
<key alias="writer">Auteur</key>
<key alias="translator">Vertaler</key>
@@ -1511,7 +1511,7 @@ Om een vertalingstaak te sluiten, ga aub naar het detailoverzicht en klik op de
<key alias="invite">Uitnodigen</key>
<key alias="defaultInvitationMessage">Uitnodiging opnieuw aan het versturen...</key>
<key alias="deleteUser">Verwijder gebruiker</key>
<key alias="deleteUserConfirmation">Ben je zeker dat je deze gebruiker wil verwijderen?</key>
<key alias="deleteUserConfirmation">Weet je zeker dat je deze gebruiker wil verwijderen?</key>
</area>
<area alias="validation">
<key alias="validation">Validatie</key>
@@ -1529,9 +1529,9 @@ Om een vertalingstaak te sluiten, ga aub naar het detailoverzicht en klik op de
3: Configuration file path
-->
<key alias="checkSuccessMessage">Waarde is insteld naar the aanbevolen waarde: '%0%'.</key>
<key alias="rectifySuccessMessage">Waarde was '%1%' voor XPath '%2%' in configuratie bestand '%3%'.</key>
<key alias="checkErrorMessageDifferentExpectedValue">De verwachtte waarde voor '%2%' is '%1%' in configuratie bestand '%3%', maar is '%0%'.</key>
<key alias="checkErrorMessageUnexpectedValue">Onverwachte waarde '%0%' gevonden voor '%2%' in configuratie bestand '%3%'.</key>
<key alias="rectifySuccessMessage">Waarde was '%1%' voor XPath '%2%' in configuratiebestand '%3%'.</key>
<key alias="checkErrorMessageDifferentExpectedValue">De verwachte waarde voor '%2%' is '%1%' in configuratiebestand '%3%', maar is '%0%'.</key>
<key alias="checkErrorMessageUnexpectedValue">Onverwachte waarde '%0%' gevonden voor '%2%' in configuratiebestand '%3%'.</key>
<!-- The following keys get these tokens passed in:
0: Current value
@@ -1581,15 +1581,15 @@ Om een vertalingstaak te sluiten, ga aub naar het detailoverzicht en klik op de
<key alias="cannotRectifyShouldEqualWithValue">Kan een controle met vergelijkingstype 'ShouldNotEqual' en gedefinieerde waarde niet herstellen.</key>
<key alias="valueToRectifyNotProvided">Waarde om te herstellen niet gedefinieerd.</key>
<key alias="compilationDebugCheckSuccessMessage">Debug compiliate mode staat uit.</key>
<key alias="compilationDebugCheckErrorMessage">Debug compiliate mode staat momenteel aan. Wij raden aan deze instelling uit te zetten voor livegang.</key>
<key alias="compilationDebugCheckRectifySuccessMessage">Debug compiliate mode uitgezet.</key>
<key alias="compilationDebugCheckSuccessMessage">Debug compilatie mode staat uit.</key>
<key alias="compilationDebugCheckErrorMessage">Debug compilatie mode staat momenteel aan. Wij raden aan deze instelling uit te zetten voor livegang.</key>
<key alias="compilationDebugCheckRectifySuccessMessage">Debug compilatie mode uitgezet.</key>
<key alias="traceModeCheckSuccessMessage">Trace mode staat uit.</key>
<key alias="traceModeCheckErrorMessage">Trace mode staat momenteel aan. Wij raden aan deze instelling uit te zetten voor livegang.</key>
<key alias="traceModeCheckRectifySuccessMessage">Trace mode uitgezet.</key>
<key alias="folderPermissionsCheckMessage">Alle mappen hebben de juiste permissie-instellingen!.</key>
<key alias="folderPermissionsCheckMessage">Alle mappen hebben de juiste permissie-instellingen!</key>
<!-- The following keys get these tokens passed in:
0: Comma delimitted list of failed folder paths
-->
@@ -1614,7 +1614,7 @@ Om een vertalingstaak te sluiten, ga aub naar het detailoverzicht en klik op de
0: Comma delimitted list of headers found
-->
<key alias="excessiveHeadersFound"><![CDATA[De volgende header welke informatie tonen over de gebruikte website technologie zijn aangetroffen: <strong>%0%</strong>.]]></key>
<key alias="excessiveHeadersNotFound">Er zijn geen headeres gevonden welke informatie over de gebruikte website technologie prijsgeven!</key>
<key alias="excessiveHeadersNotFound">Er zijn geen headers gevonden die informatie prijsgeven over de gebruikte website technologie!</key>
<key alias="smtpMailSettingsNotFound">In de Web.config werd system.net/mailsettings niet gevonden</key>
<key alias="smtpMailSettingsHostNotConfigured">In de Web.config sectie system.net/mailsettings is de host niet geconfigureerd.</key>
@@ -1623,6 +1623,9 @@ Om een vertalingstaak te sluiten, ga aub naar het detailoverzicht en klik op de
<key alias="notificationEmailsCheckSuccessMessage"><![CDATA[Notificatie email is verzonden naar <strong>%0%</strong>.]]></key>
<key alias="notificationEmailsCheckErrorMessage"><![CDATA[Notificatie email staat nog steeds op de default waarde van <strong>%0%</strong>.]]></key>
<key alias="tls12HealthCheckSuccess">Uw website kan het TLS 1.2 beveiligingsprotocol gebruiken bij het maken van uitgaande verbindingen naar HTTPS-eindpunten.</key>
<key alias="tls12HealthCheckWarn">Uw website is niet geconfigureerd om het TLS 1.2 beveiligingsprotocol te kunnen gebruiken bij het maken van uitgaande verbindingen: sommige HTTPS-eindpunten zijn mogelijk niet bereikbaar via een minder veilig protocol.</key>
</area>
<area alias="redirectUrls">
<key alias="disableUrlTracker">URL tracker uitzetten</key>
-2
View File
@@ -1022,8 +1022,6 @@ Naciśnij przycisk <strong>instaluj</strong>, aby zainstalować bazę danych Umb
</area>
<area alias="imagecropper">
<key alias="reset">Resetuj</key>
<key alias="defineCrop">Zdefiniuj przycięcie</key>
<key alias="defineCropDescription">Ustaw alias dla przycięcia, a także jego domyślną szerokość i długość</key>
<key alias="saveCrop">Zapisz przycięcie</key>
<key alias="addCrop">Dodaj nowe przycięcie</key>
</area>
+1 -3
View File
@@ -869,7 +869,7 @@
<key alias="notificationEmailsCheckSuccessMessage"><![CDATA[Адрес для отправки уведомлений установлен в <strong>%0%</strong>.]]></key>
<key alias="notificationEmailsCheckErrorMessage"><![CDATA[Адрес для отправки уведомлений все еще установлен в значение по-умолчанию <strong>%0%</strong>.]]></key>
<key alias="scheduledHealthCheckEmailBody"><![CDATA[<html><body><p>Зафиксированы следующие результаты автоматической проверки состояния Umbraco по расписанию, запущенной на %0% в %1%:</p>%2%</body></html>]]></key>
<key alias="scheduledHealthCheckEmailSubject">Результат проверки состояния Umbraco</key>
<key alias="scheduledHealthCheckEmailSubject">Результат проверки состояния Umbraco: %0%</key>
</area>
<area alias="help">
<key alias="goTo">перейти к</key>
@@ -879,8 +879,6 @@
</area>
<area alias="imagecropper">
<key alias="reset">Сбросить</key>
<key alias="defineCrop">Задать рамку</key>
<key alias="defineCropDescription">Задайте рамке имя (алиас), а также ширину и высоту по-умолчанию</key>
<key alias="saveCrop">Сохранить рамку</key>
<key alias="addCrop">Добавить новую рамку</key>
</area>
+2 -4
View File
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<language alias="sv" intName="Swedish" localName="Svenska" lcid="29" culture="sv-SE">
<creator>
<name>The Umbraco community</name>
@@ -437,7 +437,7 @@
<key alias="current">nuvarande</key>
<key alias="embed">Inbäddning</key>
<key alias="retrieve">Hämta</key>
<key alias="selected">valgt</key>
<key alias="selected">valda</key>
</area>
<area alias="graphicheadline">
<key alias="backgroundcolor">Bakgrundsfärg</key>
@@ -645,8 +645,6 @@
</area>
<area alias="imagecropper">
<key alias="reset">Återställ</key>
<key alias="defineCrop">Definiera beskräning</key>
<key alias="defineCropDescription">Ge beskärningen ett alias och dess standardbredd och -höjd</key>
<key alias="saveCrop">spara beskärning</key>
<key alias="addCrop">Lägg till ny beskärning</key>
</area>
-2
View File
@@ -999,8 +999,6 @@
</area>
<area alias="imagecropper">
<key alias="reset">Reset</key>
<key alias="defineCrop">Define crop</key>
<key alias="defineCropDescription">Give the crop an alias and its default width and height</key>
<key alias="saveCrop">Save crop</key>
<key alias="addCrop">Add new crop</key>
</area>
+1 -1
View File
@@ -1350,4 +1350,4 @@
<key alias="enabledConfirm">轉址追蹤器已開啟。</key>
<key alias="enableError">啟動轉址追蹤器錯誤,更多資訊請參閱您的紀錄檔。</key>
</area>
</language>
</language>
@@ -113,7 +113,7 @@
<cc1:Pane ID="Pane1_4" runat="server" Title="Cache settings">
<cc1:PropertyPanel runat="server" Text="Cache period">
<asp:TextBox ID="cachePeriod" runat="server" CssClass="guiInputText input-small"></asp:TextBox>&nbsp;Seconds
<asp:TextBox ID="cachePeriod" runat="server" CssClass="guiInputText input-small" type="number" min="0"></asp:TextBox>&nbsp;Seconds
</cc1:PropertyPanel>
<cc1:PropertyPanel runat="server" Text="Cache by page">
@@ -158,7 +158,7 @@
</td>
<td>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="macroPropertyName" Display="Dynamic" ForeColor="#b94a48">Required<br/></asp:RequiredFieldValidator>
<asp:TextBox runat="server" ID="macroPropertyName" CLASS="-full-width-input" Text='<%#Eval("Name")%>' />
<asp:TextBox runat="server" ID="macroPropertyName" CssClass="-full-width-input" Text='<%#Eval("Name")%>' />
</td>
<td>
@@ -170,10 +170,10 @@
<td>
<asp:RequiredFieldValidator ID="RequiredFieldValidator6" runat="server" ControlToValidate="macroPropertySortOrder" Display="Dynamic" ForeColor="#b94a48">Required<br/></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="macroPropertySortOrder" Display="Dynamic" ForeColor="#b94a48" ValidationExpression="^\d+$">Numbers only<br/></asp:RegularExpressionValidator>
<asp:TextBox runat="server" ID="macroPropertySortOrder" CLASS="-full-width-input" Text='<%#Eval("SortOrder")%>' />
<asp:TextBox runat="server" ID="macroPropertySortOrder" CssClass="-full-width-input" Text='<%#Eval("SortOrder")%>' type="number" />
</td>
<td>
<asp:Button OnClick="deleteMacroProperty" ID="delete" Text="Delete" runat="server" CssClass="btn btn-default delete-button" />
<asp:Button OnClick="deleteMacroProperty" ID="delete" Text="Delete" runat="server" CssClass="btn btn-default btn-danger delete-button" />
</td>
</tr>
</ItemTemplate>
@@ -181,11 +181,11 @@
<tr>
<td>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" EnableViewState="false" Enabled="false" EnableClientScript="false" runat="server" ControlToValidate="macroPropertyAliasNew" Display="Dynamic" ForeColor="#b94a48">Required<br/></asp:RequiredFieldValidator>
<asp:TextBox runat="server" ID="macroPropertyAliasNew" CLASS="-full-width-input" PlaceHolder='New Alias' />
<asp:TextBox runat="server" ID="macroPropertyAliasNew" CssClass="-full-width-input" PlaceHolder='New Alias' />
</td>
<td>
<asp:RequiredFieldValidator ID="RequiredFieldValidator4" EnableViewState="false" Enabled="false" EnableClientScript="false" runat="server" ControlToValidate="macroPropertyNameNew" Display="Dynamic" ForeColor="#b94a48">Required<br/></asp:RequiredFieldValidator>
<asp:TextBox runat="server" ID="macroPropertyNameNew" CLASS="-full-width-input" PlaceHolder='New Name' />
<asp:TextBox runat="server" ID="macroPropertyNameNew" CssClass="-full-width-input" PlaceHolder='New Name' />
</td>
<td>
<asp:RequiredFieldValidator ID="RequiredFieldValidator5" EnableViewState="false" Enabled="false" EnableClientScript="false" runat="server" ControlToValidate="macroPropertyTypeNew" Display="Dynamic" ForeColor="#b94a48">Required<br/></asp:RequiredFieldValidator>
@@ -199,7 +199,7 @@
<%-- The macro parameter will automatically get sort order when created. --%>
</td>
<td>
<asp:Button ID="createNew" Text="Add" runat="server" CssClass="btn btn-default add-button" OnClick="macroPropertyCreate" />
<asp:Button ID="createNew" Text="Add" runat="server" CssClass="btn btn-default btn-info add-button" OnClick="macroPropertyCreate" />
</td>
</tr>
</tbody>
@@ -10,6 +10,8 @@
table.relations th.directionIcon { width:16px; height:16px; }
table.relations td { background: transparent none no-repeat scroll center center }
table.relations td a { text-decoration: underline; }
/* objectType icons */
table.relations td.ContentItemType {}
@@ -124,10 +126,10 @@
<ItemTemplate>
<tr>
<td class="<%= this.ParentObjectType %>">&nbsp;</td>
<td><%# DataBinder.Eval(Container.DataItem, "ParentText") %></td>
<td><a href="<%# GetEditUrl(this.ParentObjectType, (int)DataBinder.Eval(Container.DataItem, "ParentId")) %>" target="_blank"><%# DataBinder.Eval(Container.DataItem, "ParentText") %></a></td>
<td class="<%= this.RelationTypeDirection %>">&nbsp;</td>
<td class="<%= this.ChildObjectType %>">&nbsp;</td>
<td><%# DataBinder.Eval(Container.DataItem, "ChildText") %></td>
<td><a href="<%# GetEditUrl(this.ChildObjectType, (int)DataBinder.Eval(Container.DataItem, "ChildId")) %>" target="_blank"><%# DataBinder.Eval(Container.DataItem, "ChildText") %></a></td>
<td><%# DataBinder.Eval(Container.DataItem, "DateTime") %></td>
<td><%# DataBinder.Eval(Container.DataItem, "Comment") %></td>
</tr>
+1 -2
View File
@@ -19,7 +19,7 @@
.umb-dialog .umb-control-group .umb-el-wrap { overflow: hidden; }
.umb-dialog .umb-control-group .umb-el-wrap label { float: left; width: 140px; font-weight: bold; }
.umb-dialog .umb-control-group .umb-el-wrap label:after { content:":"; }
.umb-dialog .umb-control-group .umb-el-wrap .controls-row { float: left; width: 280px; padding-top: 8px; }
.umb-dialog .umb-control-group .umb-el-wrap .controls-row { float: left; width: 280px; padding-bottom: 8px; }
.umb-dialog .umb-control-group .umb-el-wrap .controls-row select { width: auto; }
</style>
@@ -118,4 +118,3 @@
</div>
</asp:Content>
+1 -1
View File
@@ -17,7 +17,7 @@
Umbraco.Dialogs.EditMacro.getInstance().init({
useAspNetMasterPages: <%=UmbracoConfig.For.UmbracoSettings().Templates.UseAspNetMasterPages.ToString().ToLower() %>,
codeEditorElementId: "<%=Request.CleanForXss("objectId") %>",
renderingEngine: "<%=Request.GetItemAsString("renderingEngine", "Mvc")%>",
renderingEngine: "<%=Request.CleanForXss("renderingEngine", "Mvc")%>",
macroAlias: '<%= _macroAlias %>'
});
});
+58 -56
View File
@@ -75,15 +75,19 @@
<asp:Content ContentPlaceHolderID="body" runat="server">
<style> .umb-dialog { overflow: auto; } .umb-dialog-footer { position: relative; }</style>
<input id="tempFile" type="hidden" name="tempFile" runat="server" />
<cc1:Feedback ID="feedback" runat="server" />
<asp:Panel ID="p_feedback" runat="server" Visible="False">
<div class="alert alert-success">
<asp:Literal runat="server" ID="feedback_text"></asp:Literal>
</div>
<button class="btn btn-primary" onclick="UmbClientMgr.closeModalWindow()"><%= umbraco.ui.Text("general", "ok")%></button>
</asp:Panel>
<asp:Panel ID="p_mode" runat="server" CssClass="pa-umb-overlay">
<div class="umg-dialog-body">
<div class="umb-dialog-body">
<cc1:Pane ID="pane_chooseMode" runat="server" Text="Choose how to restict access to this page">
@@ -116,74 +120,72 @@
<div class="umb-dialog-footer btn-toolbar umb-btn-toolbar">
<a href="#" class="btn btn-link" onclick="UmbClientMgr.closeModalWindow()"><%=umbraco.ui.Text("cancel")%></a>
<asp:Button ID="bt_selectMode" runat="server" Text="select" CssClass="btn btn-primary" OnClick="selectMode" />
<asp:Button ID="bt_selectMode" runat="server" CssClass="btn btn-primary" OnClick="selectMode" />
</div>
</asp:Panel>
<asp:Panel ID="p_setup" runat="server" Visible="false" CssClass="pa-umb-overlay">
<div class="umb-dialog-body">
<cc1:Pane ID="pane_simple" runat="server" Visible="false" Text="Set the login and password for this page" CssClass="pa-umb-overlay">
<cc1:Pane ID="pane_simple" runat="server" Visible="false" Text="Set the login and password for this page" CssClass="pa-umb-overlay">
<div class="pa-form">
<cc1:PropertyPanel Text="Login" ID="pp_login" runat="server">
<asp:TextBox ID="simpleLogin" runat="server" Width="250px"></asp:TextBox>
<asp:Label runat="server" ID="SimpleLoginLabel" Visible="False"></asp:Label>
</cc1:PropertyPanel>
</div>
<div class="pa-form">
<cc1:PropertyPanel Text="Password" ID="pp_pass" runat="server">
<asp:TextBox ID="simplePassword" runat="server" Width="250px"></asp:TextBox>
</cc1:PropertyPanel>
</div>
<asp:CustomValidator CssClass="alert alert-danger" runat="server" ID="SimpleLoginNameValidator" Display="Dynamic" EnableViewState="False">
<p class="alert">Member name already exists, click <asp:LinkButton runat="server" OnClick="ChangeOnClick" CssClass="btn btn-mini btn-warning">Change</asp:LinkButton> to use a different name or Update to continue</p>
</asp:CustomValidator>
</cc1:Pane>
<cc1:Pane ID="pane_advanced" runat="server" Visible="false" Text="Role based protection">
<cc1:PropertyPanel ID="PropertyPanel3" runat="server">
<p><%= umbraco.ui.Text("publicAccess", "paSelectRoles", UmbracoUser)%></p>
</cc1:PropertyPanel>
<cc1:PropertyPanel ID="PropertyPanel2" runat="server">
<asp:PlaceHolder ID="groupsSelector" runat="server"></asp:PlaceHolder>
</cc1:PropertyPanel>
</cc1:Pane>
<asp:Panel ID="p_buttons" runat="server" Visible="false" CssClass="pa-umb-overlay">
<cc1:Pane runat="server" ID="pane_pages" Text="Select the pages that contain login form and error messages">
<cc1:PropertyPanel runat="server" ID="pp_loginPage" CssClass="pa-select-pages">
<small class="umb-detail">
<%=umbraco.ui.Text("paLoginPageHelp")%>
</small>
<div class="pa-choose-page">
<asp:PlaceHolder ID="ph_loginpage" runat="server" />
<div class="pa-form">
<cc1:PropertyPanel Text="Login" ID="pp_login" runat="server">
<asp:TextBox ID="simpleLogin" runat="server" Width="250px"></asp:TextBox>
<asp:Label runat="server" ID="SimpleLoginLabel" Visible="False"></asp:Label>
</cc1:PropertyPanel>
</div>
<asp:CustomValidator ErrorMessage="Please pick a login page" runat="server" ID="cv_loginPage" ForeColor="Red" />
</cc1:PropertyPanel>
<cc1:PropertyPanel runat="server" ID="pp_errorPage" CssClass="pa-select-pages">
<small class="umb-detail">
<%=umbraco.ui.Text("paErrorPageHelp")%>
</small>
<div class="pa-choose-page">
<asp:PlaceHolder ID="ph_errorpage" runat="server" />
<div class="pa-form">
<cc1:PropertyPanel Text="Password" ID="pp_pass" runat="server">
<asp:TextBox ID="simplePassword" runat="server" Width="250px"></asp:TextBox>
</cc1:PropertyPanel>
</div>
<asp:CustomValidator ErrorMessage="Please pick an error page" runat="server" ID="cv_errorPage" ForeColor="Red" />
</cc1:PropertyPanel>
</cc1:Pane>
<asp:CustomValidator CssClass="alert alert-danger" runat="server" ID="SimpleLoginNameValidator" Display="Dynamic" EnableViewState="False">
<p class="alert">Member name already exists, click <asp:LinkButton runat="server" OnClick="ChangeOnClick" CssClass="btn btn-mini btn-warning">Change</asp:LinkButton> to use a different name or Update to continue</p>
</asp:CustomValidator>
</cc1:Pane>
<cc1:Pane ID="pane_advanced" runat="server" Visible="false" Text="Role based protection">
<cc1:PropertyPanel ID="PropertyPanel3" runat="server">
<p><%= umbraco.ui.Text("publicAccess", "paSelectRoles", UmbracoUser)%></p>
</cc1:PropertyPanel>
<cc1:PropertyPanel ID="PropertyPanel2" runat="server">
<asp:PlaceHolder ID="groupsSelector" runat="server"></asp:PlaceHolder>
</cc1:PropertyPanel>
</cc1:Pane>
<cc1:Pane runat="server" ID="pane_pages" Text="Select the pages that contain login form and error messages">
<cc1:PropertyPanel runat="server" ID="pp_loginPage" CssClass="pa-select-pages">
<small class="umb-detail">
<%=umbraco.ui.Text("paLoginPageHelp")%>
</small>
<div class="pa-choose-page">
<asp:PlaceHolder ID="ph_loginpage" runat="server" />
</div>
<asp:CustomValidator ErrorMessage="Please pick a login page" runat="server" ID="cv_loginPage" ForeColor="Red" />
</cc1:PropertyPanel>
<cc1:PropertyPanel runat="server" ID="pp_errorPage" CssClass="pa-select-pages">
<small class="umb-detail">
<%=umbraco.ui.Text("paErrorPageHelp")%>
</small>
<div class="pa-choose-page">
<asp:PlaceHolder ID="ph_errorpage" runat="server" />
</div>
<asp:CustomValidator ErrorMessage="Please pick an error page" runat="server" ID="cv_errorPage" ForeColor="Red" />
</cc1:PropertyPanel>
</cc1:Pane>
</div>
<div class="umb-dialog-footer btn-toolbar umb-btn-toolbar">
<a href="#" class="btn btn-link" onclick="UmbClientMgr.closeModalWindow()"><%=umbraco.ui.Text("cancel")%></a>
<asp:Button ID="bt_protect" CssClass="btn btn-primary" runat="server" OnCommand="protect_Click"></asp:Button>
<asp:Button ID="bt_buttonRemoveProtection" CssClass="btn btn-danger" runat="server" Visible="False" OnClick="buttonRemoveProtection_Click" />
</div>
</asp:Panel>
<input id="errorId" type="hidden" runat="server" /><input id="loginId" type="hidden" runat="server" />
+4 -41
View File
@@ -13,43 +13,6 @@
var submitOnEnter = true;
</script>
<style type="text/css">
.propertyItemheader {
width: 140px !Important;
}
.diff {
margin-top: 10px;
height: 100%;
overflow: auto;
border-top: 1px solid #efefef;
padding: 5px;
}
.diff table td {
border-bottom: 1px solid #ccc;
padding: 3px;
}
.diff del {
background: rgb(255, 230, 230) none repeat scroll 0%;
-moz-background-clip: -moz-initial;
-moz-background-origin: -moz-initial;
-moz-background-inline-policy: -moz-initial;
}
.diff ins {
background: rgb(230, 255, 230) none repeat scroll 0%;
-moz-background-clip: -moz-initial;
-moz-background-origin: -moz-initial;
-moz-background-inline-policy: -moz-initial;
}
.diff .diffnotice {
text-align: center;
margin-bottom: 10px;
}
</style>
</asp:Content>
<asp:Content ContentPlaceHolderID="body" runat="server">
@@ -63,7 +26,7 @@
<asp:Literal ID="currentVersionTitle" runat="server" />
<small>(<asp:Literal ID="currentVersionMeta" runat="server" />)</small></cc1:PropertyPanel>
<cc1:PropertyPanel ID="pp_rollBackTo" Text="Rollback to" runat="server">
<asp:DropDownList OnSelectedIndexChanged="version_load" ID="allVersions" runat="server" Width="400px" AutoPostBack="True" CssClass="guiInputTextTiny" />
<asp:DropDownList OnSelectedIndexChanged="version_load" ID="allVersions" runat="server" AutoPostBack="True" CssClass="guiInputTextTiny diffDropdown" />
</cc1:PropertyPanel>
<cc1:PropertyPanel id="pp_view" Text="View" runat="server">
@@ -76,7 +39,7 @@
</cc1:PropertyPanel>
</cc1:Pane>
<asp:Panel ID="diffPanel" Visible="false" runat="server" Height="300px">
<asp:Panel ID="diffPanel" Visible="false" runat="server" CssClass="diffPanel">
<div class="diff">
<div class="diffnotice">
<p>
@@ -84,7 +47,7 @@
</p>
</div>
<table border="0" style="width: 95%;">
<table>
<asp:Literal ID="propertiesCompare" runat="server"></asp:Literal>
</table>
</div>
@@ -92,7 +55,7 @@
</div>
<div runat="server" id="pl_buttons" class="umb-dialog-footer btn-toolbar umb-btn-toolbar">
<a href="#" class="btn btn-link" onclick="UmbClientMgr.closeModalWindow()"><%=umbraco.ui.Text("general", "cancel")%></a>
<a href="#" class="btn btn-link" onclick="UmbClientMgr.closeModalWindow()"><%=umbraco.ui.Text("general", "close")%></a>
<asp:Button ID="Button1" runat="server" visible="false" CssClass="btn btn-primary" OnClick="doRollback_Click"></asp:Button>
</div>
</asp:Content>
+3 -5
View File
@@ -30,12 +30,10 @@
</div>
<div id="sortingDone" style="display: none;" class="success">
<p>
<div class="alert alert-success">
<asp:Literal runat="server" ID="sortDone"></asp:Literal>
</p>
<p>
<a href="#" onclick="UmbClientMgr.closeModalWindow()"><%= umbraco.ui.Text("defaultdialogs", "closeThisWindow")%></a>
</p>
</div>
<button class="btn btn-primary" onclick="UmbClientMgr.closeModalWindow()"><%= umbraco.ui.Text("general", "ok")%></button>
</div>
<div id="sortArea">
+1 -2
View File
@@ -11,8 +11,7 @@ LazyLoad.js([
'../js/umbraco.security.js',
'../ServerVariables',
'../lib/spectrum/spectrum.js',
'../js/umbraco.canvasdesigner.js',
'../js/canvasdesigner.panel.js'
'../js/umbraco.canvasdesigner.js'
], function () {
jQuery(document).ready(function () {
angular.bootstrap(document, ['Umbraco.canvasdesigner']);
File diff suppressed because it is too large Load Diff
+411 -96
View File
@@ -1780,6 +1780,19 @@ In the following example you see how to run some custom logic before a step goes
}
angular.module('umbraco.directives').directive('umbTour', TourDirective);
}());
/**
@ngdoc directive
@name umbraco.directives.directive:umbTourStep
@restrict E
@scope
@description
<b>Added in Umbraco 7.8</b>. The tour step component is a component that can be used in custom views for tour steps.
@param {callback} onClose The callback which should be performened when the close button of the tour step is clicked
@param {boolean=} hideClose A boolean indicating if the close button needs to be shown
**/
(function () {
'use strict';
function TourStepDirective() {
@@ -1806,6 +1819,19 @@ In the following example you see how to run some custom logic before a step goes
}
angular.module('umbraco.directives').directive('umbTourStep', TourStepDirective);
}());
/**
@ngdoc directive
@name umbraco.directives.directive:umbTourStepContent
@restrict E
@scope
@description
<b>Added in Umbraco 7.8</b>. The tour step content component is a component that can be used in custom views for tour steps.
It's meant to be used in the umb-tour-step directive.
All markup in the body of the directive will be shown after the content attribute
@param {string} content The content that needs to be shown
**/
(function () {
'use strict';
function TourStepContentDirective() {
@@ -1820,6 +1846,20 @@ In the following example you see how to run some custom logic before a step goes
}
angular.module('umbraco.directives').directive('umbTourStepContent', TourStepContentDirective);
}());
/**
@ngdoc directive
@name umbraco.directives.directive:umbTourStepCounter
@restrict E
@scope
@description
<b>Added in Umbraco 7.8</b>. The tour step counter component is a component that can be used in custom views for tour steps.
It's meant to be used in the umb-tour-step-footer directive. It will show the progress you have made in a tour eg. step 2/12
@param {int} currentStep The current step the tour is on
@param {int} totalSteps The current step the tour is on
**/
(function () {
'use strict';
function TourStepCounterDirective() {
@@ -1836,6 +1876,18 @@ In the following example you see how to run some custom logic before a step goes
}
angular.module('umbraco.directives').directive('umbTourStepCounter', TourStepCounterDirective);
}());
/**
@ngdoc directive
@name umbraco.directives.directive:umbTourStepFooter
@restrict E
@scope
@description
<b>Added in Umbraco 7.8</b>. The tour step footer component is a component that can be used in custom views for tour steps. It's meant to be used in the umb-tour-step directive.
All markup in the body of the directive will be shown as the footer of the tour step
**/
(function () {
'use strict';
function TourStepFooterDirective() {
@@ -1849,6 +1901,18 @@ In the following example you see how to run some custom logic before a step goes
}
angular.module('umbraco.directives').directive('umbTourStepFooter', TourStepFooterDirective);
}());
/**
@ngdoc directive
@name umbraco.directives.directive:umbTourStepHeader
@restrict E
@scope
@description
<b>Added in Umbraco 7.8</b>. The tour step header component is a component that can be used in custom views for tour steps. It's meant to be used in the umb-tour-step directive.
@param {string} title The title that needs to be shown
**/
(function () {
'use strict';
function TourStepHeaderDirective() {
@@ -2131,6 +2195,7 @@ Use this directive to render a button with a dropdown of alternative actions.
<umb-toggle
checked="vm.checked"
disabled="vm.disabled"
on-click="vm.toggle()"
show-labels="true"
label-on="Start"
@@ -2151,6 +2216,7 @@ Use this directive to render a button with a dropdown of alternative actions.
var vm = this;
vm.checked = false;
vm.disabled = false;
vm.toggle = toggle;
@@ -2165,6 +2231,7 @@ Use this directive to render a button with a dropdown of alternative actions.
</pre>
@param {boolean} checked Set to <code>true</code> or <code>false</code> to toggle the switch.
@param {boolean} disabled Set to <code>true</code> or <code>false</code> to disable/enable the switch.
@param {callback} onClick The function which should be called when the toggle is clicked.
@param {string=} showLabels Set to <code>true</code> or <code>false</code> to show a "On" or "Off" label next to the switch.
@param {string=} labelOn Set a custom label for when the switched is turned on. It will default to "On".
@@ -2215,6 +2282,7 @@ Use this directive to render a button with a dropdown of alternative actions.
templateUrl: 'views/components/buttons/umb-toggle.html',
scope: {
checked: '=',
disabled: '=',
onClick: '&',
labelOn: '@?',
labelOff: '@?',
@@ -2248,12 +2316,19 @@ Use this directive to render a button with a dropdown of alternative actions.
createButtons(content);
editorState.set($scope.content);
//We fetch all ancestors of the node to generate the footer breadcrumb navigation
if (!$scope.page.isNew) {
if (content.parentId && content.parentId !== -1) {
entityResource.getAncestors(content.id, 'document').then(function (anc) {
$scope.ancestors = anc;
});
if (content.parentId && content.parentId !== -1) {
var ancestorIds = content.path.split(',');
ancestorIds.shift();
// Remove -1
if ($scope.page.isNew) {
ancestorIds.pop(); // Remove 0
}
entityResource.getByIds(ancestorIds, 'document').then(function (anc) {
$scope.ancestors = anc;
if ($scope.page.isNew) {
$scope.ancestors.push({ name: 'Untitled' });
}
});
}
evts.push(eventsService.on('editors.content.changePublishDate', function (event, args) {
createButtons(args.node);
@@ -2370,6 +2445,9 @@ Use this directive to render a button with a dropdown of alternative actions.
//we are creating so get an empty content item
$scope.getScaffoldMethod()().then(function (data) {
$scope.content = data;
if (data.isChildOfListView && data.trashed === false) {
$scope.page.listViewPath = $routeParams.page ? '/content/content/edit/' + data.parentId + '?page=' + $routeParams.page : '/content/content/edit/' + data.parentId;
}
init($scope.content);
resetLastListPageNumber($scope.content);
$scope.page.loading = false;
@@ -2554,7 +2632,7 @@ Use this directive to render a button with a dropdown of alternative actions.
}());
(function () {
'use strict';
function ContentNodeInfoDirective($timeout, $location, logResource, eventsService, userService, localizationService, dateHelper) {
function ContentNodeInfoDirective($timeout, $location, logResource, eventsService, userService, localizationService, dateHelper, redirectUrlsResource) {
function link(scope, element, attrs, ctrl) {
var evts = [];
var isInfoTab = false;
@@ -2586,10 +2664,19 @@ Use this directive to render a button with a dropdown of alternative actions.
formatDatesToLocal();
// Make sure to set the node status
setNodePublishStatus(scope.node);
//default setting for redirect url management
scope.urlTrackerDisabled = false;
// Declare a fallback URL for the <umb-node-preview/> directive
if (scope.documentType !== null) {
scope.previewOpenUrl = '#/settings/documenttypes/edit/' + scope.documentType.id;
}
// only allow configuring scheduled publishing if the user has publish ("U") and unpublish ("Z") permissions on this node
scope.allowScheduledPublishing = _.contains(scope.node.allowedActions, 'U') && _.contains(scope.node.allowedActions, 'Z');
ensureUniqueUrls();
}
// make sure we don't show duplicate URLs in case multiple URL providers assign the same URLs to the content (see issue 3842 for details)
function ensureUniqueUrls() {
scope.node.urls = _.uniq(scope.node.urls);
}
scope.auditTrailPageChange = function (pageNumber) {
scope.auditTrailOptions.pageNumber = pageNumber;
@@ -2638,6 +2725,22 @@ Use this directive to render a button with a dropdown of alternative actions.
scope.loadingAuditTrail = false;
});
}
function loadRedirectUrls() {
scope.loadingRedirectUrls = true;
//check if Redirect Url Management is enabled
redirectUrlsResource.getEnableState().then(function (response) {
scope.urlTrackerDisabled = response.enabled !== true;
if (scope.urlTrackerDisabled === false) {
redirectUrlsResource.getRedirectsForContentItem(scope.node.udi).then(function (data) {
scope.redirectUrls = data.searchResults;
scope.hasRedirects = typeof data.searchResults !== 'undefined' && data.searchResults.length > 0;
scope.loadingRedirectUrls = false;
});
} else {
scope.loadingRedirectUrls = false;
}
});
}
function setAuditTrailLogTypeColor(auditTrail) {
angular.forEach(auditTrail, function (item) {
switch (item.logType) {
@@ -2750,12 +2853,13 @@ Use this directive to render a button with a dropdown of alternative actions.
scope.node.removeDateTime = scope.node.removeDate ? ucfirst(dateHelper.getLocalDate(scope.node.removeDate, currentUser.locale, 'HH:mm')) : null;
});
}
// load audit trail when on the info tab
// load audit trail and redirects when on the info tab
evts.push(eventsService.on('app.tabChange', function (event, args) {
$timeout(function () {
if (args.id === -1) {
isInfoTab = true;
loadAuditTrail();
loadRedirectUrls();
} else {
isInfoTab = false;
}
@@ -2771,8 +2875,10 @@ Use this directive to render a button with a dropdown of alternative actions.
}
if (isInfoTab) {
loadAuditTrail();
loadRedirectUrls();
formatDatesToLocal();
setNodePublishStatus(scope.node);
ensureUniqueUrls();
}
});
//ensure to unregister from all events!
@@ -3583,7 +3689,7 @@ Use this directive to construct a header inside the main editor window.
icon: '=',
hideIcon: '@',
alias: '=',
hideAlias: '@',
hideAlias: '=',
description: '=',
hideDescription: '@',
descriptionLocked: '@',
@@ -4229,29 +4335,32 @@ Use this directive to construct the main editor window.
return {
restrict: 'A',
link: function (scope, element, attr, formCtrl) {
var origColor = null;
if (attr.hexBgOrig) {
//set the orig based on the attribute if there is one
origColor = attr.hexBgOrig;
}
attr.$observe('hexBgColor', function (newVal) {
if (newVal) {
if (!origColor) {
//get the orig color before changing it
origColor = element.css('border-color');
}
//validate it - test with and without the leading hash.
if (/^([0-9a-f]{3}|[0-9a-f]{6})$/i.test(newVal)) {
element.css('background-color', '#' + newVal);
return;
}
if (/^#([0-9a-f]{3}|[0-9a-f]{6})$/i.test(newVal)) {
element.css('background-color', newVal);
return;
}
// Only add inline hex background color if defined and not "true".
if (attr.hexBgInline === undefined || attr.hexBgInline !== undefined && attr.hexBgInline === 'true') {
var origColor = null;
if (attr.hexBgOrig) {
// Set the orig based on the attribute if there is one.
origColor = attr.hexBgOrig;
}
element.css('background-color', origColor);
});
attr.$observe('hexBgColor', function (newVal) {
if (newVal) {
if (!origColor) {
// Get the orig color before changing it.
origColor = element.css('border-color');
}
// Validate it - test with and without the leading hash.
if (/^([0-9a-f]{3}|[0-9a-f]{6})$/i.test(newVal)) {
element.css('background-color', '#' + newVal);
return;
}
if (/^#([0-9a-f]{3}|[0-9a-f]{6})$/i.test(newVal)) {
element.css('background-color', newVal);
return;
}
}
element.css('background-color', origColor);
});
}
}
};
}
@@ -4544,6 +4653,103 @@ Use this directive to prevent default action of an element. Effectively implemen
}
};
});
/**
@ngdoc directive
@name umbraco.directives.directive:umbCheckbox
@restrict E
@scope
@description
<b>Added in Umbraco version 7.14.0</b> Use this directive to render an umbraco checkbox.
<h3>Markup example</h3>
<pre>
<div ng-controller="My.Controller as vm">
<umb-checkbox
name="checkboxlist"
value="{{key}}"
model="true"
text="{{text}}">
</umb-checkbox>
</div>
</pre>
@param {boolean} model Set to <code>true</code> or <code>false</code> to set the checkbox to checked or unchecked.
@param {string} value Set the value of the checkbox.
@param {string} name Set the name of the checkbox.
@param {string} text Set the text for the checkbox label.
**/
(function () {
'use strict';
function CheckboxDirective() {
var directive = {
restrict: 'E',
replace: true,
templateUrl: 'views/components/forms/umb-checkbox.html',
scope: {
model: '=',
value: '@',
name: '@',
text: '@',
required: '='
}
};
return directive;
}
angular.module('umbraco.directives').directive('umbCheckbox', CheckboxDirective);
}());
/**
@ngdoc directive
@name umbraco.directives.directive:umbRadiobutton
@restrict E
@scope
@description
<b>Added in Umbraco version 7.14.0</b> Use this directive to render an umbraco radio button.
<h3>Markup example</h3>
<pre>
<div ng-controller="My.Controller as vm">
<umb-radiobutton
name="checkboxlist"
value="{{key}}"
model="true"
text="{{text}}">
</umb-radiobutton>
</div>
</pre>
@param {boolean} model Set to <code>true</code> or <code>false</code> to set the radiobutton to checked or unchecked.
@param {string} value Set the value of the radiobutton.
@param {string} name Set the name of the radiobutton.
@param {string} text Set the text for the radiobutton label.
**/
(function () {
'use strict';
function RadiobuttonDirective() {
var directive = {
restrict: 'E',
replace: true,
templateUrl: 'views/components/forms/umb-radiobutton.html',
scope: {
model: '=',
value: '@',
name: '@',
text: '@'
}
};
return directive;
}
angular.module('umbraco.directives').directive('umbRadiobutton', RadiobuttonDirective);
}());
/*
example usage: <textarea json-edit="myObject" rows="8" class="form-control"></textarea>
@@ -4649,7 +4855,7 @@ will override element type to textarea and add own attribute ngModel tied to jso
}
angular.module('umbraco.directives').directive('umbSelectWhen', SelectWhen);
}());
angular.module('umbraco.directives').directive('gridRte', function (tinyMceService, stylesheetResource, angularHelper, assetsService, $q, $timeout) {
angular.module('umbraco.directives').directive('gridRte', function (tinyMceService, stylesheetResource, angularHelper, assetsService, $q, $timeout, eventsService) {
return {
scope: {
uniqueId: '=',
@@ -4968,8 +5174,18 @@ will override element type to textarea and add own attribute ngModel tied to jso
// // is required for our plugins listening to this event to execute
// tinyMceEditor.fire('LoadContent', null);
//};
var tabShownListener = eventsService.on('app.tabChange', function (e, args) {
var tabId = args.id;
var myTabId = element.closest('.umb-tab-pane').attr('rel');
if (String(tabId) === myTabId) {
//the tab has been shown, trigger the mceAutoResize (as it could have timed out before the tab was shown)
if (tinyMceEditor !== undefined && tinyMceEditor != null) {
tinyMceEditor.execCommand('mceAutoResize', false, null, null);
}
}
});
//listen for formSubmitting event (the result is callback used to remove the event subscription)
var unsubscribe = scope.$on('formSubmitting', function () {
var formSubmittingListener = scope.$on('formSubmitting', function () {
//TODO: Here we should parse out the macro rendered content so we can save on a lot of bytes in data xfer
// we do parse it out on the server side but would be nice to do that on the client side before as well.
scope.value = tinyMceEditor ? tinyMceEditor.getContent() : null;
@@ -4978,7 +5194,8 @@ will override element type to textarea and add own attribute ngModel tied to jso
// NOTE: this is very important otherwise if this is part of a modal, the listener still exists because the dom
// element might still be there even after the modal has been hidden.
scope.$on('$destroy', function () {
unsubscribe();
formSubmittingListener();
eventsService.unsubscribe(tabShownListener);
if (tinyMceEditor !== undefined && tinyMceEditor != null) {
tinyMceEditor.destroy();
}
@@ -5284,23 +5501,6 @@ Use this directive to construct a title. Recommended to use it inside an {@link
// scope.dimensions.viewport.width - 2 * scope.dimensions.margin;
scope.dimensions.cropper.height = _viewPortH; // scope.dimensions.viewport.height - 2 * scope.dimensions.margin;
};
//when loading an image without any crop info, we center and fit it
var resizeImageToEditor = function () {
//returns size fitting the cropper
var size = cropperHelper.calculateAspectRatioFit(scope.dimensions.image.width, scope.dimensions.image.height, scope.dimensions.cropper.width, scope.dimensions.cropper.height, true);
//sets the image size and updates the scope
scope.dimensions.image.width = size.width;
scope.dimensions.image.height = size.height;
//calculate the best suited ratios
scope.dimensions.scale.min = size.ratio;
scope.dimensions.scale.max = 2;
scope.dimensions.scale.current = size.ratio;
//center the image
var position = cropperHelper.centerInsideViewPort(scope.dimensions.image, scope.dimensions.cropper);
scope.dimensions.top = position.top;
scope.dimensions.left = position.left;
setConstraints();
};
//resize to a given ratio
var resizeImageToScale = function (ratio) {
//do stuff
@@ -5367,11 +5567,16 @@ Use this directive to construct a title. Recommended to use it inside an {@link
scope.loaded = false;
//set dimensions on image, viewport, cropper etc
setDimensions(image);
//if we have a crop already position the image
if (scope.crop) {
resizeImageToCrop();
} else {
resizeImageToEditor();
//create a default crop if we haven't got one already
var createDefaultCrop = !scope.crop;
if (createDefaultCrop) {
calculateCropBox();
}
resizeImageToCrop();
//if we're creating a new crop, make sure to zoom out fully
if (createDefaultCrop) {
scope.dimensions.scale.current = scope.dimensions.scale.min;
resizeImageToScale(scope.dimensions.scale.min);
}
//sets constaints for the cropper
setConstraints();
@@ -5389,7 +5594,7 @@ Use this directive to construct a title. Recommended to use it inside an {@link
var throttledResizing = _.throttle(function () {
resizeImageToScale(scope.dimensions.scale.current);
calculateCropBox();
}, 100);
}, 16);
//happens when we change the scale
scope.$watch('dimensions.scale.current', function () {
if (scope.loaded) {
@@ -5429,7 +5634,8 @@ Use this directive to construct a title. Recommended to use it inside an {@link
scope: {
src: '=',
center: '=',
onImageLoaded: '='
onImageLoaded: '&',
onGravityChanged: '&'
},
link: function (scope, element, attrs) {
//Internal values for keeping track of the dot and the size of the editor
@@ -5445,7 +5651,7 @@ Use this directive to construct a title. Recommended to use it inside an {@link
var $image = element.find('img');
var $overlay = element.find('.overlay');
scope.style = function () {
if (scope.dimensions.width <= 0) {
if (scope.dimensions.width <= 0 || scope.dimensions.height <= 0) {
setDimensions();
}
return {
@@ -5458,19 +5664,21 @@ Use this directive to construct a title. Recommended to use it inside an {@link
var offsetX = event.offsetX - 10;
var offsetY = event.offsetY - 10;
calculateGravity(offsetX, offsetY);
lazyEndEvent();
gravityChanged();
};
var setDimensions = function () {
scope.dimensions.width = $image.width();
scope.dimensions.height = $image.height();
if (scope.center) {
scope.dimensions.left = scope.center.left * scope.dimensions.width - 10;
scope.dimensions.top = scope.center.top * scope.dimensions.height - 10;
} else {
scope.center = {
left: 0.5,
top: 0.5
};
if (scope.isCroppable) {
scope.dimensions.width = $image.width();
scope.dimensions.height = $image.height();
if (scope.center) {
scope.dimensions.left = scope.center.left * scope.dimensions.width - 10;
scope.dimensions.top = scope.center.top * scope.dimensions.height - 10;
} else {
scope.center = {
left: 0.5,
top: 0.5
};
}
}
};
var calculateGravity = function (offsetX, offsetY) {
@@ -5479,11 +5687,11 @@ Use this directive to construct a title. Recommended to use it inside an {@link
scope.center.left = (scope.dimensions.left + 10) / scope.dimensions.width;
scope.center.top = (scope.dimensions.top + 10) / scope.dimensions.height;
};
var lazyEndEvent = _.debounce(function () {
scope.$apply(function () {
scope.$emit('imageFocalPointStop');
});
}, 2000);
var gravityChanged = function () {
if (angular.isFunction(scope.onGravityChanged)) {
scope.onGravityChanged();
}
};
//Drag and drop positioning, using jquery ui draggable
//TODO ensure that the point doesnt go outside the box
$overlay.draggable({
@@ -5499,16 +5707,34 @@ Use this directive to construct a title. Recommended to use it inside an {@link
var offsetY = $overlay[0].offsetTop;
calculateGravity(offsetX, offsetY);
});
lazyEndEvent();
gravityChanged();
}
});
//// INIT /////
$image.load(function () {
$timeout(function () {
scope.isCroppable = true;
scope.hasDimensions = true;
if (scope.src) {
if (scope.src.endsWith('.svg')) {
scope.isCroppable = false;
scope.hasDimensions = false;
} else {
// From: https://stackoverflow.com/a/51789597/5018
var type = scope.src.substring(scope.src.indexOf('/') + 1, scope.src.indexOf(';base64'));
if (type.startsWith('svg')) {
scope.isCroppable = false;
scope.hasDimensions = false;
}
}
}
setDimensions();
scope.loaded = true;
if (angular.isFunction(scope.onImageLoaded)) {
scope.onImageLoaded();
scope.onImageLoaded({
'isCroppable': scope.isCroppable,
'hasDimensions': scope.hasDimensions
});
}
});
});
@@ -5671,7 +5897,7 @@ Use this directive to construct a title. Recommended to use it inside an {@link
});
(function () {
'use strict';
function MediaNodeInfoDirective($timeout, $location, eventsService, userService, dateHelper) {
function MediaNodeInfoDirective($timeout, $location, eventsService, userService, dateHelper, mediaHelper) {
function link(scope, element, attrs, ctrl) {
var evts = [];
function onInit() {
@@ -5685,6 +5911,8 @@ Use this directive to construct a title. Recommended to use it inside an {@link
setMediaLink();
// make sure dates are formatted to the user's locale
formatDatesToLocal();
// set media file extension initially
setMediaExtension();
}
function formatDatesToLocal() {
// get current backoffice user and format dates
@@ -5696,11 +5924,21 @@ Use this directive to construct a title. Recommended to use it inside an {@link
function setMediaLink() {
scope.nodeUrl = scope.node.mediaLink;
}
function setMediaExtension() {
scope.node.extension = mediaHelper.getFileExtension(scope.nodeUrl);
}
scope.openMediaType = function (mediaType) {
// remove first "#" from url if it is prefixed else the path won't work
var url = '/settings/mediaTypes/edit/' + mediaType.id;
$location.path(url);
};
scope.openSVG = function () {
var popup = window.open('', '_blank');
var html = '<!DOCTYPE html><body><img src="' + scope.nodeUrl + '"/>' + '<script>history.pushState(null, null,"' + $location.$$absUrl + '");</script></body>';
popup.document.open();
popup.document.write(html);
popup.document.close();
};
// watch for content updates - reload content when node is saved, published etc.
scope.$watch('node.updateDate', function (newValue, oldValue) {
if (!newValue) {
@@ -5713,6 +5951,8 @@ Use this directive to construct a title. Recommended to use it inside an {@link
setMediaLink();
// Update the create and update dates
formatDatesToLocal();
//Update the media file format
setMediaExtension();
});
//ensure to unregister from all events!
scope.$on('$destroy', function () {
@@ -6806,7 +7046,15 @@ Opens an overlay to show a custom YSOD. </br>
treeService.syncTree({
node: treeNode,
path: path,
forceReload: forceReload
forceReload: forceReload,
//when the tree node is expanding during sync tree, handle it and raise appropriate events
treeNodeExpanded: function (args) {
emitEvent('treeNodeExpanded', {
tree: scope.tree,
node: args.node,
children: args.children
});
}
}).then(function (data) {
if (activate === undefined || activate === true) {
scope.currentNode = data;
@@ -6970,7 +7218,7 @@ Opens an overlay to show a custom YSOD. </br>
</file>
</example>
*/
angular.module('umbraco.directives').directive('umbTreeItem', function ($compile, $http, $templateCache, $interpolate, $log, $location, $rootScope, $window, treeService, $timeout, localizationService) {
angular.module('umbraco.directives').directive('umbTreeItem', function ($compile, $http, $templateCache, $interpolate, $log, $location, $rootScope, $window, treeService, $timeout, localizationService, appState) {
return {
restrict: 'E',
replace: true,
@@ -7053,6 +7301,18 @@ Opens an overlay to show a custom YSOD. </br>
if (node.selected) {
css.push('umb-tree-node-checked');
}
//is this the current action node (this is not the same as the current selected node!)
var actionNode = appState.getMenuState('currentNode');
if (actionNode) {
if (actionNode.id === node.id && actionNode.id !== '-1') {
css.push('active');
}
// special handling of root nodes with id -1
// as there can be many nodes with id -1 in a tree we need to check the treeAlias instead
if (actionNode.id === '-1' && actionNode.metaData.treeAlias === node.metaData.treeAlias) {
css.push('active');
}
}
return css.join(' ');
};
//add a method to the node which we can use to call to update the node data if we need to ,
@@ -7205,6 +7465,7 @@ Opens an overlay to show a custom YSOD. </br>
searchFromName: '@',
showSearch: '@',
section: '@',
datatypeId: '@',
hideSearchCallback: '=',
searchCallback: '='
},
@@ -7245,6 +7506,10 @@ Opens an overlay to show a custom YSOD. </br>
if (scope.searchFromId) {
searchArgs['searchFrom'] = scope.searchFromId;
}
//append dataTypeId value if there is one
if (scope.datatypeId) {
searchArgs['dataTypeId'] = scope.datatypeId;
}
searcher(searchArgs).then(function (data) {
scope.searchCallback(data);
//set back to null so it can be re-created
@@ -8089,20 +8354,25 @@ Use this directive to generate color swatches to pick from.
</umb-color-swatches>
</pre>
@param {array} colors (<code>attribute</code>): The array of colors.
@param {string} colors (<code>attribute</code>): The array of colors.
@param {string} selectedColor (<code>attribute</code>): The selected color.
@param {string} size (<code>attribute</code>): The size (s, m).
@param {string} useLabel (<code>attribute</code>): Specify if labels should be used.
@param {string} useColorClass (<code>attribute</code>): Specify if color values are css classes.
@param {function} onSelect (<code>expression</code>): Callback function when the item is selected.
**/
(function () {
'use strict';
function ColorSwatchesDirective() {
function link(scope, el, attr, ctrl) {
// Set default to true if not defined
if (angular.isUndefined(scope.useColorClass)) {
scope.useColorClass = false;
}
scope.setColor = function (color) {
//scope.selectedColor({color: color });
scope.selectedColor = color;
if (scope.onSelect) {
scope.onSelect(color);
scope.onSelect({ color: color });
}
};
}
@@ -8115,7 +8385,9 @@ Use this directive to generate color swatches to pick from.
colors: '=?',
size: '@',
selectedColor: '=',
onSelect: '&'
onSelect: '&',
useLabel: '=',
useColorClass: '=?'
},
link: link
};
@@ -8941,7 +9213,7 @@ the directive will use {@link umbraco.directives.directive:umbLockedField umbLoc
@param {string} aliasFrom (<code>binding</code>): The model to generate the alias from.
@param {boolean=} enableLock (<code>binding</code>): Set to <code>true</code> to add a lock next to the alias from where it can be unlocked and changed.
**/
angular.module('umbraco.directives').directive('umbGenerateAlias', function ($timeout, entityResource) {
angular.module('umbraco.directives').directive('umbGenerateAlias', function ($timeout, entityResource, localizationService) {
return {
restrict: 'E',
templateUrl: 'views/components/umb-generate-alias.html',
@@ -8958,26 +9230,37 @@ the directive will use {@link umbraco.directives.directive:umbLockedField umbLoc
var generateAliasTimeout = '';
var updateAlias = false;
scope.locked = true;
scope.placeholderText = 'Enter alias...';
scope.labels = {
idle: 'Enter alias...',
busy: 'Generating alias...'
};
scope.placeholderText = scope.labels.idle;
localizationService.localize('placeholders_enterAlias').then(function (value) {
scope.labels.idle = scope.placeholderText = value;
});
localizationService.localize('placeholders_generatingAlias').then(function (value) {
scope.labels.busy = value;
});
function generateAlias(value) {
if (generateAliasTimeout) {
$timeout.cancel(generateAliasTimeout);
}
if (value !== undefined && value !== '' && value !== null) {
scope.alias = '';
scope.placeholderText = 'Generating Alias...';
scope.placeholderText = scope.labels.busy;
generateAliasTimeout = $timeout(function () {
updateAlias = true;
entityResource.getSafeAlias(encodeURIComponent(value), true).then(function (safeAlias) {
if (updateAlias) {
scope.alias = safeAlias.alias;
}
scope.placeholderText = scope.labels.idle;
});
}, 500);
} else {
updateAlias = true;
scope.alias = '';
scope.placeholderText = 'Enter alias...';
scope.placeholderText = scope.labels.idle;
}
}
// if alias gets unlocked - stop watching alias
@@ -8988,13 +9271,15 @@ the directive will use {@link umbraco.directives.directive:umbLockedField umbLoc
}));
// validate custom entered alias
eventBindings.push(scope.$watch('alias', function (newValue, oldValue) {
if (scope.alias === '' && bindWatcher === true || scope.alias === null && bindWatcher === true) {
// add watcher
eventBindings.push(scope.$watch('aliasFrom', function (newValue, oldValue) {
if (bindWatcher) {
generateAlias(newValue);
}
}));
if (scope.alias === '' || scope.alias === null || scope.alias === undefined) {
if (bindWatcher === true) {
// add watcher
eventBindings.push(scope.$watch('aliasFrom', function (newValue, oldValue) {
if (bindWatcher) {
generateAlias(newValue);
}
}));
}
}
}));
// clean up
@@ -10405,6 +10690,18 @@ Use this directive to generate a thumbnail grid of media items.
scope.items.splice(i, 1);
i--;
}
// If subfolder search is not enabled remove the media items that's not needed
// Make sure that includeSubFolder is not undefined since the directive is used
// in contexts where it should not be used. Currently only used when we trigger
// a media picker
if (scope.includeSubFolders !== undefined) {
if (scope.includeSubFolders !== 'true') {
if (item.parentId !== parseInt(scope.currentFolderId)) {
scope.items.splice(i, 1);
i--;
}
}
}
}
if (scope.items.length > 0) {
setFlexValues(scope.items);
@@ -10545,7 +10842,9 @@ Use this directive to generate a thumbnail grid of media items.
itemMaxHeight: '@',
itemMinWidth: '@',
itemMinHeight: '@',
onlyImages: '@'
onlyImages: '@',
includeSubFolders: '@',
currentFolderId: '@'
},
link: link
};
@@ -10600,6 +10899,8 @@ Use this directive to generate a thumbnail grid of media items.
// update children
miniListView.children = data.items;
_.each(miniListView.children, function (c) {
// child allowed by default
c.allowed = true;
// convert legacy icon for node
if (c.icon) {
c.icon = iconHelper.convertFromLegacyIcon(c.icon);
@@ -10611,6 +10912,15 @@ Use this directive to generate a thumbnail grid of media items.
c.published = c.metaData.IsPublished;
}
}
// filter items if there is a filter and it's not advanced
// ** ignores advanced filter at the moment
if (scope.entityTypeFilter && !scope.entityTypeFilter.filterAdvanced) {
var a = scope.entityTypeFilter.filter.toLowerCase().replace(/\s/g, '').split(',');
var found = a.indexOf(c.metaData.ContentTypeAlias.toLowerCase()) >= 0;
if (!scope.entityTypeFilter.filterExclude && !found || scope.entityTypeFilter.filterExclude && found) {
c.allowed = false;
}
}
});
// update pagination
miniListView.pagination.totalItems = data.totalItems;
@@ -10624,7 +10934,7 @@ Use this directive to generate a thumbnail grid of media items.
event.stopPropagation();
};
scope.selectNode = function (node) {
if (scope.onSelect) {
if (scope.onSelect && node.allowed) {
scope.onSelect({ 'node': node });
}
};
@@ -10719,7 +11029,8 @@ Use this directive to generate a thumbnail grid of media items.
entityType: '@',
startNodeId: '=',
onSelect: '&',
onClose: '&'
onClose: '&',
entityTypeFilter: '='
},
link: link
};
@@ -11315,6 +11626,10 @@ Use this directive make an element sticky and follow the page when scrolling.
var clonedBar = null;
var cloneIsMade = false;
function activate() {
if (bar.parents('.umb-property').length > 1) {
bar.addClass('nested');
return;
}
if (attr.scrollableContainer) {
scrollableContainer = $(attr.scrollableContainer);
} else {
+5 -5
View File
@@ -48,16 +48,16 @@
//add to umbraco installer facts here
var facts = [
'Umbraco helped millions of people watch a man jump from the edge of space',
'Over 440 000 websites are currently powered by Umbraco',
'Over 500 000 websites are currently powered by Umbraco',
'At least 2 people have named their cat \'Umbraco\'',
'On an average day, more than 1000 people download Umbraco',
'<a target="_blank" href="https://umbraco.tv">umbraco.tv</a> is the premier source of Umbraco video tutorials to get you started',
'You can find the world\'s friendliest CMS community at <a target="_blank" href="https://our.umbraco.com">our.umbraco.com</a>',
'On an average day more than 1000 people download Umbraco',
'<a target=\'_blank\' href=\'https://umbraco.tv/\'>umbraco.tv</a> is the premier source of Umbraco video tutorials to get you started',
'You can find the world\'s friendliest CMS community at <a target=\'_blank\' href=\'https://our.umbraco.com/\'>our.umbraco.com</a>',
'You can become a certified Umbraco developer by attending one of the official courses',
'Umbraco works really well on tablets',
'You have 100% control over your markup and design when crafting a website in Umbraco',
'Umbraco is the best of both worlds: 100% free and open source, and backed by a professional and profitable company',
'There\'s a pretty big chance, you\'ve visited a website powered by Umbraco today',
'There\'s a pretty big chance you\'ve visited a website powered by Umbraco today',
'\'Umbraco-spotting\' is the game of spotting big brands running Umbraco',
'At least 4 people have the Umbraco logo tattooed on them',
'\'Umbraco\' is the Danish name for an allen key',
File diff suppressed because it is too large Load Diff
+17 -12
View File
@@ -130,19 +130,24 @@
if (filtered) {
return promise;
}
//A 401 means that the user is not logged in
if (originalResponse.status === 401 && !originalResponse.config.url.endsWith('umbraco/backoffice/UmbracoApi/Authentication/GetCurrentUser')) {
var userService = $injector.get('userService');
// see above
//Associate the user name with the retry to ensure we retry for the right user
promise = userService.getCurrentUser().then(function (user) {
var userName = user ? user.name : null;
//The request bounced because it was not authorized - add a new request to the retry queue
return queue.pushRetryFn('unauthorized-server', userName, function retryRequest() {
// We must use $injector to get the $http service to prevent circular dependency
return $injector.get('$http')(originalResponse.config);
if (originalResponse.status === 401) {
//A 401 means that the user is not logged in
//avoid an infinite loop
var umbRequestHelper = $injector.get('umbRequestHelper');
var getCurrentUserPath = umbRequestHelper.getApiUrl('authenticationApiBaseUrl', 'GetCurrentUser');
if (!originalResponse.config.url.endsWith(getCurrentUserPath)) {
var userService = $injector.get('userService');
// see above
//Associate the user name with the retry to ensure we retry for the right user
promise = userService.getCurrentUser().then(function (user) {
var userName = user ? user.name : null;
//The request bounced because it was not authorized - add a new request to the retry queue
return queue.pushRetryFn('unauthorized-server', userName, function retryRequest() {
// We must use $injector to get the $http service to prevent circular dependency
return $injector.get('$http')(originalResponse.config);
});
});
});
}
} else if (originalResponse.status === 404) {
//a 404 indicates that the request was not found - this could be due to a non existing url, or it could
//be due to accessing a url with a parameter that doesn't exist, either way we should notifiy the user about it
+117 -116
View File
@@ -1035,9 +1035,9 @@
}
}
}
// If we have a scheduled publish or unpublish date change the default button to
// If we have a scheduled publish date change the default button to
// "save" and update the label to "save and schedule
if (args.content.releaseDate || args.content.removeDate) {
if (args.content.releaseDate) {
// if save button is alread the default don't change it just update the label
if (buttons.defaultButton && buttons.defaultButton.letter === 'A') {
buttons.defaultButton.labelKey = 'buttons_saveAndSchedule';
@@ -1711,13 +1711,6 @@
}
return crop;
},
centerInsideViewPort: function (img, viewport) {
var left = viewport.width / 2 - img.width / 2, top = viewport.height / 2 - img.height / 2;
return {
left: left,
top: top
};
},
alignToCoordinates: function (image, center, viewport) {
var min_left = image.width - viewport.width;
var min_top = image.height - viewport.height;
@@ -4440,7 +4433,7 @@
* @name umbraco.services.mediaHelper
* @description A helper object used for dealing with media items
**/
function mediaHelper(umbRequestHelper) {
function mediaHelper(umbRequestHelper, $log) {
//container of fileresolvers
var _mediaFileResolvers = {};
return {
@@ -4448,11 +4441,11 @@
* @ngdoc function
* @name umbraco.services.mediaHelper#getImagePropertyValue
* @methodOf umbraco.services.mediaHelper
* @function
* @function
*
* @description
* Returns the file path associated with the media property if there is one
*
*
* @param {object} options Options object
* @param {object} options.mediaModel The media object to retrieve the image path from
* @param {object} options.imageOnly Optional, if true then will only return a path if the media item is an image
@@ -4508,11 +4501,11 @@
* @ngdoc function
* @name umbraco.services.mediaHelper#getImagePropertyValue
* @methodOf umbraco.services.mediaHelper
* @function
* @function
*
* @description
* Returns the actual image path associated with the image property if there is one
*
*
* @param {object} options Options object
* @param {object} options.imageModel The media object to retrieve the image path from
*/
@@ -4529,11 +4522,11 @@
* @ngdoc function
* @name umbraco.services.mediaHelper#getThumbnail
* @methodOf umbraco.services.mediaHelper
* @function
* @function
*
* @description
* formats the display model used to display the content to the model used to save the content
*
*
* @param {object} options Options object
* @param {object} options.imageModel The media object to retrieve the image path from
*/
@@ -4554,43 +4547,39 @@
* @ngdoc function
* @name umbraco.services.mediaHelper#resolveFileFromEntity
* @methodOf umbraco.services.mediaHelper
* @function
* @function
*
* @description
* Gets the media file url for a media entity returned with the entityResource
*
*
* @param {object} mediaEntity A media Entity returned from the entityResource
* @param {boolean} thumbnail Whether to return the thumbnail url or normal url
*/
resolveFileFromEntity: function (mediaEntity, thumbnail) {
if (!angular.isObject(mediaEntity.metaData)) {
throw 'Cannot resolve the file url from the mediaEntity, it does not contain the required metaData';
if (!angular.isObject(mediaEntity.metaData) || !mediaEntity.metaData.MediaPath) {
//don't throw since this image legitimately might not contain a media path, but output a warning
$log.warn('Cannot resolve the file url from the mediaEntity, it does not contain the required metaData');
return null;
}
var values = _.values(mediaEntity.metaData);
for (var i = 0; i < values.length; i++) {
var val = values[i];
if (angular.isObject(val) && val.PropertyEditorAlias) {
for (var resolver in _mediaFileResolvers) {
if (val.PropertyEditorAlias === resolver) {
//we need to format a property variable that coincides with how the property would be structured
// if it came from the mediaResource just to keep things slightly easier for the file resolvers.
var property = { value: val.Value };
return _mediaFileResolvers[resolver](property, mediaEntity, thumbnail);
}
}
if (thumbnail) {
if (this.detectIfImageByExtension(mediaEntity.metaData.MediaPath)) {
return this.getThumbnailFromPath(mediaEntity.metaData.MediaPath);
} else {
return null;
}
} else {
return mediaEntity.metaData.MediaPath;
}
return '';
},
/**
* @ngdoc function
* @name umbraco.services.mediaHelper#resolveFile
* @methodOf umbraco.services.mediaHelper
* @function
* @function
*
* @description
* Gets the media file url for a media object returned with the mediaResource
*
*
* @param {object} mediaEntity A media Entity returned from the entityResource
* @param {boolean} thumbnail Whether to return the thumbnail url or normal url
*/
@@ -4660,11 +4649,11 @@
* @ngdoc function
* @name umbraco.services.mediaHelper#scaleToMaxSize
* @methodOf umbraco.services.mediaHelper
* @function
* @function
*
* @description
* Finds the corrct max width and max height, given maximum dimensions and keeping aspect ratios
*
*
* @param {number} maxSize Maximum width & height
* @param {number} width Current width
* @param {number} height Current height
@@ -4704,11 +4693,11 @@
* @ngdoc function
* @name umbraco.services.mediaHelper#getThumbnailFromPath
* @methodOf umbraco.services.mediaHelper
* @function
* @function
*
* @description
* Returns the path to the thumbnail version of a given media library image path
*
*
* @param {string} imagePath Image path, ex: /media/1234/my-image.jpg
*/
getThumbnailFromPath: function (imagePath) {
@@ -4726,11 +4715,11 @@
* @ngdoc function
* @name umbraco.services.mediaHelper#detectIfImageByExtension
* @methodOf umbraco.services.mediaHelper
* @function
* @function
*
* @description
* Returns true/false, indicating if the given path has an allowed image extension
*
*
* @param {string} imagePath Image path, ex: /media/1234/my-image.jpg
*/
detectIfImageByExtension: function (imagePath) {
@@ -5015,6 +5004,7 @@
var mainTreeEventHandler = null;
//tracks the user profile dialog
var userDialog = null;
var syncTreePromise;
function setMode(mode) {
switch (mode) {
case 'tree':
@@ -5059,6 +5049,7 @@
appState.setSectionState('showSearchResults', false);
appState.setGlobalState('stickyNavigation', false);
appState.setGlobalState('showTray', false);
appState.setMenuState('currentNode', null);
if (appState.getGlobalState('isTablet') === true) {
appState.setGlobalState('showNavigation', false);
}
@@ -5143,6 +5134,11 @@
//when a tree is loaded into a section, we need to put it into appState
mainTreeEventHandler.bind('treeLoaded', function (ev, args) {
appState.setTreeState('currentRootNode', args.tree);
if (syncTreePromise) {
mainTreeEventHandler.syncTree(syncTreePromise.args).then(function (syncArgs) {
syncTreePromise.resolve(syncArgs);
});
}
});
//when a tree node is synced this event will fire, this allows us to set the currentNode
mainTreeEventHandler.bind('treeSynced', function (ev, args) {
@@ -5248,8 +5244,10 @@
return mainTreeEventHandler.syncTree(args);
}
}
//couldn't sync
return angularHelper.rejectedPromise();
//create a promise and resolve it later
syncTreePromise = $q.defer();
syncTreePromise.args = args;
return syncTreePromise.promise;
},
/**
Internal method that should ONLY be used by the legacy API wrapper, the legacy API used to
@@ -5386,7 +5384,7 @@
if (menuAction.length !== 2) {
//if it is not two parts long then this most likely means that it's a legacy action
var js = action.metaData['jsAction'].replace('javascript:', '');
//there's not really a different way to acheive this except for eval
//there's not really a different way to achieve this except for eval
eval(js);
} else {
var menuActionService = $injector.get(menuAction[0]);
@@ -5547,12 +5545,13 @@
* hides the currently open dialog
*/
hideDialog: function (showMenu) {
setMode('default');
if (showMenu) {
this.showMenu(undefined, {
skipDefault: true,
node: appState.getMenuState('currentNode')
});
} else {
setMode('default');
}
},
/**
@@ -5928,7 +5927,7 @@
* @ngdoc service
* @name umbraco.services.searchService
*
*
*
* @description
* Service for handling the main application search, can currently search content, media and members
*
@@ -5941,10 +5940,10 @@
* angular.forEach(results, function(result){
* //returns:
* {name: "name", id: 1234, menuUrl: "url", editorPath: "url", metaData: {}, subtitle: "/path/etc" }
* })
* var result =
* })
* </pre>
* })
* var result =
* })
* </pre>
*/
angular.module('umbraco.services').factory('searchService', function ($q, $log, entityResource, contentResource, umbRequestHelper, $injector, searchResultFormatter) {
return {
@@ -5985,7 +5984,7 @@
if (!args.term) {
throw 'args.term is required';
}
return entityResource.search(args.term, 'Document', args.searchFrom, args.canceler).then(function (data) {
return entityResource.search(args.term, 'Document', args.searchFrom, args.canceler, args.dataTypeId).then(function (data) {
_.each(data, function (item) {
searchResultFormatter.configureContentResult(item);
});
@@ -6007,7 +6006,7 @@
if (!args.term) {
throw 'args.term is required';
}
return entityResource.search(args.term, 'Media', args.searchFrom).then(function (data) {
return entityResource.search(args.term, 'Media', args.searchFrom, args.canceler, args.dataTypeId).then(function (data) {
_.each(data, function (item) {
searchResultFormatter.configureMediaResult(item);
});
@@ -6032,7 +6031,7 @@
return entityResource.searchAll(args.term, args.canceler).then(function (data) {
_.each(data, function (resultByType) {
//we need to format the search result data to include things like the subtitle, urls, etc...
// this is done with registered angular services as part of the SearchableTreeAttribute, if that
// this is done with registered angular services as part of the SearchableTreeAttribute, if that
// is not found, than we format with the default formatter
var formatterMethod = searchResultFormatter.configureDefaultResult;
//check if a custom formatter is specified...
@@ -6759,7 +6758,7 @@
* @ngdoc service
* @name umbraco.services.tinyMceService
*
*
*
* @description
* A service containing all logic for all of the Umbraco TinyMCE plugins
*/
@@ -6819,7 +6818,7 @@
* @description
* Creates the umbrco insert embedded media tinymce plugin
*
* @param {Object} editor the TinyMCE editor instance
* @param {Object} editor the TinyMCE editor instance
* @param {Object} $scope the current controller scope
*/
createInsertEmbeddedMedia: function (editor, scope, callback) {
@@ -6844,7 +6843,7 @@
* @description
* Creates the umbrco insert media tinymce plugin
*
* @param {Object} editor the TinyMCE editor instance
* @param {Object} editor the TinyMCE editor instance
* @param {Object} $scope the current controller scope
*/
createMediaPicker: function (editor, scope, callback) {
@@ -6916,7 +6915,7 @@
* @description
* Creates the insert umbrco macro tinymce plugin
*
* @param {Object} editor the TinyMCE editor instance
* @param {Object} editor the TinyMCE editor instance
* @param {Object} $scope the current controller scope
*/
createInsertMacro: function (editor, $scope, callback) {
@@ -6935,7 +6934,7 @@
});
});
/**
* Because the macro gets wrapped in a P tag because of the way 'enter' works, this
* Because the macro gets wrapped in a P tag because of the way 'enter' works, this
* method will return the macro element if not wrapped in a p, or the p if the macro
* element is the only one inside of it even if we are deep inside an element inside the macro
*/
@@ -6943,7 +6942,7 @@
var e = $(element).closest('.umb-macro-holder');
if (e.length > 0) {
if (e.get(0).parentNode.nodeName === 'P') {
//now check if we're the only element
//now check if we're the only element
if (element.parentNode.childNodes.length === 1) {
return e.get(0).parentNode;
}
@@ -6972,7 +6971,7 @@
if (endSelection !== startSelection) {
//if the end selection is a macro then move the cursor
//NOTE: we don't have to handle when the selection comes from a previous parent because
// that is automatically taken care of with the normal onNodeChanged logic since the
// that is automatically taken care of with the normal onNodeChanged logic since the
// evt.element will be the macro once it becomes part of the selection.
var $testForMacro = $(endSelection).closest('.umb-macro-holder');
if ($testForMacro.length > 0) {
@@ -7060,7 +7059,7 @@
});
//set onNodeChanged event listener
editor.on('NodeChange', onNodeChanged);
/**
/**
* Listen for the keydown in the editor, we'll check if we are currently on a macro element, if so
* we'll check if the key down is a supported key which requires an action, otherwise we ignore the request
* so the macro cannot be edited.
@@ -7389,32 +7388,6 @@
prependToContext: true
});
},
/**
* @ngdoc method
* @name umbraco.services.tinyMceService#getAnchorNames
* @methodOf umbraco.services.tinyMceService
*
* @description
* From the given string, generates a string array where each item is the id attribute value from a named anchor
* 'some string <a id="anchor"></a>with a named anchor' returns ['anchor']
*
* @param {string} input the string to parse
*/
getAnchorNames: function (input) {
if (!input)
return [];
var anchorPattern = /<a id=\\"(.*?)\\">/gi;
var matches = input.match(anchorPattern);
var anchors = [];
if (matches) {
anchors = matches.map(function (v) {
return v.substring(v.indexOf('"') + 1, v.lastIndexOf('\\'));
});
}
return anchors.filter(function (val, i, self) {
return self.indexOf(val) === i;
});
},
insertLinkInEditor: function (editor, target, anchorElm) {
var href = target.url;
// We want to use the Udi. If it is set, we use it, else fallback to id, and finally to null
@@ -7463,7 +7436,7 @@
editor.execCommand('mceInsertLink', false, createElemAttributes());
}
}
if (!href) {
if (!href && !target.anchor) {
editor.execCommand('unlink');
return;
}
@@ -7473,8 +7446,12 @@
insertLink();
return;
}
// Is email and not //user@domain.com
if (href.indexOf('@') > 0 && href.indexOf('//') === -1 && href.indexOf('mailto:') === -1) {
if (!href) {
href = '';
}
// Is email and not //user@domain.com and protocol (e.g. mailto:, sip:) is not specified
if (href.indexOf('@') > 0 && href.indexOf('//') === -1 && href.indexOf(':') === -1) {
// assume it's a mailto link
href = 'mailto:' + href;
insertLink();
return;
@@ -8399,7 +8376,15 @@
self.loadNodeChildren({
node: node,
section: node.section
}).then(function () {
}).then(function (children) {
//we've reloaded a portion of the tree, call the callback if one is specified.
//TODO: In v8, we can just use deferred.notify
if (args.treeNodeExpanded && angular.isFunction(args.treeNodeExpanded)) {
args.treeNodeExpanded({
node: node,
children: children
});
}
//ok, got the children, let's find it
var found = self.getChildNode(node, args.path[currPathIndex]);
if (found) {
@@ -8854,12 +8839,17 @@
}
/** The default error callback used if one is not supplied in the opts */
function defaultError(data, status, headers, config) {
return {
var err = {
//NOTE: the default error message here should never be used based on the above docs!
errorMsg: angular.isString(opts) ? opts : 'An error occurred!',
data: data,
status: status
};
// if "opts" is a promise, we set "err.errorMsg" to be that promise
if (typeof opts == 'object' && typeof opts.then == 'function') {
err.errorMsg = opts;
}
return err;
}
//create the callbacs based on whats been passed in.
var callbacks = {
@@ -9263,6 +9253,25 @@
lastServerTimeoutSet = new Date();
}
}
function getMomentLocales(locales, supportedLocales) {
var localeUrls = [];
var locales = locales.split(',');
for (var i = 0; i < locales.length; i++) {
var locale = locales[i].toString().toLowerCase();
if (locale !== 'en-us') {
if (supportedLocales.indexOf(locale + '.js') > -1) {
localeUrls.push('lib/moment/' + locale + '.js');
}
if (locale.indexOf('-') > -1) {
var majorLocale = locale.split('-')[0] + '.js';
if (supportedLocales.indexOf(majorLocale) > -1) {
localeUrls.push('lib/moment/' + majorLocale);
}
}
}
}
return localeUrls;
}
/** resets all user data, broadcasts the notAuthenticated event and shows the login dialog */
function userAuthExpired(isLogout) {
//store the last user id and clear the user
@@ -9284,7 +9293,7 @@
userAuthExpired();
}
});
return {
var services = {
/** Internal method to display the login dialog */
_showLoginDialog: function () {
openLoginDialog();
@@ -9371,41 +9380,33 @@
},
/** Loads the Moment.js Locale for the current user. */
loadMomentLocaleForCurrentUser: function () {
function loadLocales(currentUser, supportedLocales) {
var locale = currentUser.locale.toLowerCase();
if (locale !== 'en-us') {
var localeUrls = [];
if (supportedLocales.indexOf(locale + '.js') > -1) {
localeUrls.push('lib/moment/' + locale + '.js');
}
if (locale.indexOf('-') > -1) {
var majorLocale = locale.split('-')[0] + '.js';
if (supportedLocales.indexOf(majorLocale) > -1) {
localeUrls.push('lib/moment/' + majorLocale);
}
}
return assetsService.load(localeUrls, $rootScope);
} else {
//return a noop promise
var deferred = $q.defer();
var promise = deferred.promise;
deferred.resolve(true);
return promise;
}
}
var promises = {
currentUser: this.getCurrentUser(),
supportedLocales: javascriptLibraryService.getSupportedLocalesForMoment()
};
return $q.all(promises).then(function (values) {
return loadLocales(values.currentUser, values.supportedLocales);
return services.loadLocales(values.currentUser.locale, values.supportedLocales);
});
},
/** Loads specific Moment.js Locales. */
loadLocales: function (locales, supportedLocales) {
var localeUrls = getMomentLocales(locales, supportedLocales);
if (localeUrls.length >= 1) {
return assetsService.load(localeUrls, $rootScope);
} else {
//return a noop promise
var deferred = $q.defer();
var promise = deferred.promise;
deferred.resolve(true);
return promise;
}
},
/** Called whenever a server request is made that contains a x-umb-user-seconds response header for which we can update the user's remaining timeout seconds */
setUserTimeout: function (newTimeout) {
setUserTimeoutInternal(newTimeout);
}
};
return services;
});
(function () {
'use strict';
+1 -1
View File
@@ -20,7 +20,7 @@
@Html.Partial(Model.PreviewExtendedHeaderView)
}
<div id="demo-iframe-wrapper" ng-show="frameLoaded" class="{{previewDevice.css}}">
<div id="demo-iframe-wrapper" class="{{previewDevice.css}}">
<iframe id="resultFrame" ng-src="{{pageUrl}}" frameborder="0" iframe-is-loaded></iframe>
</div>
<div class="canvasdesigner" ng-init="showDevicesPreview = true; showDevices = !@(disableDevicePreview); showPalettePicker = true" ng-mouseenter="positionSelectedHide()">
@@ -21,13 +21,13 @@
<datalist id="anchors">
<option value="{{a}}" ng-repeat="a in anchorValues"></option>
</datalist>
</umb-control-group>
</umb-control-group>
<umb-control-group label="@defaultdialogs_nodeNameLinkPicker">
<input type="text"
localize="placeholder"
placeholder="@placeholders_entername"
class="umb-editor umb-textstring"
localize="placeholder"
placeholder="@placeholders_entername"
class="umb-editor umb-textstring"
ng-model="target.name" />
</umb-control-group>
@@ -43,17 +43,18 @@
search-callback="onSearchResults"
search-from-id="{{searchInfo.searchFromId}}"
search-from-name="{{searchInfo.searchFromName}}"
datatype-id="{{searchInfo.dataTypeId}}"
show-search="{{searchInfo.showSearch}}"
section="{{section}}">
</umb-tree-search-box>
<br/>
<umb-tree-search-results ng-if="searchInfo.showSearch"
results="searchInfo.results"
select-result-callback="selectResult">
</umb-tree-search-results>
<div ng-hide="searchInfo.showSearch">
<umb-tree section="content"
hideheader="true"
@@ -61,9 +62,9 @@
eventhandler="dialogTreeEventHandler"
isdialog="true"
enablecheckboxes="true">
</umb-tree>
</umb-tree>
</div>
</div>
<div class="umb-panel-footer">
+11 -9
View File
@@ -88,21 +88,23 @@
<div class="flex justify-center items-center">
<umb-button type="button"
button-style="success"
label="Get started"
action="getStarted()">
</umb-button>
<umb-button ng-if="!avatarFile.uploaded"
type="button"
button-style="link"
label="Skip"
label="Done"
action="getStarted()">
</umb-button>
</div>
</div>
</div>
<div ng-show="invitedUser == null && inviteStep === 3" ng-if="inviteStep === 3" class="umb-login-container">
<div class="form">
<h1 style="margin-bottom: 10px; text-align: left;">Hi there</h1>
<p style="line-height: 1.6; margin-bottom: 25px;">
<localize key="user_userinviteExpiredMessage">Welcome to Umbraco! Unfortunately your invite has expired. Please contact your administrator and ask them to resend it.</localize>
</p>
<div ng-show="invitedUser == null" class="umb-login-container">
</div>
</div>
<div ng-show="invitedUser == null && !inviteStep" class="umb-login-container">
<div class="form">
<h1>{{greeting}}</h1>
@@ -2,7 +2,7 @@
<div class="umb-panel-body no-header with-footer umb-scrollable" ng-switch on="dialogMode">
<div class="umb-control-group">
<div ng-switch-when="list" ng-swicth-default class="tab-content form-horizontal umb-el-wrap">
<div ng-switch-when="list" ng-switch-default class="tab-content form-horizontal umb-el-wrap">
<ul class="nav nav-tabs nav-stacked">
<li ng-repeat="macro in macros">
<a href="#" ng-click="configureMacro(macro)" prevent-default>
@@ -35,4 +35,4 @@
</div>
</div>
</div>
</div>
</div>
@@ -9,6 +9,7 @@
search-from-id="{{searchInfo.searchFromId}}"
search-from-name="{{searchInfo.searchFromName}}"
show-search="{{searchInfo.showSearch}}"
datatype-id="{{searchInfo.dataTypeId}}"
section="content">
</umb-tree-search-box>
</div>
@@ -45,4 +46,4 @@
on-close="closeMiniListView()">
</umb-mini-list-view>
</div>
</div>
@@ -32,27 +32,32 @@
<li class="umb-checkbox-list__item" ng-repeat="contentTypeEntity in model.whereCompositionUsed"><a ng-click="vm.openContentType(contentTypeEntity.contentType, model.section)"><i class="{{contentTypeEntity.contentType.icon}}"></i>&nbsp;{{contentTypeEntity.contentType.name}}</a></li>
</ul>
</div>
<ul class="umb-checkbox-list">
<li class="umb-checkbox-list__item"
ng-repeat="compositeContentType in model.availableCompositeContentTypes | filter:searchTerm"
ng-class="{'-disabled': compositeContentType.allowed===false || compositeContentType.inherited, '-selected': vm.isSelected(compositeContentType.contentType.alias)}">
<div ng-if="vm.availableGroups.length > 0">
<ul class="umb-checkbox-list" ng-repeat="group in vm.availableGroups | filter:searchTerm">
<li style="font-weight: bold" ng-show="vm.availableGroups.length > 1">
<i class="icon-folder umb-checkbox-list__item-icon"></i>
{{group.containerPath}}
</li>
<li class="umb-checkbox-list__item"
ng-repeat="compositeContentType in group.compositeContentTypes | orderBy:'contentType.name' | filter:searchTerm"
ng-class="{'-disabled': compositeContentType.allowed===false || compositeContentType.inherited, '-selected': vm.isSelected(compositeContentType.contentType.alias)}">
<div class="umb-checkbox-list__item-checkbox"
ng-class="{ '-selected': model.compositeContentTypes.indexOf(compositeContentType.contentType.alias)+1 }">
<input type="checkbox"
id="umb-overlay-comp-{{compositeContentType.contentType.key}}"
checklist-model="model.compositeContentTypes"
checklist-value="compositeContentType.contentType.alias"
ng-change="model.selectCompositeContentType(compositeContentType.contentType)"
ng-disabled="compositeContentType.allowed===false || compositeContentType.inherited" />
</div>
<div class="umb-checkbox-list__item-checkbox"
ng-class="{ '-selected': model.compositeContentTypes.indexOf(compositeContentType.contentType.alias)+1 }">
<input type="checkbox"
id="umb-overlay-comp-{{compositeContentType.contentType.key}}"
checklist-model="model.compositeContentTypes"
checklist-value="compositeContentType.contentType.alias"
ng-change="model.selectCompositeContentType(compositeContentType.contentType)"
ng-disabled="compositeContentType.allowed===false || compositeContentType.inherited" />
</div>
<label for="umb-overlay-comp-{{compositeContentType.contentType.key}}" class="umb-checkbox-list__item-text" ng-class="{'-faded': compositeContentType.allowed===false}">
<i class="{{ compositeContentType.contentType.icon }} umb-checkbox-list__item-icon"></i>
{{ compositeContentType.contentType.name }}
<span class="umb-checkbox-list__item-caption" ng-if="compositeContentType.inherited">(inherited)</span>
</label>
</li>
</ul>
<label for="umb-overlay-comp-{{compositeContentType.contentType.key}}" class="umb-checkbox-list__item-text" ng-class="{'-faded': compositeContentType.allowed===false}">
<i class="{{ compositeContentType.contentType.icon }} umb-checkbox-list__item-icon"></i>
{{ compositeContentType.contentType.name }}
<span class="umb-checkbox-list__item-caption" ng-if="compositeContentType.inherited">(inherited)</span>
</label>
</li>
</ul>
</div>
</div>
@@ -1,5 +1,3 @@
<div ng-controller="Umbraco.Overlays.IconPickerOverlay">
<div class="umb-control-group">
@@ -17,7 +15,11 @@
</div>
<div class="umb-control-group">
<umb-color-swatches colors="colors" selected-color="color" size="s"></umb-color-swatches>
<umb-color-swatches colors="colors"
selected-color="color"
size="s"
use-color-class="true">
</umb-color-swatches>
</div>
<umb-load-indicator ng-if="loading"></umb-load-indicator>
@@ -12,7 +12,7 @@
</div>
<ul class="umb-card-grid">
<li ng-repeat="availableItem in model.availableItems | compareArrays:model.selectedItems:'alias' | orderBy:'name' | filter:searchTerm"
<li ng-repeat="availableItem in model.availableItems | compareArrays:model.selectedItems:'alias' | orderBy:model.orderBy | filter:searchTerm"
ng-click="selectItem(availableItem)"
class="-three-in-row">
<a class="umb-card-grid-item" href="" title="{{ availableItem.name }}">
@@ -43,12 +43,12 @@
<h5>
<localize key="defaultdialogs_linkToPage">Link to page</localize>
</h5>
<div ng-hide="miniListView">
<umb-tree-search-box hide-search-callback="hideSearch"
search-callback="onSearchResults"
search-from-id="{{searchInfo.searchFromId}}"
search-from-name="{{searchInfo.searchFromName}}"
datatype-id="{{searchInfo.dataTypeId}}"
show-search="{{searchInfo.showSearch}}"
section="{{section}}">
</umb-tree-search-box>
@@ -64,6 +64,7 @@
<umb-tree section="content"
hideheader="true"
hideoptions="true"
customtreeparams="{{customTreeParams}}"
eventhandler="dialogTreeEventHandler"
enablelistviewexpand="true"
isdialog="true"
@@ -11,7 +11,6 @@
<umb-load-indicator ng-if="loading">
</umb-load-indicator>
<div class="form-search">
<i class="icon-search"></i>
<input class="umb-search-field search-query -full-width-input"
@@ -21,6 +20,13 @@
ng-change="changeSearch()"
type="text"
no-dirty-check />
<div class="form-search__toggle">
<input type="checkbox" ng-model="showChilds" ng-change="toggle()" />
<label>
<localize key="general_includeFromsubFolders">Include subfolders in search</localize>
</label>
</div>
</div>
<div class="upload-button">
@@ -83,7 +89,9 @@
item-max-height="150"
item-min-width="100"
item-min-height="100"
only-images={{onlyImages}}>
only-images={{onlyImages}}
include-sub-folders={{showChilds}}
current-Folder-id="{{currentFolder.id}}">
</umb-media-grid>
<div class="flex justify-center">
@@ -10,6 +10,7 @@
search-from-id="{{searchInfo.searchFromId}}"
search-from-name="{{searchInfo.searchFromName}}"
show-search="{{searchInfo.showSearch}}"
datatype-id="{{searchInfo.dataTypeId}}"
section="{{section}}">
</umb-tree-search-box>
</div>
@@ -19,7 +20,7 @@
results="searchInfo.results"
select-result-callback="selectResult">
</umb-tree-search-results>
<umb-empty-state ng-if="!hasItems && emptyStateMessage" position="center">
{{ emptyStateMessage }}
</umb-empty-state>
@@ -48,7 +49,8 @@
entity-type="{{entityType}}"
start-node-id="model.startNodeId"
on-select="selectListViewNode(node)"
on-close="closeMiniListView()">
on-close="closeMiniListView()"
entity-type-filter="filter">
</umb-mini-list-view>
</div>
</div>
@@ -1,5 +1,4 @@
<div ng-controller="Umbraco.Overlays.UserController">
<div class="umb-control-group" ng-if="!showPasswordFields">
<h5><localize key="user_yourProfile" /></h5>
@@ -78,7 +77,7 @@
</div>
<div class="umb-control-group" ng-if="!showPasswordFields">
<div class="umb-control-group" ng-if="!showPasswordFields && history.length">
<h5><localize key="user_yourHistory" /></h5>
<ul class="umb-tree">
<li ng-repeat="item in history | orderBy:'time':true">
@@ -126,7 +125,7 @@
</div>
<div class="umb-control-group">
<div class="umb-control-group" ng-if="tab.length">
<div ng-repeat="tab in dashboard">
<div ng-repeat="property in tab.properties">
<div>
@@ -1,4 +1,4 @@
<button ng-click="click()" type="button" class="umb-toggle dib" ng-class="{'umb-toggle--checked': checked}">
<button ng-click="click()" type="button" class="umb-toggle" ng-disabled="disabled" ng-class="{'umb-toggle--checked': checked, 'umb-toggle--disabled': disabled}">
<span ng-if="!labelPosition && showLabels === 'true' || labelPosition === 'left' && showLabels === 'true'">
<span ng-if="!checked" class="umb-toggle__label umb-toggle__label--left">{{ displayLabelOff }}</span>
@@ -6,9 +6,9 @@
</span>
<div class="umb-toggle__toggle">
<i ng-show="checked && !hideIcons" class="umb-toggle__icon umb-toggle__icon--left icon-check"></i>
<i ng-show="checked && hideIcons !== 'true'" class="umb-toggle__icon umb-toggle__icon--left icon-check"></i>
<div class="umb-toggle__handler shadow-depth-1"></div>
<i ng-show="!checked && !hideIcons" class="umb-toggle__icon umb-toggle__icon--right icon-wrong"></i>
<i ng-show="!checked && hideIcons !== 'true'" class="umb-toggle__icon umb-toggle__icon--right icon-wrong"></i>
</div>
<span ng-if="labelPosition === 'right' && showLabels === 'true'">
@@ -2,11 +2,11 @@
<div class="umb-package-details__main-content">
<umb-box data-element="node-info-urls">
<umb-box ng-if="node.urls" data-element="node-info-urls">
<umb-box-header title-key="general_links"></umb-box-header>
<umb-box-content class="block-form">
<ul class="nav nav-stacked" style="margin-bottom: 0;">
<li ng-repeat="url in node.urls">
<li ng-repeat="url in node.urls track by $index">
<a ng-if="node.hasPublishedVersion" href="{{url}}" target="_blank">
<i class="icon icon-window-popin"></i>
<span>{{url}}</span>
@@ -19,6 +19,23 @@
</ul>
</umb-box-content>
</umb-box>
<umb-box data-element="node-info-redirects" style="display:none;" ng-cloak ng-show="!urlTrackerDisabled && hasRedirects">
<umb-box-header title-key="redirectUrls_redirectUrlManagement"></umb-box-header>
<umb-box-content class="block-form">
<div style="position: relative;">
<div ng-if="loadingRedirectUrls" style="background: rgba(255, 255, 255, 0.8); position: absolute; top: 0; left: 0; right: 0; bottom: 0;"></div>
<umb-load-indicator ng-if="loadingRedirectUrls"></umb-load-indicator>
<div ng-show="hasRedirects">
<p><localize key="redirectUrls_panelInformation" class="ng-isolate-scope ng-scope">The following URLs redirect to this content item:</localize></p>
<ul class="nav nav-stacked" style="margin-bottom: 0;">
<li ng-repeat="redirectUrl in redirectUrls">
<a href="{{redirectUrl.originalUrl}}" target="_blank"><i ng-class="value.icon" class="icon-out"></i> {{redirectUrl.originalUrl}}</a>
</li>
</ul>
</div>
</div>
</umb-box-content>
</umb-box>
<umb-box data-element="node-info-history">
<umb-box-header title-key="general_history"></umb-box-header>
@@ -61,6 +78,7 @@
<div class="history-item__break">
<umb-badge size="xs"
color="{{item.logTypeColor}}">
<!--{{ item.logType }}-->
<localize key="auditTrails_small{{ item.logType }}">{{ item.logType }}</localize>
</umb-badge>
@@ -89,7 +107,7 @@
</div>
<div class="umb-package-details__sidebar">
<umb-box data-element="node-info-scheduled-publishing">
<umb-box data-element="node-info-scheduled-publishing" ng-if="allowScheduledPublishing">
<umb-box-header title-key="general_scheduledPublishing"></umb-box-header>
<umb-box-content class="block-form">
@@ -171,7 +189,7 @@
</umb-badge>
</umb-control-group>
<umb-control-group data-element="node-info-create-date" label="@template_createdDate">
<umb-control-group ng-if="node.id !== 0" data-element="node-info-create-date" label="@template_createdDate">
{{node.createDateFormatted}} <localize key="general_by">by</localize> {{ node.owner.name }}
</umb-control-group>
@@ -180,9 +198,10 @@
style="max-width: 100%; margin-bottom: 0;"
icon="node.icon"
name="node.contentTypeName"
alias="documentType.alias"
allow-open="allowOpen"
on-open="openDocumentType(documentType)"
open-url="previewOpenUrl">
open-url="previewOpenUrl">
</umb-node-preview>
</umb-control-group>
@@ -201,7 +220,7 @@
</div>
</umb-control-group>
<umb-control-group data-element="node-info-id" label="Id">
<umb-control-group ng-if="node.id !== 0" data-element="node-info-id" label="Id">
<div>{{ node.id }}</div>
<small>{{ node.key }}</small>
</umb-control-group>
@@ -0,0 +1,14 @@
<label class="checkbox umb-form-check umb-form-check--checkbox">
<input type="checkbox" name="{{name}}"
value="{{value}}"
ng-model="model"
class="umb-form-check__input"
ng-required="required" />
<div class="umb-form-check__state umb-form-check__state" aria-hidden="true">
<div class="umb-form-check__check">
<i class="umb-form-check__icon icon-check"></i>
</div>
</div>
<span class="umb-form-check__text">{{text}}</span>
</label>
@@ -0,0 +1,11 @@
<label class="radio umb-form-check umb-form-check--radiobutton">
<input type="radio" name="radiobuttons-{{name}}"
value="{{value}}"
ng-model="model"
class="umb-form-check__input" />
<div class="umb-form-check__state umb-form-check__state" aria-hidden="true">
<div class="umb-form-check__check"></div>
</div>
<span class="umb-form-check__text">{{text}}</span>
</label>
@@ -6,7 +6,7 @@
</div>
</div>
<div class="crop-slider">
<div class="crop-slider" ng-if="loaded">
<i class="icon-picture"></i>
<input
type="range"
@@ -16,4 +16,4 @@
ng-model="dimensions.scale.current" />
<i class="icon-picture" style="font-size: 22px"></i>
</div>
</div>
</div>
@@ -1,12 +1,14 @@
<div class="umb-cropper-gravity">
<div class="gravity-container" ng-show="loaded">
<div class="viewport">
<img ng-src="{{src}}" style="max-width: 100%; max-height: 100%" ng-click="setFocalPoint($event)" draggable="false" />
<div class="viewport">
<div class="overlay" ng-style="style()">
<img ng-show="isCroppable" ng-src="{{src}}" style="max-width: 100%; max-height: 100%" ng-click="setFocalPoint($event)" draggable="false"/>
<img ng-show="!isCroppable && !hasDimensions" ng-src="{{src}}" width="200" height="200" draggable="false" style="cursor: default;"/>
</div>
<div ng-show="isCroppable" class="overlay" ng-style="style()">
</div>
</div>
</div>
</div>
</div>
@@ -12,7 +12,7 @@
<ul ng-if="nodeUrl" class="nav nav-stacked" style="margin-bottom: 0;">
<li>
<a href="{{nodeUrl}}" target="_blank">
<a ng-attr-href="{{node.extension !== 'svg' ? nodeUrl : undefined}}" ng-click="node.extension === 'svg' && openSVG()" target="_blank">
<i class="icon icon-window-popin"></i>
<span>{{nodeUrl}}</span>
</a>
@@ -29,11 +29,11 @@
<umb-box-header title-key="general_general"></umb-box-header>
<umb-box-content class="block-form">
<umb-control-group data-element="node-info-create-date" label="@content_createDate">
<umb-control-group ng-if="node.id !== 0" data-element="node-info-create-date" label="@content_createDate">
{{node.createDateFormatted}} by {{ node.owner.name }}
</umb-control-group>
<umb-control-group data-element="node-info-update-date" label="@content_updateDate">
<umb-control-group ng-if="node.id !== 0" data-element="node-info-update-date" label="@content_updateDate">
{{node.updateDateFormatted}}
</umb-control-group>
@@ -47,7 +47,7 @@
</umb-node-preview>
</umb-control-group>
<umb-control-group data-element="node-info-id" label="Id">
<umb-control-group ng-if="node.id !== 0" data-element="node-info-id" label="Id">
<div>{{ node.id }}</div>
<small>{{ node.key }}</small>
</umb-control-group>
@@ -9,12 +9,15 @@
<div ng-if="notification.view">
<div ng-include="notification.view"></div>
</div>
<div ng-if="notification.headline">
<a ng-href="{{notification.url}}" target="_blank">
<div ng-if="notification.headline" ng-switch on="{{notification}}">
<a ng-href="{{notification.url}}" ng-switch-when="{{notification.url && notification.url.trim() != ''}}" target="_blank">
<strong>{{notification.headline}}</strong>
<span ng-bind-html="notification.message"></span>
</a>
<div ng-switch-default>
<strong>{{notification.headline}}</strong>
<span ng-bind-html="notification.message"></span>
</div>
</div>
</li>
</ul>
@@ -1,8 +1,14 @@
<div class="umb-color-swatches">
<div class="umb-color-swatches" ng-class="{ 'with-labels': useLabel }">
<button class="umb-color-box umb-color-box--{{size}} btn-{{color.value}}" ng-repeat="color in colors" title="{{color.name}}" ng-class="{active:color.value === selectedColor}" ng-click="setColor(color.value)">
<div class="check_circle">
<i class="icon icon-check small"></i>
<button type="button" class="umb-color-box umb-color-box--{{size}} btn-{{color.value}}" ng-repeat="color in colors" title="{{useLabel || useColorClass ? (color.label || color.value) : ('#' + color.value)}}" hex-bg-inline="{{useColorClass === false}}" hex-bg-color="{{color.value}}" ng-class="{ 'active': color.value === selectedColor }" ng-click="setColor(color.value)">
<div class="umb-color-box-inner">
<div class="check_circle">
<i class="icon icon-check small"></i>
</div>
<div class="umb-color-box__label" ng-if="useLabel">
<div class="umb-color-box__name truncate">{{ color.label || color.value }}</div>
<div class="umb-color-box__description">#{{ color.value }}</div>
</div>
</div>
</button>
@@ -33,8 +33,10 @@
<umb-editor model="preValue" is-pre-value="true"></umb-editor>
</umb-property>
<button type="button" class="btn" ng-click="toggleEditListViewDataTypeSettings()"><localize key="general_close">Close</localize></button>
<button type="button" class="btn btn-success" ng-click="saveListViewDataType()"><localize key="buttons_saveListView"></localize></button>
<div class="text-right">
<button type="button" class="btn btn-link" ng-click="toggleEditListViewDataTypeSettings()"><localize key="general_close">Close</localize></button>
<button type="button" class="btn btn-success" ng-click="saveListViewDataType()"><localize key="buttons_saveListView"></localize></button>
</div>
</div>
</div>
@@ -21,8 +21,10 @@
<img class="umb-media-grid__item-image-placeholder" ng-if="!item.thumbnail && item.extension != 'svg'" src="assets/img/transparent.png" alt="{{item.name}}" draggable="false" />
<!-- Icon for files -->
<i class="umb-media-grid__item-icon {{item.icon}}" ng-if="!item.thumbnail && item.extension != 'svg'"></i>
<span class="umb-media-grid__item-file-icon" ng-if="!item.thumbnail && item.extension != 'svg'">
<i class="umb-media-grid__item-icon {{item.icon}}"></i>
<span ng-if="item.extension">.{{item.extension}}</span>
</span>
</div>
</div>
</div>
@@ -1,4 +1,4 @@
<div>
<div class="umb-minilistview">
<div ng-repeat="miniListView in miniListViews" ng-animate="getMiniListViewAnimation()">
@@ -61,7 +61,7 @@
<div class="umb-table-row"
ng-repeat="child in miniListView.children"
ng-click="selectNode(child)"
ng-class="{'-selected':child.selected}">
ng-class="{'-selected':child.selected, 'not-allowed':!child.allowed}">
<div class="umb-table-cell umb-table-cell--auto-width" ng-class="{'umb-table-cell--faded':child.published === false}">
<div class="flex items-center">
<ins class="icon-navigation-right umb-table__row-expand" ng-click="openNode($event, child)" ng-class="{'umb-table__row-expand--hidden': child.hasChildren !== true}">&nbsp;</ins>
@@ -32,7 +32,8 @@
ng-class="{
'-selected':item.selected,
'-published':item.published,
'-unpublished':!item.published
'-unpublished':!item.published,
'with-unpublished-version':!item.published && item.hasPublishedVersion
}"
ng-click="selectItem(item, $index, $event)">
@@ -37,12 +37,6 @@
</div>
</div>
<div ng-show="hideDropzone" ngf-drag-over-class="hide" class="text-center">
<small>
<localize key="media_dragFilesHereToUpload">You can drag files here to upload</localize>
</small>
</div>
<!-- List of uploading/uploaded files -->
<ul class="file-list" ng-show="done.length > 0 || queue.length > 0 || rejected.length > 0 || filesHolder.length > 0">
+7 -4
View File
@@ -11,14 +11,17 @@
<div ng-show="success">
<div class="alert alert-success">
<strong>{{currentNode.name}}</strong> was copied to
<strong>{{currentNode.name}}</strong>
<localize key="actions_wasCopiedTo">was copied to</localize>
<strong>{{target.name}}</strong>
</div>
<button class="btn btn-primary" ng-click="nav.hideDialog()">Ok</button>
</div>
<p class="abstract" ng-hide="success">
Choose where to copy <strong>{{currentNode.name}}</strong> to in the tree structure below
<localize key="actions_chooseWhereToCopy">Choose where to copy</localize>
<strong>{{currentNode.name}}</strong>
<localize key="actions_toInTheTreeStructureBelow">to in the tree structure below</localize>
</p>
<div class="umb-loader-wrapper" ng-show="busy">
@@ -83,10 +86,10 @@
</div>
<div class="umb-dialog-footer btn-toolbar umb-btn-toolbar" ng-hide="success">
<a class="btn btn-link" ng-click="nav.hideDialog()" ng-if="!busy">
<a class="btn btn-link" ng-click="nav.hideDialog()" ng-show="!busy">
<localize key="general_cancel">Cancel</localize>
</a>
<button class="btn btn-primary" ng-click="copy()" ng-disabled="busy">
<button class="btn btn-primary" ng-click="copy()" ng-disabled="busy || !target">
<localize key="actions_copy">Copy</localize>
</button>
</div>
+1 -1
View File
@@ -25,7 +25,7 @@
</ul>
<ul class="umb-actions umb-actions-child" ng-show="selectBlueprint">
<li ng-repeat="(key, value) in docType.blueprints | orderBy:'name':false">
<li ng-repeat="(key, value) in docType.blueprints | orderBy:'name':false track by $index">
<a ng-click="createFromBlueprint(key)">
<i class="large {{docType.icon}}"></i>
<span class="menu-label">
+16 -6
View File
@@ -1,12 +1,22 @@
<div class="umb-dialog umb-pane" ng-controller="Umbraco.Editors.Content.DeleteController">
<div class="umb-dialog-body" auto-scale="90">
<p class="umb-abstract">
<localize key="defaultdialogs_confirmdelete">Are you sure you want to delete</localize> <strong>{{currentNode.name}}</strong> ?
</p>
<umb-confirm on-confirm="performDelete" on-cancel="cancel">
</umb-confirm>
<div ng-show="success">
<div class="alert alert-success">
<strong>{{currentNode.name}}</strong>
<localize key="actions_wasDeleted">was deleted</localize>
</div>
<button class="btn btn-primary" ng-click="nav.hideDialog()">Ok</button>
</div>
<div ng-hide="success">
<p class="umb-abstract">
<localize key="defaultdialogs_confirmdelete">Are you sure you want to delete</localize> <strong>{{currentNode.name}}</strong> ?
</p>
<umb-confirm on-confirm="performDelete" on-cancel="cancel">
</umb-confirm>
</div>
</div>
</div>
@@ -7,7 +7,7 @@
<p class="umb-abstract">
<localize key="defaultdialogs_recycleBinWarning">When items are deleted from the recycle bin, they will be gone forever</localize>.
<localize key="general_areyousure">Are you sure</localize>?
<localize key="general_areyousure">Are you sure?</localize>
</p>
<umb-confirm on-confirm="performDelete" on-cancel="cancel">
+6 -4
View File
@@ -11,7 +11,9 @@
<div ng-show="success">
<div class="alert alert-success">
<strong>{{currentNode.name}}</strong> was moved underneath&nbsp;<strong>{{target.name}}</strong>
<strong>{{currentNode.name}}</strong>
<localize key="actions_wasMovedTo">was moved to</localize>
<strong>{{target.name}}</strong>
</div>
<button class="btn btn-primary" ng-click="nav.hideDialog()">Ok</button>
</div>
@@ -73,11 +75,11 @@
<div class="umb-dialog-footer btn-toolbar umb-btn-toolbar" ng-hide="success">
<a class="btn btn-link" ng-click="nav.hideDialog()" ng-if="!busy">
<a class="btn btn-link" ng-click="nav.hideDialog()" ng-show="!busy">
<localize key="general_cancel">Cancel</localize>
</a>
<button class="btn btn-primary" ng-click="move()" ng-disabled="busy">
<button class="btn btn-primary" ng-click="move()" ng-disabled="busy || !target">
<localize key="actions_move">Move</localize>
</button>
</div>
</div>
</div>
+41 -37
View File
@@ -1,44 +1,48 @@
<div ng-controller="Umbraco.Editors.Content.CreateNotifyController as vm">
<umb-load-indicator ng-if="vm.loading"></umb-load-indicator>
<div class="umb-pane" ng-show="!vm.loading">
<form name="notifyForm"
novalidate
val-form-manager>
<div ng-show="vm.saveError" ng-cloak>
<div class="alert alert-error">
<div><strong>{{vm.saveError.errorMsg}}</strong></div>
<div>{{vm.saveError.data.message}}</div>
<div class="umb-dialog-body">
<div class="umb-pane" ng-show="!vm.loading">
<form name="notifyForm"
novalidate
val-form-manager>
<div ng-show="vm.saveError" ng-cloak>
<div class="alert alert-error">
<div><strong>{{vm.saveError.errorMsg}}</strong></div>
<div>{{vm.saveError.data.message}}</div>
</div>
</div>
</div>
<div ng-show="vm.saveSuccces" ng-cloak>
<div class="alert alert-success">
<localize key="notify_notificationsSavedFor"></localize><strong> {{currentNode.name}}</strong>
<div ng-show="vm.saveSuccces" ng-cloak>
<div class="alert alert-success">
<localize key="notifications_notificationsSavedFor"></localize> <strong>{{currentNode.name}}</strong>
</div>
<button class="btn btn-primary" ng-click="vm.cancel()"><localize key="general_ok">Ok</localize></button>
</div>
</div>
<div ng-cloak>
<div class="block-form" ng-show="!vm.loading">
<h5><localize key="notify_notifySet">Set your notification for</localize> {{ currentNode.name }}</h5>
<umb-control-group>
<umb-permission ng-repeat="option in vm.notifyOptions"
name="option.name"
description="option.description"
selected="option.checked">
</umb-permission>
</umb-control-group>
<div ng-hide="vm.saveSuccces || vm.saveError" ng-cloak>
<div class="block-form" ng-show="!vm.loading">
<span ng-bind-html="vm.labels.headline"></span>
<umb-control-group>
<umb-permission ng-repeat="option in vm.notifyOptions"
name="option.name"
description="option.description"
selected="option.checked">
</umb-permission>
</umb-control-group>
</div>
</div>
</div>
<div class="umb-dialog-footer btn-toolbar umb-btn-toolbar">
<umb-button label-key="general_cancel"
action="vm.cancel()"
type="button"
button-style="link">
</umb-button>
<umb-button label-key="buttons_save"
type="button"
action="vm.save(vm.notifyOptions)"
button-style="success">
</umb-button>
</div>
</form>
</form>
</div>
</div>
<div class="umb-dialog-footer btn-toolbar umb-btn-toolbar" ng-hide="vm.saveSuccces || vm.saveError">
<umb-button label-key="general_cancel"
action="vm.cancel()"
type="button"
button-style="link">
</umb-button>
<umb-button label-key="buttons_save"
type="button"
action="vm.save(vm.notifyOptions)"
state="vm.saveState"
button-style="success">
</umb-button>
</div>
</div>
+79 -13
View File
@@ -1,26 +1,92 @@
<div ng-controller="Umbraco.Editors.Content.RestoreController">
<div class="umb-dialog-body">
<div class="umb-dialog-body" ng-cloak>
<umb-pane>
<umb-load-indicator
ng-if="loading">
</umb-load-indicator>
<p class="abstract" ng-hide="error != null || success == true">
<localize key="actions_restore">Restore</localize> <strong>{{currentNode.name}}</strong> <localize key="general_under">under</localize> <strong>{{target.name}}</strong>?
</p>
<div ng-show="error">
<div class="alert alert-error">
<div><strong>{{error.errorMsg}}</strong></div>
<div>{{error.data.Message}}</div>
</div>
</div>
<div class="alert alert-error" ng-show="error != null">
<div><strong>{{error.errorMsg}}</strong></div>
<div>{{error.data.Message}}</div>
</div>
<div ng-show="success">
<div class="alert alert-success">
<strong>{{source.name}}</strong>
<span ng-hide="moving"><localize key="recycleBin_wasRestored">was restored under</localize></span>
<span ng-show="moving"><localize key="editdatatype_wasMoved">was moved underneath</localize></span>
<strong>{{target.name}}</strong>
</div>
<button class="btn btn-primary" ng-click="nav.hideDialog()">Ok</button>
</div>
<div class="alert alert-success" ng-show="success == true">
<p><strong>{{currentNode.name}}</strong> <localize key="editdatatype_wasMoved">was moved underneath</localize> <strong>{{target.name}}</strong></p>
<button class="btn btn-primary" ng-click="nav.hideDialog()"><localize key="general_ok">OK</localize></button>
</div>
<div ng-hide="moving || loading || success">
<p class="abstract" ng-hide="error || success">
<localize key="actions_restore">Restore</localize> <strong>{{source.name}}</strong> <localize key="general_under">under</localize> <strong>{{target.name}}</strong>?
</p>
</div>
<div ng-hide="!moving || loading || success">
<div>
<div class="alert alert-info">
<div><strong><localize key="recycleBin_itemCannotBeRestored">Cannot automatically restore this item</localize></strong></div>
<div><localize key="recycleBin_itemCannotBeRestoredHelpText">There is no location where this item can be automatically restored. You can move the item manually using the tree below.</localize></div>
</div>
</div>
<div ng-hide="miniListView">
<umb-tree-search-box
hide-search-callback="hideSearch"
search-callback="onSearchResults"
show-search="{{searchInfo.showSearch}}"
section="content">
</umb-tree-search-box>
<br />
<umb-tree-search-results
ng-if="searchInfo.showSearch"
results="searchInfo.results"
select-result-callback="selectResult">
</umb-tree-search-results>
<div ng-hide="searchInfo.showSearch">
<umb-tree
section="content"
hideheader="{{treeModel.hideHeader}}"
hideoptions="true"
isdialog="true"
eventhandler="dialogTreeEventHandler"
enablelistviewexpand="true"
enablecheckboxes="true">
</umb-tree>
</div>
</div>
<umb-mini-list-view
ng-if="miniListView"
node="miniListView"
entity-type="Document"
on-select="selectListViewNode(node)"
on-close="closeMiniListView()">
</umb-mini-list-view>
</div>
</umb-pane>
</div>
<div class="umb-dialog-footer btn-toolbar umb-btn-toolbar" ng-hide="success == true">
<div class="umb-dialog-footer btn-toolbar umb-btn-toolbar" ng-hide="loading || moving || success">
<a class="btn btn-link" ng-click="nav.hideDialog()"><localize key="general_cancel">Cancel</localize></a>
<button class="btn btn-primary" ng-click="restore()" ng-show="error == null"><localize key="actions_restore">Restore</localize></button>
</div>
<div class="umb-dialog-footer btn-toolbar umb-btn-toolbar" ng-hide="loading || !moving || success">
<a class="btn btn-link" ng-click="nav.hideDialog()"><localize key="general_cancel">Cancel</localize></a>
<button class="btn btn-primary" ng-click="restore()" ng-show="error == null" ng-disabled="!target"><localize key="actions_move">Move</localize></button>
</div>
</div>
@@ -106,7 +106,7 @@
<button
type="button"
class="umb-era-button umb-button--s -green"
class="umb-era-button umb-button--s -green pull-left"
ng-class="{ '-inactive': healthCheckAction.providedValue.$invalid}"
ng-click="vm.executeAction(check, $parent.$index, action);"
ng-disabled="healthCheckAction.providedValue.$invalid">
@@ -1,18 +1,20 @@
<h3>Hours of Umbraco training videos are only a click away</h3>
<p>Want to master Umbraco? Spend a couple of minutes learning some best practices by watching one of these videos about using Umbraco. And visit <a href="http://umbraco.tv" target="_blank">umbraco.tv</a> for even more Umbraco videos</p>
<h4>To get you started:</h4>
<div class="row-fluid"
ng-init="init('http://umbraco.tv/videos/implementor/chapterrss?sort=no')"
ng-init="init('https://umbraco.tv/videos/implementor/chapterrss?sort=no')"
ng-controller="Umbraco.Dashboard.StartupVideosController">
<ul class="thumbnails" >
<li class="span2" ng-repeat="video in videos">
<div class="thumbnail" style="margin-right: 20px">
<a target="_blank" href="{{video.link}}" title="{{video.title}}">
<img ng-src="{{video.thumbnail}}" alt="{{video.title}}">
</a>
</div>
</li>
</ul>
</div>
<div ng-show="videos.length">
<h4>To get you started:</h4>
<ul class="thumbnails" >
<li class="span2" ng-repeat="video in videos">
<div class="thumbnail" style="margin-right: 20px">
<a target="_blank" href="{{video.link}}" title="{{video.title}}">
<img ng-src="{{video.thumbnail}}" alt="{{video.title}}">
</a>
</div>
</li>
</ul>
</div>
</div>
@@ -1,18 +1,20 @@
<h3>Hours of Umbraco training videos are only a click away</h3>
<p>Want to master Umbraco? Spend a couple of minutes learning some best practices by watching one of these videos about using Umbraco. And visit <a href="https://umbraco.tv" target="_blank">umbraco.tv</a> for even more Umbraco videos</p>
<h4>To get you started:</h4>
<div class="row-fluid"
ng-init="init('https://www.umbraco.com/feeds/videos/members')"
ng-init="init('https://umbraco.com/feeds/videos/members')"
ng-controller="Umbraco.Dashboard.StartupVideosController">
<ul class="thumbnails" >
<li class="span2" ng-repeat="video in videos">
<div class="thumbnail" style="margin-right: 20px">
<a target="_blank" href="{{video.link}}" title="{{video.title}}">
<img ng-src="{{video.thumbnail}}" alt="{{video.title}}">
</a>
</div>
</li>
</ul>
<div ng-show="videos.length">
<h4>To get you started:</h4>
<ul class="thumbnails" >
<li class="span2" ng-repeat="video in videos">
<div class="thumbnail" style="margin-right: 20px">
<a target="_blank" href="{{video.link}}" title="{{video.title}}">
<img ng-src="{{video.thumbnail}}" alt="{{video.title}}">
</a>
</div>
</li>
</ul>
</div>
</div>
@@ -5,9 +5,9 @@
<h4>Find out more:</h4>
<ul>
<li>Read more about working with the Items in Settings <a class="btn-link -underline" href="https://our.umbraco.com/documentation/Getting-Started/Backoffice/Sections/" target="_blank">in the Documentation section</a> of Our Umbraco</li>
<li>Read more about working with the items in Settings <a class="btn-link -underline" href="https://our.umbraco.com/documentation/Getting-Started/Backoffice/Sections/" target="_blank">in the Documentation section</a> of Our Umbraco</li>
<li>Download the <a class="btn-link -underline" href="https://our.umbraco.com/projects/website-utilities/umbraco-7-editors-manual" target="_blank">Editors Manual</a> for details on working with the Umbraco UI</li>
<li>Ask a question in the <a class="btn-link -underline" href="https://our.umbraco.com/" target="_blank">Community Forum</a></li>
<li>Ask a question in the <a class="btn-link -underline" href="https://our.umbraco.com/forum" target="_blank">Community Forum</a></li>
<li>Watch our <a class="btn-link -underline" href="https://umbraco.tv" target="_blank">tutorial videos</a> (some are free, some require a subscription)</li>
<li>Find out about our <a class="btn-link -underline" href="https://umbraco.com/products/" target="_blank">productivity boosting tools and commercial support</a></li>
<li>Find out about real-life <a class="btn-link -underline" href="https://umbraco.com/training/" target="_blank">training and certification</a> opportunities</li>
@@ -1,18 +1,20 @@
<h3>Hours of Umbraco training videos are only a click away</h3>
<p>Want to master Umbraco? Spend a couple of minutes learning some best practices by watching one of these videos about using Umbraco. And visit <a href="http://umbraco.tv" target="_blank">umbraco.tv</a> for even more Umbraco videos</p>
<h4>To get you started:</h4>
<div class="row-fluid"
ng-init="init('http://umbraco.tv/videos/implementor/chapterrss?sort=no')"
ng-init="init('https://umbraco.tv/videos/implementor/chapterrss?sort=no')"
ng-controller="Umbraco.Dashboard.StartupVideosController">
<ul class="thumbnails" >
<li class="span2" ng-repeat="video in videos">
<div class="thumbnail" style="margin-right: 20px">
<a target="_blank" href="{{video.link}}" title="{{video.title}}">
<img ng-src="{{video.thumbnail}}" alt="{{video.title}}">
</a>
</div>
</li>
</ul>
</div>
<div ng-show="videos.length">
<h4>To get you started:</h4>
<ul class="thumbnails" >
<li class="span2" ng-repeat="video in videos">
<div class="thumbnail" style="margin-right: 20px">
<a target="_blank" href="{{video.link}}" title="{{video.title}}">
<img ng-src="{{video.thumbnail}}" alt="{{video.title}}">
</a>
</div>
</li>
</ul>
</div>
</div>
+1 -1
View File
@@ -29,7 +29,7 @@
val-form-manager>
<umb-control-group label="Enter a folder name" hide-label="false">
<input type="text" name="folderName" ng-model="model.folderName" class="umb-textstring textstring input-block-level" required />
<input type="text" name="folderName" ng-model="model.folderName" class="umb-textstring textstring input-block-level" required autofocus />
</umb-control-group>
<button type="submit" class="btn btn-primary"><localize key="general_create">Create</localize></button>
+9 -5
View File
@@ -12,12 +12,16 @@
</div>
<div ng-show="error">
<h5 class="text-error">{{error.errorMsg}}</h5>
<p class="text-error">{{error.data.message}}</p>
<div class="alert alert-error">
<div><strong>{{error.errorMsg}}</strong></div>
<div>{{error.data.message}}</div>
</div>
</div>
<div ng-show="success">
<h5 class="text-success"><strong>{{currentNode.name}}</strong> <localize key="editdatatype_wasMoved">was moved underneath</localize>&nbsp;<strong>{{target.name}}</strong></h5>
<div class="alert alert-success">
<strong>{{currentNode.name}}</strong> <localize key="editdatatype_wasMoved">was moved underneath</localize>&nbsp;<strong>{{target.name}}</strong>
</div>
<button class="btn btn-primary" ng-click="nav.hideDialog()">Ok</button>
</div>
@@ -40,10 +44,10 @@
</div>
<div class="umb-dialog-footer btn-toolbar umb-btn-toolbar" ng-hide="success">
<a class="btn btn-link" ng-click="nav.hideDialog()" ng-if="!busy">
<a class="btn btn-link" ng-click="nav.hideDialog()" ng-show="!busy">
<localize key="general_cancel">Cancel</localize>
</a>
<button class="btn btn-primary" ng-click="move()" ng-disabled="busy">
<button class="btn btn-primary" ng-click="move()" ng-disabled="busy || !target">
<localize key="actions_move">Move</localize>
</button>
</div>
+4 -2
View File
@@ -7,8 +7,10 @@
val-form-manager>
<div ng-show="error">
<h5 class="text-error">{{error.errorMsg}}</h5>
<p class="text-error">{{error.data.message}}</p>
<div class="alert alert-error">
<div><strong>{{error.errorMsg}}</strong></div>
<div>{{error.data.message}}</div>
</div>
</div>
<umb-control-group label="@renamecontainer_enterNewFolderName" hide-label="false">
+9 -6
View File
@@ -12,13 +12,16 @@
</div>
<div ng-show="error">
<h5 class="text-error">{{error.errorMsg}}</h5>
<p class="text-error">{{error.data.message}}</p>
<div class="alert alert-error">
<div><strong>{{error.errorMsg}}</strong></div>
<div>{{error.data.message}}</div>
</div>
</div>
<div ng-show="success">
<h5 class="text-success">
<strong>{{currentNode.name}}</strong> <localize key="contentTypeEditor_copiedUnderneath">was copied underneath</localize>&nbsp;<strong>{{target.name}}</strong></h5>
<div class="alert alert-success">
<strong>{{currentNode.name}}</strong> <localize key="contentTypeEditor_copiedUnderneath">was copied underneath</localize>&nbsp;<strong>{{target.name}}</strong>
</div>
<button class="btn btn-primary" ng-click="nav.hideDialog()">Ok</button>
</div>
@@ -41,10 +44,10 @@
</div>
<div class="umb-dialog-footer btn-toolbar umb-btn-toolbar" ng-hide="success">
<a class="btn btn-link" ng-click="nav.hideDialog()" ng-if="!busy">
<a class="btn btn-link" ng-click="nav.hideDialog()" ng-show="!busy">
<localize key="general_cancel">Cancel</localize>
</a>
<button class="btn btn-primary" ng-click="copy()" ng-disabled="busy">
<button class="btn btn-primary" ng-click="copy()" ng-disabled="busy || !target">
<localize key="actions_copy">Copy</localize>
</button>
</div>
+18 -6
View File
@@ -19,8 +19,8 @@
<i class="large icon-item-arrangement"></i>
<span class="menu-label">
<localize ng-if="model.disableTemplates == false" key="create_documentTypeWithoutTemplate"></localize>
<localize ng-if="model.disableTemplates == true" key="content_documentType">Document type></localize>
<localize ng-if="model.disableTemplates === false" key="create_documentTypeWithoutTemplate"></localize>
<localize ng-if="model.disableTemplates === true" key="content_documentType">Document type></localize>
</span>
</a>
</li>
@@ -50,8 +50,10 @@
val-form-manager>
<div ng-show="error">
<h5 class="text-error">{{error.errorMsg}}</h5>
<p class="text-error">{{error.data.message}}</p>
<div class="alert alert-error">
<div><strong>{{error.errorMsg}}</strong></div>
<div>{{error.data.message}}</div>
</div>
</div>
<umb-control-group label="Enter a folder name" hide-label="false">
@@ -74,16 +76,26 @@
val-form-manager>
<div ng-show="error">
<h5 class="text-error">{{error.errorMsg}}</h5>
<p class="text-error">{{error.data.message}}</p>
<div class="alert alert-error">
<div><strong>{{error.errorMsg}}</strong></div>
<div>{{error.data.message}}</div>
</div>
</div>
<umb-control-group label="Name of the Parent Document Type" hide-label="false">
<input type="text" name="collectionName" ng-model="model.collectionName" class="umb-textstring textstring input-block-level" umb-auto-focus required />
<span ng-if="model.disableTemplates === false">
<input id="collectionCreateTemplate" name="collectionCreateTemplate" type="checkbox" ng-model="model.collectionCreateTemplate" style="margin-top: 0;" />
<label for="collectionCreateTemplate" style="margin-bottom: 0; padding-left: 2px;">Create template for the Parent Document Type</label>
</span>
</umb-control-group>
<umb-control-group label="Name of the Item Document Type" hide-label="false">
<input type="text" name="collectionItemName" ng-model="model.collectionItemName" class="umb-textstring textstring input-block-level" required />
<span ng-if="model.disableTemplates === false">
<input id="collectionItemCreateTemplate" name="collectionItemCreateTemplate" type="checkbox" ng-model="model.collectionItemCreateTemplate" style="margin-top: 0;" />
<label for="collectionItemCreateTemplate" style="margin-bottom: 0; padding-left: 2px;">Create template for the Item Document Type</label>
</span>
</umb-control-group>
<button type="submit" class="btn btn-primary"><localize key="general_create">Create</localize></button>
+9 -6
View File
@@ -12,13 +12,16 @@
</div>
<div ng-show="error">
<h5 class="text-error">{{error.errorMsg}}</h5>
<p class="text-error">{{error.data.message}}</p>
<div class="alert alert-error">
<div><strong>{{error.errorMsg}}</strong></div>
<div>{{error.data.message}}</div>
</div>
</div>
<div ng-show="success">
<h5 class="text-success">
<strong>{{currentNode.name}}</strong> <localize key="contentTypeEditor_movedUnderneath">was moved underneath</localize>&nbsp;<strong>{{target.name}}</strong></h5>
<div class="alert alert-success">
<strong>{{currentNode.name}}</strong> <localize key="contentTypeEditor_movedUnderneath">was moved underneath</localize>&nbsp;<strong>{{target.name}}</strong>
</div>
<button class="btn btn-primary" ng-click="nav.hideDialog()">Ok</button>
</div>
@@ -41,10 +44,10 @@
</div>
<div class="umb-dialog-footer btn-toolbar umb-btn-toolbar" ng-hide="success">
<a class="btn btn-link" ng-click="nav.hideDialog()" ng-if="!busy">
<a class="btn btn-link" ng-click="nav.hideDialog()" ng-show="!busy">
<localize key="general_cancel">Cancel</localize>
</a>
<button class="btn btn-primary" ng-click="move()" ng-disabled="busy">
<button class="btn btn-primary" ng-click="move()" ng-disabled="busy || !target">
<localize key="actions_move">Move</localize>
</button>
</div>
@@ -6,8 +6,10 @@
val-form-manager>
<div ng-show="error">
<h5 class="text-error">{{error.errorMsg}}</h5>
<p class="text-error">{{error.data.message}}</p>
<div class="alert alert-error">
<div><strong>{{error.errorMsg}}</strong></div>
<div>{{error.data.message}}</div>
</div>
</div>
<umb-control-group label="@renamecontainer_enterNewFolderName" hide-label="false">
@@ -7,15 +7,26 @@
<div class="sub-view-column-right">
<umb-grid-selector ng-if="vm.availableTemplates"
selected-items="model.allowedTemplates"
available-items="vm.availableTemplates"
default-item="model.defaultTemplate"
item-name="template"
name="model.name"
alias="model.alias"
update-placeholder="vm.updateTemplatePlaceholder">
<umb-grid-selector
ng-if="vm.availableTemplates"
selected-items="model.allowedTemplates"
available-items="vm.availableTemplates"
default-item="model.defaultTemplate"
item-name="template"
name="model.name"
alias="model.alias"
update-placeholder="vm.updateTemplatePlaceholder">
</umb-grid-selector>
<umb-button
ng-if="vm.canCreateTemplate"
type="button"
button-style="info"
action="vm.createTemplate()"
state="vm.createTemplateButtonState"
label-key="settings_createMatchingTemplate">
</umb-button>
</div>
</div>
+1
View File
@@ -32,6 +32,7 @@
ng-pattern="passwordPattern"
autocorrect="off"
autocapitalize="off"
autocomplete="off"
required
ng-model="installer.current.model.password" id="password" />
<small class="inline-help">At least {{installer.current.model.minCharLength}} characters long</small>
+16 -5
View File
@@ -1,10 +1,21 @@
<div class="umb-dialog umb-pane" ng-controller="Umbraco.Editors.Media.DeleteController">
<div class="umb-dialog-body" auto-scale="90">
<p class="umb-abstract">
<localize key="defaultdialogs_confirmdelete">Are you sure you want to delete</localize> <strong>{{currentNode.name}}</strong> ?
</p>
<umb-confirm on-confirm="performDelete" on-cancel="cancel"></umb-confirm>
<div ng-show="success">
<div class="alert alert-success">
<strong>{{currentNode.name}}</strong>
<localize key="actions_wasDeleted">was deleted</localize>
</div>
<button class="btn btn-primary" ng-click="nav.hideDialog()">Ok</button>
</div>
<div ng-hide="success">
<p class="umb-abstract">
<localize key="defaultdialogs_confirmdelete">Are you sure you want to delete</localize> <strong>{{currentNode.name}}</strong> ?
</p>
<umb-confirm on-confirm="performDelete" on-cancel="cancel"></umb-confirm>
</div>
</div>
</div>
@@ -8,7 +8,7 @@
<p class="umb-abstract">
<localize key="defaultdialogs_recycleBinWarning">When items are deleted from the recycle bin, they will be gone forever</localize>.
<localize key="general_areyousure">Are you sure</localize>?
<localize key="general_areyousure">Are you sure?</localize>
</p>
<umb-confirm on-confirm="performDelete" on-cancel="cancel">
+33 -12
View File
@@ -11,7 +11,9 @@
<div ng-show="success">
<div class="alert alert-success">
<strong>{{currentNode.name}}</strong> was moved underneath <strong>{{target.name}}</strong>
<strong>{{currentNode.name}}</strong>
<localize key="actions_wasMovedTo">was moved to</localize>
<strong>{{target.name}}</strong>
</div>
<button class="btn btn-primary" ng-click="nav.hideDialog()">Ok</button>
</div>
@@ -25,15 +27,34 @@
<div ng-hide="success">
<div ng-hide="miniListView">
<umb-tree
section="media"
hideheader="{{treeModel.hideHeader}}"
hideoptions="true"
isdialog="true"
eventhandler="dialogTreeEventHandler"
enablelistviewexpand="true"
enablecheckboxes="true">
</umb-tree>
<umb-tree-search-box
hide-search-callback="hideSearch"
search-callback="onSearchResults"
search-from-id="{{searchInfo.searchFromId}}"
search-from-name="{{searchInfo.searchFromName}}"
show-search="{{searchInfo.showSearch}}"
section="media">
</umb-tree-search-box>
<br />
<umb-tree-search-results
ng-if="searchInfo.showSearch"
results="searchInfo.results"
select-result-callback="selectResult">
</umb-tree-search-results>
<div ng-hide="searchInfo.showSearch">
<umb-tree
section="media"
hideheader="{{treeModel.hideHeader}}"
hideoptions="true"
isdialog="true"
eventhandler="dialogTreeEventHandler"
enablelistviewexpand="true"
enablecheckboxes="true">
</umb-tree>
</div>
</div>
<umb-mini-list-view
@@ -49,7 +70,7 @@
</div>
<div class="umb-dialog-footer btn-toolbar umb-btn-toolbar" ng-hide="success">
<a class="btn btn-link" ng-click="nav.hideDialog()"><localize key="general_cancel">Cancel</localize></a>
<button class="btn btn-primary" ng-click="move()"><localize key="actions_move">Move</localize></button>
<a class="btn btn-link" ng-click="nav.hideDialog()" ng-show="!busy"><localize key="general_cancel">Cancel</localize></a>
<button class="btn btn-primary" ng-click="move()" ng-disabled="busy || !target"><localize key="actions_move">Move</localize></button>
</div>
</div>
+84 -13
View File
@@ -1,25 +1,96 @@
<div ng-controller="Umbraco.Editors.Media.RestoreController">
<div class="umb-dialog-body">
<div class="umb-dialog-body" ng-cloak>
<umb-pane>
<umb-load-indicator
ng-if="loading">
</umb-load-indicator>
<p class="abstract" ng-hide="error != null || success == true">
<localize key="actions_restore">Restore</localize> <strong>{{currentNode.name}}</strong> <localize key="general_under">under</localize> <strong>{{target.name}}</strong>?
</p>
<div ng-show="error">
<div class="alert alert-error">
<div><strong>{{error.errorMsg}}</strong></div>
<div>{{error.data.Message}}</div>
</div>
</div>
<div class="alert alert-error" ng-show="error != null">
<div><strong>{{error.errorMsg}}</strong></div>
<div>{{error.data.Message}}</div>
</div>
<div ng-show="success">
<div class="alert alert-success">
<strong>{{source.name}}</strong>
<span ng-hide="moving"><localize key="recycleBin_wasRestored">was restored under</localize></span>
<span ng-show="moving"><localize key="editdatatype_wasMoved">was moved underneath</localize></span>
<strong>{{target.name}}</strong>
</div>
<button class="btn btn-primary" ng-click="nav.hideDialog()">Ok</button>
</div>
<div class="alert alert-success" ng-show="success == true">
<p><strong>{{currentNode.name}}</strong> <localize key="editdatatype_wasMoved">was moved underneath</localize> <strong>{{target.name}}</strong></p>
<button class="btn btn-primary" ng-click="nav.hideDialog()"><localize key="general_ok">OK</localize></button>
</div>
<div ng-hide="moving || loading || success">
<p class="abstract" ng-hide="error || success">
<localize key="actions_restore">Restore</localize> <strong>{{source.name}}</strong> <localize key="general_under">under</localize> <strong>{{target.name}}</strong>?
</p>
</div>
<div ng-hide="!moving || loading || success">
<div>
<div class="alert alert-info">
<div><strong><localize key="recycleBin_itemCannotBeRestored">Cannot automatically restore this item</localize></strong></div>
<div><localize key="recycleBin_itemCannotBeRestoredHelpText">There is no location where this item can be automatically restored. You can move the item manually using the tree below.</localize></div>
</div>
</div>
<div ng-hide="miniListView">
<umb-tree-search-box
hide-search-callback="hideSearch"
search-callback="onSearchResults"
show-search="{{searchInfo.showSearch}}"
section="media">
</umb-tree-search-box>
<br />
<umb-tree-search-results
ng-if="searchInfo.showSearch"
results="searchInfo.results"
select-result-callback="selectResult">
</umb-tree-search-results>
<div ng-hide="searchInfo.showSearch">
<umb-tree
section="media"
hideheader="{{treeModel.hideHeader}}"
hideoptions="true"
isdialog="true"
eventhandler="dialogTreeEventHandler"
enablelistviewexpand="true"
enablecheckboxes="true">
</umb-tree>
</div>
</div>
<umb-mini-list-view
ng-if="miniListView"
node="miniListView"
entity-type="Document"
on-select="selectListViewNode(node)"
on-close="closeMiniListView()">
</umb-mini-list-view>
</div>
</umb-pane>
</div>
<div class="umb-dialog-footer btn-toolbar umb-btn-toolbar" ng-hide="success == true">
<div class="umb-dialog-footer btn-toolbar umb-btn-toolbar" ng-hide="loading || moving || success">
<a class="btn btn-link" ng-click="nav.hideDialog()"><localize key="general_cancel">Cancel</localize></a>
<button class="btn btn-primary" ng-click="restore()" ng-show="error == null"><localize key="actions_restore">Restore</localize></button>
</div>
<div class="umb-dialog-footer btn-toolbar umb-btn-toolbar" ng-hide="loading || !moving || success">
<a class="btn btn-link" ng-click="nav.hideDialog()"><localize key="general_cancel">Cancel</localize></a>
<button class="btn btn-primary" ng-click="restore()" ng-show="error == null" ng-disabled="!target"><localize key="actions_move">Move</localize></button>
</div>
<div class="umb-dialog-footer btn-toolbar umb-btn-toolbar" ng-hide="success == true">
<a class="btn btn-link" ng-click="nav.hideDialog()"><localize key="general_cancel">Cancel</localize></a>
<button class="btn btn-primary" ng-click="restore()" ng-show="error == null"><localize key="actions_restore">Restore</localize></button>
</div>
+9 -6
View File
@@ -12,13 +12,16 @@
</div>
<div ng-show="error">
<h5 class="text-error">{{error.errorMsg}}</h5>
<p class="text-error">{{error.data.message}}</p>
<div class="alert alert-error">
<div><strong>{{error.errorMsg}}</strong></div>
<div>{{error.data.message}}</div>
</div>
</div>
<div ng-show="success">
<h5 class="text-success">
<strong>{{currentNode.name}}</strong> <localize key="contentTypeEditor_copiedUnderneath">was copied underneath</localize>&nbsp;<strong>{{target.name}}</strong></h5>
<div class="alert alert-success">
<strong>{{currentNode.name}}</strong> <localize key="contentTypeEditor_copiedUnderneath">was copied underneath</localize>&nbsp;<strong>{{target.name}}</strong>
</div>
<button class="btn btn-primary" ng-click="nav.hideDialog()">Ok</button>
</div>
@@ -41,10 +44,10 @@
</div>
<div class="umb-dialog-footer btn-toolbar umb-btn-toolbar" ng-hide="success">
<a class="btn btn-link" ng-click="nav.hideDialog()" ng-if="!busy">
<a class="btn btn-link" ng-click="nav.hideDialog()" ng-show="!busy">
<localize key="general_cancel">Cancel</localize>
</a>
<button class="btn btn-primary" ng-click="copy()" ng-disabled="busy">
<button class="btn btn-primary" ng-click="copy()" ng-disabled="busy || !target">
<localize key="actions_copy">Copy</localize>
</button>
</div>
@@ -27,6 +27,13 @@
ng-submit="createContainer()"
val-form-manager>
<div ng-show="error">
<div class="alert alert-error">
<div><strong>{{error.errorMsg}}</strong></div>
<div>{{error.data.message}}</div>
</div>
</div>
<umb-control-group label="Enter a folder name" hide-label="false">
<input type="text" name="folderName" ng-model="model.folderName" class="umb-textstring textstring input-block-level" required />
</umb-control-group>
+9 -5
View File
@@ -12,12 +12,16 @@
</div>
<div ng-show="error">
<h5 class="text-error">{{error.errorMsg}}</h5>
<p class="text-error">{{error.data.message}}</p>
<div class="alert alert-error">
<div><strong>{{error.errorMsg}}</strong></div>
<div>{{error.data.message}}</div>
</div>
</div>
<div ng-show="success">
<h5 class="text-success"><strong>{{currentNode.name}}</strong> <localize key="contentTypeEditor_movedUnderneath">was moved underneath</localize>&nbsp;<strong>{{target.name}}</strong></h5>
<div class="alert alert-success">
<strong>{{currentNode.name}}</strong> <localize key="contentTypeEditor_movedUnderneath">was moved underneath</localize>&nbsp;<strong>{{target.name}}</strong>
</div>
<button class="btn btn-primary" ng-click="nav.hideDialog()">Ok</button>
</div>
@@ -40,10 +44,10 @@
</div>
<div class="umb-dialog-footer btn-toolbar umb-btn-toolbar" ng-hide="success">
<a class="btn btn-link" ng-click="nav.hideDialog()" ng-if="!busy">
<a class="btn btn-link" ng-click="nav.hideDialog()" ng-show="!busy">
<localize key="general_cancel">Cancel</localize>
</a>
<button class="btn btn-primary" ng-click="move()" ng-disabled="busy">
<button class="btn btn-primary" ng-click="move()" ng-disabled="busy || !target">
<localize key="actions_move">Move</localize>
</button>
</div>
+4 -2
View File
@@ -6,8 +6,10 @@
val-form-manager>
<div ng-show="error">
<h5 class="text-error">{{error.errorMsg}}</h5>
<p class="text-error">{{error.data.message}}</p>
<div class="alert alert-error">
<div><strong>{{error.errorMsg}}</strong></div>
<div>{{error.data.message}}</div>
</div>
</div>
<umb-control-group label="@renamecontainer_enterNewFolderName" hide-label="false">
@@ -61,8 +61,10 @@
val-form-manager>
<div ng-show="vm.createFolderError">
<h5 class="text-error">{{vm.createFolderError.errorMsg}}</h5>
<p class="text-error">{{vm.createFolderError.data.message}}</p>
<div class="alert alert-error">
<div><strong>{{vm.createFolderError.errorMsg}}</strong></div>
<div>{{vm.createFolderError.data.message}}</div>
</div>
</div>
<umb-control-group label="Enter a folder name" hide-label="false">
@@ -51,11 +51,13 @@
val-form-manager>
<div ng-show="vm.createFolderError">
<h5 class="text-error">{{vm.createFolderError.errorMsg}}</h5>
<p class="text-error">{{vm.createFolderError.data.message}}</p>
<div class="alert alert-error">
<div><strong>{{vm.createFolderError.errorMsg}}</strong></div>
<div>{{vm.createFolderError.data.message}}</div>
</div>
</div>
<umb-control-group label="Enter a folder name" hide-label="false">
<umb-control-group label="@create_enterFolderName" localize="label" hide-label="false">
<input type="text" name="folderName" ng-model="vm.folderName" class="umb-textstring textstring input-block-level" umb-auto-focus required />
</umb-control-group>
@@ -1,6 +1,13 @@
<div class="umb-dialog umb-pane" ng-controller="Umbraco.Editors.PartialViews.DeleteController">
<div class="umb-dialog-body">
<div ng-show="error">
<div class="alert alert-error">
<div><strong>{{error.errorMsg}}</strong></div>
<div>{{error.data.message}}</div>
</div>
</div>
<p class="umb-abstract">
<localize key="defaultdialogs_confirmdelete">Are you sure you want to delete</localize> <strong>{{currentNode.name}}</strong> ?
</p>
@@ -0,0 +1,14 @@
<div ng-controller="Umbraco.PrevalueEditors.ColorPickerController">
<div ng-if="!isConfigured">
<localize key="colorpicker_noColors">You haven't defined any colors</localize>
</div>
<umb-color-swatches colors="model.items"
selected-color="model.value"
size="s"
use-label="model.config.useLabel">
</umb-color-swatches>
<input type="hidden" name="modelValue" ng-model="model.value" />
</div>
@@ -1,7 +1,7 @@
<select ng-model="model.value">
<select ng-model="model.value" required>
<option value="STRING">String</option>
<option value="DECIMAL">Decimal</option>
<option value="DATETIME">Date/time</option>
<option value="INT">Integer</option>
<option value="TEXT">Long string</option>
</select>
</select>
@@ -1,6 +1,10 @@
<div class="umb-editor umb-boolean" ng-controller="Umbraco.PropertyEditors.BooleanController">
<umb-toggle
checked="renderModel.value"
on-click="toggle()">
on-click="toggle()"
show-labels="{{model.config.labelOn ? 'true': 'false'}}"
label-position="right"
label-on="{{model.config.labelOn}}"
label-off="{{model.config.labelOn}}">
</umb-toggle>
</div>
@@ -1,13 +1,8 @@
<div class="umb-editor umb-checkboxlist" ng-controller="Umbraco.PropertyEditors.CheckboxListController">
<div class="umb-editor umb-editor--list" ng-controller="Umbraco.PropertyEditors.CheckboxListController">
<ul class="unstyled">
<li ng-repeat="item in selectedItems">
<label class="checkbox">
<input type="checkbox" name="checkboxlist"
value="{{item.key}}"
ng-model="item.checked" />
{{item.val}}
</label>
<li ng-repeat="item in selectedItems" class="umb-editor__item">
<umb-checkbox name="checkboxlist" value="{{item.key}}" model="item.checked" text="{{item.val}}" required="model.validation.mandatory && !model.value.length"></umb-checkbox>
</li>
</ul>
@@ -1,20 +1,17 @@
<div ng-controller="Umbraco.PropertyEditors.ColorPickerController">
<div ng-if="!isConfigured" >
<localize key="colorpicker_noColors">You haven't defined any colors</localize>
</div>
<ul class="thumbnails color-picker">
<li ng-repeat="(key, val) in model.config.items" ng-class="{active: isActiveColor(val)}">
<a ng-click="toggleItem(val)" class="thumbnail" hex-bg-color="{{val.value}}">
<div class="check_circle">
<i class="icon icon-check small"></i>
</div>
</a>
<span class="color-label" ng-if="model.useLabel" ng-bind="val.label"></span>
</li>
</ul>
<div ng-if="!isConfigured">
<localize key="colorpicker_noColors">You haven't defined any colors</localize>
</div>
<input type="hidden" name="modelValue" ng-model="model.value" val-property-validator="validateMandatory"/>
<umb-color-swatches colors="model.config.items"
selected-color="model.activeColor.value"
size="m"
use-label="model.useLabel"
on-select="onSelect(color)">
</umb-color-swatches>
<input type="hidden" name="modelValue" ng-model="model.value" val-property-validator="validateMandatory" />
</div>
@@ -3,18 +3,22 @@
<div class="umb-prevalues-multivalues__left">
<input name="newColor" type="hidden" />
<label for="newColor" val-highlight="{{hasError}}">#{{newColor}}</label>
<input name="newLabel" type="text" ng-model="newLabel" class="umb-editor color-label" placeholder="Label" ng-show="labelEnabled" />
<input name="newLabel" type="text" ng-model="newLabel" focus-when="{{focusOnNew}}" class="umb-editor color-label" placeholder="Label" ng-show="labelEnabled" />
</div>
<div class="umb-prevalues-multivalues__right">
<button class="btn btn-info add" ng-click="add($event)"><localize key="general_add">Add</localize></button>
</div>
</div>
<div ui-sortable="sortableOptions" ng-model="model.value">
<div class="control-group umb-prevalues-multivalues__listitem color-picker-preval" ng-repeat="item in model.value">
<div class="control-group umb-prevalues-multivalues__listitem color-picker-preval" ng-repeat="item in model.value track by $id(item)">
<i class="icon icon-navigation handle"></i>
<div class="umb-prevalues-multivalues__left">
<div class="thumbnail span1" hex-bg-color="{{item.value}}" bg-orig="transparent"></div>
<div class="color-picker-prediv"><pre>#{{item.value}}</pre><span>{{item.label}}</span></div>
<div class="thumbnail span1" hex-bg-color="{{item.value}}" hex-bg-orig="transparent"></div>
<div class="color-picker-prediv">
<pre>#{{item.value}}</pre>
<span ng-bind="item.label" ng-if="!labelEnabled"></span>
<input type="text" ng-if="labelEnabled" ng-model="item.label" val-server="item_{{$index}}" required />
</div>
</div>
<div class="umb-prevalues-multivalues__right">
<a class="umb-node-preview__action umb-node-preview__action--red" ng-click="remove(item, $event)"><localize key="general_remove">Remove</localize></a>
@@ -5,7 +5,8 @@
ng-switch-default
ng-change="updateSingleDropdownValue()"
ng-model="model.singleDropdownValue"
ng-options="item.id as item.value for item in model.config.items">
ng-options="item.id as item.value for item in model.config.items"
ng-required="model.validation.mandatory">
<option></option>
</select>
@@ -15,5 +16,6 @@
ng-switch-when="1"
multiple
ng-model="model.value"
ng-options="item.id as item.value for item in model.config.items"></select>
ng-options="item.id as item.value for item in model.config.items"
ng-required="model.validation.mandatory"></select>
</div>
@@ -61,8 +61,7 @@
<input type="checkbox"
ng-model="currentSection.allowAll"
style="float: left; margin-right: 10px;"
ng-checked="currentSection.allowed === undefined"
ng-change="toggleCollection(currentSection.allowed, currentSection.allowAll)" />
ng-change="toggleAllowed(currentSection)" />
<localize key="grid_allowAllRowConfigurations"/>
</label>
</li>
@@ -72,8 +72,7 @@
<label>
<input type="checkbox"
ng-model="currentCell.allowAll"
ng-checked="currentCell.allowed === undefined"
ng-change="toggleCollection(currentCell.allowed, currentCell.allowAll)" />
ng-change="toggleAllowed(currentCell)" />
<localize key="grid_allowAllEditors"/>
</label>
</li>

Some files were not shown because too many files have changed in this diff Show More