Merge branch '7.4.0' into temp-U4-7365
This commit is contained in:
@@ -206,7 +206,7 @@ namespace Umbraco.Core
|
||||
/// </summary>
|
||||
internal const string StandardPropertiesGroupName = "Membership";
|
||||
|
||||
internal static Dictionary<string, PropertyType> GetStandardPropertyTypeStubs()
|
||||
public static Dictionary<string, PropertyType> GetStandardPropertyTypeStubs()
|
||||
{
|
||||
return new Dictionary<string, PropertyType>
|
||||
{
|
||||
|
||||
@@ -199,8 +199,8 @@ namespace Umbraco.Core.IO
|
||||
using (var image = Image.FromStream(fs))
|
||||
{
|
||||
var fileNameThumb = string.IsNullOrWhiteSpace(fileNameAddition)
|
||||
? string.Format("{0}_UMBRACOSYSTHUMBNAIL.jpg", Path.Substring(0, Path.LastIndexOf(".", StringComparison.Ordinal)))
|
||||
: string.Format("{0}_{1}.jpg", Path.Substring(0, Path.LastIndexOf(".", StringComparison.Ordinal)), fileNameAddition);
|
||||
? string.Format("{0}_UMBRACOSYSTHUMBNAIL." + Extension, Path.Substring(0, Path.LastIndexOf(".", StringComparison.Ordinal)))
|
||||
: string.Format("{0}_{1}." + Extension, Path.Substring(0, Path.LastIndexOf(".", StringComparison.Ordinal)), fileNameAddition);
|
||||
|
||||
var thumbnail = maxWidthHeight == -1
|
||||
? ImageHelper.GenerateThumbnail(image, width, height, fileNameThumb, Extension, _fs)
|
||||
|
||||
@@ -59,7 +59,7 @@ namespace Umbraco.Core.Media
|
||||
var fileHeight = image.Height;
|
||||
return new Size(fileWidth, fileHeight);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
public static string GetMimeType(this Image image)
|
||||
@@ -79,22 +79,22 @@ namespace Umbraco.Core.Media
|
||||
/// <param name="additionalThumbSizes"></param>
|
||||
/// <returns></returns>
|
||||
internal static IEnumerable<ResizedImage> GenerateMediaThumbnails(
|
||||
IFileSystem fs,
|
||||
string fileName,
|
||||
string extension,
|
||||
IFileSystem fs,
|
||||
string fileName,
|
||||
string extension,
|
||||
Image originalImage,
|
||||
IEnumerable<int> additionalThumbSizes)
|
||||
{
|
||||
|
||||
var result = new List<ResizedImage>();
|
||||
|
||||
var allSizesDictionary = new Dictionary<int,string> {{100,"thumb"}, {500,"big-thumb"}};
|
||||
|
||||
var allSizesDictionary = new Dictionary<int, string> { { 100, "thumb" }, { 500, "big-thumb" } };
|
||||
|
||||
//combine the static dictionary with the additional sizes with only unique values
|
||||
var allSizes = allSizesDictionary.Select(kv => kv.Key)
|
||||
.Union(additionalThumbSizes.Where(x => x > 0).Distinct());
|
||||
|
||||
var sizesDictionary = allSizes.ToDictionary(s => s, s => allSizesDictionary.ContainsKey(s) ? allSizesDictionary[s]: "");
|
||||
var sizesDictionary = allSizes.ToDictionary(s => s, s => allSizesDictionary.ContainsKey(s) ? allSizesDictionary[s] : "");
|
||||
|
||||
foreach (var s in sizesDictionary)
|
||||
{
|
||||
@@ -121,9 +121,9 @@ namespace Umbraco.Core.Media
|
||||
/// <returns></returns>
|
||||
private static ResizedImage Resize(IFileSystem fileSystem, string path, string extension, int maxWidthHeight, string fileNameAddition, Image originalImage)
|
||||
{
|
||||
var fileNameThumb = String.IsNullOrEmpty(fileNameAddition)
|
||||
? string.Format("{0}_UMBRACOSYSTHUMBNAIL.jpg", path.Substring(0, path.LastIndexOf(".")))
|
||||
: string.Format("{0}_{1}.jpg", path.Substring(0, path.LastIndexOf(".")), fileNameAddition);
|
||||
var fileNameThumb = string.IsNullOrWhiteSpace(fileNameAddition)
|
||||
? string.Format("{0}_UMBRACOSYSTHUMBNAIL." + extension, path.Substring(0, path.LastIndexOf(".", StringComparison.Ordinal)))
|
||||
: string.Format("{0}_{1}." + extension, path.Substring(0, path.LastIndexOf(".", StringComparison.Ordinal)), fileNameAddition);
|
||||
|
||||
var thumb = GenerateThumbnail(
|
||||
originalImage,
|
||||
@@ -190,9 +190,9 @@ namespace Umbraco.Core.Media
|
||||
//use best quality
|
||||
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
|
||||
}
|
||||
|
||||
|
||||
g.SmoothingMode = SmoothingMode.HighQuality;
|
||||
|
||||
g.SmoothingMode = SmoothingMode.HighQuality;
|
||||
g.PixelOffsetMode = PixelOffsetMode.HighQuality;
|
||||
g.CompositingQuality = CompositingQuality.HighQuality;
|
||||
|
||||
@@ -202,10 +202,29 @@ namespace Umbraco.Core.Media
|
||||
|
||||
// Copy metadata
|
||||
var imageEncoders = ImageCodecInfo.GetImageEncoders();
|
||||
|
||||
var codec = extension.ToLower() == "png" || extension.ToLower() == "gif"
|
||||
? imageEncoders.Single(t => t.MimeType.Equals("image/png"))
|
||||
: imageEncoders.Single(t => t.MimeType.Equals("image/jpeg"));
|
||||
ImageCodecInfo codec;
|
||||
switch (extension.ToLower())
|
||||
{
|
||||
case "png":
|
||||
codec = imageEncoders.Single(t => t.MimeType.Equals("image/png"));
|
||||
break;
|
||||
case "gif":
|
||||
codec = imageEncoders.Single(t => t.MimeType.Equals("image/gif"));
|
||||
break;
|
||||
case "tif":
|
||||
case "tiff":
|
||||
codec = imageEncoders.Single(t => t.MimeType.Equals("image/tiff"));
|
||||
break;
|
||||
case "bmp":
|
||||
codec = imageEncoders.Single(t => t.MimeType.Equals("image/bmp"));
|
||||
break;
|
||||
// TODO: this is dirty, defaulting to jpg but the return value of this thing is used all over the
|
||||
// place so left it here, but it needs to not set a codec if it doesn't know which one to pick
|
||||
// Note: when fixing this: both .jpg and .jpeg should be handled as extensions
|
||||
default:
|
||||
codec = imageEncoders.Single(t => t.MimeType.Equals("image/jpeg"));
|
||||
break;
|
||||
}
|
||||
|
||||
// Set compresion ratio to 90%
|
||||
var ep = new EncoderParameters();
|
||||
@@ -213,12 +232,14 @@ namespace Umbraco.Core.Media
|
||||
|
||||
// Save the new image using the dimensions of the image
|
||||
var predictableThumbnailName = thumbnailFileName.Replace("UMBRACOSYSTHUMBNAIL", maxWidthHeight.ToString(CultureInfo.InvariantCulture));
|
||||
var predictableThumbnailNameJpg = predictableThumbnailName.Substring(0, predictableThumbnailName.LastIndexOf(".", StringComparison.Ordinal)) + ".jpg";
|
||||
using (var ms = new MemoryStream())
|
||||
{
|
||||
bp.Save(ms, codec, ep);
|
||||
ms.Seek(0, 0);
|
||||
|
||||
fs.AddFile(predictableThumbnailName, ms);
|
||||
fs.AddFile(predictableThumbnailNameJpg, ms);
|
||||
}
|
||||
|
||||
// TODO: Remove this, this is ONLY here for backwards compatibility but it is essentially completely unusable see U4-5385
|
||||
|
||||
@@ -78,6 +78,12 @@ namespace Umbraco.Core.Models
|
||||
}
|
||||
else
|
||||
{
|
||||
//skip instead of trying to create instance of abstract or interface
|
||||
if (propertyInfo.PropertyType.IsAbstract || propertyInfo.PropertyType.IsInterface)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
//its a custom IEnumerable, we'll try to create it
|
||||
try
|
||||
{
|
||||
|
||||
@@ -357,7 +357,9 @@ namespace Umbraco.Core.Security
|
||||
{
|
||||
//TODO: Do we need to do more here?? need to make sure that the forms cookie is gone, but is that
|
||||
// taken care of in our custom middleware somehow?
|
||||
ctx.Authentication.SignOut();
|
||||
ctx.Authentication.SignOut(
|
||||
Core.Constants.Security.BackOfficeAuthenticationType,
|
||||
Core.Constants.Security.BackOfficeExternalAuthenticationType);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -254,23 +254,35 @@ namespace Umbraco.Core.Services
|
||||
return "[" + key + "]";
|
||||
}
|
||||
|
||||
var cultureSource = xmlSource[culture].Value;
|
||||
|
||||
var xpath = area.IsNullOrWhiteSpace()
|
||||
? string.Format("//key [@alias = '{0}']", key)
|
||||
: string.Format("//area [@alias = '{0}']/key [@alias = '{1}']", area, key);
|
||||
|
||||
var found = cultureSource.XPathSelectElement(xpath);
|
||||
var found = FindTranslation(xmlSource, culture, area, key);
|
||||
|
||||
if (found != null)
|
||||
{
|
||||
return ParseTokens(found.Value, tokens);
|
||||
}
|
||||
|
||||
// Fall back to English by default if we can't find the key
|
||||
found = FindTranslation(xmlSource, new CultureInfo("en-US"), area, key);
|
||||
if (found != null)
|
||||
return ParseTokens(found.Value, tokens);
|
||||
|
||||
//NOTE: Based on how legacy works, the default text does not contain the area, just the key
|
||||
// If it can't be found in either file, fall back to the default, showing just the key in square brackets
|
||||
// NOTE: Based on how legacy works, the default text does not contain the area, just the key
|
||||
return "[" + key + "]";
|
||||
}
|
||||
|
||||
private XElement FindTranslation(IDictionary<CultureInfo, Lazy<XDocument>> xmlSource, CultureInfo culture, string area, string key)
|
||||
{
|
||||
var cultureSource = xmlSource[culture].Value;
|
||||
|
||||
var xpath = area.IsNullOrWhiteSpace()
|
||||
? string.Format("//key [@alias = '{0}']", key)
|
||||
: string.Format("//area [@alias = '{0}']/key [@alias = '{1}']", area, key);
|
||||
|
||||
var found = cultureSource.XPathSelectElement(xpath);
|
||||
return found;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Parses the tokens in the value
|
||||
/// </summary>
|
||||
|
||||
@@ -1,40 +0,0 @@
|
||||
Two constants are defined in StringExtensions:
|
||||
UmbracoValidAliasCharacters
|
||||
UmbracoInvalidFirstCharacters
|
||||
|
||||
They were used exclusively by umbraco/js/UmbracoCasingRules.aspx.cs to define some JavaScript variables
|
||||
which in turn were used by genericProperty.js to provide validation for aliases.
|
||||
|
||||
UmbracoCasingRules.aspx and genericProperty.js are used in:
|
||||
Umbraco.Web\umbraco.presentation\umbraco\controls\ContentTypeControlNew.ascx
|
||||
Umbraco.Web\umbraco.presentation\umbraco\controls\GenericProperties\GenericProperty.ascx
|
||||
|
||||
genericProperty.js defined the following functions:
|
||||
safeAlias(alias) : provides a safe alias version of alias
|
||||
isValidAlias(alias) : whether an alias is safe
|
||||
checkAlias(id) : plugs a safe alias validator / corrector on an element
|
||||
duplicatePropertyNameAsSafeAlias(propertyId, aliasId) : creates the alias from the prop. name
|
||||
|
||||
These are used to validate the alias of the content type, and of properties. No other alias in
|
||||
Umbraco back-end seem to be validated in UI at that point. And, there seem to be no server-side
|
||||
validation so the server just seems trust the UI.
|
||||
|
||||
Whereas in theory, we should only accept that the casing required by the user is different
|
||||
from what our "toSafeAlias" method would provide, anything else is a validation error.
|
||||
|
||||
Legacy safe aliases accept leading and trailing dashes and underscores.
|
||||
|
||||
REFACTOR
|
||||
|
||||
Abstract string methods into IShortStringHelper, and create a new DefaultShortStringHelper which
|
||||
re-implements methods in a clean nice way. The new aliases do not accepts dashes, nor leading
|
||||
underscores.
|
||||
|
||||
Entirely refactor StringExtensions to rely on IShortStringHelper (via a resolver).
|
||||
|
||||
The constants in StringExtensions should go, but we keep them for backward compatility.
|
||||
The legacy helper is 100% backward compatible even at JavaScript level, but the new helper
|
||||
is NOT, it does server-side validation of aliases, all sorts of things, using an api service.
|
||||
|
||||
UmbracoCasingRules.aspx.cs is _gone_ in all cases, replaced by the JavaScript served by
|
||||
the api service.
|
||||
@@ -1403,9 +1403,6 @@
|
||||
<Name>umbraco.interfaces</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Strings\Notes.txt" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="FileResources\Files.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
|
||||
@@ -16637,6 +16637,12 @@ var selectDirective = ['$compile', '$parse', function($compile, $parse) {
|
||||
value = valueFn(scope, locals);
|
||||
}
|
||||
}
|
||||
// Update the null option's selected property here so $render cleans it up correctly
|
||||
if (optionGroupsCache[0].length > 1) {
|
||||
if (optionGroupsCache[0][1].id !== key) {
|
||||
optionGroupsCache[0][1].selected = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
ctrl.$setViewValue(value);
|
||||
});
|
||||
@@ -16758,7 +16764,7 @@ var selectDirective = ['$compile', '$parse', function($compile, $parse) {
|
||||
lastElement.val(existingOption.id = option.id);
|
||||
}
|
||||
// lastElement.prop('selected') provided by jQuery has side-effects
|
||||
if (lastElement[0].selected !== option.selected) {
|
||||
if (existingOption.selected !== option.selected) {
|
||||
lastElement.prop('selected', (existingOption.selected = option.selected));
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -1,178 +1,178 @@
|
||||
/*
|
||||
AngularJS v1.1.5
|
||||
(c) 2010-2012 Google, Inc. http://angularjs.org
|
||||
License: MIT
|
||||
*/
|
||||
(function(M,T,p){'use strict';function lc(){var b=M.angular;M.angular=mc;return b}function Xa(b){return!b||typeof b.length!=="number"?!1:typeof b.hasOwnProperty!="function"&&typeof b.constructor!="function"?!0:b instanceof R||ga&&b instanceof ga||Ea.call(b)!=="[object Object]"||typeof b.callee==="function"}function n(b,a,c){var d;if(b)if(H(b))for(d in b)d!="prototype"&&d!="length"&&d!="name"&&b.hasOwnProperty(d)&&a.call(c,b[d],d);else if(b.forEach&&b.forEach!==n)b.forEach(a,c);else if(Xa(b))for(d=
|
||||
0;d<b.length;d++)a.call(c,b[d],d);else for(d in b)b.hasOwnProperty(d)&&a.call(c,b[d],d);return b}function qb(b){var a=[],c;for(c in b)b.hasOwnProperty(c)&&a.push(c);return a.sort()}function nc(b,a,c){for(var d=qb(b),e=0;e<d.length;e++)a.call(c,b[d[e]],d[e]);return d}function rb(b){return function(a,c){b(c,a)}}function Fa(){for(var b=ba.length,a;b;){b--;a=ba[b].charCodeAt(0);if(a==57)return ba[b]="A",ba.join("");if(a==90)ba[b]="0";else return ba[b]=String.fromCharCode(a+1),ba.join("")}ba.unshift("0");
|
||||
return ba.join("")}function sb(b,a){a?b.$$hashKey=a:delete b.$$hashKey}function t(b){var a=b.$$hashKey;n(arguments,function(a){a!==b&&n(a,function(a,c){b[c]=a})});sb(b,a);return b}function N(b){return parseInt(b,10)}function tb(b,a){return t(new (t(function(){},{prototype:b})),a)}function q(){}function qa(b){return b}function S(b){return function(){return b}}function C(b){return typeof b=="undefined"}function B(b){return typeof b!="undefined"}function L(b){return b!=null&&typeof b=="object"}function E(b){return typeof b==
|
||||
"string"}function Ya(b){return typeof b=="number"}function ra(b){return Ea.apply(b)=="[object Date]"}function F(b){return Ea.apply(b)=="[object Array]"}function H(b){return typeof b=="function"}function sa(b){return b&&b.document&&b.location&&b.alert&&b.setInterval}function U(b){return E(b)?b.replace(/^\s*/,"").replace(/\s*$/,""):b}function oc(b){return b&&(b.nodeName||b.bind&&b.find)}function Za(b,a,c){var d=[];n(b,function(b,g,i){d.push(a.call(c,b,g,i))});return d}function Ga(b,a){if(b.indexOf)return b.indexOf(a);
|
||||
for(var c=0;c<b.length;c++)if(a===b[c])return c;return-1}function ta(b,a){var c=Ga(b,a);c>=0&&b.splice(c,1);return a}function V(b,a){if(sa(b)||b&&b.$evalAsync&&b.$watch)throw Error("Can't copy Window or Scope");if(a){if(b===a)throw Error("Can't copy equivalent objects or arrays");if(F(b))for(var c=a.length=0;c<b.length;c++)a.push(V(b[c]));else{c=a.$$hashKey;n(a,function(b,c){delete a[c]});for(var d in b)a[d]=V(b[d]);sb(a,c)}}else(a=b)&&(F(b)?a=V(b,[]):ra(b)?a=new Date(b.getTime()):L(b)&&(a=V(b,{})));
|
||||
return a}function pc(b,a){var a=a||{},c;for(c in b)b.hasOwnProperty(c)&&c.substr(0,2)!=="$$"&&(a[c]=b[c]);return a}function ia(b,a){if(b===a)return!0;if(b===null||a===null)return!1;if(b!==b&&a!==a)return!0;var c=typeof b,d;if(c==typeof a&&c=="object")if(F(b)){if((c=b.length)==a.length){for(d=0;d<c;d++)if(!ia(b[d],a[d]))return!1;return!0}}else if(ra(b))return ra(a)&&b.getTime()==a.getTime();else{if(b&&b.$evalAsync&&b.$watch||a&&a.$evalAsync&&a.$watch||sa(b)||sa(a))return!1;c={};for(d in b)if(!(d.charAt(0)===
|
||||
"$"||H(b[d]))){if(!ia(b[d],a[d]))return!1;c[d]=!0}for(d in a)if(!c[d]&&d.charAt(0)!=="$"&&a[d]!==p&&!H(a[d]))return!1;return!0}return!1}function $a(b,a){var c=arguments.length>2?ka.call(arguments,2):[];return H(a)&&!(a instanceof RegExp)?c.length?function(){return arguments.length?a.apply(b,c.concat(ka.call(arguments,0))):a.apply(b,c)}:function(){return arguments.length?a.apply(b,arguments):a.call(b)}:a}function qc(b,a){var c=a;/^\$+/.test(b)?c=p:sa(a)?c="$WINDOW":a&&T===a?c="$DOCUMENT":a&&a.$evalAsync&&
|
||||
a.$watch&&(c="$SCOPE");return c}function ha(b,a){return JSON.stringify(b,qc,a?" ":null)}function ub(b){return E(b)?JSON.parse(b):b}function ua(b){b&&b.length!==0?(b=I(""+b),b=!(b=="f"||b=="0"||b=="false"||b=="no"||b=="n"||b=="[]")):b=!1;return b}function va(b){b=w(b).clone();try{b.html("")}catch(a){}var c=w("<div>").append(b).html();try{return b[0].nodeType===3?I(c):c.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(a,b){return"<"+I(b)})}catch(d){return I(c)}}function vb(b){var a={},c,d;n((b||
|
||||
"").split("&"),function(b){b&&(c=b.split("="),d=decodeURIComponent(c[0]),a[d]=B(c[1])?decodeURIComponent(c[1]):!0)});return a}function wb(b){var a=[];n(b,function(b,d){a.push(wa(d,!0)+(b===!0?"":"="+wa(b,!0)))});return a.length?a.join("&"):""}function ab(b){return wa(b,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function wa(b,a){return encodeURIComponent(b).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,a?"%20":"+")}function rc(b,
|
||||
a){function c(a){a&&d.push(a)}var d=[b],e,g,i=["ng:app","ng-app","x-ng-app","data-ng-app"],f=/\sng[:\-]app(:\s*([\w\d_]+);?)?\s/;n(i,function(a){i[a]=!0;c(T.getElementById(a));a=a.replace(":","\\:");b.querySelectorAll&&(n(b.querySelectorAll("."+a),c),n(b.querySelectorAll("."+a+"\\:"),c),n(b.querySelectorAll("["+a+"]"),c))});n(d,function(a){if(!e){var b=f.exec(" "+a.className+" ");b?(e=a,g=(b[2]||"").replace(/\s+/g,",")):n(a.attributes,function(b){if(!e&&i[b.name])e=a,g=b.value})}});e&&a(e,g?[g]:[])}
|
||||
function xb(b,a){var c=function(){b=w(b);a=a||[];a.unshift(["$provide",function(a){a.value("$rootElement",b)}]);a.unshift("ng");var c=yb(a);c.invoke(["$rootScope","$rootElement","$compile","$injector","$animator",function(a,b,c,d,e){a.$apply(function(){b.data("$injector",d);c(b)(a)});e.enabled(!0)}]);return c},d=/^NG_DEFER_BOOTSTRAP!/;if(M&&!d.test(M.name))return c();M.name=M.name.replace(d,"");Ha.resumeBootstrap=function(b){n(b,function(b){a.push(b)});c()}}function bb(b,a){a=a||"_";return b.replace(sc,
|
||||
function(b,d){return(d?a:"")+b.toLowerCase()})}function cb(b,a,c){if(!b)throw Error("Argument '"+(a||"?")+"' is "+(c||"required"));return b}function xa(b,a,c){c&&F(b)&&(b=b[b.length-1]);cb(H(b),a,"not a function, got "+(b&&typeof b=="object"?b.constructor.name||"Object":typeof b));return b}function tc(b){function a(a,b,e){return a[b]||(a[b]=e())}return a(a(b,"angular",Object),"module",function(){var b={};return function(d,e,g){e&&b.hasOwnProperty(d)&&(b[d]=null);return a(b,d,function(){function a(c,
|
||||
d,e){return function(){b[e||"push"]([c,d,arguments]);return m}}if(!e)throw Error("No module: "+d);var b=[],c=[],j=a("$injector","invoke"),m={_invokeQueue:b,_runBlocks:c,requires:e,name:d,provider:a("$provide","provider"),factory:a("$provide","factory"),service:a("$provide","service"),value:a("$provide","value"),constant:a("$provide","constant","unshift"),animation:a("$animationProvider","register"),filter:a("$filterProvider","register"),controller:a("$controllerProvider","register"),directive:a("$compileProvider",
|
||||
"directive"),config:j,run:function(a){c.push(a);return this}};g&&j(g);return m})}})}function Ia(b){return b.replace(uc,function(a,b,d,e){return e?d.toUpperCase():d}).replace(vc,"Moz$1")}function db(b,a){function c(){var e;for(var b=[this],c=a,i,f,h,j,m,k;b.length;){i=b.shift();f=0;for(h=i.length;f<h;f++){j=w(i[f]);c?j.triggerHandler("$destroy"):c=!c;m=0;for(e=(k=j.children()).length,j=e;m<j;m++)b.push(ga(k[m]))}}return d.apply(this,arguments)}var d=ga.fn[b],d=d.$original||d;c.$original=d;ga.fn[b]=
|
||||
c}function R(b){if(b instanceof R)return b;if(!(this instanceof R)){if(E(b)&&b.charAt(0)!="<")throw Error("selectors not implemented");return new R(b)}if(E(b)){var a=T.createElement("div");a.innerHTML="<div> </div>"+b;a.removeChild(a.firstChild);eb(this,a.childNodes);this.remove()}else eb(this,b)}function fb(b){return b.cloneNode(!0)}function ya(b){zb(b);for(var a=0,b=b.childNodes||[];a<b.length;a++)ya(b[a])}function Ab(b,a,c){var d=ca(b,"events");ca(b,"handle")&&(C(a)?n(d,function(a,c){gb(b,
|
||||
c,a);delete d[c]}):C(c)?(gb(b,a,d[a]),delete d[a]):ta(d[a],c))}function zb(b){var a=b[Ja],c=Ka[a];c&&(c.handle&&(c.events.$destroy&&c.handle({},"$destroy"),Ab(b)),delete Ka[a],b[Ja]=p)}function ca(b,a,c){var d=b[Ja],d=Ka[d||-1];if(B(c))d||(b[Ja]=d=++wc,d=Ka[d]={}),d[a]=c;else return d&&d[a]}function Bb(b,a,c){var d=ca(b,"data"),e=B(c),g=!e&&B(a),i=g&&!L(a);!d&&!i&&ca(b,"data",d={});if(e)d[a]=c;else if(g)if(i)return d&&d[a];else t(d,a);else return d}function La(b,a){return(" "+b.className+" ").replace(/[\n\t]/g,
|
||||
" ").indexOf(" "+a+" ")>-1}function Cb(b,a){a&&n(a.split(" "),function(a){b.className=U((" "+b.className+" ").replace(/[\n\t]/g," ").replace(" "+U(a)+" "," "))})}function Db(b,a){a&&n(a.split(" "),function(a){if(!La(b,a))b.className=U(b.className+" "+U(a))})}function eb(b,a){if(a)for(var a=!a.nodeName&&B(a.length)&&!sa(a)?a:[a],c=0;c<a.length;c++)b.push(a[c])}function Eb(b,a){return Ma(b,"$"+(a||"ngController")+"Controller")}function Ma(b,a,c){b=w(b);for(b[0].nodeType==9&&(b=b.find("html"));b.length;){if(c=
|
||||
b.data(a))return c;b=b.parent()}}function Fb(b,a){var c=Na[a.toLowerCase()];return c&&Gb[b.nodeName]&&c}function xc(b,a){var c=function(c,e){if(!c.preventDefault)c.preventDefault=function(){c.returnValue=!1};if(!c.stopPropagation)c.stopPropagation=function(){c.cancelBubble=!0};if(!c.target)c.target=c.srcElement||T;if(C(c.defaultPrevented)){var g=c.preventDefault;c.preventDefault=function(){c.defaultPrevented=!0;g.call(c)};c.defaultPrevented=!1}c.isDefaultPrevented=function(){return c.defaultPrevented||
|
||||
c.returnValue==!1};n(a[e||c.type],function(a){a.call(b,c)});Z<=8?(c.preventDefault=null,c.stopPropagation=null,c.isDefaultPrevented=null):(delete c.preventDefault,delete c.stopPropagation,delete c.isDefaultPrevented)};c.elem=b;return c}function la(b){var a=typeof b,c;if(a=="object"&&b!==null)if(typeof(c=b.$$hashKey)=="function")c=b.$$hashKey();else{if(c===p)c=b.$$hashKey=Fa()}else c=b;return a+":"+c}function za(b){n(b,this.put,this)}function Hb(b){var a,c;if(typeof b=="function"){if(!(a=b.$inject))a=
|
||||
[],c=b.toString().replace(yc,""),c=c.match(zc),n(c[1].split(Ac),function(b){b.replace(Bc,function(b,c,d){a.push(d)})}),b.$inject=a}else F(b)?(c=b.length-1,xa(b[c],"fn"),a=b.slice(0,c)):xa(b,"fn",!0);return a}function yb(b){function a(a){return function(b,c){if(L(b))n(b,rb(a));else return a(b,c)}}function c(a,b){if(H(b)||F(b))b=k.instantiate(b);if(!b.$get)throw Error("Provider "+a+" must define $get factory method.");return m[a+f]=b}function d(a,b){return c(a,{$get:b})}function e(a){var b=[];n(a,function(a){if(!j.get(a))if(j.put(a,
|
||||
!0),E(a)){var c=Aa(a);b=b.concat(e(c.requires)).concat(c._runBlocks);try{for(var d=c._invokeQueue,c=0,f=d.length;c<f;c++){var g=d[c],o=k.get(g[0]);o[g[1]].apply(o,g[2])}}catch(h){throw h.message&&(h.message+=" from "+a),h;}}else if(H(a))try{b.push(k.invoke(a))}catch(l){throw l.message&&(l.message+=" from "+a),l;}else if(F(a))try{b.push(k.invoke(a))}catch(i){throw i.message&&(i.message+=" from "+String(a[a.length-1])),i;}else xa(a,"module")});return b}function g(a,b){function c(d){if(typeof d!=="string")throw Error("Service name expected");
|
||||
if(a.hasOwnProperty(d)){if(a[d]===i)throw Error("Circular dependency: "+h.join(" <- "));return a[d]}else try{return h.unshift(d),a[d]=i,a[d]=b(d)}finally{h.shift()}}function d(a,b,e){var f=[],j=Hb(a),g,o,h;o=0;for(g=j.length;o<g;o++)h=j[o],f.push(e&&e.hasOwnProperty(h)?e[h]:c(h));a.$inject||(a=a[g]);switch(b?-1:f.length){case 0:return a();case 1:return a(f[0]);case 2:return a(f[0],f[1]);case 3:return a(f[0],f[1],f[2]);case 4:return a(f[0],f[1],f[2],f[3]);case 5:return a(f[0],f[1],f[2],f[3],f[4]);
|
||||
case 6:return a(f[0],f[1],f[2],f[3],f[4],f[5]);case 7:return a(f[0],f[1],f[2],f[3],f[4],f[5],f[6]);case 8:return a(f[0],f[1],f[2],f[3],f[4],f[5],f[6],f[7]);case 9:return a(f[0],f[1],f[2],f[3],f[4],f[5],f[6],f[7],f[8]);case 10:return a(f[0],f[1],f[2],f[3],f[4],f[5],f[6],f[7],f[8],f[9]);default:return a.apply(b,f)}}return{invoke:d,instantiate:function(a,b){var c=function(){},e;c.prototype=(F(a)?a[a.length-1]:a).prototype;c=new c;e=d(a,c,b);return L(e)?e:c},get:c,annotate:Hb,has:function(b){return m.hasOwnProperty(b+
|
||||
f)||a.hasOwnProperty(b)}}}var i={},f="Provider",h=[],j=new za,m={$provide:{provider:a(c),factory:a(d),service:a(function(a,b){return d(a,["$injector",function(a){return a.instantiate(b)}])}),value:a(function(a,b){return d(a,S(b))}),constant:a(function(a,b){m[a]=b;l[a]=b}),decorator:function(a,b){var c=k.get(a+f),d=c.$get;c.$get=function(){var a=u.invoke(d,c);return u.invoke(b,null,{$delegate:a})}}}},k=m.$injector=g(m,function(){throw Error("Unknown provider: "+h.join(" <- "));}),l={},u=l.$injector=
|
||||
g(l,function(a){a=k.get(a+f);return u.invoke(a.$get,a)});n(e(b),function(a){u.invoke(a||q)});return u}function Cc(){var b=!0;this.disableAutoScrolling=function(){b=!1};this.$get=["$window","$location","$rootScope",function(a,c,d){function e(a){var b=null;n(a,function(a){!b&&I(a.nodeName)==="a"&&(b=a)});return b}function g(){var b=c.hash(),d;b?(d=i.getElementById(b))?d.scrollIntoView():(d=e(i.getElementsByName(b)))?d.scrollIntoView():b==="top"&&a.scrollTo(0,0):a.scrollTo(0,0)}var i=a.document;b&&d.$watch(function(){return c.hash()},
|
||||
function(){d.$evalAsync(g)});return g}]}function Ib(b){this.register=function(a,c){b.factory(Ia(a)+"Animation",c)};this.$get=["$injector",function(a){return function(b){if(b&&(b=Ia(b)+"Animation",a.has(b)))return a.get(b)}}]}function Dc(b,a,c,d){function e(a){try{a.apply(null,ka.call(arguments,1))}finally{if(o--,o===0)for(;z.length;)try{z.pop()()}catch(b){c.error(b)}}}function g(a,b){(function s(){n(r,function(a){a()});y=b(s,a)})()}function i(){x!=f.url()&&(x=f.url(),n(v,function(a){a(f.url())}))}
|
||||
var f=this,h=a[0],j=b.location,m=b.history,k=b.setTimeout,l=b.clearTimeout,u={};f.isMock=!1;var o=0,z=[];f.$$completeOutstandingRequest=e;f.$$incOutstandingRequestCount=function(){o++};f.notifyWhenNoOutstandingRequests=function(a){n(r,function(a){a()});o===0?a():z.push(a)};var r=[],y;f.addPollFn=function(a){C(y)&&g(100,k);r.push(a);return a};var x=j.href,W=a.find("base");f.url=function(a,b){if(a){if(x!=a)return x=a,d.history?b?m.replaceState(null,"",a):(m.pushState(null,"",a),W.attr("href",W.attr("href"))):
|
||||
b?j.replace(a):j.href=a,f}else return j.href.replace(/%27/g,"'")};var v=[],A=!1;f.onUrlChange=function(a){A||(d.history&&w(b).bind("popstate",i),d.hashchange?w(b).bind("hashchange",i):f.addPollFn(i),A=!0);v.push(a);return a};f.baseHref=function(){var a=W.attr("href");return a?a.replace(/^https?\:\/\/[^\/]*/,""):""};var G={},D="",$=f.baseHref();f.cookies=function(a,b){var d,e,f,j;if(a)if(b===p)h.cookie=escape(a)+"=;path="+$+";expires=Thu, 01 Jan 1970 00:00:00 GMT";else{if(E(b))d=(h.cookie=escape(a)+
|
||||
"="+escape(b)+";path="+$).length+1,d>4096&&c.warn("Cookie '"+a+"' possibly not set or overflowed because it was too large ("+d+" > 4096 bytes)!")}else{if(h.cookie!==D){D=h.cookie;d=D.split("; ");G={};for(f=0;f<d.length;f++)e=d[f],j=e.indexOf("="),j>0&&(a=unescape(e.substring(0,j)),G[a]===p&&(G[a]=unescape(e.substring(j+1))))}return G}};f.defer=function(a,b){var c;o++;c=k(function(){delete u[c];e(a)},b||0);u[c]=!0;return c};f.defer.cancel=function(a){return u[a]?(delete u[a],l(a),e(q),!0):!1}}function Ec(){this.$get=
|
||||
["$window","$log","$sniffer","$document",function(b,a,c,d){return new Dc(b,d,a,c)}]}function Fc(){this.$get=function(){function b(b,d){function e(a){if(a!=k){if(l){if(l==a)l=a.n}else l=a;g(a.n,a.p);g(a,k);k=a;k.n=null}}function g(a,b){if(a!=b){if(a)a.p=b;if(b)b.n=a}}if(b in a)throw Error("cacheId "+b+" taken");var i=0,f=t({},d,{id:b}),h={},j=d&&d.capacity||Number.MAX_VALUE,m={},k=null,l=null;return a[b]={put:function(a,b){var c=m[a]||(m[a]={key:a});e(c);if(!C(b))return a in h||i++,h[a]=b,i>j&&this.remove(l.key),
|
||||
b},get:function(a){var b=m[a];if(b)return e(b),h[a]},remove:function(a){var b=m[a];if(b){if(b==k)k=b.p;if(b==l)l=b.n;g(b.n,b.p);delete m[a];delete h[a];i--}},removeAll:function(){h={};i=0;m={};k=l=null},destroy:function(){m=f=h=null;delete a[b]},info:function(){return t({},f,{size:i})}}}var a={};b.info=function(){var b={};n(a,function(a,e){b[e]=a.info()});return b};b.get=function(b){return a[b]};return b}}function Gc(){this.$get=["$cacheFactory",function(b){return b("templates")}]}function Jb(b){var a=
|
||||
{},c="Directive",d=/^\s*directive\:\s*([\d\w\-_]+)\s+(.*)$/,e=/(([\d\w\-_]+)(?:\:([^;]+))?;?)/,g="Template must have exactly one root element. was: ",i=/^\s*(https?|ftp|mailto|file):/;this.directive=function h(d,e){E(d)?(cb(e,"directive"),a.hasOwnProperty(d)||(a[d]=[],b.factory(d+c,["$injector","$exceptionHandler",function(b,c){var e=[];n(a[d],function(a){try{var g=b.invoke(a);if(H(g))g={compile:S(g)};else if(!g.compile&&g.link)g.compile=S(g.link);g.priority=g.priority||0;g.name=g.name||d;g.require=
|
||||
g.require||g.controller&&g.name;g.restrict=g.restrict||"A";e.push(g)}catch(h){c(h)}});return e}])),a[d].push(e)):n(d,rb(h));return this};this.urlSanitizationWhitelist=function(a){return B(a)?(i=a,this):i};this.$get=["$injector","$interpolate","$exceptionHandler","$http","$templateCache","$parse","$controller","$rootScope","$document",function(b,j,m,k,l,u,o,z,r){function y(a,b,c){a instanceof w||(a=w(a));n(a,function(b,c){b.nodeType==3&&b.nodeValue.match(/\S+/)&&(a[c]=w(b).wrap("<span></span>").parent()[0])});
|
||||
var d=W(a,b,a,c);return function(b,c){cb(b,"scope");for(var e=c?Ba.clone.call(a):a,j=0,g=e.length;j<g;j++){var h=e[j];(h.nodeType==1||h.nodeType==9)&&e.eq(j).data("$scope",b)}x(e,"ng-scope");c&&c(e,b);d&&d(b,e,e);return e}}function x(a,b){try{a.addClass(b)}catch(c){}}function W(a,b,c,d){function e(a,c,d,g){var h,i,k,l,o,m,u,z=[];o=0;for(m=c.length;o<m;o++)z.push(c[o]);u=o=0;for(m=j.length;o<m;u++)i=z[u],c=j[o++],h=j[o++],c?(c.scope?(k=a.$new(L(c.scope)),w(i).data("$scope",k)):k=a,(l=c.transclude)||
|
||||
!g&&b?c(h,k,i,d,function(b){return function(c){var d=a.$new();d.$$transcluded=!0;return b(d,c).bind("$destroy",$a(d,d.$destroy))}}(l||b)):c(h,k,i,p,g)):h&&h(a,i.childNodes,p,g)}for(var j=[],g,h,k,i=0;i<a.length;i++)h=new ma,g=v(a[i],[],h,d),h=(g=g.length?A(g,a[i],h,b,c):null)&&g.terminal||!a[i].childNodes||!a[i].childNodes.length?null:W(a[i].childNodes,g?g.transclude:b),j.push(g),j.push(h),k=k||g||h;return k?e:null}function v(a,b,c,j){var g=c.$attr,h;switch(a.nodeType){case 1:G(b,da(hb(a).toLowerCase()),
|
||||
"E",j);var i,k,l;h=a.attributes;for(var o=0,m=h&&h.length;o<m;o++)if(i=h[o],i.specified)k=i.name,l=da(k),Y.test(l)&&(k=l.substr(6).toLowerCase()),l=da(k.toLowerCase()),g[l]=k,c[l]=i=U(Z&&k=="href"?decodeURIComponent(a.getAttribute(k,2)):i.value),Fb(a,l)&&(c[l]=!0),s(a,b,i,l),G(b,l,"A",j);a=a.className;if(E(a)&&a!=="")for(;h=e.exec(a);)l=da(h[2]),G(b,l,"C",j)&&(c[l]=U(h[3])),a=a.substr(h.index+h[0].length);break;case 3:P(b,a.nodeValue);break;case 8:try{if(h=d.exec(a.nodeValue))l=da(h[1]),G(b,l,"M",
|
||||
j)&&(c[l]=U(h[2]))}catch(u){}}b.sort(K);return b}function A(a,b,c,d,e){function h(a,b){if(a)a.require=s.require,z.push(a);if(b)b.require=s.require,ea.push(b)}function i(a,b){var c,d="data",e=!1;if(E(a)){for(;(c=a.charAt(0))=="^"||c=="?";)a=a.substr(1),c=="^"&&(d="inheritedData"),e=e||c=="?";c=b[d]("$"+a+"Controller");if(!c&&!e)throw Error("No controller: "+a);}else F(a)&&(c=[],n(a,function(a){c.push(i(a,b))}));return c}function k(a,d,e,g,h){var l,v,r,D,x;l=b===e?c:pc(c,new ma(w(e),c.$attr));v=l.$$element;
|
||||
if(K){var y=/^\s*([@=&])(\??)\s*(\w*)\s*$/,s=d.$parent||d;n(K.scope,function(a,b){var c=a.match(y)||[],e=c[3]||b,g=c[2]=="?",c=c[1],h,k,i;d.$$isolateBindings[b]=c+e;switch(c){case "@":l.$observe(e,function(a){d[b]=a});l.$$observers[e].$$scope=s;l[e]&&(d[b]=j(l[e])(s));break;case "=":if(g&&!l[e])break;k=u(l[e]);i=k.assign||function(){h=d[b]=k(s);throw Error(Kb+l[e]+" (directive: "+K.name+")");};h=d[b]=k(s);d.$watch(function(){var a=k(s);a!==d[b]&&(a!==h?h=d[b]=a:i(s,a=h=d[b]));return a});break;case "&":k=
|
||||
u(l[e]);d[b]=function(a){return k(s,a)};break;default:throw Error("Invalid isolate scope definition for directive "+K.name+": "+a);}})}q&&n(q,function(a){var b={$scope:d,$element:v,$attrs:l,$transclude:h};x=a.controller;x=="@"&&(x=l[a.name]);v.data("$"+a.name+"Controller",o(x,b))});g=0;for(r=z.length;g<r;g++)try{D=z[g],D(d,v,l,D.require&&i(D.require,v))}catch(Hc){m(Hc,va(v))}a&&a(d,e.childNodes,p,h);g=0;for(r=ea.length;g<r;g++)try{D=ea[g],D(d,v,l,D.require&&i(D.require,v))}catch(J){m(J,va(v))}}for(var l=
|
||||
-Number.MAX_VALUE,z=[],ea=[],r=null,K=null,W=null,J=c.$$element=w(b),s,A,Y,G,P=d,q,na,t,B=0,C=a.length;B<C;B++){s=a[B];Y=p;if(l>s.priority)break;if(t=s.scope)O("isolated scope",K,s,J),L(t)&&(x(J,"ng-isolate-scope"),K=s),x(J,"ng-scope"),r=r||s;A=s.name;if(t=s.controller)q=q||{},O("'"+A+"' controller",q[A],s,J),q[A]=s;if(t=s.transclude)O("transclusion",G,s,J),G=s,l=s.priority,t=="element"?(Y=w(b),J=c.$$element=w(T.createComment(" "+A+": "+c[A]+" ")),b=J[0],ja(e,w(Y[0]),b),P=y(Y,d,l)):(Y=w(fb(b)).contents(),
|
||||
J.html(""),P=y(Y,d));if(s.template)if(O("template",W,s,J),W=s,t=H(s.template)?s.template(J,c):s.template,t=Lb(t),s.replace){Y=w("<div>"+U(t)+"</div>").contents();b=Y[0];if(Y.length!=1||b.nodeType!==1)throw Error(g+t);ja(e,J,b);A={$attr:{}};a=a.concat(v(b,a.splice(B+1,a.length-(B+1)),A));D(c,A);C=a.length}else J.html(t);if(s.templateUrl)O("template",W,s,J),W=s,k=$(a.splice(B,a.length-B),k,J,c,e,s.replace,P),C=a.length;else if(s.compile)try{na=s.compile(J,c,P),H(na)?h(null,na):na&&h(na.pre,na.post)}catch(I){m(I,
|
||||
va(J))}if(s.terminal)k.terminal=!0,l=Math.max(l,s.priority)}k.scope=r&&r.scope;k.transclude=G&&P;return k}function G(d,e,j,g){var l=!1;if(a.hasOwnProperty(e))for(var k,e=b.get(e+c),i=0,o=e.length;i<o;i++)try{if(k=e[i],(g===p||g>k.priority)&&k.restrict.indexOf(j)!=-1)d.push(k),l=!0}catch(u){m(u)}return l}function D(a,b){var c=b.$attr,d=a.$attr,e=a.$$element;n(a,function(d,e){e.charAt(0)!="$"&&(b[e]&&(d+=(e==="style"?";":" ")+b[e]),a.$set(e,d,!0,c[e]))});n(b,function(b,j){j=="class"?(x(e,b),a["class"]=
|
||||
(a["class"]?a["class"]+" ":"")+b):j=="style"?e.attr("style",e.attr("style")+";"+b):j.charAt(0)!="$"&&!a.hasOwnProperty(j)&&(a[j]=b,d[j]=c[j])})}function $(a,b,c,d,e,j,h){var i=[],o,m,u=c[0],z=a.shift(),r=t({},z,{controller:null,templateUrl:null,transclude:null,scope:null}),z=H(z.templateUrl)?z.templateUrl(c,d):z.templateUrl;c.html("");k.get(z,{cache:l}).success(function(l){var k,z,l=Lb(l);if(j){z=w("<div>"+U(l)+"</div>").contents();k=z[0];if(z.length!=1||k.nodeType!==1)throw Error(g+l);l={$attr:{}};
|
||||
ja(e,c,k);v(k,a,l);D(d,l)}else k=u,c.html(l);a.unshift(r);o=A(a,k,d,h);for(m=W(c[0].childNodes,h);i.length;){var ea=i.shift(),l=i.shift();z=i.shift();var x=i.shift(),y=k;l!==u&&(y=fb(k),ja(z,w(l),y));o(function(){b(m,ea,y,e,x)},ea,y,e,x)}i=null}).error(function(a,b,c,d){throw Error("Failed to load template: "+d.url);});return function(a,c,d,e,j){i?(i.push(c),i.push(d),i.push(e),i.push(j)):o(function(){b(m,c,d,e,j)},c,d,e,j)}}function K(a,b){return b.priority-a.priority}function O(a,b,c,d){if(b)throw Error("Multiple directives ["+
|
||||
b.name+", "+c.name+"] asking for "+a+" on: "+va(d));}function P(a,b){var c=j(b,!0);c&&a.push({priority:0,compile:S(function(a,b){var d=b.parent(),e=d.data("$binding")||[];e.push(c);x(d.data("$binding",e),"ng-binding");a.$watch(c,function(a){b[0].nodeValue=a})})})}function s(a,b,c,d){var e=j(c,!0);e&&b.push({priority:100,compile:S(function(a,b,c){b=c.$$observers||(c.$$observers={});if(e=j(c[d],!0))c[d]=e(a),(b[d]||(b[d]=[])).$$inter=!0,(c.$$observers&&c.$$observers[d].$$scope||a).$watch(e,function(a){c.$set(d,
|
||||
a)})})})}function ja(a,b,c){var d=b[0],e=d.parentNode,j,g;if(a){j=0;for(g=a.length;j<g;j++)if(a[j]==d){a[j]=c;break}}e&&e.replaceChild(c,d);c[w.expando]=d[w.expando];b[0]=c}var ma=function(a,b){this.$$element=a;this.$attr=b||{}};ma.prototype={$normalize:da,$set:function(a,b,c,d){var e=Fb(this.$$element[0],a),j=this.$$observers;e&&(this.$$element.prop(a,b),d=e);this[a]=b;d?this.$attr[a]=d:(d=this.$attr[a])||(this.$attr[a]=d=bb(a,"-"));if(hb(this.$$element[0])==="A"&&a==="href")q.setAttribute("href",
|
||||
b),e=q.href,e.match(i)||(this[a]=b="unsafe:"+e);c!==!1&&(b===null||b===p?this.$$element.removeAttr(d):this.$$element.attr(d,b));j&&n(j[a],function(a){try{a(b)}catch(c){m(c)}})},$observe:function(a,b){var c=this,d=c.$$observers||(c.$$observers={}),e=d[a]||(d[a]=[]);e.push(b);z.$evalAsync(function(){e.$$inter||b(c[a])});return b}};var q=r[0].createElement("a"),ea=j.startSymbol(),J=j.endSymbol(),Lb=ea=="{{"||J=="}}"?qa:function(a){return a.replace(/\{\{/g,ea).replace(/}}/g,J)},Y=/^ngAttr[A-Z]/;return y}]}
|
||||
function da(b){return Ia(b.replace(Ic,""))}function Jc(){var b={},a=/^(\S+)(\s+as\s+(\w+))?$/;this.register=function(a,d){L(a)?t(b,a):b[a]=d};this.$get=["$injector","$window",function(c,d){return function(e,g){var i,f;E(e)&&(f=e.match(a),i=f[1],f=f[3],e=b.hasOwnProperty(i)?b[i]:ib(g.$scope,i,!0)||ib(d,i,!0),xa(e,i,!0));i=c.instantiate(e,g);if(f){if(typeof g.$scope!=="object")throw Error('Can not export controller as "'+f+'". No scope object provided!');g.$scope[f]=i}return i}}]}function Kc(){this.$get=
|
||||
["$window",function(b){return w(b.document)}]}function Lc(){this.$get=["$log",function(b){return function(a,c){b.error.apply(b,arguments)}}]}function Mc(){var b="{{",a="}}";this.startSymbol=function(a){return a?(b=a,this):b};this.endSymbol=function(b){return b?(a=b,this):a};this.$get=["$parse","$exceptionHandler",function(c,d){function e(e,h){for(var j,m,k=0,l=[],u=e.length,o=!1,z=[];k<u;)(j=e.indexOf(b,k))!=-1&&(m=e.indexOf(a,j+g))!=-1?(k!=j&&l.push(e.substring(k,j)),l.push(k=c(o=e.substring(j+g,
|
||||
m))),k.exp=o,k=m+i,o=!0):(k!=u&&l.push(e.substring(k)),k=u);if(!(u=l.length))l.push(""),u=1;if(!h||o)return z.length=u,k=function(a){try{for(var b=0,c=u,j;b<c;b++){if(typeof(j=l[b])=="function")j=j(a),j==null||j==p?j="":typeof j!="string"&&(j=ha(j));z[b]=j}return z.join("")}catch(g){d(Error("Error while interpolating: "+e+"\n"+g.toString()))}},k.exp=e,k.parts=l,k}var g=b.length,i=a.length;e.startSymbol=function(){return b};e.endSymbol=function(){return a};return e}]}function Mb(b){for(var b=b.split("/"),
|
||||
a=b.length;a--;)b[a]=ab(b[a]);return b.join("/")}function Nb(b,a){var c=jb.exec(b);a.$$protocol=c[1];a.$$host=c[3];a.$$port=N(c[5])||Oa[c[1]]||null}function Ob(b,a){var c=Pb.exec(b);a.$$path=decodeURIComponent(c[1]);a.$$search=vb(c[3]);a.$$hash=decodeURIComponent(c[5]||"");if(a.$$path&&a.$$path.charAt(0)!="/")a.$$path="/"+a.$$path}function fa(b,a,c){return a.indexOf(b)==0?a.substr(b.length):c}function Ca(b){var a=b.indexOf("#");return a==-1?b:b.substr(0,a)}function kb(b){return b.substr(0,Ca(b).lastIndexOf("/")+
|
||||
1)}function Qb(b,a){var a=a||"",c=kb(b);this.$$parse=function(a){var b={};Nb(a,b);var g=fa(c,a);if(!E(g))throw Error('Invalid url "'+a+'", missing path prefix "'+c+'".');Ob(g,b);t(this,b);if(!this.$$path)this.$$path="/";this.$$compose()};this.$$compose=function(){var a=wb(this.$$search),b=this.$$hash?"#"+ab(this.$$hash):"";this.$$url=Mb(this.$$path)+(a?"?"+a:"")+b;this.$$absUrl=c+this.$$url.substr(1)};this.$$rewrite=function(d){var e;if((e=fa(b,d))!==p)return d=e,(e=fa(a,e))!==p?c+(fa("/",e)||e):
|
||||
b+d;else if((e=fa(c,d))!==p)return c+e;else if(c==d+"/")return c}}function lb(b,a){var c=kb(b);this.$$parse=function(d){Nb(d,this);var e=fa(b,d)||fa(c,d);if(!E(e))throw Error('Invalid url "'+d+'", does not start with "'+b+'".');e=e.charAt(0)=="#"?fa(a,e):e;if(!E(e))throw Error('Invalid url "'+d+'", missing hash prefix "'+a+'".');Ob(e,this);this.$$compose()};this.$$compose=function(){var c=wb(this.$$search),e=this.$$hash?"#"+ab(this.$$hash):"";this.$$url=Mb(this.$$path)+(c?"?"+c:"")+e;this.$$absUrl=
|
||||
b+(this.$$url?a+this.$$url:"")};this.$$rewrite=function(a){if(Ca(b)==Ca(a))return a}}function Rb(b,a){lb.apply(this,arguments);var c=kb(b);this.$$rewrite=function(d){var e;if(b==Ca(d))return d;else if(e=fa(c,d))return b+a+e;else if(c===d+"/")return c}}function Pa(b){return function(){return this[b]}}function Sb(b,a){return function(c){if(C(c))return this[b];this[b]=a(c);this.$$compose();return this}}function Nc(){var b="",a=!1;this.hashPrefix=function(a){return B(a)?(b=a,this):b};this.html5Mode=function(b){return B(b)?
|
||||
(a=b,this):a};this.$get=["$rootScope","$browser","$sniffer","$rootElement",function(c,d,e,g){function i(a){c.$broadcast("$locationChangeSuccess",f.absUrl(),a)}var f,h=d.baseHref(),j=d.url();a?(h=h?j.substring(0,j.indexOf("/",j.indexOf("//")+2))+h:j,e=e.history?Qb:Rb):(h=Ca(j),e=lb);f=new e(h,"#"+b);f.$$parse(f.$$rewrite(j));g.bind("click",function(a){if(!a.ctrlKey&&!(a.metaKey||a.which==2)){for(var b=w(a.target);I(b[0].nodeName)!=="a";)if(b[0]===g[0]||!(b=b.parent())[0])return;var e=b.prop("href"),
|
||||
j=f.$$rewrite(e);e&&!b.attr("target")&&j&&!a.isDefaultPrevented()&&(a.preventDefault(),j!=d.url()&&(f.$$parse(j),c.$apply(),M.angular["ff-684208-preventDefault"]=!0))}});f.absUrl()!=j&&d.url(f.absUrl(),!0);d.onUrlChange(function(a){f.absUrl()!=a&&(c.$broadcast("$locationChangeStart",a,f.absUrl()).defaultPrevented?d.url(f.absUrl()):(c.$evalAsync(function(){var b=f.absUrl();f.$$parse(a);i(b)}),c.$$phase||c.$digest()))});var m=0;c.$watch(function(){var a=d.url(),b=f.$$replace;if(!m||a!=f.absUrl())m++,
|
||||
c.$evalAsync(function(){c.$broadcast("$locationChangeStart",f.absUrl(),a).defaultPrevented?f.$$parse(a):(d.url(f.absUrl(),b),i(a))});f.$$replace=!1;return m});return f}]}function Oc(){var b=!0,a=this;this.debugEnabled=function(a){return B(a)?(b=a,this):b};this.$get=["$window",function(c){function d(a){a instanceof Error&&(a.stack?a=a.message&&a.stack.indexOf(a.message)===-1?"Error: "+a.message+"\n"+a.stack:a.stack:a.sourceURL&&(a=a.message+"\n"+a.sourceURL+":"+a.line));return a}function e(a){var b=
|
||||
c.console||{},e=b[a]||b.log||q;return e.apply?function(){var a=[];n(arguments,function(b){a.push(d(b))});return e.apply(b,a)}:function(a,b){e(a,b)}}return{log:e("log"),warn:e("warn"),info:e("info"),error:e("error"),debug:function(){var c=e("debug");return function(){b&&c.apply(a,arguments)}}()}}]}function Pc(b,a){function c(a){return a.indexOf(r)!=-1}function d(a){a=a||1;return o+a<b.length?b.charAt(o+a):!1}function e(a){return"0"<=a&&a<="9"}function g(a){return a==" "||a=="\r"||a=="\t"||a=="\n"||
|
||||
a=="\u000b"||a=="\u00a0"}function i(a){return"a"<=a&&a<="z"||"A"<=a&&a<="Z"||"_"==a||a=="$"}function f(a){return a=="-"||a=="+"||e(a)}function h(a,c,d){d=d||o;throw Error("Lexer Error: "+a+" at column"+(B(c)?"s "+c+"-"+o+" ["+b.substring(c,d)+"]":" "+d)+" in expression ["+b+"].");}function j(){for(var a="",c=o;o<b.length;){var j=I(b.charAt(o));if(j=="."||e(j))a+=j;else{var g=d();if(j=="e"&&f(g))a+=j;else if(f(j)&&g&&e(g)&&a.charAt(a.length-1)=="e")a+=j;else if(f(j)&&(!g||!e(g))&&a.charAt(a.length-
|
||||
1)=="e")h("Invalid exponent");else break}o++}a*=1;l.push({index:c,text:a,json:!0,fn:function(){return a}})}function m(){for(var c="",d=o,f,j,h,k;o<b.length;){k=b.charAt(o);if(k=="."||i(k)||e(k))k=="."&&(f=o),c+=k;else break;o++}if(f)for(j=o;j<b.length;){k=b.charAt(j);if(k=="("){h=c.substr(f-d+1);c=c.substr(0,f-d);o=j;break}if(g(k))j++;else break}d={index:d,text:c};if(Da.hasOwnProperty(c))d.fn=d.json=Da[c];else{var m=Tb(c,a);d.fn=t(function(a,b){return m(a,b)},{assign:function(a,b){return Ub(a,c,b)}})}l.push(d);
|
||||
h&&(l.push({index:f,text:".",json:!1}),l.push({index:f+1,text:h,json:!1}))}function k(a){var c=o;o++;for(var d="",e=a,f=!1;o<b.length;){var j=b.charAt(o);e+=j;if(f)j=="u"?(j=b.substring(o+1,o+5),j.match(/[\da-f]{4}/i)||h("Invalid unicode escape [\\u"+j+"]"),o+=4,d+=String.fromCharCode(parseInt(j,16))):(f=Qc[j],d+=f?f:j),f=!1;else if(j=="\\")f=!0;else if(j==a){o++;l.push({index:c,text:e,string:d,json:!0,fn:function(){return d}});return}else d+=j;o++}h("Unterminated quote",c)}for(var l=[],u,o=0,z=[],
|
||||
r,y=":";o<b.length;){r=b.charAt(o);if(c("\"'"))k(r);else if(e(r)||c(".")&&e(d()))j();else if(i(r)){if(m(),"{,".indexOf(y)!=-1&&z[0]=="{"&&(u=l[l.length-1]))u.json=u.text.indexOf(".")==-1}else if(c("(){}[].,;:?"))l.push({index:o,text:r,json:":[,".indexOf(y)!=-1&&c("{[")||c("}]:,")}),c("{[")&&z.unshift(r),c("}]")&&z.shift(),o++;else if(g(r)){o++;continue}else{var x=r+d(),n=x+d(2),v=Da[r],A=Da[x],G=Da[n];G?(l.push({index:o,text:n,fn:G}),o+=3):A?(l.push({index:o,text:x,fn:A}),o+=2):v?(l.push({index:o,
|
||||
text:r,fn:v,json:"[,:".indexOf(y)!=-1&&c("+-")}),o+=1):h("Unexpected next character ",o,o+1)}y=r}return l}function Rc(b,a,c,d){function e(a,c){throw Error("Syntax Error: Token '"+c.text+"' "+a+" at column "+(c.index+1)+" of the expression ["+b+"] starting at ["+b.substring(c.index)+"].");}function g(){if(O.length===0)throw Error("Unexpected end of expression: "+b);return O[0]}function i(a,b,c,d){if(O.length>0){var e=O[0],f=e.text;if(f==a||f==b||f==c||f==d||!a&&!b&&!c&&!d)return e}return!1}function f(b,
|
||||
c,d,f){return(b=i(b,c,d,f))?(a&&!b.json&&e("is not valid json",b),O.shift(),b):!1}function h(a){f(a)||e("is unexpected, expecting ["+a+"]",i())}function j(a,b){return t(function(c,d){return a(c,d,b)},{constant:b.constant})}function m(a,b,c){return t(function(d,e){return a(d,e)?b(d,e):c(d,e)},{constant:a.constant&&b.constant&&c.constant})}function k(a,b,c){return t(function(d,e){return b(d,e,a,c)},{constant:a.constant&&c.constant})}function l(){for(var a=[];;)if(O.length>0&&!i("}",")",";","]")&&a.push(w()),
|
||||
!f(";"))return a.length==1?a[0]:function(b,c){for(var d,e=0;e<a.length;e++){var f=a[e];f&&(d=f(b,c))}return d}}function u(){for(var a=f(),b=c(a.text),d=[];;)if(a=f(":"))d.push(P());else{var e=function(a,c,e){for(var e=[e],f=0;f<d.length;f++)e.push(d[f](a,c));return b.apply(a,e)};return function(){return e}}}function o(){var a=z(),b,c;if(f("?"))if(b=o(),c=f(":"))return m(a,b,o());else e("expected :",c);else return a}function z(){for(var a=r(),b;;)if(b=f("||"))a=k(a,b.fn,r());else return a}function r(){var a=
|
||||
y(),b;if(b=f("&&"))a=k(a,b.fn,r());return a}function y(){var a=x(),b;if(b=f("==","!=","===","!=="))a=k(a,b.fn,y());return a}function x(){var a;a=n();for(var b;b=f("+","-");)a=k(a,b.fn,n());if(b=f("<",">","<=",">="))a=k(a,b.fn,x());return a}function n(){for(var a=v(),b;b=f("*","/","%");)a=k(a,b.fn,v());return a}function v(){var a;return f("+")?A():(a=f("-"))?k($,a.fn,v()):(a=f("!"))?j(a.fn,v()):A()}function A(){var a;if(f("("))a=w(),h(")");else if(f("["))a=G();else if(f("{"))a=D();else{var b=f();(a=
|
||||
b.fn)||e("not a primary expression",b);if(b.json)a.constant=a.literal=!0}for(var c;b=f("(","[",".");)b.text==="("?(a=s(a,c),c=null):b.text==="["?(c=a,a=ma(a)):b.text==="."?(c=a,a=ja(a)):e("IMPOSSIBLE");return a}function G(){var a=[],b=!0;if(g().text!="]"){do{var c=P();a.push(c);c.constant||(b=!1)}while(f(","))}h("]");return t(function(b,c){for(var d=[],e=0;e<a.length;e++)d.push(a[e](b,c));return d},{literal:!0,constant:b})}function D(){var a=[],b=!0;if(g().text!="}"){do{var c=f(),c=c.string||c.text;
|
||||
h(":");var d=P();a.push({key:c,value:d});d.constant||(b=!1)}while(f(","))}h("}");return t(function(b,c){for(var d={},e=0;e<a.length;e++){var f=a[e];d[f.key]=f.value(b,c)}return d},{literal:!0,constant:b})}var $=S(0),K,O=Pc(b,d),P=function(){var a=o(),c,d;return(d=f("="))?(a.assign||e("implies assignment but ["+b.substring(0,d.index)+"] can not be assigned to",d),c=o(),function(b,d){return a.assign(b,c(b,d),d)}):a},s=function(a,b){var c=[];if(g().text!=")"){do c.push(P());while(f(","))}h(")");return function(d,
|
||||
e){for(var f=[],j=b?b(d,e):d,g=0;g<c.length;g++)f.push(c[g](d,e));g=a(d,e,j)||q;return g.apply?g.apply(j,f):g(f[0],f[1],f[2],f[3],f[4])}},ja=function(a){var b=f().text,c=Tb(b,d);return t(function(b,d,e){return c(e||a(b,d),d)},{assign:function(c,d,e){return Ub(a(c,e),b,d)}})},ma=function(a){var b=P();h("]");return t(function(c,d){var e=a(c,d),f=b(c,d),j;if(!e)return p;if((e=e[f])&&e.then){j=e;if(!("$$v"in e))j.$$v=p,j.then(function(a){j.$$v=a});e=e.$$v}return e},{assign:function(c,d,e){return a(c,
|
||||
e)[b(c,e)]=d}})},w=function(){for(var a=P(),b;;)if(b=f("|"))a=k(a,b.fn,u());else return a};a?(P=z,s=ja=ma=w=function(){e("is not valid json",{text:b,index:0})},K=A()):K=l();O.length!==0&&e("is an unexpected token",O[0]);K.literal=!!K.literal;K.constant=!!K.constant;return K}function Ub(b,a,c){for(var a=a.split("."),d=0;a.length>1;d++){var e=a.shift(),g=b[e];g||(g={},b[e]=g);b=g}return b[a.shift()]=c}function ib(b,a,c){if(!a)return b;for(var a=a.split("."),d,e=b,g=a.length,i=0;i<g;i++)d=a[i],b&&(b=
|
||||
(e=b)[d]);return!c&&H(b)?$a(e,b):b}function Vb(b,a,c,d,e){return function(g,i){var f=i&&i.hasOwnProperty(b)?i:g,h;if(f===null||f===p)return f;if((f=f[b])&&f.then){if(!("$$v"in f))h=f,h.$$v=p,h.then(function(a){h.$$v=a});f=f.$$v}if(!a||f===null||f===p)return f;if((f=f[a])&&f.then){if(!("$$v"in f))h=f,h.$$v=p,h.then(function(a){h.$$v=a});f=f.$$v}if(!c||f===null||f===p)return f;if((f=f[c])&&f.then){if(!("$$v"in f))h=f,h.$$v=p,h.then(function(a){h.$$v=a});f=f.$$v}if(!d||f===null||f===p)return f;if((f=
|
||||
f[d])&&f.then){if(!("$$v"in f))h=f,h.$$v=p,h.then(function(a){h.$$v=a});f=f.$$v}if(!e||f===null||f===p)return f;if((f=f[e])&&f.then){if(!("$$v"in f))h=f,h.$$v=p,h.then(function(a){h.$$v=a});f=f.$$v}return f}}function Tb(b,a){if(mb.hasOwnProperty(b))return mb[b];var c=b.split("."),d=c.length,e;if(a)e=d<6?Vb(c[0],c[1],c[2],c[3],c[4]):function(a,b){var e=0,j;do j=Vb(c[e++],c[e++],c[e++],c[e++],c[e++])(a,b),b=p,a=j;while(e<d);return j};else{var g="var l, fn, p;\n";n(c,function(a,b){g+="if(s === null || s === undefined) return s;\nl=s;\ns="+
|
||||
(b?"s":'((k&&k.hasOwnProperty("'+a+'"))?k:s)')+'["'+a+'"];\nif (s && s.then) {\n if (!("$$v" in s)) {\n p=s;\n p.$$v = undefined;\n p.then(function(v) {p.$$v=v;});\n}\n s=s.$$v\n}\n'});g+="return s;";e=Function("s","k",g);e.toString=function(){return g}}return mb[b]=e}function Sc(){var b={};this.$get=["$filter","$sniffer",function(a,c){return function(d){switch(typeof d){case "string":return b.hasOwnProperty(d)?b[d]:b[d]=Rc(d,!1,a,c.csp);case "function":return d;default:return q}}}]}function Tc(){this.$get=
|
||||
["$rootScope","$exceptionHandler",function(b,a){return Uc(function(a){b.$evalAsync(a)},a)}]}function Uc(b,a){function c(a){return a}function d(a){return i(a)}var e=function(){var f=[],h,j;return j={resolve:function(a){if(f){var c=f;f=p;h=g(a);c.length&&b(function(){for(var a,b=0,d=c.length;b<d;b++)a=c[b],h.then(a[0],a[1])})}},reject:function(a){j.resolve(i(a))},promise:{then:function(b,j){var g=e(),i=function(d){try{g.resolve((b||c)(d))}catch(e){a(e),g.reject(e)}},o=function(b){try{g.resolve((j||
|
||||
d)(b))}catch(c){a(c),g.reject(c)}};f?f.push([i,o]):h.then(i,o);return g.promise},always:function(a){function b(a,c){var d=e();c?d.resolve(a):d.reject(a);return d.promise}function d(e,f){var j=null;try{j=(a||c)()}catch(g){return b(g,!1)}return j&&j.then?j.then(function(){return b(e,f)},function(a){return b(a,!1)}):b(e,f)}return this.then(function(a){return d(a,!0)},function(a){return d(a,!1)})}}}},g=function(a){return a&&a.then?a:{then:function(c){var d=e();b(function(){d.resolve(c(a))});return d.promise}}},
|
||||
i=function(a){return{then:function(c,j){var g=e();b(function(){g.resolve((j||d)(a))});return g.promise}}};return{defer:e,reject:i,when:function(f,h,j){var m=e(),k,l=function(b){try{return(h||c)(b)}catch(d){return a(d),i(d)}},u=function(b){try{return(j||d)(b)}catch(c){return a(c),i(c)}};b(function(){g(f).then(function(a){k||(k=!0,m.resolve(g(a).then(l,u)))},function(a){k||(k=!0,m.resolve(u(a)))})});return m.promise},all:function(a){var b=e(),c=0,d=F(a)?[]:{};n(a,function(a,e){c++;g(a).then(function(a){d.hasOwnProperty(e)||
|
||||
(d[e]=a,--c||b.resolve(d))},function(a){d.hasOwnProperty(e)||b.reject(a)})});c===0&&b.resolve(d);return b.promise}}}function Vc(){var b={};this.when=function(a,c){b[a]=t({reloadOnSearch:!0,caseInsensitiveMatch:!1},c);if(a){var d=a[a.length-1]=="/"?a.substr(0,a.length-1):a+"/";b[d]={redirectTo:a}}return this};this.otherwise=function(a){this.when(null,a);return this};this.$get=["$rootScope","$location","$routeParams","$q","$injector","$http","$templateCache",function(a,c,d,e,g,i,f){function h(a,b,c){for(var b=
|
||||
"^"+b.replace(/[-\/\\^$:*+?.()|[\]{}]/g,"\\$&")+"$",d="",e=[],f={},j=/\\([:*])(\w+)/g,g,i=0;(g=j.exec(b))!==null;){d+=b.slice(i,g.index);switch(g[1]){case ":":d+="([^\\/]*)";break;case "*":d+="(.*)"}e.push(g[2]);i=j.lastIndex}d+=b.substr(i);var h=a.match(RegExp(d,c.caseInsensitiveMatch?"i":""));h&&n(e,function(a,b){f[a]=h[b+1]});return h?f:null}function j(){var b=m(),j=u.current;if(b&&j&&b.$$route===j.$$route&&ia(b.pathParams,j.pathParams)&&!b.reloadOnSearch&&!l)j.params=b.params,V(j.params,d),a.$broadcast("$routeUpdate",
|
||||
j);else if(b||j)l=!1,a.$broadcast("$routeChangeStart",b,j),(u.current=b)&&b.redirectTo&&(E(b.redirectTo)?c.path(k(b.redirectTo,b.params)).search(b.params).replace():c.url(b.redirectTo(b.pathParams,c.path(),c.search())).replace()),e.when(b).then(function(){if(b){var a=t({},b.resolve),c;n(a,function(b,c){a[c]=E(b)?g.get(b):g.invoke(b)});if(B(c=b.template))H(c)&&(c=c(b.params));else if(B(c=b.templateUrl))if(H(c)&&(c=c(b.params)),B(c))b.loadedTemplateUrl=c,c=i.get(c,{cache:f}).then(function(a){return a.data});
|
||||
B(c)&&(a.$template=c);return e.all(a)}}).then(function(c){if(b==u.current){if(b)b.locals=c,V(b.params,d);a.$broadcast("$routeChangeSuccess",b,j)}},function(c){b==u.current&&a.$broadcast("$routeChangeError",b,j,c)})}function m(){var a,d;n(b,function(b,e){if(!d&&(a=h(c.path(),e,b)))d=tb(b,{params:t({},c.search(),a),pathParams:a}),d.$$route=b});return d||b[null]&&tb(b[null],{params:{},pathParams:{}})}function k(a,b){var c=[];n((a||"").split(":"),function(a,d){if(d==0)c.push(a);else{var e=a.match(/(\w+)(.*)/),
|
||||
f=e[1];c.push(b[f]);c.push(e[2]||"");delete b[f]}});return c.join("")}var l=!1,u={routes:b,reload:function(){l=!0;a.$evalAsync(j)}};a.$on("$locationChangeSuccess",j);return u}]}function Wc(){this.$get=S({})}function Xc(){var b=10;this.digestTtl=function(a){arguments.length&&(b=a);return b};this.$get=["$injector","$exceptionHandler","$parse",function(a,c,d){function e(){this.$id=Fa();this.$$phase=this.$parent=this.$$watchers=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=null;
|
||||
this["this"]=this.$root=this;this.$$destroyed=!1;this.$$asyncQueue=[];this.$$listeners={};this.$$isolateBindings={}}function g(a){if(h.$$phase)throw Error(h.$$phase+" already in progress");h.$$phase=a}function i(a,b){var c=d(a);xa(c,b);return c}function f(){}e.prototype={$new:function(a){if(H(a))throw Error("API-CHANGE: Use $controller to instantiate controllers.");a?(a=new e,a.$root=this.$root):(a=function(){},a.prototype=this,a=new a,a.$id=Fa());a["this"]=a;a.$$listeners={};a.$parent=this;a.$$watchers=
|
||||
a.$$nextSibling=a.$$childHead=a.$$childTail=null;a.$$prevSibling=this.$$childTail;this.$$childHead?this.$$childTail=this.$$childTail.$$nextSibling=a:this.$$childHead=this.$$childTail=a;return a},$watch:function(a,b,c){var d=i(a,"watch"),e=this.$$watchers,g={fn:b,last:f,get:d,exp:a,eq:!!c};if(!H(b)){var h=i(b||q,"listener");g.fn=function(a,b,c){h(c)}}if(typeof a=="string"&&d.constant){var r=g.fn;g.fn=function(a,b,c){r.call(this,a,b,c);ta(e,g)}}if(!e)e=this.$$watchers=[];e.unshift(g);return function(){ta(e,
|
||||
g)}},$watchCollection:function(a,b){var c=this,e,f,g=0,i=d(a),h=[],n={},x=0;return this.$watch(function(){f=i(c);var a,b;if(L(f))if(Xa(f)){if(e!==h)e=h,x=e.length=0,g++;a=f.length;if(x!==a)g++,e.length=x=a;for(b=0;b<a;b++)e[b]!==f[b]&&(g++,e[b]=f[b])}else{e!==n&&(e=n={},x=0,g++);a=0;for(b in f)f.hasOwnProperty(b)&&(a++,e.hasOwnProperty(b)?e[b]!==f[b]&&(g++,e[b]=f[b]):(x++,e[b]=f[b],g++));if(x>a)for(b in g++,e)e.hasOwnProperty(b)&&!f.hasOwnProperty(b)&&(x--,delete e[b])}else e!==f&&(e=f,g++);return g},
|
||||
function(){b(f,e,c)})},$digest:function(){var a,d,e,i,u=this.$$asyncQueue,o,z,r=b,n,x=[],p,v;g("$digest");do{z=!1;for(n=this;u.length;)try{n.$eval(u.shift())}catch(A){c(A)}do{if(i=n.$$watchers)for(o=i.length;o--;)try{if(a=i[o],(d=a.get(n))!==(e=a.last)&&!(a.eq?ia(d,e):typeof d=="number"&&typeof e=="number"&&isNaN(d)&&isNaN(e)))z=!0,a.last=a.eq?V(d):d,a.fn(d,e===f?d:e,n),r<5&&(p=4-r,x[p]||(x[p]=[]),v=H(a.exp)?"fn: "+(a.exp.name||a.exp.toString()):a.exp,v+="; newVal: "+ha(d)+"; oldVal: "+ha(e),x[p].push(v))}catch(G){c(G)}if(!(i=
|
||||
n.$$childHead||n!==this&&n.$$nextSibling))for(;n!==this&&!(i=n.$$nextSibling);)n=n.$parent}while(n=i);if(z&&!r--)throw h.$$phase=null,Error(b+" $digest() iterations reached. Aborting!\nWatchers fired in the last 5 iterations: "+ha(x));}while(z||u.length);h.$$phase=null},$destroy:function(){if(!(h==this||this.$$destroyed)){var a=this.$parent;this.$broadcast("$destroy");this.$$destroyed=!0;if(a.$$childHead==this)a.$$childHead=this.$$nextSibling;if(a.$$childTail==this)a.$$childTail=this.$$prevSibling;
|
||||
if(this.$$prevSibling)this.$$prevSibling.$$nextSibling=this.$$nextSibling;if(this.$$nextSibling)this.$$nextSibling.$$prevSibling=this.$$prevSibling;this.$parent=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=null}},$eval:function(a,b){return d(a)(this,b)},$evalAsync:function(a){this.$$asyncQueue.push(a)},$apply:function(a){try{return g("$apply"),this.$eval(a)}catch(b){c(b)}finally{h.$$phase=null;try{h.$digest()}catch(d){throw c(d),d;}}},$on:function(a,b){var c=this.$$listeners[a];
|
||||
c||(this.$$listeners[a]=c=[]);c.push(b);return function(){c[Ga(c,b)]=null}},$emit:function(a,b){var d=[],e,f=this,g=!1,i={name:a,targetScope:f,stopPropagation:function(){g=!0},preventDefault:function(){i.defaultPrevented=!0},defaultPrevented:!1},h=[i].concat(ka.call(arguments,1)),n,x;do{e=f.$$listeners[a]||d;i.currentScope=f;n=0;for(x=e.length;n<x;n++)if(e[n])try{if(e[n].apply(null,h),g)return i}catch(p){c(p)}else e.splice(n,1),n--,x--;f=f.$parent}while(f);return i},$broadcast:function(a,b){var d=
|
||||
this,e=this,f={name:a,targetScope:this,preventDefault:function(){f.defaultPrevented=!0},defaultPrevented:!1},g=[f].concat(ka.call(arguments,1)),i,h;do{d=e;f.currentScope=d;e=d.$$listeners[a]||[];i=0;for(h=e.length;i<h;i++)if(e[i])try{e[i].apply(null,g)}catch(n){c(n)}else e.splice(i,1),i--,h--;if(!(e=d.$$childHead||d!==this&&d.$$nextSibling))for(;d!==this&&!(e=d.$$nextSibling);)d=d.$parent}while(d=e);return f}};var h=new e;return h}]}function Yc(){this.$get=["$window","$document",function(b,a){var c=
|
||||
{},d=N((/android (\d+)/.exec(I((b.navigator||{}).userAgent))||[])[1]),e=a[0]||{},g,i=/^(Moz|webkit|O|ms)(?=[A-Z])/,f=e.body&&e.body.style,h=!1,j=!1;if(f){for(var m in f)if(h=i.exec(m)){g=h[0];g=g.substr(0,1).toUpperCase()+g.substr(1);break}h=!!("transition"in f||g+"Transition"in f);j=!!("animation"in f||g+"Animation"in f)}return{history:!(!b.history||!b.history.pushState||d<4),hashchange:"onhashchange"in b&&(!e.documentMode||e.documentMode>7),hasEvent:function(a){if(a=="input"&&Z==9)return!1;if(C(c[a])){var b=
|
||||
e.createElement("div");c[a]="on"+a in b}return c[a]},csp:e.securityPolicy?e.securityPolicy.isActive:!1,vendorPrefix:g,transitions:h,animations:j}}]}function Zc(){this.$get=S(M)}function Wb(b){var a={},c,d,e;if(!b)return a;n(b.split("\n"),function(b){e=b.indexOf(":");c=I(U(b.substr(0,e)));d=U(b.substr(e+1));c&&(a[c]?a[c]+=", "+d:a[c]=d)});return a}function $c(b,a){var c=ad.exec(b);if(c==null)return!0;var d={protocol:c[2],host:c[4],port:N(c[6])||Oa[c[2]]||null,relativeProtocol:c[2]===p||c[2]===""},
|
||||
c=jb.exec(a),c={protocol:c[1],host:c[3],port:N(c[5])||Oa[c[1]]||null};return(d.protocol==c.protocol||d.relativeProtocol)&&d.host==c.host&&(d.port==c.port||d.relativeProtocol&&c.port==Oa[c.protocol])}function Xb(b){var a=L(b)?b:p;return function(c){a||(a=Wb(b));return c?a[I(c)]||null:a}}function Yb(b,a,c){if(H(c))return c(b,a);n(c,function(c){b=c(b,a)});return b}function bd(){var b=/^\s*(\[|\{[^\{])/,a=/[\}\]]\s*$/,c=/^\)\]\}',?\n/,d={"Content-Type":"application/json;charset=utf-8"},e=this.defaults=
|
||||
{transformResponse:[function(d){E(d)&&(d=d.replace(c,""),b.test(d)&&a.test(d)&&(d=ub(d,!0)));return d}],transformRequest:[function(a){return L(a)&&Ea.apply(a)!=="[object File]"?ha(a):a}],headers:{common:{Accept:"application/json, text/plain, */*"},post:d,put:d,patch:d},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN"},g=this.interceptors=[],i=this.responseInterceptors=[];this.$get=["$httpBackend","$browser","$cacheFactory","$rootScope","$q","$injector",function(a,b,c,d,k,l){function u(a){function c(a){var b=
|
||||
t({},a,{data:Yb(a.data,a.headers,d.transformResponse)});return 200<=a.status&&a.status<300?b:k.reject(b)}var d={transformRequest:e.transformRequest,transformResponse:e.transformResponse},f={};t(d,a);d.headers=f;d.method=oa(d.method);t(f,e.headers.common,e.headers[I(d.method)],a.headers);(a=$c(d.url,b.url())?b.cookies()[d.xsrfCookieName||e.xsrfCookieName]:p)&&(f[d.xsrfHeaderName||e.xsrfHeaderName]=a);var g=[function(a){var b=Yb(a.data,Xb(f),a.transformRequest);C(a.data)&&delete f["Content-Type"];if(C(a.withCredentials)&&
|
||||
!C(e.withCredentials))a.withCredentials=e.withCredentials;return o(a,b,f).then(c,c)},p],j=k.when(d);for(n(y,function(a){(a.request||a.requestError)&&g.unshift(a.request,a.requestError);(a.response||a.responseError)&&g.push(a.response,a.responseError)});g.length;)var a=g.shift(),i=g.shift(),j=j.then(a,i);j.success=function(a){j.then(function(b){a(b.data,b.status,b.headers,d)});return j};j.error=function(a){j.then(null,function(b){a(b.data,b.status,b.headers,d)});return j};return j}function o(b,c,g){function j(a,
|
||||
b,c){n&&(200<=a&&a<300?n.put(s,[a,b,Wb(c)]):n.remove(s));i(b,a,c);d.$$phase||d.$apply()}function i(a,c,d){c=Math.max(c,0);(200<=c&&c<300?l.resolve:l.reject)({data:a,status:c,headers:Xb(d),config:b})}function h(){var a=Ga(u.pendingRequests,b);a!==-1&&u.pendingRequests.splice(a,1)}var l=k.defer(),o=l.promise,n,p,s=z(b.url,b.params);u.pendingRequests.push(b);o.then(h,h);if((b.cache||e.cache)&&b.cache!==!1&&b.method=="GET")n=L(b.cache)?b.cache:L(e.cache)?e.cache:r;if(n)if(p=n.get(s))if(p.then)return p.then(h,
|
||||
h),p;else F(p)?i(p[1],p[0],V(p[2])):i(p,200,{});else n.put(s,o);p||a(b.method,s,c,j,g,b.timeout,b.withCredentials,b.responseType);return o}function z(a,b){if(!b)return a;var c=[];nc(b,function(a,b){a==null||a==p||(F(a)||(a=[a]),n(a,function(a){L(a)&&(a=ha(a));c.push(wa(b)+"="+wa(a))}))});return a+(a.indexOf("?")==-1?"?":"&")+c.join("&")}var r=c("$http"),y=[];n(g,function(a){y.unshift(E(a)?l.get(a):l.invoke(a))});n(i,function(a,b){var c=E(a)?l.get(a):l.invoke(a);y.splice(b,0,{response:function(a){return c(k.when(a))},
|
||||
responseError:function(a){return c(k.reject(a))}})});u.pendingRequests=[];(function(a){n(arguments,function(a){u[a]=function(b,c){return u(t(c||{},{method:a,url:b}))}})})("get","delete","head","jsonp");(function(a){n(arguments,function(a){u[a]=function(b,c,d){return u(t(d||{},{method:a,url:b,data:c}))}})})("post","put");u.defaults=e;return u}]}function cd(){this.$get=["$browser","$window","$document",function(b,a,c){return dd(b,ed,b.defer,a.angular.callbacks,c[0],a.location.protocol.replace(":",""))}]}
|
||||
function dd(b,a,c,d,e,g){function i(a,b){var c=e.createElement("script"),d=function(){e.body.removeChild(c);b&&b()};c.type="text/javascript";c.src=a;Z?c.onreadystatechange=function(){/loaded|complete/.test(c.readyState)&&d()}:c.onload=c.onerror=d;e.body.appendChild(c);return d}return function(e,h,j,m,k,l,u,o){function z(){p=-1;t&&t();v&&v.abort()}function r(a,d,e,f){var j=(h.match(jb)||["",g])[1];A&&c.cancel(A);t=v=null;d=j=="file"?e?200:404:d;a(d==1223?204:d,e,f);b.$$completeOutstandingRequest(q)}
|
||||
var p;b.$$incOutstandingRequestCount();h=h||b.url();if(I(e)=="jsonp"){var x="_"+(d.counter++).toString(36);d[x]=function(a){d[x].data=a};var t=i(h.replace("JSON_CALLBACK","angular.callbacks."+x),function(){d[x].data?r(m,200,d[x].data):r(m,p||-2);delete d[x]})}else{var v=new a;v.open(e,h,!0);n(k,function(a,b){a&&v.setRequestHeader(b,a)});v.onreadystatechange=function(){if(v.readyState==4){var a=v.getAllResponseHeaders(),b=["Cache-Control","Content-Language","Content-Type","Expires","Last-Modified",
|
||||
"Pragma"];a||(a="",n(b,function(b){var c=v.getResponseHeader(b);c&&(a+=b+": "+c+"\n")}));r(m,p||v.status,v.responseType?v.response:v.responseText,a)}};if(u)v.withCredentials=!0;if(o)v.responseType=o;v.send(j||"")}if(l>0)var A=c(z,l);else l&&l.then&&l.then(z)}}function fd(){this.$get=function(){return{id:"en-us",NUMBER_FORMATS:{DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{minInt:1,minFrac:0,maxFrac:3,posPre:"",posSuf:"",negPre:"-",negSuf:"",gSize:3,lgSize:3},{minInt:1,minFrac:2,maxFrac:2,posPre:"\u00a4",
|
||||
posSuf:"",negPre:"(\u00a4",negSuf:")",gSize:3,lgSize:3}],CURRENCY_SYM:"$"},DATETIME_FORMATS:{MONTH:"January,February,March,April,May,June,July,August,September,October,November,December".split(","),SHORTMONTH:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec".split(","),DAY:"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday".split(","),SHORTDAY:"Sun,Mon,Tue,Wed,Thu,Fri,Sat".split(","),AMPMS:["AM","PM"],medium:"MMM d, y h:mm:ss a","short":"M/d/yy h:mm a",fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",
|
||||
mediumDate:"MMM d, y",shortDate:"M/d/yy",mediumTime:"h:mm:ss a",shortTime:"h:mm a"},pluralCat:function(b){return b===1?"one":"other"}}}}function gd(){this.$get=["$rootScope","$browser","$q","$exceptionHandler",function(b,a,c,d){function e(e,f,h){var j=c.defer(),m=j.promise,k=B(h)&&!h,f=a.defer(function(){try{j.resolve(e())}catch(a){j.reject(a),d(a)}k||b.$apply()},f),h=function(){delete g[m.$$timeoutId]};m.$$timeoutId=f;g[f]=j;m.then(h,h);return m}var g={};e.cancel=function(b){return b&&b.$$timeoutId in
|
||||
g?(g[b.$$timeoutId].reject("canceled"),a.defer.cancel(b.$$timeoutId)):!1};return e}]}function Zb(b){function a(a,e){return b.factory(a+c,e)}var c="Filter";this.register=a;this.$get=["$injector",function(a){return function(b){return a.get(b+c)}}];a("currency",$b);a("date",ac);a("filter",hd);a("json",id);a("limitTo",jd);a("lowercase",kd);a("number",bc);a("orderBy",cc);a("uppercase",ld)}function hd(){return function(b,a,c){if(!F(b))return b;var d=[];d.check=function(a){for(var b=0;b<d.length;b++)if(!d[b](a))return!1;
|
||||
return!0};switch(typeof c){case "function":break;case "boolean":if(c==!0){c=function(a,b){return Ha.equals(a,b)};break}default:c=function(a,b){b=(""+b).toLowerCase();return(""+a).toLowerCase().indexOf(b)>-1}}var e=function(a,b){if(typeof b=="string"&&b.charAt(0)==="!")return!e(a,b.substr(1));switch(typeof a){case "boolean":case "number":case "string":return c(a,b);case "object":switch(typeof b){case "object":return c(a,b);default:for(var d in a)if(d.charAt(0)!=="$"&&e(a[d],b))return!0}return!1;case "array":for(d=
|
||||
0;d<a.length;d++)if(e(a[d],b))return!0;return!1;default:return!1}};switch(typeof a){case "boolean":case "number":case "string":a={$:a};case "object":for(var g in a)g=="$"?function(){if(a[g]){var b=g;d.push(function(c){return e(c,a[b])})}}():function(){if(a[g]){var b=g;d.push(function(c){return e(ib(c,b),a[b])})}}();break;case "function":d.push(a);break;default:return b}for(var i=[],f=0;f<b.length;f++){var h=b[f];d.check(h)&&i.push(h)}return i}}function $b(b){var a=b.NUMBER_FORMATS;return function(b,
|
||||
d){if(C(d))d=a.CURRENCY_SYM;return dc(b,a.PATTERNS[1],a.GROUP_SEP,a.DECIMAL_SEP,2).replace(/\u00A4/g,d)}}function bc(b){var a=b.NUMBER_FORMATS;return function(b,d){return dc(b,a.PATTERNS[0],a.GROUP_SEP,a.DECIMAL_SEP,d)}}function dc(b,a,c,d,e){if(isNaN(b)||!isFinite(b))return"";var g=b<0,b=Math.abs(b),i=b+"",f="",h=[],j=!1;if(i.indexOf("e")!==-1){var m=i.match(/([\d\.]+)e(-?)(\d+)/);m&&m[2]=="-"&&m[3]>e+1?i="0":(f=i,j=!0)}if(!j){i=(i.split(ec)[1]||"").length;C(e)&&(e=Math.min(Math.max(a.minFrac,i),
|
||||
a.maxFrac));var i=Math.pow(10,e),b=Math.round(b*i)/i,b=(""+b).split(ec),i=b[0],b=b[1]||"",j=0,m=a.lgSize,k=a.gSize;if(i.length>=m+k)for(var j=i.length-m,l=0;l<j;l++)(j-l)%k===0&&l!==0&&(f+=c),f+=i.charAt(l);for(l=j;l<i.length;l++)(i.length-l)%m===0&&l!==0&&(f+=c),f+=i.charAt(l);for(;b.length<e;)b+="0";e&&e!=="0"&&(f+=d+b.substr(0,e))}h.push(g?a.negPre:a.posPre);h.push(f);h.push(g?a.negSuf:a.posSuf);return h.join("")}function nb(b,a,c){var d="";b<0&&(d="-",b=-b);for(b=""+b;b.length<a;)b="0"+b;c&&(b=
|
||||
b.substr(b.length-a));return d+b}function Q(b,a,c,d){c=c||0;return function(e){e=e["get"+b]();if(c>0||e>-c)e+=c;e===0&&c==-12&&(e=12);return nb(e,a,d)}}function Qa(b,a){return function(c,d){var e=c["get"+b](),g=oa(a?"SHORT"+b:b);return d[g][e]}}function ac(b){function a(a){var b;if(b=a.match(c)){var a=new Date(0),g=0,i=0,f=b[8]?a.setUTCFullYear:a.setFullYear,h=b[8]?a.setUTCHours:a.setHours;b[9]&&(g=N(b[9]+b[10]),i=N(b[9]+b[11]));f.call(a,N(b[1]),N(b[2])-1,N(b[3]));g=N(b[4]||0)-g;i=N(b[5]||0)-i;f=
|
||||
N(b[6]||0);b=Math.round(parseFloat("0."+(b[7]||0))*1E3);h.call(a,g,i,f,b)}return a}var c=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(c,e){var g="",i=[],f,h,e=e||"mediumDate",e=b.DATETIME_FORMATS[e]||e;E(c)&&(c=md.test(c)?N(c):a(c));Ya(c)&&(c=new Date(c));if(!ra(c))return c;for(;e;)(h=nd.exec(e))?(i=i.concat(ka.call(h,1)),e=i.pop()):(i.push(e),e=null);n(i,function(a){f=od[a];g+=f?f(c,b.DATETIME_FORMATS):a.replace(/(^'|'$)/g,
|
||||
"").replace(/''/g,"'")});return g}}function id(){return function(b){return ha(b,!0)}}function jd(){return function(b,a){if(!F(b)&&!E(b))return b;a=N(a);if(E(b))return a?a>=0?b.slice(0,a):b.slice(a,b.length):"";var c=[],d,e;a>b.length?a=b.length:a<-b.length&&(a=-b.length);a>0?(d=0,e=a):(d=b.length+a,e=b.length);for(;d<e;d++)c.push(b[d]);return c}}function cc(b){return function(a,c,d){function e(a,b){return ua(b)?function(b,c){return a(c,b)}:a}if(!F(a))return a;if(!c)return a;for(var c=F(c)?c:[c],c=
|
||||
Za(c,function(a){var c=!1,d=a||qa;if(E(a)){if(a.charAt(0)=="+"||a.charAt(0)=="-")c=a.charAt(0)=="-",a=a.substring(1);d=b(a)}return e(function(a,b){var c;c=d(a);var e=d(b),f=typeof c,g=typeof e;f==g?(f=="string"&&(c=c.toLowerCase()),f=="string"&&(e=e.toLowerCase()),c=c===e?0:c<e?-1:1):c=f<g?-1:1;return c},c)}),g=[],i=0;i<a.length;i++)g.push(a[i]);return g.sort(e(function(a,b){for(var d=0;d<c.length;d++){var e=c[d](a,b);if(e!==0)return e}return 0},d))}}function aa(b){H(b)&&(b={link:b});b.restrict=b.restrict||
|
||||
"AC";return S(b)}function fc(b,a){function c(a,c){c=c?"-"+bb(c,"-"):"";b.removeClass((a?Ra:Sa)+c).addClass((a?Sa:Ra)+c)}var d=this,e=b.parent().controller("form")||Ta,g=0,i=d.$error={},f=[];d.$name=a.name;d.$dirty=!1;d.$pristine=!0;d.$valid=!0;d.$invalid=!1;e.$addControl(d);b.addClass(pa);c(!0);d.$addControl=function(a){f.push(a);a.$name&&!d.hasOwnProperty(a.$name)&&(d[a.$name]=a)};d.$removeControl=function(a){a.$name&&d[a.$name]===a&&delete d[a.$name];n(i,function(b,c){d.$setValidity(c,!0,a)});ta(f,
|
||||
a)};d.$setValidity=function(a,b,f){var k=i[a];if(b){if(k&&(ta(k,f),!k.length)){g--;if(!g)c(b),d.$valid=!0,d.$invalid=!1;i[a]=!1;c(!0,a);e.$setValidity(a,!0,d)}}else{g||c(b);if(k){if(Ga(k,f)!=-1)return}else i[a]=k=[],g++,c(!1,a),e.$setValidity(a,!1,d);k.push(f);d.$valid=!1;d.$invalid=!0}};d.$setDirty=function(){b.removeClass(pa).addClass(Ua);d.$dirty=!0;d.$pristine=!1;e.$setDirty()};d.$setPristine=function(){b.removeClass(Ua).addClass(pa);d.$dirty=!1;d.$pristine=!0;n(f,function(a){a.$setPristine()})}}
|
||||
function X(b){return C(b)||b===""||b===null||b!==b}function Va(b,a,c,d,e,g){var i=function(){var e=a.val();if(ua(c.ngTrim||"T"))e=U(e);d.$viewValue!==e&&b.$apply(function(){d.$setViewValue(e)})};if(e.hasEvent("input"))a.bind("input",i);else{var f,h=function(){f||(f=g.defer(function(){i();f=null}))};a.bind("keydown",function(a){a=a.keyCode;a===91||15<a&&a<19||37<=a&&a<=40||h()});a.bind("change",i);e.hasEvent("paste")&&a.bind("paste cut",h)}d.$render=function(){a.val(X(d.$viewValue)?"":d.$viewValue)};
|
||||
var j=c.ngPattern,m=function(a,b){return X(b)||a.test(b)?(d.$setValidity("pattern",!0),b):(d.$setValidity("pattern",!1),p)};j&&((e=j.match(/^\/(.*)\/([gim]*)$/))?(j=RegExp(e[1],e[2]),e=function(a){return m(j,a)}):e=function(a){var c=b.$eval(j);if(!c||!c.test)throw Error("Expected "+j+" to be a RegExp but was "+c);return m(c,a)},d.$formatters.push(e),d.$parsers.push(e));if(c.ngMinlength){var k=N(c.ngMinlength),e=function(a){return!X(a)&&a.length<k?(d.$setValidity("minlength",!1),p):(d.$setValidity("minlength",
|
||||
!0),a)};d.$parsers.push(e);d.$formatters.push(e)}if(c.ngMaxlength){var l=N(c.ngMaxlength),e=function(a){return!X(a)&&a.length>l?(d.$setValidity("maxlength",!1),p):(d.$setValidity("maxlength",!0),a)};d.$parsers.push(e);d.$formatters.push(e)}}function ob(b,a){b="ngClass"+b;return aa(function(c,d,e){function g(b){if(a===!0||c.$index%2===a)h&&!ia(b,h)&&i(h),f(b);h=V(b)}function i(a){L(a)&&!F(a)&&(a=Za(a,function(a,b){if(a)return b}));d.removeClass(F(a)?a.join(" "):a)}function f(a){L(a)&&!F(a)&&(a=Za(a,
|
||||
function(a,b){if(a)return b}));a&&d.addClass(F(a)?a.join(" "):a)}var h=p;c.$watch(e[b],g,!0);e.$observe("class",function(){var a=c.$eval(e[b]);g(a,a)});b!=="ngClass"&&c.$watch("$index",function(d,g){var h=d&1;h!==g&1&&(h===a?f(c.$eval(e[b])):i(c.$eval(e[b])))})})}var I=function(b){return E(b)?b.toLowerCase():b},oa=function(b){return E(b)?b.toUpperCase():b},Z=N((/msie (\d+)/.exec(I(navigator.userAgent))||[])[1]),w,ga,ka=[].slice,Wa=[].push,Ea=Object.prototype.toString,mc=M.angular,Ha=M.angular||(M.angular=
|
||||
{}),Aa,hb,ba=["0","0","0"];q.$inject=[];qa.$inject=[];hb=Z<9?function(b){b=b.nodeName?b:b[0];return b.scopeName&&b.scopeName!="HTML"?oa(b.scopeName+":"+b.nodeName):b.nodeName}:function(b){return b.nodeName?b.nodeName:b[0].nodeName};var sc=/[A-Z]/g,pd={full:"1.1.5",major:1,minor:1,dot:5,codeName:"triangle-squarification"},Ka=R.cache={},Ja=R.expando="ng-"+(new Date).getTime(),wc=1,gc=M.document.addEventListener?function(b,a,c){b.addEventListener(a,c,!1)}:function(b,a,c){b.attachEvent("on"+a,c)},gb=
|
||||
M.document.removeEventListener?function(b,a,c){b.removeEventListener(a,c,!1)}:function(b,a,c){b.detachEvent("on"+a,c)},uc=/([\:\-\_]+(.))/g,vc=/^moz([A-Z])/,Ba=R.prototype={ready:function(b){function a(){c||(c=!0,b())}var c=!1;T.readyState==="complete"?setTimeout(a):(this.bind("DOMContentLoaded",a),R(M).bind("load",a))},toString:function(){var b=[];n(this,function(a){b.push(""+a)});return"["+b.join(", ")+"]"},eq:function(b){return b>=0?w(this[b]):w(this[this.length+b])},length:0,push:Wa,sort:[].sort,
|
||||
splice:[].splice},Na={};n("multiple,selected,checked,disabled,readOnly,required,open".split(","),function(b){Na[I(b)]=b});var Gb={};n("input,select,option,textarea,button,form,details".split(","),function(b){Gb[oa(b)]=!0});n({data:Bb,inheritedData:Ma,scope:function(b){return Ma(b,"$scope")},controller:Eb,injector:function(b){return Ma(b,"$injector")},removeAttr:function(b,a){b.removeAttribute(a)},hasClass:La,css:function(b,a,c){a=Ia(a);if(B(c))b.style[a]=c;else{var d;Z<=8&&(d=b.currentStyle&&b.currentStyle[a],
|
||||
d===""&&(d="auto"));d=d||b.style[a];Z<=8&&(d=d===""?p:d);return d}},attr:function(b,a,c){var d=I(a);if(Na[d])if(B(c))c?(b[a]=!0,b.setAttribute(a,d)):(b[a]=!1,b.removeAttribute(d));else return b[a]||(b.attributes.getNamedItem(a)||q).specified?d:p;else if(B(c))b.setAttribute(a,c);else if(b.getAttribute)return b=b.getAttribute(a,2),b===null?p:b},prop:function(b,a,c){if(B(c))b[a]=c;else return b[a]},text:t(Z<9?function(b,a){if(b.nodeType==1){if(C(a))return b.innerText;b.innerText=a}else{if(C(a))return b.nodeValue;
|
||||
b.nodeValue=a}}:function(b,a){if(C(a))return b.textContent;b.textContent=a},{$dv:""}),val:function(b,a){if(C(a))return b.value;b.value=a},html:function(b,a){if(C(a))return b.innerHTML;for(var c=0,d=b.childNodes;c<d.length;c++)ya(d[c]);b.innerHTML=a}},function(b,a){R.prototype[a]=function(a,d){var e,g;if((b.length==2&&b!==La&&b!==Eb?a:d)===p)if(L(a)){for(e=0;e<this.length;e++)if(b===Bb)b(this[e],a);else for(g in a)b(this[e],g,a[g]);return this}else{if(this.length)return b(this[0],a,d)}else{for(e=0;e<
|
||||
this.length;e++)b(this[e],a,d);return this}return b.$dv}});n({removeData:zb,dealoc:ya,bind:function a(c,d,e){var g=ca(c,"events"),i=ca(c,"handle");g||ca(c,"events",g={});i||ca(c,"handle",i=xc(c,g));n(d.split(" "),function(d){var h=g[d];if(!h){if(d=="mouseenter"||d=="mouseleave"){var j=T.body.contains||T.body.compareDocumentPosition?function(a,c){var d=a.nodeType===9?a.documentElement:a,e=c&&c.parentNode;return a===e||!(!e||!(e.nodeType===1&&(d.contains?d.contains(e):a.compareDocumentPosition&&a.compareDocumentPosition(e)&
|
||||
16)))}:function(a,c){if(c)for(;c=c.parentNode;)if(c===a)return!0;return!1};g[d]=[];a(c,{mouseleave:"mouseout",mouseenter:"mouseover"}[d],function(a){var c=a.relatedTarget;(!c||c!==this&&!j(this,c))&&i(a,d)})}else gc(c,d,i),g[d]=[];h=g[d]}h.push(e)})},unbind:Ab,replaceWith:function(a,c){var d,e=a.parentNode;ya(a);n(new R(c),function(c){d?e.insertBefore(c,d.nextSibling):e.replaceChild(c,a);d=c})},children:function(a){var c=[];n(a.childNodes,function(a){a.nodeType===1&&c.push(a)});return c},contents:function(a){return a.childNodes||
|
||||
[]},append:function(a,c){n(new R(c),function(c){(a.nodeType===1||a.nodeType===11)&&a.appendChild(c)})},prepend:function(a,c){if(a.nodeType===1){var d=a.firstChild;n(new R(c),function(c){d?a.insertBefore(c,d):(a.appendChild(c),d=c)})}},wrap:function(a,c){var c=w(c)[0],d=a.parentNode;d&&d.replaceChild(c,a);c.appendChild(a)},remove:function(a){ya(a);var c=a.parentNode;c&&c.removeChild(a)},after:function(a,c){var d=a,e=a.parentNode;n(new R(c),function(a){e.insertBefore(a,d.nextSibling);d=a})},addClass:Db,
|
||||
removeClass:Cb,toggleClass:function(a,c,d){C(d)&&(d=!La(a,c));(d?Db:Cb)(a,c)},parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},next:function(a){if(a.nextElementSibling)return a.nextElementSibling;for(a=a.nextSibling;a!=null&&a.nodeType!==1;)a=a.nextSibling;return a},find:function(a,c){return a.getElementsByTagName(c)},clone:fb,triggerHandler:function(a,c){var d=(ca(a,"events")||{})[c];n(d,function(c){c.call(a,{preventDefault:q})})}},function(a,c){R.prototype[c]=function(c,e){for(var g,
|
||||
i=0;i<this.length;i++)g==p?(g=a(this[i],c,e),g!==p&&(g=w(g))):eb(g,a(this[i],c,e));return g==p?this:g}});za.prototype={put:function(a,c){this[la(a)]=c},get:function(a){return this[la(a)]},remove:function(a){var c=this[a=la(a)];delete this[a];return c}};var zc=/^function\s*[^\(]*\(\s*([^\)]*)\)/m,Ac=/,/,Bc=/^\s*(_?)(\S+?)\1\s*$/,yc=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg;Ib.$inject=["$provide"];var qd=function(){var a="$ngAnimateController",c={running:!0};this.$get=["$animation","$window","$sniffer","$rootElement",
|
||||
"$rootScope",function(d,e,g,i){i.data(a,c);i=function(c,i){function j(j,k,o){return function(m,r,p){function x(a){var c=0,a=E(a)?a.split(/\s*,\s*/):[];n(a,function(a){c=Math.max(parseFloat(a)||0,c)});return c}function t(){m.addClass(K);if($)$(m,v,P);else if(H(e.getComputedStyle)){var a=g.vendorPrefix+"Animation",c=g.vendorPrefix+"Transition",d=0;n(m,function(f){if(f.nodeType==1){var g="transition",i=c,j=1,h=e.getComputedStyle(f)||{};if(parseFloat(h.animationDuration)>0||parseFloat(h[a+"Duration"])>
|
||||
0)g="animation",i=a,j=Math.max(parseInt(h[g+"IterationCount"])||0,parseInt(h[i+"IterationCount"])||0,j);f=Math.max(x(h[g+"Delay"]),x(h[i+"Delay"]));g=Math.max(x(h[g+"Duration"]),x(h[i+"Duration"]));d=Math.max(f+j*g,d)}});e.setTimeout(v,d*1E3)}else v()}function v(){if(!v.run)v.run=!0,o(m,r,p),m.removeClass(w),m.removeClass(K),m.removeData(a)}var A=c.$eval(i.ngAnimate),w=A?L(A)?A[j]:A+"-"+j:"",D=d(w),A=D&&D.setup,$=D&&D.start,D=D&&D.cancel;if(w){var K=w+"-active";r||(r=p?p.parent():m.parent());if(!g.transitions&&
|
||||
!A&&!$||(r.inheritedData(a)||q).running)k(m,r,p),o(m,r,p);else{var O=m.data(a)||{};O.running&&((D||q)(m),O.done());m.data(a,{running:!0,done:v});m.addClass(w);k(m,r,p);if(m.length==0)return v();var P=(A||q)(m);e.setTimeout(t,1)}}else k(m,r,p),o(m,r,p)}}function m(a,c,d){d?d.after(a):c.append(a)}var k={};k.enter=j("enter",m,q);k.leave=j("leave",q,function(a){a.remove()});k.move=j("move",function(a,c,d){m(a,c,d)},q);k.show=j("show",function(a){a.css("display","")},q);k.hide=j("hide",q,function(a){a.css("display",
|
||||
"none")});k.animate=function(a,c){j(a,q,q)(c)};return k};i.enabled=function(a){if(arguments.length)c.running=!a;return!c.running};return i}]},Kb="Non-assignable model expression: ";Jb.$inject=["$provide"];var Ic=/^(x[\:\-_]|data[\:\-_])/i,jb=/^([^:]+):\/\/(\w+:{0,1}\w*@)?(\{?[\w\.-]*\}?)(:([0-9]+))?(\/[^\?#]*)?(\?([^#]*))?(#(.*))?$/,Pb=/^([^\?#]*)(\?([^#]*))?(#(.*))?$/,Oa={http:80,https:443,ftp:21};Rb.prototype=lb.prototype=Qb.prototype={$$replace:!1,absUrl:Pa("$$absUrl"),url:function(a,c){if(C(a))return this.$$url;
|
||||
var d=Pb.exec(a);d[1]&&this.path(decodeURIComponent(d[1]));if(d[2]||d[1])this.search(d[3]||"");this.hash(d[5]||"",c);return this},protocol:Pa("$$protocol"),host:Pa("$$host"),port:Pa("$$port"),path:Sb("$$path",function(a){return a.charAt(0)=="/"?a:"/"+a}),search:function(a,c){if(C(a))return this.$$search;B(c)?c===null?delete this.$$search[a]:this.$$search[a]=c:this.$$search=E(a)?vb(a):a;this.$$compose();return this},hash:Sb("$$hash",qa),replace:function(){this.$$replace=!0;return this}};var Da={"null":function(){return null},
|
||||
"true":function(){return!0},"false":function(){return!1},undefined:q,"+":function(a,c,d,e){d=d(a,c);e=e(a,c);return B(d)?B(e)?d+e:d:B(e)?e:p},"-":function(a,c,d,e){d=d(a,c);e=e(a,c);return(B(d)?d:0)-(B(e)?e:0)},"*":function(a,c,d,e){return d(a,c)*e(a,c)},"/":function(a,c,d,e){return d(a,c)/e(a,c)},"%":function(a,c,d,e){return d(a,c)%e(a,c)},"^":function(a,c,d,e){return d(a,c)^e(a,c)},"=":q,"===":function(a,c,d,e){return d(a,c)===e(a,c)},"!==":function(a,c,d,e){return d(a,c)!==e(a,c)},"==":function(a,
|
||||
c,d,e){return d(a,c)==e(a,c)},"!=":function(a,c,d,e){return d(a,c)!=e(a,c)},"<":function(a,c,d,e){return d(a,c)<e(a,c)},">":function(a,c,d,e){return d(a,c)>e(a,c)},"<=":function(a,c,d,e){return d(a,c)<=e(a,c)},">=":function(a,c,d,e){return d(a,c)>=e(a,c)},"&&":function(a,c,d,e){return d(a,c)&&e(a,c)},"||":function(a,c,d,e){return d(a,c)||e(a,c)},"&":function(a,c,d,e){return d(a,c)&e(a,c)},"|":function(a,c,d,e){return e(a,c)(a,c,d(a,c))},"!":function(a,c,d){return!d(a,c)}},Qc={n:"\n",f:"\u000c",r:"\r",
|
||||
t:"\t",v:"\u000b","'":"'",'"':'"'},mb={},ad=/^(([^:]+):)?\/\/(\w+:{0,1}\w*@)?([\w\.-]*)?(:([0-9]+))?(.*)$/,ed=M.XMLHttpRequest||function(){try{return new ActiveXObject("Msxml2.XMLHTTP.6.0")}catch(a){}try{return new ActiveXObject("Msxml2.XMLHTTP.3.0")}catch(c){}try{return new ActiveXObject("Msxml2.XMLHTTP")}catch(d){}throw Error("This browser does not support XMLHttpRequest.");};Zb.$inject=["$provide"];$b.$inject=["$locale"];bc.$inject=["$locale"];var ec=".",od={yyyy:Q("FullYear",4),yy:Q("FullYear",
|
||||
2,0,!0),y:Q("FullYear",1),MMMM:Qa("Month"),MMM:Qa("Month",!0),MM:Q("Month",2,1),M:Q("Month",1,1),dd:Q("Date",2),d:Q("Date",1),HH:Q("Hours",2),H:Q("Hours",1),hh:Q("Hours",2,-12),h:Q("Hours",1,-12),mm:Q("Minutes",2),m:Q("Minutes",1),ss:Q("Seconds",2),s:Q("Seconds",1),sss:Q("Milliseconds",3),EEEE:Qa("Day"),EEE:Qa("Day",!0),a:function(a,c){return a.getHours()<12?c.AMPMS[0]:c.AMPMS[1]},Z:function(a){var a=-1*a.getTimezoneOffset(),c=a>=0?"+":"";c+=nb(Math[a>0?"floor":"ceil"](a/60),2)+nb(Math.abs(a%60),
|
||||
2);return c}},nd=/((?:[^yMdHhmsaZE']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z))(.*)/,md=/^\d+$/;ac.$inject=["$locale"];var kd=S(I),ld=S(oa);cc.$inject=["$parse"];var rd=S({restrict:"E",compile:function(a,c){Z<=8&&(!c.href&&!c.name&&c.$set("href",""),a.append(T.createComment("IE fix")));return function(a,c){c.bind("click",function(a){c.attr("href")||a.preventDefault()})}}}),pb={};n(Na,function(a,c){var d=da("ng-"+c);pb[d]=function(){return{priority:100,compile:function(){return function(a,
|
||||
g,i){a.$watch(i[d],function(a){i.$set(c,!!a)})}}}}});n(["src","srcset","href"],function(a){var c=da("ng-"+a);pb[c]=function(){return{priority:99,link:function(d,e,g){g.$observe(c,function(c){c&&(g.$set(a,c),Z&&e.prop(a,g[a]))})}}}});var Ta={$addControl:q,$removeControl:q,$setValidity:q,$setDirty:q,$setPristine:q};fc.$inject=["$element","$attrs","$scope"];var Wa=function(a){return["$timeout",function(c){var d={name:"form",restrict:"E",controller:fc,compile:function(){return{pre:function(a,d,i,f){if(!i.action){var h=
|
||||
function(a){a.preventDefault?a.preventDefault():a.returnValue=!1};gc(d[0],"submit",h);d.bind("$destroy",function(){c(function(){gb(d[0],"submit",h)},0,!1)})}var j=d.parent().controller("form"),m=i.name||i.ngForm;m&&(a[m]=f);j&&d.bind("$destroy",function(){j.$removeControl(f);m&&(a[m]=p);t(f,Ta)})}}}};return a?t(V(d),{restrict:"EAC"}):d}]},sd=Wa(),td=Wa(!0),ud=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/,vd=/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/,
|
||||
wd=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/,hc={text:Va,number:function(a,c,d,e,g,i){Va(a,c,d,e,g,i);e.$parsers.push(function(a){var c=X(a);return c||wd.test(a)?(e.$setValidity("number",!0),a===""?null:c?a:parseFloat(a)):(e.$setValidity("number",!1),p)});e.$formatters.push(function(a){return X(a)?"":""+a});if(d.min){var f=parseFloat(d.min),a=function(a){return!X(a)&&a<f?(e.$setValidity("min",!1),p):(e.$setValidity("min",!0),a)};e.$parsers.push(a);e.$formatters.push(a)}if(d.max){var h=parseFloat(d.max),
|
||||
d=function(a){return!X(a)&&a>h?(e.$setValidity("max",!1),p):(e.$setValidity("max",!0),a)};e.$parsers.push(d);e.$formatters.push(d)}e.$formatters.push(function(a){return X(a)||Ya(a)?(e.$setValidity("number",!0),a):(e.$setValidity("number",!1),p)})},url:function(a,c,d,e,g,i){Va(a,c,d,e,g,i);a=function(a){return X(a)||ud.test(a)?(e.$setValidity("url",!0),a):(e.$setValidity("url",!1),p)};e.$formatters.push(a);e.$parsers.push(a)},email:function(a,c,d,e,g,i){Va(a,c,d,e,g,i);a=function(a){return X(a)||vd.test(a)?
|
||||
(e.$setValidity("email",!0),a):(e.$setValidity("email",!1),p)};e.$formatters.push(a);e.$parsers.push(a)},radio:function(a,c,d,e){C(d.name)&&c.attr("name",Fa());c.bind("click",function(){c[0].checked&&a.$apply(function(){e.$setViewValue(d.value)})});e.$render=function(){c[0].checked=d.value==e.$viewValue};d.$observe("value",e.$render)},checkbox:function(a,c,d,e){var g=d.ngTrueValue,i=d.ngFalseValue;E(g)||(g=!0);E(i)||(i=!1);c.bind("click",function(){a.$apply(function(){e.$setViewValue(c[0].checked)})});
|
||||
e.$render=function(){c[0].checked=e.$viewValue};e.$formatters.push(function(a){return a===g});e.$parsers.push(function(a){return a?g:i})},hidden:q,button:q,submit:q,reset:q},ic=["$browser","$sniffer",function(a,c){return{restrict:"E",require:"?ngModel",link:function(d,e,g,i){i&&(hc[I(g.type)]||hc.text)(d,e,g,i,c,a)}}}],Sa="ng-valid",Ra="ng-invalid",pa="ng-pristine",Ua="ng-dirty",xd=["$scope","$exceptionHandler","$attrs","$element","$parse",function(a,c,d,e,g){function i(a,c){c=c?"-"+bb(c,"-"):"";
|
||||
e.removeClass((a?Ra:Sa)+c).addClass((a?Sa:Ra)+c)}this.$modelValue=this.$viewValue=Number.NaN;this.$parsers=[];this.$formatters=[];this.$viewChangeListeners=[];this.$pristine=!0;this.$dirty=!1;this.$valid=!0;this.$invalid=!1;this.$name=d.name;var f=g(d.ngModel),h=f.assign;if(!h)throw Error(Kb+d.ngModel+" ("+va(e)+")");this.$render=q;var j=e.inheritedData("$formController")||Ta,m=0,k=this.$error={};e.addClass(pa);i(!0);this.$setValidity=function(a,c){if(k[a]!==!c){if(c){if(k[a]&&m--,!m)i(!0),this.$valid=
|
||||
!0,this.$invalid=!1}else i(!1),this.$invalid=!0,this.$valid=!1,m++;k[a]=!c;i(c,a);j.$setValidity(a,c,this)}};this.$setPristine=function(){this.$dirty=!1;this.$pristine=!0;e.removeClass(Ua).addClass(pa)};this.$setViewValue=function(d){this.$viewValue=d;if(this.$pristine)this.$dirty=!0,this.$pristine=!1,e.removeClass(pa).addClass(Ua),j.$setDirty();n(this.$parsers,function(a){d=a(d)});if(this.$modelValue!==d)this.$modelValue=d,h(a,d),n(this.$viewChangeListeners,function(a){try{a()}catch(d){c(d)}})};
|
||||
var l=this;a.$watch(function(){var c=f(a);if(l.$modelValue!==c){var d=l.$formatters,e=d.length;for(l.$modelValue=c;e--;)c=d[e](c);if(l.$viewValue!==c)l.$viewValue=c,l.$render()}})}],yd=function(){return{require:["ngModel","^?form"],controller:xd,link:function(a,c,d,e){var g=e[0],i=e[1]||Ta;i.$addControl(g);c.bind("$destroy",function(){i.$removeControl(g)})}}},zd=S({require:"ngModel",link:function(a,c,d,e){e.$viewChangeListeners.push(function(){a.$eval(d.ngChange)})}}),jc=function(){return{require:"?ngModel",
|
||||
link:function(a,c,d,e){if(e){d.required=!0;var g=function(a){if(d.required&&(X(a)||a===!1))e.$setValidity("required",!1);else return e.$setValidity("required",!0),a};e.$formatters.push(g);e.$parsers.unshift(g);d.$observe("required",function(){g(e.$viewValue)})}}}},Ad=function(){return{require:"ngModel",link:function(a,c,d,e){var g=(a=/\/(.*)\//.exec(d.ngList))&&RegExp(a[1])||d.ngList||",";e.$parsers.push(function(a){var c=[];a&&n(a.split(g),function(a){a&&c.push(U(a))});return c});e.$formatters.push(function(a){return F(a)?
|
||||
a.join(", "):p})}}},Bd=/^(true|false|\d+)$/,Cd=function(){return{priority:100,compile:function(a,c){return Bd.test(c.ngValue)?function(a,c,g){g.$set("value",a.$eval(g.ngValue))}:function(a,c,g){a.$watch(g.ngValue,function(a){g.$set("value",a,!1)})}}}},Dd=aa(function(a,c,d){c.addClass("ng-binding").data("$binding",d.ngBind);a.$watch(d.ngBind,function(a){c.text(a==p?"":a)})}),Ed=["$interpolate",function(a){return function(c,d,e){c=a(d.attr(e.$attr.ngBindTemplate));d.addClass("ng-binding").data("$binding",
|
||||
c);e.$observe("ngBindTemplate",function(a){d.text(a)})}}],Fd=[function(){return function(a,c,d){c.addClass("ng-binding").data("$binding",d.ngBindHtmlUnsafe);a.$watch(d.ngBindHtmlUnsafe,function(a){c.html(a||"")})}}],Gd=ob("",!0),Hd=ob("Odd",0),Id=ob("Even",1),Jd=aa({compile:function(a,c){c.$set("ngCloak",p);a.removeClass("ng-cloak")}}),Kd=[function(){return{scope:!0,controller:"@"}}],Ld=["$sniffer",function(a){return{priority:1E3,compile:function(){a.csp=!0}}}],kc={};n("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress".split(" "),
|
||||
function(a){var c=da("ng-"+a);kc[c]=["$parse",function(d){return function(e,g,i){var f=d(i[c]);g.bind(I(a),function(a){e.$apply(function(){f(e,{$event:a})})})}}]});var Md=aa(function(a,c,d){c.bind("submit",function(){a.$apply(d.ngSubmit)})}),Nd=["$animator",function(a){return{transclude:"element",priority:1E3,terminal:!0,restrict:"A",compile:function(c,d,e){return function(c,d,f){var h=a(c,f),j,m;c.$watch(f.ngIf,function(a){j&&(h.leave(j),j=p);m&&(m.$destroy(),m=p);ua(a)&&(m=c.$new(),e(m,function(a){j=
|
||||
a;h.enter(a,d.parent(),d)}))})}}}}],Od=["$http","$templateCache","$anchorScroll","$compile","$animator",function(a,c,d,e,g){return{restrict:"ECA",terminal:!0,compile:function(i,f){var h=f.ngInclude||f.src,j=f.onload||"",m=f.autoscroll;return function(f,i,n){var o=g(f,n),p=0,r,t=function(){r&&(r.$destroy(),r=null);o.leave(i.contents(),i)};f.$watch(h,function(g){var h=++p;g?(a.get(g,{cache:c}).success(function(a){h===p&&(r&&r.$destroy(),r=f.$new(),o.leave(i.contents(),i),a=w("<div/>").html(a).contents(),
|
||||
o.enter(a,i),e(a)(r),B(m)&&(!m||f.$eval(m))&&d(),r.$emit("$includeContentLoaded"),f.$eval(j))}).error(function(){h===p&&t()}),f.$emit("$includeContentRequested")):t()})}}}}],Pd=aa({compile:function(){return{pre:function(a,c,d){a.$eval(d.ngInit)}}}}),Qd=aa({terminal:!0,priority:1E3}),Rd=["$locale","$interpolate",function(a,c){var d=/{}/g;return{restrict:"EA",link:function(e,g,i){var f=i.count,h=g.attr(i.$attr.when),j=i.offset||0,m=e.$eval(h),k={},l=c.startSymbol(),p=c.endSymbol();n(m,function(a,e){k[e]=
|
||||
c(a.replace(d,l+f+"-"+j+p))});e.$watch(function(){var c=parseFloat(e.$eval(f));return isNaN(c)?"":(c in m||(c=a.pluralCat(c-j)),k[c](e,g,!0))},function(a){g.text(a)})}}}],Sd=["$parse","$animator",function(a,c){return{transclude:"element",priority:1E3,terminal:!0,compile:function(d,e,g){return function(d,e,h){var j=c(d,h),m=h.ngRepeat,k=m.match(/^\s*(.+)\s+in\s+(.*?)\s*(\s+track\s+by\s+(.+)\s*)?$/),l,p,o,z,r,t={$id:la};if(!k)throw Error("Expected ngRepeat in form of '_item_ in _collection_[ track by _id_]' but got '"+
|
||||
m+"'.");h=k[1];o=k[2];(k=k[4])?(l=a(k),p=function(a,c,e){r&&(t[r]=a);t[z]=c;t.$index=e;return l(d,t)}):p=function(a,c){return la(c)};k=h.match(/^(?:([\$\w]+)|\(([\$\w]+)\s*,\s*([\$\w]+)\))$/);if(!k)throw Error("'item' in 'item in collection' should be identifier or (key, value) but got '"+h+"'.");z=k[3]||k[1];r=k[2];var x={};d.$watchCollection(o,function(a){var c,h,k=e,l,o={},t,q,w,s,B,y,C=[];if(Xa(a))B=a;else{B=[];for(w in a)a.hasOwnProperty(w)&&w.charAt(0)!="$"&&B.push(w);B.sort()}t=B.length;h=
|
||||
C.length=B.length;for(c=0;c<h;c++)if(w=a===B?c:B[c],s=a[w],l=p(w,s,c),x.hasOwnProperty(l))y=x[l],delete x[l],o[l]=y,C[c]=y;else if(o.hasOwnProperty(l))throw n(C,function(a){a&&a.element&&(x[a.id]=a)}),Error("Duplicates in a repeater are not allowed. Repeater: "+m+" key: "+l);else C[c]={id:l},o[l]=!1;for(w in x)if(x.hasOwnProperty(w))y=x[w],j.leave(y.element),y.element[0].$$NG_REMOVED=!0,y.scope.$destroy();c=0;for(h=B.length;c<h;c++){w=a===B?c:B[c];s=a[w];y=C[c];if(y.element){q=y.scope;l=k[0];do l=
|
||||
l.nextSibling;while(l&&l.$$NG_REMOVED);y.element[0]!=l&&j.move(y.element,null,k);k=y.element}else q=d.$new();q[z]=s;r&&(q[r]=w);q.$index=c;q.$first=c===0;q.$last=c===t-1;q.$middle=!(q.$first||q.$last);y.element||g(q,function(a){j.enter(a,null,k);k=a;y.scope=q;y.element=a;o[y.id]=y})}x=o})}}}}],Td=["$animator",function(a){return function(c,d,e){var g=a(c,e);c.$watch(e.ngShow,function(a){g[ua(a)?"show":"hide"](d)})}}],Ud=["$animator",function(a){return function(c,d,e){var g=a(c,e);c.$watch(e.ngHide,
|
||||
function(a){g[ua(a)?"hide":"show"](d)})}}],Vd=aa(function(a,c,d){a.$watch(d.ngStyle,function(a,d){d&&a!==d&&n(d,function(a,d){c.css(d,"")});a&&c.css(a)},!0)}),Wd=["$animator",function(a){return{restrict:"EA",require:"ngSwitch",controller:["$scope",function(){this.cases={}}],link:function(c,d,e,g){var i=a(c,e),f,h,j=[];c.$watch(e.ngSwitch||e.on,function(a){for(var d=0,l=j.length;d<l;d++)j[d].$destroy(),i.leave(h[d]);h=[];j=[];if(f=g.cases["!"+a]||g.cases["?"])c.$eval(e.change),n(f,function(a){var d=
|
||||
c.$new();j.push(d);a.transclude(d,function(c){var d=a.element;h.push(c);i.enter(c,d.parent(),d)})})})}}}],Xd=aa({transclude:"element",priority:500,require:"^ngSwitch",compile:function(a,c,d){return function(a,g,i,f){f.cases["!"+c.ngSwitchWhen]=f.cases["!"+c.ngSwitchWhen]||[];f.cases["!"+c.ngSwitchWhen].push({transclude:d,element:g})}}}),Yd=aa({transclude:"element",priority:500,require:"^ngSwitch",compile:function(a,c,d){return function(a,c,i,f){f.cases["?"]=f.cases["?"]||[];f.cases["?"].push({transclude:d,
|
||||
element:c})}}}),Zd=aa({controller:["$transclude","$element",function(a,c){a(function(a){c.append(a)})}]}),$d=["$http","$templateCache","$route","$anchorScroll","$compile","$controller","$animator",function(a,c,d,e,g,i,f){return{restrict:"ECA",terminal:!0,link:function(a,c,m){function k(){var f=d.current&&d.current.locals,k=f&&f.$template;if(k){o.leave(c.contents(),c);l&&(l.$destroy(),l=null);k=w("<div></div>").html(k).contents();o.enter(k,c);var k=g(k),m=d.current;l=m.scope=a.$new();if(m.controller)f.$scope=
|
||||
l,f=i(m.controller,f),m.controllerAs&&(l[m.controllerAs]=f),c.children().data("$ngControllerController",f);k(l);l.$emit("$viewContentLoaded");l.$eval(n);e()}else o.leave(c.contents(),c),l&&(l.$destroy(),l=null)}var l,n=m.onload||"",o=f(a,m);a.$on("$routeChangeSuccess",k);k()}}}],ae=["$templateCache",function(a){return{restrict:"E",terminal:!0,compile:function(c,d){d.type=="text/ng-template"&&a.put(d.id,c[0].text)}}}],be=S({terminal:!0}),ce=["$compile","$parse",function(a,c){var d=/^\s*(.*?)(?:\s+as\s+(.*?))?(?:\s+group\s+by\s+(.*))?\s+for\s+(?:([\$\w][\$\w\d]*)|(?:\(\s*([\$\w][\$\w\d]*)\s*,\s*([\$\w][\$\w\d]*)\s*\)))\s+in\s+(.*?)(?:\s+track\s+by\s+(.*?))?$/,
|
||||
e={$setViewValue:q};return{restrict:"E",require:["select","?ngModel"],controller:["$element","$scope","$attrs",function(a,c,d){var h=this,j={},m=e,k;h.databound=d.ngModel;h.init=function(a,c,d){m=a;k=d};h.addOption=function(c){j[c]=!0;m.$viewValue==c&&(a.val(c),k.parent()&&k.remove())};h.removeOption=function(a){this.hasOption(a)&&(delete j[a],m.$viewValue==a&&this.renderUnknownOption(a))};h.renderUnknownOption=function(c){c="? "+la(c)+" ?";k.val(c);a.prepend(k);a.val(c);k.prop("selected",!0)};h.hasOption=
|
||||
function(a){return j.hasOwnProperty(a)};c.$on("$destroy",function(){h.renderUnknownOption=q})}],link:function(e,i,f,h){function j(a,c,d,e){d.$render=function(){var a=d.$viewValue;e.hasOption(a)?(v.parent()&&v.remove(),c.val(a),a===""&&t.prop("selected",!0)):C(a)&&t?c.val(""):e.renderUnknownOption(a)};c.bind("change",function(){a.$apply(function(){v.parent()&&v.remove();d.$setViewValue(c.val())})})}function m(a,c,d){var e;d.$render=function(){var a=new za(d.$viewValue);n(c.find("option"),function(c){c.selected=
|
||||
B(a.get(c.value))})};a.$watch(function(){ia(e,d.$viewValue)||(e=V(d.$viewValue),d.$render())});c.bind("change",function(){a.$apply(function(){var a=[];n(c.find("option"),function(c){c.selected&&a.push(c.value)});d.$setViewValue(a)})})}function k(e,f,g){function i(){var a={"":[]},c=[""],d,h,q,v,s;q=g.$modelValue;v=u(e)||[];var z=l?qb(v):v,B,y,A;y={};s=!1;var C,D;if(o)if(t&&F(q)){s=new za([]);for(h=0;h<q.length;h++)y[k]=q[h],s.put(t(e,y),q[h])}else s=new za(q);for(A=0;B=z.length,A<B;A++){y[k]=v[l?y[l]=
|
||||
z[A]:A];d=m(e,y)||"";if(!(h=a[d]))h=a[d]=[],c.push(d);o?d=s.remove(t?t(e,y):n(e,y))!=p:(t?(d={},d[k]=q,d=t(e,d)===t(e,y)):d=q===n(e,y),s=s||d);C=j(e,y);C=C===p?"":C;h.push({id:t?t(e,y):l?z[A]:A,label:C,selected:d})}o||(r||q===null?a[""].unshift({id:"",label:"",selected:!s}):s||a[""].unshift({id:"?",label:"",selected:!0}));y=0;for(z=c.length;y<z;y++){d=c[y];h=a[d];if(w.length<=y)q={element:E.clone().attr("label",d),label:h.label},v=[q],w.push(v),f.append(q.element);else if(v=w[y],q=v[0],q.label!=d)q.element.attr("label",
|
||||
q.label=d);C=null;A=0;for(B=h.length;A<B;A++)if(d=h[A],s=v[A+1]){C=s.element;if(s.label!==d.label)C.text(s.label=d.label);if(s.id!==d.id)C.val(s.id=d.id);if(C[0].selected!==d.selected)C.prop("selected",s.selected=d.selected)}else d.id===""&&r?D=r:(D=x.clone()).val(d.id).attr("selected",d.selected).text(d.label),v.push({element:D,label:d.label,id:d.id,selected:d.selected}),C?C.after(D):q.element.append(D),C=D;for(A++;v.length>A;)v.pop().element.remove()}for(;w.length>y;)w.pop()[0].element.remove()}
|
||||
var h;if(!(h=q.match(d)))throw Error("Expected ngOptions in form of '_select_ (as _label_)? for (_key_,)?_value_ in _collection_ (track by _expr_)?' but got '"+q+"'.");var j=c(h[2]||h[1]),k=h[4]||h[6],l=h[5],m=c(h[3]||""),n=c(h[2]?h[1]:k),u=c(h[7]),t=h[8]?c(h[8]):null,w=[[{element:f,label:""}]];r&&(a(r)(e),r.removeClass("ng-scope"),r.remove());f.html("");f.bind("change",function(){e.$apply(function(){var a,c=u(e)||[],d={},h,i,j,m,q,r;if(o){i=[];m=0;for(r=w.length;m<r;m++){a=w[m];j=1;for(q=a.length;j<
|
||||
q;j++)if((h=a[j].element)[0].selected){h=h.val();l&&(d[l]=h);if(t)for(var s=0;s<c.length;s++){if(d[k]=c[s],t(e,d)==h)break}else d[k]=c[h];i.push(n(e,d))}}}else if(h=f.val(),h=="?")i=p;else if(h=="")i=null;else if(t)for(s=0;s<c.length;s++){if(d[k]=c[s],t(e,d)==h){i=n(e,d);break}}else d[k]=c[h],l&&(d[l]=h),i=n(e,d);g.$setViewValue(i)})});g.$render=i;e.$watch(i)}if(h[1]){for(var l=h[0],u=h[1],o=f.multiple,q=f.ngOptions,r=!1,t,x=w(T.createElement("option")),E=w(T.createElement("optgroup")),v=x.clone(),
|
||||
h=0,A=i.children(),G=A.length;h<G;h++)if(A[h].value==""){t=r=A.eq(h);break}l.init(u,r,v);if(o&&(f.required||f.ngRequired)){var D=function(a){u.$setValidity("required",!f.required||a&&a.length);return a};u.$parsers.push(D);u.$formatters.unshift(D);f.$observe("required",function(){D(u.$viewValue)})}q?k(e,i,u):o?m(e,i,u):j(e,i,u,l)}}}}],de=["$interpolate",function(a){var c={addOption:q,removeOption:q};return{restrict:"E",priority:100,compile:function(d,e){if(C(e.value)){var g=a(d.text(),!0);g||e.$set("value",
|
||||
d.text())}return function(a,d,e){var j=d.parent(),m=j.data("$selectController")||j.parent().data("$selectController");m&&m.databound?d.prop("selected",!1):m=c;g?a.$watch(g,function(a,c){e.$set("value",a);a!==c&&m.removeOption(c);m.addOption(a)}):m.addOption(e.value);d.bind("$destroy",function(){m.removeOption(e.value)})}}}}],ee=S({restrict:"E",terminal:!0});(ga=M.jQuery)?(w=ga,t(ga.fn,{scope:Ba.scope,controller:Ba.controller,injector:Ba.injector,inheritedData:Ba.inheritedData}),db("remove",!0),db("empty"),
|
||||
db("html")):w=R;Ha.element=w;(function(a){t(a,{bootstrap:xb,copy:V,extend:t,equals:ia,element:w,forEach:n,injector:yb,noop:q,bind:$a,toJson:ha,fromJson:ub,identity:qa,isUndefined:C,isDefined:B,isString:E,isFunction:H,isObject:L,isNumber:Ya,isElement:oc,isArray:F,version:pd,isDate:ra,lowercase:I,uppercase:oa,callbacks:{counter:0},noConflict:lc});Aa=tc(M);try{Aa("ngLocale")}catch(c){Aa("ngLocale",[]).provider("$locale",fd)}Aa("ng",["ngLocale"],["$provide",function(a){a.provider("$compile",Jb).directive({a:rd,
|
||||
input:ic,textarea:ic,form:sd,script:ae,select:ce,style:ee,option:de,ngBind:Dd,ngBindHtmlUnsafe:Fd,ngBindTemplate:Ed,ngClass:Gd,ngClassEven:Id,ngClassOdd:Hd,ngCsp:Ld,ngCloak:Jd,ngController:Kd,ngForm:td,ngHide:Ud,ngIf:Nd,ngInclude:Od,ngInit:Pd,ngNonBindable:Qd,ngPluralize:Rd,ngRepeat:Sd,ngShow:Td,ngSubmit:Md,ngStyle:Vd,ngSwitch:Wd,ngSwitchWhen:Xd,ngSwitchDefault:Yd,ngOptions:be,ngView:$d,ngTransclude:Zd,ngModel:yd,ngList:Ad,ngChange:zd,required:jc,ngRequired:jc,ngValue:Cd}).directive(pb).directive(kc);
|
||||
a.provider({$anchorScroll:Cc,$animation:Ib,$animator:qd,$browser:Ec,$cacheFactory:Fc,$controller:Jc,$document:Kc,$exceptionHandler:Lc,$filter:Zb,$interpolate:Mc,$http:bd,$httpBackend:cd,$location:Nc,$log:Oc,$parse:Sc,$route:Vc,$routeParams:Wc,$rootScope:Xc,$q:Tc,$sniffer:Yc,$templateCache:Gc,$timeout:gd,$window:Zc})}])})(Ha);w(T).ready(function(){rc(T,xb)})})(window,document);angular.element(document).find("head").append('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak{display:none;}ng\\:form{display:block;}</style>');
|
||||
/*
|
||||
AngularJS v1.1.5
|
||||
(c) 2010-2012 Google, Inc. http://angularjs.org
|
||||
License: MIT
|
||||
*/
|
||||
(function(M,T,p){'use strict';function lc(){var b=M.angular;M.angular=mc;return b}function Xa(b){return!b||typeof b.length!=="number"?!1:typeof b.hasOwnProperty!="function"&&typeof b.constructor!="function"?!0:b instanceof R||ga&&b instanceof ga||Ea.call(b)!=="[object Object]"||typeof b.callee==="function"}function n(b,a,c){var d;if(b)if(H(b))for(d in b)d!="prototype"&&d!="length"&&d!="name"&&b.hasOwnProperty(d)&&a.call(c,b[d],d);else if(b.forEach&&b.forEach!==n)b.forEach(a,c);else if(Xa(b))for(d=
|
||||
0;d<b.length;d++)a.call(c,b[d],d);else for(d in b)b.hasOwnProperty(d)&&a.call(c,b[d],d);return b}function qb(b){var a=[],c;for(c in b)b.hasOwnProperty(c)&&a.push(c);return a.sort()}function nc(b,a,c){for(var d=qb(b),e=0;e<d.length;e++)a.call(c,b[d[e]],d[e]);return d}function rb(b){return function(a,c){b(c,a)}}function Fa(){for(var b=ba.length,a;b;){b--;a=ba[b].charCodeAt(0);if(a==57)return ba[b]="A",ba.join("");if(a==90)ba[b]="0";else return ba[b]=String.fromCharCode(a+1),ba.join("")}ba.unshift("0");
|
||||
return ba.join("")}function sb(b,a){a?b.$$hashKey=a:delete b.$$hashKey}function t(b){var a=b.$$hashKey;n(arguments,function(a){a!==b&&n(a,function(a,c){b[c]=a})});sb(b,a);return b}function N(b){return parseInt(b,10)}function tb(b,a){return t(new (t(function(){},{prototype:b})),a)}function q(){}function qa(b){return b}function S(b){return function(){return b}}function C(b){return typeof b=="undefined"}function B(b){return typeof b!="undefined"}function L(b){return b!=null&&typeof b=="object"}function E(b){return typeof b==
|
||||
"string"}function Ya(b){return typeof b=="number"}function ra(b){return Ea.apply(b)=="[object Date]"}function F(b){return Ea.apply(b)=="[object Array]"}function H(b){return typeof b=="function"}function sa(b){return b&&b.document&&b.location&&b.alert&&b.setInterval}function U(b){return E(b)?b.replace(/^\s*/,"").replace(/\s*$/,""):b}function oc(b){return b&&(b.nodeName||b.bind&&b.find)}function Za(b,a,c){var d=[];n(b,function(b,g,i){d.push(a.call(c,b,g,i))});return d}function Ga(b,a){if(b.indexOf)return b.indexOf(a);
|
||||
for(var c=0;c<b.length;c++)if(a===b[c])return c;return-1}function ta(b,a){var c=Ga(b,a);c>=0&&b.splice(c,1);return a}function V(b,a){if(sa(b)||b&&b.$evalAsync&&b.$watch)throw Error("Can't copy Window or Scope");if(a){if(b===a)throw Error("Can't copy equivalent objects or arrays");if(F(b))for(var c=a.length=0;c<b.length;c++)a.push(V(b[c]));else{c=a.$$hashKey;n(a,function(b,c){delete a[c]});for(var d in b)a[d]=V(b[d]);sb(a,c)}}else(a=b)&&(F(b)?a=V(b,[]):ra(b)?a=new Date(b.getTime()):L(b)&&(a=V(b,{})));
|
||||
return a}function pc(b,a){var a=a||{},c;for(c in b)b.hasOwnProperty(c)&&c.substr(0,2)!=="$$"&&(a[c]=b[c]);return a}function ia(b,a){if(b===a)return!0;if(b===null||a===null)return!1;if(b!==b&&a!==a)return!0;var c=typeof b,d;if(c==typeof a&&c=="object")if(F(b)){if((c=b.length)==a.length){for(d=0;d<c;d++)if(!ia(b[d],a[d]))return!1;return!0}}else if(ra(b))return ra(a)&&b.getTime()==a.getTime();else{if(b&&b.$evalAsync&&b.$watch||a&&a.$evalAsync&&a.$watch||sa(b)||sa(a))return!1;c={};for(d in b)if(!(d.charAt(0)===
|
||||
"$"||H(b[d]))){if(!ia(b[d],a[d]))return!1;c[d]=!0}for(d in a)if(!c[d]&&d.charAt(0)!=="$"&&a[d]!==p&&!H(a[d]))return!1;return!0}return!1}function $a(b,a){var c=arguments.length>2?ka.call(arguments,2):[];return H(a)&&!(a instanceof RegExp)?c.length?function(){return arguments.length?a.apply(b,c.concat(ka.call(arguments,0))):a.apply(b,c)}:function(){return arguments.length?a.apply(b,arguments):a.call(b)}:a}function qc(b,a){var c=a;/^\$+/.test(b)?c=p:sa(a)?c="$WINDOW":a&&T===a?c="$DOCUMENT":a&&a.$evalAsync&&
|
||||
a.$watch&&(c="$SCOPE");return c}function ha(b,a){return JSON.stringify(b,qc,a?" ":null)}function ub(b){return E(b)?JSON.parse(b):b}function ua(b){b&&b.length!==0?(b=I(""+b),b=!(b=="f"||b=="0"||b=="false"||b=="no"||b=="n"||b=="[]")):b=!1;return b}function va(b){b=v(b).clone();try{b.html("")}catch(a){}var c=v("<div>").append(b).html();try{return b[0].nodeType===3?I(c):c.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(a,b){return"<"+I(b)})}catch(d){return I(c)}}function vb(b){var a={},c,d;n((b||
|
||||
"").split("&"),function(b){b&&(c=b.split("="),d=decodeURIComponent(c[0]),a[d]=B(c[1])?decodeURIComponent(c[1]):!0)});return a}function wb(b){var a=[];n(b,function(b,d){a.push(wa(d,!0)+(b===!0?"":"="+wa(b,!0)))});return a.length?a.join("&"):""}function ab(b){return wa(b,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function wa(b,a){return encodeURIComponent(b).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,a?"%20":"+")}function rc(b,
|
||||
a){function c(a){a&&d.push(a)}var d=[b],e,g,i=["ng:app","ng-app","x-ng-app","data-ng-app"],f=/\sng[:\-]app(:\s*([\w\d_]+);?)?\s/;n(i,function(a){i[a]=!0;c(T.getElementById(a));a=a.replace(":","\\:");b.querySelectorAll&&(n(b.querySelectorAll("."+a),c),n(b.querySelectorAll("."+a+"\\:"),c),n(b.querySelectorAll("["+a+"]"),c))});n(d,function(a){if(!e){var b=f.exec(" "+a.className+" ");b?(e=a,g=(b[2]||"").replace(/\s+/g,",")):n(a.attributes,function(b){if(!e&&i[b.name])e=a,g=b.value})}});e&&a(e,g?[g]:[])}
|
||||
function xb(b,a){var c=function(){b=v(b);a=a||[];a.unshift(["$provide",function(a){a.value("$rootElement",b)}]);a.unshift("ng");var c=yb(a);c.invoke(["$rootScope","$rootElement","$compile","$injector","$animator",function(a,b,c,d,e){a.$apply(function(){b.data("$injector",d);c(b)(a)});e.enabled(!0)}]);return c},d=/^NG_DEFER_BOOTSTRAP!/;if(M&&!d.test(M.name))return c();M.name=M.name.replace(d,"");Ha.resumeBootstrap=function(b){n(b,function(b){a.push(b)});c()}}function bb(b,a){a=a||"_";return b.replace(sc,
|
||||
function(b,d){return(d?a:"")+b.toLowerCase()})}function cb(b,a,c){if(!b)throw Error("Argument '"+(a||"?")+"' is "+(c||"required"));return b}function xa(b,a,c){c&&F(b)&&(b=b[b.length-1]);cb(H(b),a,"not a function, got "+(b&&typeof b=="object"?b.constructor.name||"Object":typeof b));return b}function tc(b){function a(a,b,e){return a[b]||(a[b]=e())}return a(a(b,"angular",Object),"module",function(){var b={};return function(d,e,g){e&&b.hasOwnProperty(d)&&(b[d]=null);return a(b,d,function(){function a(c,
|
||||
d,e){return function(){b[e||"push"]([c,d,arguments]);return m}}if(!e)throw Error("No module: "+d);var b=[],c=[],j=a("$injector","invoke"),m={_invokeQueue:b,_runBlocks:c,requires:e,name:d,provider:a("$provide","provider"),factory:a("$provide","factory"),service:a("$provide","service"),value:a("$provide","value"),constant:a("$provide","constant","unshift"),animation:a("$animationProvider","register"),filter:a("$filterProvider","register"),controller:a("$controllerProvider","register"),directive:a("$compileProvider",
|
||||
"directive"),config:j,run:function(a){c.push(a);return this}};g&&j(g);return m})}})}function Ia(b){return b.replace(uc,function(a,b,d,e){return e?d.toUpperCase():d}).replace(vc,"Moz$1")}function db(b,a){function c(){var e;for(var b=[this],c=a,i,f,h,j,m,k;b.length;){i=b.shift();f=0;for(h=i.length;f<h;f++){j=v(i[f]);c?j.triggerHandler("$destroy"):c=!c;m=0;for(e=(k=j.children()).length,j=e;m<j;m++)b.push(ga(k[m]))}}return d.apply(this,arguments)}var d=ga.fn[b],d=d.$original||d;c.$original=d;ga.fn[b]=
|
||||
c}function R(b){if(b instanceof R)return b;if(!(this instanceof R)){if(E(b)&&b.charAt(0)!="<")throw Error("selectors not implemented");return new R(b)}if(E(b)){var a=T.createElement("div");a.innerHTML="<div> </div>"+b;a.removeChild(a.firstChild);eb(this,a.childNodes);this.remove()}else eb(this,b)}function fb(b){return b.cloneNode(!0)}function ya(b){zb(b);for(var a=0,b=b.childNodes||[];a<b.length;a++)ya(b[a])}function Ab(b,a,c){var d=ca(b,"events");ca(b,"handle")&&(C(a)?n(d,function(a,c){gb(b,
|
||||
c,a);delete d[c]}):C(c)?(gb(b,a,d[a]),delete d[a]):ta(d[a],c))}function zb(b){var a=b[Ja],c=Ka[a];c&&(c.handle&&(c.events.$destroy&&c.handle({},"$destroy"),Ab(b)),delete Ka[a],b[Ja]=p)}function ca(b,a,c){var d=b[Ja],d=Ka[d||-1];if(B(c))d||(b[Ja]=d=++wc,d=Ka[d]={}),d[a]=c;else return d&&d[a]}function Bb(b,a,c){var d=ca(b,"data"),e=B(c),g=!e&&B(a),i=g&&!L(a);!d&&!i&&ca(b,"data",d={});if(e)d[a]=c;else if(g)if(i)return d&&d[a];else t(d,a);else return d}function La(b,a){return(" "+b.className+" ").replace(/[\n\t]/g,
|
||||
" ").indexOf(" "+a+" ")>-1}function Cb(b,a){a&&n(a.split(" "),function(a){b.className=U((" "+b.className+" ").replace(/[\n\t]/g," ").replace(" "+U(a)+" "," "))})}function Db(b,a){a&&n(a.split(" "),function(a){if(!La(b,a))b.className=U(b.className+" "+U(a))})}function eb(b,a){if(a)for(var a=!a.nodeName&&B(a.length)&&!sa(a)?a:[a],c=0;c<a.length;c++)b.push(a[c])}function Eb(b,a){return Ma(b,"$"+(a||"ngController")+"Controller")}function Ma(b,a,c){b=v(b);for(b[0].nodeType==9&&(b=b.find("html"));b.length;){if(c=
|
||||
b.data(a))return c;b=b.parent()}}function Fb(b,a){var c=Na[a.toLowerCase()];return c&&Gb[b.nodeName]&&c}function xc(b,a){var c=function(c,e){if(!c.preventDefault)c.preventDefault=function(){c.returnValue=!1};if(!c.stopPropagation)c.stopPropagation=function(){c.cancelBubble=!0};if(!c.target)c.target=c.srcElement||T;if(C(c.defaultPrevented)){var g=c.preventDefault;c.preventDefault=function(){c.defaultPrevented=!0;g.call(c)};c.defaultPrevented=!1}c.isDefaultPrevented=function(){return c.defaultPrevented||
|
||||
c.returnValue==!1};n(a[e||c.type],function(a){a.call(b,c)});Z<=8?(c.preventDefault=null,c.stopPropagation=null,c.isDefaultPrevented=null):(delete c.preventDefault,delete c.stopPropagation,delete c.isDefaultPrevented)};c.elem=b;return c}function la(b){var a=typeof b,c;if(a=="object"&&b!==null)if(typeof(c=b.$$hashKey)=="function")c=b.$$hashKey();else{if(c===p)c=b.$$hashKey=Fa()}else c=b;return a+":"+c}function za(b){n(b,this.put,this)}function Hb(b){var a,c;if(typeof b=="function"){if(!(a=b.$inject))a=
|
||||
[],c=b.toString().replace(yc,""),c=c.match(zc),n(c[1].split(Ac),function(b){b.replace(Bc,function(b,c,d){a.push(d)})}),b.$inject=a}else F(b)?(c=b.length-1,xa(b[c],"fn"),a=b.slice(0,c)):xa(b,"fn",!0);return a}function yb(b){function a(a){return function(b,c){if(L(b))n(b,rb(a));else return a(b,c)}}function c(a,b){if(H(b)||F(b))b=k.instantiate(b);if(!b.$get)throw Error("Provider "+a+" must define $get factory method.");return m[a+f]=b}function d(a,b){return c(a,{$get:b})}function e(a){var b=[];n(a,function(a){if(!j.get(a))if(j.put(a,
|
||||
!0),E(a)){var c=Aa(a);b=b.concat(e(c.requires)).concat(c._runBlocks);try{for(var d=c._invokeQueue,c=0,f=d.length;c<f;c++){var g=d[c],o=k.get(g[0]);o[g[1]].apply(o,g[2])}}catch(h){throw h.message&&(h.message+=" from "+a),h;}}else if(H(a))try{b.push(k.invoke(a))}catch(l){throw l.message&&(l.message+=" from "+a),l;}else if(F(a))try{b.push(k.invoke(a))}catch(i){throw i.message&&(i.message+=" from "+String(a[a.length-1])),i;}else xa(a,"module")});return b}function g(a,b){function c(d){if(typeof d!=="string")throw Error("Service name expected");
|
||||
if(a.hasOwnProperty(d)){if(a[d]===i)throw Error("Circular dependency: "+h.join(" <- "));return a[d]}else try{return h.unshift(d),a[d]=i,a[d]=b(d)}finally{h.shift()}}function d(a,b,e){var f=[],j=Hb(a),g,o,h;o=0;for(g=j.length;o<g;o++)h=j[o],f.push(e&&e.hasOwnProperty(h)?e[h]:c(h));a.$inject||(a=a[g]);switch(b?-1:f.length){case 0:return a();case 1:return a(f[0]);case 2:return a(f[0],f[1]);case 3:return a(f[0],f[1],f[2]);case 4:return a(f[0],f[1],f[2],f[3]);case 5:return a(f[0],f[1],f[2],f[3],f[4]);
|
||||
case 6:return a(f[0],f[1],f[2],f[3],f[4],f[5]);case 7:return a(f[0],f[1],f[2],f[3],f[4],f[5],f[6]);case 8:return a(f[0],f[1],f[2],f[3],f[4],f[5],f[6],f[7]);case 9:return a(f[0],f[1],f[2],f[3],f[4],f[5],f[6],f[7],f[8]);case 10:return a(f[0],f[1],f[2],f[3],f[4],f[5],f[6],f[7],f[8],f[9]);default:return a.apply(b,f)}}return{invoke:d,instantiate:function(a,b){var c=function(){},e;c.prototype=(F(a)?a[a.length-1]:a).prototype;c=new c;e=d(a,c,b);return L(e)?e:c},get:c,annotate:Hb,has:function(b){return m.hasOwnProperty(b+
|
||||
f)||a.hasOwnProperty(b)}}}var i={},f="Provider",h=[],j=new za,m={$provide:{provider:a(c),factory:a(d),service:a(function(a,b){return d(a,["$injector",function(a){return a.instantiate(b)}])}),value:a(function(a,b){return d(a,S(b))}),constant:a(function(a,b){m[a]=b;l[a]=b}),decorator:function(a,b){var c=k.get(a+f),d=c.$get;c.$get=function(){var a=u.invoke(d,c);return u.invoke(b,null,{$delegate:a})}}}},k=m.$injector=g(m,function(){throw Error("Unknown provider: "+h.join(" <- "));}),l={},u=l.$injector=
|
||||
g(l,function(a){a=k.get(a+f);return u.invoke(a.$get,a)});n(e(b),function(a){u.invoke(a||q)});return u}function Cc(){var b=!0;this.disableAutoScrolling=function(){b=!1};this.$get=["$window","$location","$rootScope",function(a,c,d){function e(a){var b=null;n(a,function(a){!b&&I(a.nodeName)==="a"&&(b=a)});return b}function g(){var b=c.hash(),d;b?(d=i.getElementById(b))?d.scrollIntoView():(d=e(i.getElementsByName(b)))?d.scrollIntoView():b==="top"&&a.scrollTo(0,0):a.scrollTo(0,0)}var i=a.document;b&&d.$watch(function(){return c.hash()},
|
||||
function(){d.$evalAsync(g)});return g}]}function Ib(b){this.register=function(a,c){b.factory(Ia(a)+"Animation",c)};this.$get=["$injector",function(a){return function(b){if(b&&(b=Ia(b)+"Animation",a.has(b)))return a.get(b)}}]}function Dc(b,a,c,d){function e(a){try{a.apply(null,ka.call(arguments,1))}finally{if(o--,o===0)for(;z.length;)try{z.pop()()}catch(b){c.error(b)}}}function g(a,b){(function s(){n(r,function(a){a()});y=b(s,a)})()}function i(){x!=f.url()&&(x=f.url(),n(w,function(a){a(f.url())}))}
|
||||
var f=this,h=a[0],j=b.location,m=b.history,k=b.setTimeout,l=b.clearTimeout,u={};f.isMock=!1;var o=0,z=[];f.$$completeOutstandingRequest=e;f.$$incOutstandingRequestCount=function(){o++};f.notifyWhenNoOutstandingRequests=function(a){n(r,function(a){a()});o===0?a():z.push(a)};var r=[],y;f.addPollFn=function(a){C(y)&&g(100,k);r.push(a);return a};var x=j.href,W=a.find("base");f.url=function(a,b){if(a){if(x!=a)return x=a,d.history?b?m.replaceState(null,"",a):(m.pushState(null,"",a),W.attr("href",W.attr("href"))):
|
||||
b?j.replace(a):j.href=a,f}else return j.href.replace(/%27/g,"'")};var w=[],A=!1;f.onUrlChange=function(a){A||(d.history&&v(b).bind("popstate",i),d.hashchange?v(b).bind("hashchange",i):f.addPollFn(i),A=!0);w.push(a);return a};f.baseHref=function(){var a=W.attr("href");return a?a.replace(/^https?\:\/\/[^\/]*/,""):""};var G={},D="",$=f.baseHref();f.cookies=function(a,b){var d,e,f,j;if(a)if(b===p)h.cookie=escape(a)+"=;path="+$+";expires=Thu, 01 Jan 1970 00:00:00 GMT";else{if(E(b))d=(h.cookie=escape(a)+
|
||||
"="+escape(b)+";path="+$).length+1,d>4096&&c.warn("Cookie '"+a+"' possibly not set or overflowed because it was too large ("+d+" > 4096 bytes)!")}else{if(h.cookie!==D){D=h.cookie;d=D.split("; ");G={};for(f=0;f<d.length;f++)e=d[f],j=e.indexOf("="),j>0&&(a=unescape(e.substring(0,j)),G[a]===p&&(G[a]=unescape(e.substring(j+1))))}return G}};f.defer=function(a,b){var c;o++;c=k(function(){delete u[c];e(a)},b||0);u[c]=!0;return c};f.defer.cancel=function(a){return u[a]?(delete u[a],l(a),e(q),!0):!1}}function Ec(){this.$get=
|
||||
["$window","$log","$sniffer","$document",function(b,a,c,d){return new Dc(b,d,a,c)}]}function Fc(){this.$get=function(){function b(b,d){function e(a){if(a!=k){if(l){if(l==a)l=a.n}else l=a;g(a.n,a.p);g(a,k);k=a;k.n=null}}function g(a,b){if(a!=b){if(a)a.p=b;if(b)b.n=a}}if(b in a)throw Error("cacheId "+b+" taken");var i=0,f=t({},d,{id:b}),h={},j=d&&d.capacity||Number.MAX_VALUE,m={},k=null,l=null;return a[b]={put:function(a,b){var c=m[a]||(m[a]={key:a});e(c);if(!C(b))return a in h||i++,h[a]=b,i>j&&this.remove(l.key),
|
||||
b},get:function(a){var b=m[a];if(b)return e(b),h[a]},remove:function(a){var b=m[a];if(b){if(b==k)k=b.p;if(b==l)l=b.n;g(b.n,b.p);delete m[a];delete h[a];i--}},removeAll:function(){h={};i=0;m={};k=l=null},destroy:function(){m=f=h=null;delete a[b]},info:function(){return t({},f,{size:i})}}}var a={};b.info=function(){var b={};n(a,function(a,e){b[e]=a.info()});return b};b.get=function(b){return a[b]};return b}}function Gc(){this.$get=["$cacheFactory",function(b){return b("templates")}]}function Jb(b){var a=
|
||||
{},c="Directive",d=/^\s*directive\:\s*([\d\w\-_]+)\s+(.*)$/,e=/(([\d\w\-_]+)(?:\:([^;]+))?;?)/,g="Template must have exactly one root element. was: ",i=/^\s*(https?|ftp|mailto|file):/;this.directive=function h(d,e){E(d)?(cb(e,"directive"),a.hasOwnProperty(d)||(a[d]=[],b.factory(d+c,["$injector","$exceptionHandler",function(b,c){var e=[];n(a[d],function(a){try{var g=b.invoke(a);if(H(g))g={compile:S(g)};else if(!g.compile&&g.link)g.compile=S(g.link);g.priority=g.priority||0;g.name=g.name||d;g.require=
|
||||
g.require||g.controller&&g.name;g.restrict=g.restrict||"A";e.push(g)}catch(h){c(h)}});return e}])),a[d].push(e)):n(d,rb(h));return this};this.urlSanitizationWhitelist=function(a){return B(a)?(i=a,this):i};this.$get=["$injector","$interpolate","$exceptionHandler","$http","$templateCache","$parse","$controller","$rootScope","$document",function(b,j,m,k,l,u,o,z,r){function y(a,b,c){a instanceof v||(a=v(a));n(a,function(b,c){b.nodeType==3&&b.nodeValue.match(/\S+/)&&(a[c]=v(b).wrap("<span></span>").parent()[0])});
|
||||
var d=W(a,b,a,c);return function(b,c){cb(b,"scope");for(var e=c?Ba.clone.call(a):a,j=0,g=e.length;j<g;j++){var h=e[j];(h.nodeType==1||h.nodeType==9)&&e.eq(j).data("$scope",b)}x(e,"ng-scope");c&&c(e,b);d&&d(b,e,e);return e}}function x(a,b){try{a.addClass(b)}catch(c){}}function W(a,b,c,d){function e(a,c,d,g){var h,i,k,l,o,m,u,z=[];o=0;for(m=c.length;o<m;o++)z.push(c[o]);u=o=0;for(m=j.length;o<m;u++)i=z[u],c=j[o++],h=j[o++],c?(c.scope?(k=a.$new(L(c.scope)),v(i).data("$scope",k)):k=a,(l=c.transclude)||
|
||||
!g&&b?c(h,k,i,d,function(b){return function(c){var d=a.$new();d.$$transcluded=!0;return b(d,c).bind("$destroy",$a(d,d.$destroy))}}(l||b)):c(h,k,i,p,g)):h&&h(a,i.childNodes,p,g)}for(var j=[],g,h,k,i=0;i<a.length;i++)h=new ma,g=w(a[i],[],h,d),h=(g=g.length?A(g,a[i],h,b,c):null)&&g.terminal||!a[i].childNodes||!a[i].childNodes.length?null:W(a[i].childNodes,g?g.transclude:b),j.push(g),j.push(h),k=k||g||h;return k?e:null}function w(a,b,c,j){var g=c.$attr,h;switch(a.nodeType){case 1:G(b,da(hb(a).toLowerCase()),
|
||||
"E",j);var i,k,l;h=a.attributes;for(var o=0,m=h&&h.length;o<m;o++)if(i=h[o],i.specified)k=i.name,l=da(k),Y.test(l)&&(k=l.substr(6).toLowerCase()),l=da(k.toLowerCase()),g[l]=k,c[l]=i=U(Z&&k=="href"?decodeURIComponent(a.getAttribute(k,2)):i.value),Fb(a,l)&&(c[l]=!0),s(a,b,i,l),G(b,l,"A",j);a=a.className;if(E(a)&&a!=="")for(;h=e.exec(a);)l=da(h[2]),G(b,l,"C",j)&&(c[l]=U(h[3])),a=a.substr(h.index+h[0].length);break;case 3:P(b,a.nodeValue);break;case 8:try{if(h=d.exec(a.nodeValue))l=da(h[1]),G(b,l,"M",
|
||||
j)&&(c[l]=U(h[2]))}catch(u){}}b.sort(K);return b}function A(a,b,c,d,e){function h(a,b){if(a)a.require=s.require,z.push(a);if(b)b.require=s.require,ea.push(b)}function i(a,b){var c,d="data",e=!1;if(E(a)){for(;(c=a.charAt(0))=="^"||c=="?";)a=a.substr(1),c=="^"&&(d="inheritedData"),e=e||c=="?";c=b[d]("$"+a+"Controller");if(!c&&!e)throw Error("No controller: "+a);}else F(a)&&(c=[],n(a,function(a){c.push(i(a,b))}));return c}function k(a,d,e,g,h){var l,w,r,D,x;l=b===e?c:pc(c,new ma(v(e),c.$attr));w=l.$$element;
|
||||
if(K){var y=/^\s*([@=&])(\??)\s*(\w*)\s*$/,s=d.$parent||d;n(K.scope,function(a,b){var c=a.match(y)||[],e=c[3]||b,g=c[2]=="?",c=c[1],h,k,i;d.$$isolateBindings[b]=c+e;switch(c){case "@":l.$observe(e,function(a){d[b]=a});l.$$observers[e].$$scope=s;l[e]&&(d[b]=j(l[e])(s));break;case "=":if(g&&!l[e])break;k=u(l[e]);i=k.assign||function(){h=d[b]=k(s);throw Error(Kb+l[e]+" (directive: "+K.name+")");};h=d[b]=k(s);d.$watch(function(){var a=k(s);a!==d[b]&&(a!==h?h=d[b]=a:i(s,a=h=d[b]));return a});break;case "&":k=
|
||||
u(l[e]);d[b]=function(a){return k(s,a)};break;default:throw Error("Invalid isolate scope definition for directive "+K.name+": "+a);}})}q&&n(q,function(a){var b={$scope:d,$element:w,$attrs:l,$transclude:h};x=a.controller;x=="@"&&(x=l[a.name]);w.data("$"+a.name+"Controller",o(x,b))});g=0;for(r=z.length;g<r;g++)try{D=z[g],D(d,w,l,D.require&&i(D.require,w))}catch(Hc){m(Hc,va(w))}a&&a(d,e.childNodes,p,h);g=0;for(r=ea.length;g<r;g++)try{D=ea[g],D(d,w,l,D.require&&i(D.require,w))}catch(J){m(J,va(w))}}for(var l=
|
||||
-Number.MAX_VALUE,z=[],ea=[],r=null,K=null,W=null,J=c.$$element=v(b),s,A,Y,G,P=d,q,na,t,B=0,C=a.length;B<C;B++){s=a[B];Y=p;if(l>s.priority)break;if(t=s.scope)O("isolated scope",K,s,J),L(t)&&(x(J,"ng-isolate-scope"),K=s),x(J,"ng-scope"),r=r||s;A=s.name;if(t=s.controller)q=q||{},O("'"+A+"' controller",q[A],s,J),q[A]=s;if(t=s.transclude)O("transclusion",G,s,J),G=s,l=s.priority,t=="element"?(Y=v(b),J=c.$$element=v(T.createComment(" "+A+": "+c[A]+" ")),b=J[0],ja(e,v(Y[0]),b),P=y(Y,d,l)):(Y=v(fb(b)).contents(),
|
||||
J.html(""),P=y(Y,d));if(s.template)if(O("template",W,s,J),W=s,t=H(s.template)?s.template(J,c):s.template,t=Lb(t),s.replace){Y=v("<div>"+U(t)+"</div>").contents();b=Y[0];if(Y.length!=1||b.nodeType!==1)throw Error(g+t);ja(e,J,b);A={$attr:{}};a=a.concat(w(b,a.splice(B+1,a.length-(B+1)),A));D(c,A);C=a.length}else J.html(t);if(s.templateUrl)O("template",W,s,J),W=s,k=$(a.splice(B,a.length-B),k,J,c,e,s.replace,P),C=a.length;else if(s.compile)try{na=s.compile(J,c,P),H(na)?h(null,na):na&&h(na.pre,na.post)}catch(I){m(I,
|
||||
va(J))}if(s.terminal)k.terminal=!0,l=Math.max(l,s.priority)}k.scope=r&&r.scope;k.transclude=G&&P;return k}function G(d,e,j,g){var l=!1;if(a.hasOwnProperty(e))for(var k,e=b.get(e+c),i=0,o=e.length;i<o;i++)try{if(k=e[i],(g===p||g>k.priority)&&k.restrict.indexOf(j)!=-1)d.push(k),l=!0}catch(u){m(u)}return l}function D(a,b){var c=b.$attr,d=a.$attr,e=a.$$element;n(a,function(d,e){e.charAt(0)!="$"&&(b[e]&&(d+=(e==="style"?";":" ")+b[e]),a.$set(e,d,!0,c[e]))});n(b,function(b,j){j=="class"?(x(e,b),a["class"]=
|
||||
(a["class"]?a["class"]+" ":"")+b):j=="style"?e.attr("style",e.attr("style")+";"+b):j.charAt(0)!="$"&&!a.hasOwnProperty(j)&&(a[j]=b,d[j]=c[j])})}function $(a,b,c,d,e,j,h){var i=[],o,m,u=c[0],z=a.shift(),r=t({},z,{controller:null,templateUrl:null,transclude:null,scope:null}),z=H(z.templateUrl)?z.templateUrl(c,d):z.templateUrl;c.html("");k.get(z,{cache:l}).success(function(l){var k,z,l=Lb(l);if(j){z=v("<div>"+U(l)+"</div>").contents();k=z[0];if(z.length!=1||k.nodeType!==1)throw Error(g+l);l={$attr:{}};
|
||||
ja(e,c,k);w(k,a,l);D(d,l)}else k=u,c.html(l);a.unshift(r);o=A(a,k,d,h);for(m=W(c[0].childNodes,h);i.length;){var ea=i.shift(),l=i.shift();z=i.shift();var x=i.shift(),y=k;l!==u&&(y=fb(k),ja(z,v(l),y));o(function(){b(m,ea,y,e,x)},ea,y,e,x)}i=null}).error(function(a,b,c,d){throw Error("Failed to load template: "+d.url);});return function(a,c,d,e,j){i?(i.push(c),i.push(d),i.push(e),i.push(j)):o(function(){b(m,c,d,e,j)},c,d,e,j)}}function K(a,b){return b.priority-a.priority}function O(a,b,c,d){if(b)throw Error("Multiple directives ["+
|
||||
b.name+", "+c.name+"] asking for "+a+" on: "+va(d));}function P(a,b){var c=j(b,!0);c&&a.push({priority:0,compile:S(function(a,b){var d=b.parent(),e=d.data("$binding")||[];e.push(c);x(d.data("$binding",e),"ng-binding");a.$watch(c,function(a){b[0].nodeValue=a})})})}function s(a,b,c,d){var e=j(c,!0);e&&b.push({priority:100,compile:S(function(a,b,c){b=c.$$observers||(c.$$observers={});if(e=j(c[d],!0))c[d]=e(a),(b[d]||(b[d]=[])).$$inter=!0,(c.$$observers&&c.$$observers[d].$$scope||a).$watch(e,function(a){c.$set(d,
|
||||
a)})})})}function ja(a,b,c){var d=b[0],e=d.parentNode,j,g;if(a){j=0;for(g=a.length;j<g;j++)if(a[j]==d){a[j]=c;break}}e&&e.replaceChild(c,d);c[v.expando]=d[v.expando];b[0]=c}var ma=function(a,b){this.$$element=a;this.$attr=b||{}};ma.prototype={$normalize:da,$set:function(a,b,c,d){var e=Fb(this.$$element[0],a),j=this.$$observers;e&&(this.$$element.prop(a,b),d=e);this[a]=b;d?this.$attr[a]=d:(d=this.$attr[a])||(this.$attr[a]=d=bb(a,"-"));if(hb(this.$$element[0])==="A"&&a==="href")q.setAttribute("href",
|
||||
b),e=q.href,e.match(i)||(this[a]=b="unsafe:"+e);c!==!1&&(b===null||b===p?this.$$element.removeAttr(d):this.$$element.attr(d,b));j&&n(j[a],function(a){try{a(b)}catch(c){m(c)}})},$observe:function(a,b){var c=this,d=c.$$observers||(c.$$observers={}),e=d[a]||(d[a]=[]);e.push(b);z.$evalAsync(function(){e.$$inter||b(c[a])});return b}};var q=r[0].createElement("a"),ea=j.startSymbol(),J=j.endSymbol(),Lb=ea=="{{"||J=="}}"?qa:function(a){return a.replace(/\{\{/g,ea).replace(/}}/g,J)},Y=/^ngAttr[A-Z]/;return y}]}
|
||||
function da(b){return Ia(b.replace(Ic,""))}function Jc(){var b={},a=/^(\S+)(\s+as\s+(\w+))?$/;this.register=function(a,d){L(a)?t(b,a):b[a]=d};this.$get=["$injector","$window",function(c,d){return function(e,g){var i,f;E(e)&&(f=e.match(a),i=f[1],f=f[3],e=b.hasOwnProperty(i)?b[i]:ib(g.$scope,i,!0)||ib(d,i,!0),xa(e,i,!0));i=c.instantiate(e,g);if(f){if(typeof g.$scope!=="object")throw Error('Can not export controller as "'+f+'". No scope object provided!');g.$scope[f]=i}return i}}]}function Kc(){this.$get=
|
||||
["$window",function(b){return v(b.document)}]}function Lc(){this.$get=["$log",function(b){return function(a,c){b.error.apply(b,arguments)}}]}function Mc(){var b="{{",a="}}";this.startSymbol=function(a){return a?(b=a,this):b};this.endSymbol=function(b){return b?(a=b,this):a};this.$get=["$parse","$exceptionHandler",function(c,d){function e(e,h){for(var j,m,k=0,l=[],u=e.length,o=!1,z=[];k<u;)(j=e.indexOf(b,k))!=-1&&(m=e.indexOf(a,j+g))!=-1?(k!=j&&l.push(e.substring(k,j)),l.push(k=c(o=e.substring(j+g,
|
||||
m))),k.exp=o,k=m+i,o=!0):(k!=u&&l.push(e.substring(k)),k=u);if(!(u=l.length))l.push(""),u=1;if(!h||o)return z.length=u,k=function(a){try{for(var b=0,c=u,j;b<c;b++){if(typeof(j=l[b])=="function")j=j(a),j==null||j==p?j="":typeof j!="string"&&(j=ha(j));z[b]=j}return z.join("")}catch(g){d(Error("Error while interpolating: "+e+"\n"+g.toString()))}},k.exp=e,k.parts=l,k}var g=b.length,i=a.length;e.startSymbol=function(){return b};e.endSymbol=function(){return a};return e}]}function Mb(b){for(var b=b.split("/"),
|
||||
a=b.length;a--;)b[a]=ab(b[a]);return b.join("/")}function Nb(b,a){var c=jb.exec(b);a.$$protocol=c[1];a.$$host=c[3];a.$$port=N(c[5])||Oa[c[1]]||null}function Ob(b,a){var c=Pb.exec(b);a.$$path=decodeURIComponent(c[1]);a.$$search=vb(c[3]);a.$$hash=decodeURIComponent(c[5]||"");if(a.$$path&&a.$$path.charAt(0)!="/")a.$$path="/"+a.$$path}function fa(b,a,c){return a.indexOf(b)==0?a.substr(b.length):c}function Ca(b){var a=b.indexOf("#");return a==-1?b:b.substr(0,a)}function kb(b){return b.substr(0,Ca(b).lastIndexOf("/")+
|
||||
1)}function Qb(b,a){var a=a||"",c=kb(b);this.$$parse=function(a){var b={};Nb(a,b);var g=fa(c,a);if(!E(g))throw Error('Invalid url "'+a+'", missing path prefix "'+c+'".');Ob(g,b);t(this,b);if(!this.$$path)this.$$path="/";this.$$compose()};this.$$compose=function(){var a=wb(this.$$search),b=this.$$hash?"#"+ab(this.$$hash):"";this.$$url=Mb(this.$$path)+(a?"?"+a:"")+b;this.$$absUrl=c+this.$$url.substr(1)};this.$$rewrite=function(d){var e;if((e=fa(b,d))!==p)return d=e,(e=fa(a,e))!==p?c+(fa("/",e)||e):
|
||||
b+d;else if((e=fa(c,d))!==p)return c+e;else if(c==d+"/")return c}}function lb(b,a){var c=kb(b);this.$$parse=function(d){Nb(d,this);var e=fa(b,d)||fa(c,d);if(!E(e))throw Error('Invalid url "'+d+'", does not start with "'+b+'".');e=e.charAt(0)=="#"?fa(a,e):e;if(!E(e))throw Error('Invalid url "'+d+'", missing hash prefix "'+a+'".');Ob(e,this);this.$$compose()};this.$$compose=function(){var c=wb(this.$$search),e=this.$$hash?"#"+ab(this.$$hash):"";this.$$url=Mb(this.$$path)+(c?"?"+c:"")+e;this.$$absUrl=
|
||||
b+(this.$$url?a+this.$$url:"")};this.$$rewrite=function(a){if(Ca(b)==Ca(a))return a}}function Rb(b,a){lb.apply(this,arguments);var c=kb(b);this.$$rewrite=function(d){var e;if(b==Ca(d))return d;else if(e=fa(c,d))return b+a+e;else if(c===d+"/")return c}}function Pa(b){return function(){return this[b]}}function Sb(b,a){return function(c){if(C(c))return this[b];this[b]=a(c);this.$$compose();return this}}function Nc(){var b="",a=!1;this.hashPrefix=function(a){return B(a)?(b=a,this):b};this.html5Mode=function(b){return B(b)?
|
||||
(a=b,this):a};this.$get=["$rootScope","$browser","$sniffer","$rootElement",function(c,d,e,g){function i(a){c.$broadcast("$locationChangeSuccess",f.absUrl(),a)}var f,h=d.baseHref(),j=d.url();a?(h=h?j.substring(0,j.indexOf("/",j.indexOf("//")+2))+h:j,e=e.history?Qb:Rb):(h=Ca(j),e=lb);f=new e(h,"#"+b);f.$$parse(f.$$rewrite(j));g.bind("click",function(a){if(!a.ctrlKey&&!(a.metaKey||a.which==2)){for(var b=v(a.target);I(b[0].nodeName)!=="a";)if(b[0]===g[0]||!(b=b.parent())[0])return;var e=b.prop("href"),
|
||||
j=f.$$rewrite(e);e&&!b.attr("target")&&j&&!a.isDefaultPrevented()&&(a.preventDefault(),j!=d.url()&&(f.$$parse(j),c.$apply(),M.angular["ff-684208-preventDefault"]=!0))}});f.absUrl()!=j&&d.url(f.absUrl(),!0);d.onUrlChange(function(a){f.absUrl()!=a&&(c.$broadcast("$locationChangeStart",a,f.absUrl()).defaultPrevented?d.url(f.absUrl()):(c.$evalAsync(function(){var b=f.absUrl();f.$$parse(a);i(b)}),c.$$phase||c.$digest()))});var m=0;c.$watch(function(){var a=d.url(),b=f.$$replace;if(!m||a!=f.absUrl())m++,
|
||||
c.$evalAsync(function(){c.$broadcast("$locationChangeStart",f.absUrl(),a).defaultPrevented?f.$$parse(a):(d.url(f.absUrl(),b),i(a))});f.$$replace=!1;return m});return f}]}function Oc(){var b=!0,a=this;this.debugEnabled=function(a){return B(a)?(b=a,this):b};this.$get=["$window",function(c){function d(a){a instanceof Error&&(a.stack?a=a.message&&a.stack.indexOf(a.message)===-1?"Error: "+a.message+"\n"+a.stack:a.stack:a.sourceURL&&(a=a.message+"\n"+a.sourceURL+":"+a.line));return a}function e(a){var b=
|
||||
c.console||{},e=b[a]||b.log||q;return e.apply?function(){var a=[];n(arguments,function(b){a.push(d(b))});return e.apply(b,a)}:function(a,b){e(a,b)}}return{log:e("log"),warn:e("warn"),info:e("info"),error:e("error"),debug:function(){var c=e("debug");return function(){b&&c.apply(a,arguments)}}()}}]}function Pc(b,a){function c(a){return a.indexOf(r)!=-1}function d(a){a=a||1;return o+a<b.length?b.charAt(o+a):!1}function e(a){return"0"<=a&&a<="9"}function g(a){return a==" "||a=="\r"||a=="\t"||a=="\n"||
|
||||
a=="\u000b"||a=="\u00a0"}function i(a){return"a"<=a&&a<="z"||"A"<=a&&a<="Z"||"_"==a||a=="$"}function f(a){return a=="-"||a=="+"||e(a)}function h(a,c,d){d=d||o;throw Error("Lexer Error: "+a+" at column"+(B(c)?"s "+c+"-"+o+" ["+b.substring(c,d)+"]":" "+d)+" in expression ["+b+"].");}function j(){for(var a="",c=o;o<b.length;){var j=I(b.charAt(o));if(j=="."||e(j))a+=j;else{var g=d();if(j=="e"&&f(g))a+=j;else if(f(j)&&g&&e(g)&&a.charAt(a.length-1)=="e")a+=j;else if(f(j)&&(!g||!e(g))&&a.charAt(a.length-
|
||||
1)=="e")h("Invalid exponent");else break}o++}a*=1;l.push({index:c,text:a,json:!0,fn:function(){return a}})}function m(){for(var c="",d=o,f,j,h,k;o<b.length;){k=b.charAt(o);if(k=="."||i(k)||e(k))k=="."&&(f=o),c+=k;else break;o++}if(f)for(j=o;j<b.length;){k=b.charAt(j);if(k=="("){h=c.substr(f-d+1);c=c.substr(0,f-d);o=j;break}if(g(k))j++;else break}d={index:d,text:c};if(Da.hasOwnProperty(c))d.fn=d.json=Da[c];else{var m=Tb(c,a);d.fn=t(function(a,b){return m(a,b)},{assign:function(a,b){return Ub(a,c,b)}})}l.push(d);
|
||||
h&&(l.push({index:f,text:".",json:!1}),l.push({index:f+1,text:h,json:!1}))}function k(a){var c=o;o++;for(var d="",e=a,f=!1;o<b.length;){var j=b.charAt(o);e+=j;if(f)j=="u"?(j=b.substring(o+1,o+5),j.match(/[\da-f]{4}/i)||h("Invalid unicode escape [\\u"+j+"]"),o+=4,d+=String.fromCharCode(parseInt(j,16))):(f=Qc[j],d+=f?f:j),f=!1;else if(j=="\\")f=!0;else if(j==a){o++;l.push({index:c,text:e,string:d,json:!0,fn:function(){return d}});return}else d+=j;o++}h("Unterminated quote",c)}for(var l=[],u,o=0,z=[],
|
||||
r,y=":";o<b.length;){r=b.charAt(o);if(c("\"'"))k(r);else if(e(r)||c(".")&&e(d()))j();else if(i(r)){if(m(),"{,".indexOf(y)!=-1&&z[0]=="{"&&(u=l[l.length-1]))u.json=u.text.indexOf(".")==-1}else if(c("(){}[].,;:?"))l.push({index:o,text:r,json:":[,".indexOf(y)!=-1&&c("{[")||c("}]:,")}),c("{[")&&z.unshift(r),c("}]")&&z.shift(),o++;else if(g(r)){o++;continue}else{var x=r+d(),n=x+d(2),w=Da[r],A=Da[x],G=Da[n];G?(l.push({index:o,text:n,fn:G}),o+=3):A?(l.push({index:o,text:x,fn:A}),o+=2):w?(l.push({index:o,
|
||||
text:r,fn:w,json:"[,:".indexOf(y)!=-1&&c("+-")}),o+=1):h("Unexpected next character ",o,o+1)}y=r}return l}function Rc(b,a,c,d){function e(a,c){throw Error("Syntax Error: Token '"+c.text+"' "+a+" at column "+(c.index+1)+" of the expression ["+b+"] starting at ["+b.substring(c.index)+"].");}function g(){if(O.length===0)throw Error("Unexpected end of expression: "+b);return O[0]}function i(a,b,c,d){if(O.length>0){var e=O[0],f=e.text;if(f==a||f==b||f==c||f==d||!a&&!b&&!c&&!d)return e}return!1}function f(b,
|
||||
c,d,f){return(b=i(b,c,d,f))?(a&&!b.json&&e("is not valid json",b),O.shift(),b):!1}function h(a){f(a)||e("is unexpected, expecting ["+a+"]",i())}function j(a,b){return t(function(c,d){return a(c,d,b)},{constant:b.constant})}function m(a,b,c){return t(function(d,e){return a(d,e)?b(d,e):c(d,e)},{constant:a.constant&&b.constant&&c.constant})}function k(a,b,c){return t(function(d,e){return b(d,e,a,c)},{constant:a.constant&&c.constant})}function l(){for(var a=[];;)if(O.length>0&&!i("}",")",";","]")&&a.push(v()),
|
||||
!f(";"))return a.length==1?a[0]:function(b,c){for(var d,e=0;e<a.length;e++){var f=a[e];f&&(d=f(b,c))}return d}}function u(){for(var a=f(),b=c(a.text),d=[];;)if(a=f(":"))d.push(P());else{var e=function(a,c,e){for(var e=[e],f=0;f<d.length;f++)e.push(d[f](a,c));return b.apply(a,e)};return function(){return e}}}function o(){var a=z(),b,c;if(f("?"))if(b=o(),c=f(":"))return m(a,b,o());else e("expected :",c);else return a}function z(){for(var a=r(),b;;)if(b=f("||"))a=k(a,b.fn,r());else return a}function r(){var a=
|
||||
y(),b;if(b=f("&&"))a=k(a,b.fn,r());return a}function y(){var a=x(),b;if(b=f("==","!=","===","!=="))a=k(a,b.fn,y());return a}function x(){var a;a=n();for(var b;b=f("+","-");)a=k(a,b.fn,n());if(b=f("<",">","<=",">="))a=k(a,b.fn,x());return a}function n(){for(var a=w(),b;b=f("*","/","%");)a=k(a,b.fn,w());return a}function w(){var a;return f("+")?A():(a=f("-"))?k($,a.fn,w()):(a=f("!"))?j(a.fn,w()):A()}function A(){var a;if(f("("))a=v(),h(")");else if(f("["))a=G();else if(f("{"))a=D();else{var b=f();(a=
|
||||
b.fn)||e("not a primary expression",b);if(b.json)a.constant=a.literal=!0}for(var c;b=f("(","[",".");)b.text==="("?(a=s(a,c),c=null):b.text==="["?(c=a,a=ma(a)):b.text==="."?(c=a,a=ja(a)):e("IMPOSSIBLE");return a}function G(){var a=[],b=!0;if(g().text!="]"){do{var c=P();a.push(c);c.constant||(b=!1)}while(f(","))}h("]");return t(function(b,c){for(var d=[],e=0;e<a.length;e++)d.push(a[e](b,c));return d},{literal:!0,constant:b})}function D(){var a=[],b=!0;if(g().text!="}"){do{var c=f(),c=c.string||c.text;
|
||||
h(":");var d=P();a.push({key:c,value:d});d.constant||(b=!1)}while(f(","))}h("}");return t(function(b,c){for(var d={},e=0;e<a.length;e++){var f=a[e];d[f.key]=f.value(b,c)}return d},{literal:!0,constant:b})}var $=S(0),K,O=Pc(b,d),P=function(){var a=o(),c,d;return(d=f("="))?(a.assign||e("implies assignment but ["+b.substring(0,d.index)+"] can not be assigned to",d),c=o(),function(b,d){return a.assign(b,c(b,d),d)}):a},s=function(a,b){var c=[];if(g().text!=")"){do c.push(P());while(f(","))}h(")");return function(d,
|
||||
e){for(var f=[],j=b?b(d,e):d,g=0;g<c.length;g++)f.push(c[g](d,e));g=a(d,e,j)||q;return g.apply?g.apply(j,f):g(f[0],f[1],f[2],f[3],f[4])}},ja=function(a){var b=f().text,c=Tb(b,d);return t(function(b,d,e){return c(e||a(b,d),d)},{assign:function(c,d,e){return Ub(a(c,e),b,d)}})},ma=function(a){var b=P();h("]");return t(function(c,d){var e=a(c,d),f=b(c,d),j;if(!e)return p;if((e=e[f])&&e.then){j=e;if(!("$$v"in e))j.$$v=p,j.then(function(a){j.$$v=a});e=e.$$v}return e},{assign:function(c,d,e){return a(c,
|
||||
e)[b(c,e)]=d}})},v=function(){for(var a=P(),b;;)if(b=f("|"))a=k(a,b.fn,u());else return a};a?(P=z,s=ja=ma=v=function(){e("is not valid json",{text:b,index:0})},K=A()):K=l();O.length!==0&&e("is an unexpected token",O[0]);K.literal=!!K.literal;K.constant=!!K.constant;return K}function Ub(b,a,c){for(var a=a.split("."),d=0;a.length>1;d++){var e=a.shift(),g=b[e];g||(g={},b[e]=g);b=g}return b[a.shift()]=c}function ib(b,a,c){if(!a)return b;for(var a=a.split("."),d,e=b,g=a.length,i=0;i<g;i++)d=a[i],b&&(b=
|
||||
(e=b)[d]);return!c&&H(b)?$a(e,b):b}function Vb(b,a,c,d,e){return function(g,i){var f=i&&i.hasOwnProperty(b)?i:g,h;if(f===null||f===p)return f;if((f=f[b])&&f.then){if(!("$$v"in f))h=f,h.$$v=p,h.then(function(a){h.$$v=a});f=f.$$v}if(!a||f===null||f===p)return f;if((f=f[a])&&f.then){if(!("$$v"in f))h=f,h.$$v=p,h.then(function(a){h.$$v=a});f=f.$$v}if(!c||f===null||f===p)return f;if((f=f[c])&&f.then){if(!("$$v"in f))h=f,h.$$v=p,h.then(function(a){h.$$v=a});f=f.$$v}if(!d||f===null||f===p)return f;if((f=
|
||||
f[d])&&f.then){if(!("$$v"in f))h=f,h.$$v=p,h.then(function(a){h.$$v=a});f=f.$$v}if(!e||f===null||f===p)return f;if((f=f[e])&&f.then){if(!("$$v"in f))h=f,h.$$v=p,h.then(function(a){h.$$v=a});f=f.$$v}return f}}function Tb(b,a){if(mb.hasOwnProperty(b))return mb[b];var c=b.split("."),d=c.length,e;if(a)e=d<6?Vb(c[0],c[1],c[2],c[3],c[4]):function(a,b){var e=0,j;do j=Vb(c[e++],c[e++],c[e++],c[e++],c[e++])(a,b),b=p,a=j;while(e<d);return j};else{var g="var l, fn, p;\n";n(c,function(a,b){g+="if(s === null || s === undefined) return s;\nl=s;\ns="+
|
||||
(b?"s":'((k&&k.hasOwnProperty("'+a+'"))?k:s)')+'["'+a+'"];\nif (s && s.then) {\n if (!("$$v" in s)) {\n p=s;\n p.$$v = undefined;\n p.then(function(v) {p.$$v=v;});\n}\n s=s.$$v\n}\n'});g+="return s;";e=Function("s","k",g);e.toString=function(){return g}}return mb[b]=e}function Sc(){var b={};this.$get=["$filter","$sniffer",function(a,c){return function(d){switch(typeof d){case "string":return b.hasOwnProperty(d)?b[d]:b[d]=Rc(d,!1,a,c.csp);case "function":return d;default:return q}}}]}function Tc(){this.$get=
|
||||
["$rootScope","$exceptionHandler",function(b,a){return Uc(function(a){b.$evalAsync(a)},a)}]}function Uc(b,a){function c(a){return a}function d(a){return i(a)}var e=function(){var f=[],h,j;return j={resolve:function(a){if(f){var c=f;f=p;h=g(a);c.length&&b(function(){for(var a,b=0,d=c.length;b<d;b++)a=c[b],h.then(a[0],a[1])})}},reject:function(a){j.resolve(i(a))},promise:{then:function(b,j){var g=e(),i=function(d){try{g.resolve((b||c)(d))}catch(e){a(e),g.reject(e)}},o=function(b){try{g.resolve((j||
|
||||
d)(b))}catch(c){a(c),g.reject(c)}};f?f.push([i,o]):h.then(i,o);return g.promise},always:function(a){function b(a,c){var d=e();c?d.resolve(a):d.reject(a);return d.promise}function d(e,f){var j=null;try{j=(a||c)()}catch(g){return b(g,!1)}return j&&j.then?j.then(function(){return b(e,f)},function(a){return b(a,!1)}):b(e,f)}return this.then(function(a){return d(a,!0)},function(a){return d(a,!1)})}}}},g=function(a){return a&&a.then?a:{then:function(c){var d=e();b(function(){d.resolve(c(a))});return d.promise}}},
|
||||
i=function(a){return{then:function(c,j){var g=e();b(function(){g.resolve((j||d)(a))});return g.promise}}};return{defer:e,reject:i,when:function(f,h,j){var m=e(),k,l=function(b){try{return(h||c)(b)}catch(d){return a(d),i(d)}},u=function(b){try{return(j||d)(b)}catch(c){return a(c),i(c)}};b(function(){g(f).then(function(a){k||(k=!0,m.resolve(g(a).then(l,u)))},function(a){k||(k=!0,m.resolve(u(a)))})});return m.promise},all:function(a){var b=e(),c=0,d=F(a)?[]:{};n(a,function(a,e){c++;g(a).then(function(a){d.hasOwnProperty(e)||
|
||||
(d[e]=a,--c||b.resolve(d))},function(a){d.hasOwnProperty(e)||b.reject(a)})});c===0&&b.resolve(d);return b.promise}}}function Vc(){var b={};this.when=function(a,c){b[a]=t({reloadOnSearch:!0,caseInsensitiveMatch:!1},c);if(a){var d=a[a.length-1]=="/"?a.substr(0,a.length-1):a+"/";b[d]={redirectTo:a}}return this};this.otherwise=function(a){this.when(null,a);return this};this.$get=["$rootScope","$location","$routeParams","$q","$injector","$http","$templateCache",function(a,c,d,e,g,i,f){function h(a,b,c){for(var b=
|
||||
"^"+b.replace(/[-\/\\^$:*+?.()|[\]{}]/g,"\\$&")+"$",d="",e=[],f={},j=/\\([:*])(\w+)/g,g,i=0;(g=j.exec(b))!==null;){d+=b.slice(i,g.index);switch(g[1]){case ":":d+="([^\\/]*)";break;case "*":d+="(.*)"}e.push(g[2]);i=j.lastIndex}d+=b.substr(i);var h=a.match(RegExp(d,c.caseInsensitiveMatch?"i":""));h&&n(e,function(a,b){f[a]=h[b+1]});return h?f:null}function j(){var b=m(),j=u.current;if(b&&j&&b.$$route===j.$$route&&ia(b.pathParams,j.pathParams)&&!b.reloadOnSearch&&!l)j.params=b.params,V(j.params,d),a.$broadcast("$routeUpdate",
|
||||
j);else if(b||j)l=!1,a.$broadcast("$routeChangeStart",b,j),(u.current=b)&&b.redirectTo&&(E(b.redirectTo)?c.path(k(b.redirectTo,b.params)).search(b.params).replace():c.url(b.redirectTo(b.pathParams,c.path(),c.search())).replace()),e.when(b).then(function(){if(b){var a=t({},b.resolve),c;n(a,function(b,c){a[c]=E(b)?g.get(b):g.invoke(b)});if(B(c=b.template))H(c)&&(c=c(b.params));else if(B(c=b.templateUrl))if(H(c)&&(c=c(b.params)),B(c))b.loadedTemplateUrl=c,c=i.get(c,{cache:f}).then(function(a){return a.data});
|
||||
B(c)&&(a.$template=c);return e.all(a)}}).then(function(c){if(b==u.current){if(b)b.locals=c,V(b.params,d);a.$broadcast("$routeChangeSuccess",b,j)}},function(c){b==u.current&&a.$broadcast("$routeChangeError",b,j,c)})}function m(){var a,d;n(b,function(b,e){if(!d&&(a=h(c.path(),e,b)))d=tb(b,{params:t({},c.search(),a),pathParams:a}),d.$$route=b});return d||b[null]&&tb(b[null],{params:{},pathParams:{}})}function k(a,b){var c=[];n((a||"").split(":"),function(a,d){if(d==0)c.push(a);else{var e=a.match(/(\w+)(.*)/),
|
||||
f=e[1];c.push(b[f]);c.push(e[2]||"");delete b[f]}});return c.join("")}var l=!1,u={routes:b,reload:function(){l=!0;a.$evalAsync(j)}};a.$on("$locationChangeSuccess",j);return u}]}function Wc(){this.$get=S({})}function Xc(){var b=10;this.digestTtl=function(a){arguments.length&&(b=a);return b};this.$get=["$injector","$exceptionHandler","$parse",function(a,c,d){function e(){this.$id=Fa();this.$$phase=this.$parent=this.$$watchers=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=null;
|
||||
this["this"]=this.$root=this;this.$$destroyed=!1;this.$$asyncQueue=[];this.$$listeners={};this.$$isolateBindings={}}function g(a){if(h.$$phase)throw Error(h.$$phase+" already in progress");h.$$phase=a}function i(a,b){var c=d(a);xa(c,b);return c}function f(){}e.prototype={$new:function(a){if(H(a))throw Error("API-CHANGE: Use $controller to instantiate controllers.");a?(a=new e,a.$root=this.$root):(a=function(){},a.prototype=this,a=new a,a.$id=Fa());a["this"]=a;a.$$listeners={};a.$parent=this;a.$$watchers=
|
||||
a.$$nextSibling=a.$$childHead=a.$$childTail=null;a.$$prevSibling=this.$$childTail;this.$$childHead?this.$$childTail=this.$$childTail.$$nextSibling=a:this.$$childHead=this.$$childTail=a;return a},$watch:function(a,b,c){var d=i(a,"watch"),e=this.$$watchers,g={fn:b,last:f,get:d,exp:a,eq:!!c};if(!H(b)){var h=i(b||q,"listener");g.fn=function(a,b,c){h(c)}}if(typeof a=="string"&&d.constant){var r=g.fn;g.fn=function(a,b,c){r.call(this,a,b,c);ta(e,g)}}if(!e)e=this.$$watchers=[];e.unshift(g);return function(){ta(e,
|
||||
g)}},$watchCollection:function(a,b){var c=this,e,f,g=0,i=d(a),h=[],n={},x=0;return this.$watch(function(){f=i(c);var a,b;if(L(f))if(Xa(f)){if(e!==h)e=h,x=e.length=0,g++;a=f.length;if(x!==a)g++,e.length=x=a;for(b=0;b<a;b++)e[b]!==f[b]&&(g++,e[b]=f[b])}else{e!==n&&(e=n={},x=0,g++);a=0;for(b in f)f.hasOwnProperty(b)&&(a++,e.hasOwnProperty(b)?e[b]!==f[b]&&(g++,e[b]=f[b]):(x++,e[b]=f[b],g++));if(x>a)for(b in g++,e)e.hasOwnProperty(b)&&!f.hasOwnProperty(b)&&(x--,delete e[b])}else e!==f&&(e=f,g++);return g},
|
||||
function(){b(f,e,c)})},$digest:function(){var a,d,e,i,u=this.$$asyncQueue,o,z,r=b,n,x=[],p,w;g("$digest");do{z=!1;for(n=this;u.length;)try{n.$eval(u.shift())}catch(A){c(A)}do{if(i=n.$$watchers)for(o=i.length;o--;)try{if(a=i[o],(d=a.get(n))!==(e=a.last)&&!(a.eq?ia(d,e):typeof d=="number"&&typeof e=="number"&&isNaN(d)&&isNaN(e)))z=!0,a.last=a.eq?V(d):d,a.fn(d,e===f?d:e,n),r<5&&(p=4-r,x[p]||(x[p]=[]),w=H(a.exp)?"fn: "+(a.exp.name||a.exp.toString()):a.exp,w+="; newVal: "+ha(d)+"; oldVal: "+ha(e),x[p].push(w))}catch(G){c(G)}if(!(i=
|
||||
n.$$childHead||n!==this&&n.$$nextSibling))for(;n!==this&&!(i=n.$$nextSibling);)n=n.$parent}while(n=i);if(z&&!r--)throw h.$$phase=null,Error(b+" $digest() iterations reached. Aborting!\nWatchers fired in the last 5 iterations: "+ha(x));}while(z||u.length);h.$$phase=null},$destroy:function(){if(!(h==this||this.$$destroyed)){var a=this.$parent;this.$broadcast("$destroy");this.$$destroyed=!0;if(a.$$childHead==this)a.$$childHead=this.$$nextSibling;if(a.$$childTail==this)a.$$childTail=this.$$prevSibling;
|
||||
if(this.$$prevSibling)this.$$prevSibling.$$nextSibling=this.$$nextSibling;if(this.$$nextSibling)this.$$nextSibling.$$prevSibling=this.$$prevSibling;this.$parent=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=null}},$eval:function(a,b){return d(a)(this,b)},$evalAsync:function(a){this.$$asyncQueue.push(a)},$apply:function(a){try{return g("$apply"),this.$eval(a)}catch(b){c(b)}finally{h.$$phase=null;try{h.$digest()}catch(d){throw c(d),d;}}},$on:function(a,b){var c=this.$$listeners[a];
|
||||
c||(this.$$listeners[a]=c=[]);c.push(b);return function(){c[Ga(c,b)]=null}},$emit:function(a,b){var d=[],e,f=this,g=!1,i={name:a,targetScope:f,stopPropagation:function(){g=!0},preventDefault:function(){i.defaultPrevented=!0},defaultPrevented:!1},h=[i].concat(ka.call(arguments,1)),n,x;do{e=f.$$listeners[a]||d;i.currentScope=f;n=0;for(x=e.length;n<x;n++)if(e[n])try{if(e[n].apply(null,h),g)return i}catch(p){c(p)}else e.splice(n,1),n--,x--;f=f.$parent}while(f);return i},$broadcast:function(a,b){var d=
|
||||
this,e=this,f={name:a,targetScope:this,preventDefault:function(){f.defaultPrevented=!0},defaultPrevented:!1},g=[f].concat(ka.call(arguments,1)),i,h;do{d=e;f.currentScope=d;e=d.$$listeners[a]||[];i=0;for(h=e.length;i<h;i++)if(e[i])try{e[i].apply(null,g)}catch(n){c(n)}else e.splice(i,1),i--,h--;if(!(e=d.$$childHead||d!==this&&d.$$nextSibling))for(;d!==this&&!(e=d.$$nextSibling);)d=d.$parent}while(d=e);return f}};var h=new e;return h}]}function Yc(){this.$get=["$window","$document",function(b,a){var c=
|
||||
{},d=N((/android (\d+)/.exec(I((b.navigator||{}).userAgent))||[])[1]),e=a[0]||{},g,i=/^(Moz|webkit|O|ms)(?=[A-Z])/,f=e.body&&e.body.style,h=!1,j=!1;if(f){for(var m in f)if(h=i.exec(m)){g=h[0];g=g.substr(0,1).toUpperCase()+g.substr(1);break}h=!!("transition"in f||g+"Transition"in f);j=!!("animation"in f||g+"Animation"in f)}return{history:!(!b.history||!b.history.pushState||d<4),hashchange:"onhashchange"in b&&(!e.documentMode||e.documentMode>7),hasEvent:function(a){if(a=="input"&&Z==9)return!1;if(C(c[a])){var b=
|
||||
e.createElement("div");c[a]="on"+a in b}return c[a]},csp:e.securityPolicy?e.securityPolicy.isActive:!1,vendorPrefix:g,transitions:h,animations:j}}]}function Zc(){this.$get=S(M)}function Wb(b){var a={},c,d,e;if(!b)return a;n(b.split("\n"),function(b){e=b.indexOf(":");c=I(U(b.substr(0,e)));d=U(b.substr(e+1));c&&(a[c]?a[c]+=", "+d:a[c]=d)});return a}function $c(b,a){var c=ad.exec(b);if(c==null)return!0;var d={protocol:c[2],host:c[4],port:N(c[6])||Oa[c[2]]||null,relativeProtocol:c[2]===p||c[2]===""},
|
||||
c=jb.exec(a),c={protocol:c[1],host:c[3],port:N(c[5])||Oa[c[1]]||null};return(d.protocol==c.protocol||d.relativeProtocol)&&d.host==c.host&&(d.port==c.port||d.relativeProtocol&&c.port==Oa[c.protocol])}function Xb(b){var a=L(b)?b:p;return function(c){a||(a=Wb(b));return c?a[I(c)]||null:a}}function Yb(b,a,c){if(H(c))return c(b,a);n(c,function(c){b=c(b,a)});return b}function bd(){var b=/^\s*(\[|\{[^\{])/,a=/[\}\]]\s*$/,c=/^\)\]\}',?\n/,d={"Content-Type":"application/json;charset=utf-8"},e=this.defaults=
|
||||
{transformResponse:[function(d){E(d)&&(d=d.replace(c,""),b.test(d)&&a.test(d)&&(d=ub(d,!0)));return d}],transformRequest:[function(a){return L(a)&&Ea.apply(a)!=="[object File]"?ha(a):a}],headers:{common:{Accept:"application/json, text/plain, */*"},post:d,put:d,patch:d},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN"},g=this.interceptors=[],i=this.responseInterceptors=[];this.$get=["$httpBackend","$browser","$cacheFactory","$rootScope","$q","$injector",function(a,b,c,d,k,l){function u(a){function c(a){var b=
|
||||
t({},a,{data:Yb(a.data,a.headers,d.transformResponse)});return 200<=a.status&&a.status<300?b:k.reject(b)}var d={transformRequest:e.transformRequest,transformResponse:e.transformResponse},f={};t(d,a);d.headers=f;d.method=oa(d.method);t(f,e.headers.common,e.headers[I(d.method)],a.headers);(a=$c(d.url,b.url())?b.cookies()[d.xsrfCookieName||e.xsrfCookieName]:p)&&(f[d.xsrfHeaderName||e.xsrfHeaderName]=a);var g=[function(a){var b=Yb(a.data,Xb(f),a.transformRequest);C(a.data)&&delete f["Content-Type"];if(C(a.withCredentials)&&
|
||||
!C(e.withCredentials))a.withCredentials=e.withCredentials;return o(a,b,f).then(c,c)},p],j=k.when(d);for(n(y,function(a){(a.request||a.requestError)&&g.unshift(a.request,a.requestError);(a.response||a.responseError)&&g.push(a.response,a.responseError)});g.length;)var a=g.shift(),i=g.shift(),j=j.then(a,i);j.success=function(a){j.then(function(b){a(b.data,b.status,b.headers,d)});return j};j.error=function(a){j.then(null,function(b){a(b.data,b.status,b.headers,d)});return j};return j}function o(b,c,g){function j(a,
|
||||
b,c){n&&(200<=a&&a<300?n.put(s,[a,b,Wb(c)]):n.remove(s));i(b,a,c);d.$$phase||d.$apply()}function i(a,c,d){c=Math.max(c,0);(200<=c&&c<300?l.resolve:l.reject)({data:a,status:c,headers:Xb(d),config:b})}function h(){var a=Ga(u.pendingRequests,b);a!==-1&&u.pendingRequests.splice(a,1)}var l=k.defer(),o=l.promise,n,p,s=z(b.url,b.params);u.pendingRequests.push(b);o.then(h,h);if((b.cache||e.cache)&&b.cache!==!1&&b.method=="GET")n=L(b.cache)?b.cache:L(e.cache)?e.cache:r;if(n)if(p=n.get(s))if(p.then)return p.then(h,
|
||||
h),p;else F(p)?i(p[1],p[0],V(p[2])):i(p,200,{});else n.put(s,o);p||a(b.method,s,c,j,g,b.timeout,b.withCredentials,b.responseType);return o}function z(a,b){if(!b)return a;var c=[];nc(b,function(a,b){a==null||a==p||(F(a)||(a=[a]),n(a,function(a){L(a)&&(a=ha(a));c.push(wa(b)+"="+wa(a))}))});return a+(a.indexOf("?")==-1?"?":"&")+c.join("&")}var r=c("$http"),y=[];n(g,function(a){y.unshift(E(a)?l.get(a):l.invoke(a))});n(i,function(a,b){var c=E(a)?l.get(a):l.invoke(a);y.splice(b,0,{response:function(a){return c(k.when(a))},
|
||||
responseError:function(a){return c(k.reject(a))}})});u.pendingRequests=[];(function(a){n(arguments,function(a){u[a]=function(b,c){return u(t(c||{},{method:a,url:b}))}})})("get","delete","head","jsonp");(function(a){n(arguments,function(a){u[a]=function(b,c,d){return u(t(d||{},{method:a,url:b,data:c}))}})})("post","put");u.defaults=e;return u}]}function cd(){this.$get=["$browser","$window","$document",function(b,a,c){return dd(b,ed,b.defer,a.angular.callbacks,c[0],a.location.protocol.replace(":",""))}]}
|
||||
function dd(b,a,c,d,e,g){function i(a,b){var c=e.createElement("script"),d=function(){e.body.removeChild(c);b&&b()};c.type="text/javascript";c.src=a;Z?c.onreadystatechange=function(){/loaded|complete/.test(c.readyState)&&d()}:c.onload=c.onerror=d;e.body.appendChild(c);return d}return function(e,h,j,m,k,l,u,o){function z(){p=-1;t&&t();w&&w.abort()}function r(a,d,e,f){var j=(h.match(jb)||["",g])[1];A&&c.cancel(A);t=w=null;d=j=="file"?e?200:404:d;a(d==1223?204:d,e,f);b.$$completeOutstandingRequest(q)}
|
||||
var p;b.$$incOutstandingRequestCount();h=h||b.url();if(I(e)=="jsonp"){var x="_"+(d.counter++).toString(36);d[x]=function(a){d[x].data=a};var t=i(h.replace("JSON_CALLBACK","angular.callbacks."+x),function(){d[x].data?r(m,200,d[x].data):r(m,p||-2);delete d[x]})}else{var w=new a;w.open(e,h,!0);n(k,function(a,b){a&&w.setRequestHeader(b,a)});w.onreadystatechange=function(){if(w.readyState==4){var a=w.getAllResponseHeaders(),b=["Cache-Control","Content-Language","Content-Type","Expires","Last-Modified",
|
||||
"Pragma"];a||(a="",n(b,function(b){var c=w.getResponseHeader(b);c&&(a+=b+": "+c+"\n")}));r(m,p||w.status,w.responseType?w.response:w.responseText,a)}};if(u)w.withCredentials=!0;if(o)w.responseType=o;w.send(j||"")}if(l>0)var A=c(z,l);else l&&l.then&&l.then(z)}}function fd(){this.$get=function(){return{id:"en-us",NUMBER_FORMATS:{DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{minInt:1,minFrac:0,maxFrac:3,posPre:"",posSuf:"",negPre:"-",negSuf:"",gSize:3,lgSize:3},{minInt:1,minFrac:2,maxFrac:2,posPre:"\u00a4",
|
||||
posSuf:"",negPre:"(\u00a4",negSuf:")",gSize:3,lgSize:3}],CURRENCY_SYM:"$"},DATETIME_FORMATS:{MONTH:"January,February,March,April,May,June,July,August,September,October,November,December".split(","),SHORTMONTH:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec".split(","),DAY:"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday".split(","),SHORTDAY:"Sun,Mon,Tue,Wed,Thu,Fri,Sat".split(","),AMPMS:["AM","PM"],medium:"MMM d, y h:mm:ss a","short":"M/d/yy h:mm a",fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",
|
||||
mediumDate:"MMM d, y",shortDate:"M/d/yy",mediumTime:"h:mm:ss a",shortTime:"h:mm a"},pluralCat:function(b){return b===1?"one":"other"}}}}function gd(){this.$get=["$rootScope","$browser","$q","$exceptionHandler",function(b,a,c,d){function e(e,f,h){var j=c.defer(),m=j.promise,k=B(h)&&!h,f=a.defer(function(){try{j.resolve(e())}catch(a){j.reject(a),d(a)}k||b.$apply()},f),h=function(){delete g[m.$$timeoutId]};m.$$timeoutId=f;g[f]=j;m.then(h,h);return m}var g={};e.cancel=function(b){return b&&b.$$timeoutId in
|
||||
g?(g[b.$$timeoutId].reject("canceled"),a.defer.cancel(b.$$timeoutId)):!1};return e}]}function Zb(b){function a(a,e){return b.factory(a+c,e)}var c="Filter";this.register=a;this.$get=["$injector",function(a){return function(b){return a.get(b+c)}}];a("currency",$b);a("date",ac);a("filter",hd);a("json",id);a("limitTo",jd);a("lowercase",kd);a("number",bc);a("orderBy",cc);a("uppercase",ld)}function hd(){return function(b,a,c){if(!F(b))return b;var d=[];d.check=function(a){for(var b=0;b<d.length;b++)if(!d[b](a))return!1;
|
||||
return!0};switch(typeof c){case "function":break;case "boolean":if(c==!0){c=function(a,b){return Ha.equals(a,b)};break}default:c=function(a,b){b=(""+b).toLowerCase();return(""+a).toLowerCase().indexOf(b)>-1}}var e=function(a,b){if(typeof b=="string"&&b.charAt(0)==="!")return!e(a,b.substr(1));switch(typeof a){case "boolean":case "number":case "string":return c(a,b);case "object":switch(typeof b){case "object":return c(a,b);default:for(var d in a)if(d.charAt(0)!=="$"&&e(a[d],b))return!0}return!1;case "array":for(d=
|
||||
0;d<a.length;d++)if(e(a[d],b))return!0;return!1;default:return!1}};switch(typeof a){case "boolean":case "number":case "string":a={$:a};case "object":for(var g in a)g=="$"?function(){if(a[g]){var b=g;d.push(function(c){return e(c,a[b])})}}():function(){if(a[g]){var b=g;d.push(function(c){return e(ib(c,b),a[b])})}}();break;case "function":d.push(a);break;default:return b}for(var i=[],f=0;f<b.length;f++){var h=b[f];d.check(h)&&i.push(h)}return i}}function $b(b){var a=b.NUMBER_FORMATS;return function(b,
|
||||
d){if(C(d))d=a.CURRENCY_SYM;return dc(b,a.PATTERNS[1],a.GROUP_SEP,a.DECIMAL_SEP,2).replace(/\u00A4/g,d)}}function bc(b){var a=b.NUMBER_FORMATS;return function(b,d){return dc(b,a.PATTERNS[0],a.GROUP_SEP,a.DECIMAL_SEP,d)}}function dc(b,a,c,d,e){if(isNaN(b)||!isFinite(b))return"";var g=b<0,b=Math.abs(b),i=b+"",f="",h=[],j=!1;if(i.indexOf("e")!==-1){var m=i.match(/([\d\.]+)e(-?)(\d+)/);m&&m[2]=="-"&&m[3]>e+1?i="0":(f=i,j=!0)}if(!j){i=(i.split(ec)[1]||"").length;C(e)&&(e=Math.min(Math.max(a.minFrac,i),
|
||||
a.maxFrac));var i=Math.pow(10,e),b=Math.round(b*i)/i,b=(""+b).split(ec),i=b[0],b=b[1]||"",j=0,m=a.lgSize,k=a.gSize;if(i.length>=m+k)for(var j=i.length-m,l=0;l<j;l++)(j-l)%k===0&&l!==0&&(f+=c),f+=i.charAt(l);for(l=j;l<i.length;l++)(i.length-l)%m===0&&l!==0&&(f+=c),f+=i.charAt(l);for(;b.length<e;)b+="0";e&&e!=="0"&&(f+=d+b.substr(0,e))}h.push(g?a.negPre:a.posPre);h.push(f);h.push(g?a.negSuf:a.posSuf);return h.join("")}function nb(b,a,c){var d="";b<0&&(d="-",b=-b);for(b=""+b;b.length<a;)b="0"+b;c&&(b=
|
||||
b.substr(b.length-a));return d+b}function Q(b,a,c,d){c=c||0;return function(e){e=e["get"+b]();if(c>0||e>-c)e+=c;e===0&&c==-12&&(e=12);return nb(e,a,d)}}function Qa(b,a){return function(c,d){var e=c["get"+b](),g=oa(a?"SHORT"+b:b);return d[g][e]}}function ac(b){function a(a){var b;if(b=a.match(c)){var a=new Date(0),g=0,i=0,f=b[8]?a.setUTCFullYear:a.setFullYear,h=b[8]?a.setUTCHours:a.setHours;b[9]&&(g=N(b[9]+b[10]),i=N(b[9]+b[11]));f.call(a,N(b[1]),N(b[2])-1,N(b[3]));g=N(b[4]||0)-g;i=N(b[5]||0)-i;f=
|
||||
N(b[6]||0);b=Math.round(parseFloat("0."+(b[7]||0))*1E3);h.call(a,g,i,f,b)}return a}var c=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(c,e){var g="",i=[],f,h,e=e||"mediumDate",e=b.DATETIME_FORMATS[e]||e;E(c)&&(c=md.test(c)?N(c):a(c));Ya(c)&&(c=new Date(c));if(!ra(c))return c;for(;e;)(h=nd.exec(e))?(i=i.concat(ka.call(h,1)),e=i.pop()):(i.push(e),e=null);n(i,function(a){f=od[a];g+=f?f(c,b.DATETIME_FORMATS):a.replace(/(^'|'$)/g,
|
||||
"").replace(/''/g,"'")});return g}}function id(){return function(b){return ha(b,!0)}}function jd(){return function(b,a){if(!F(b)&&!E(b))return b;a=N(a);if(E(b))return a?a>=0?b.slice(0,a):b.slice(a,b.length):"";var c=[],d,e;a>b.length?a=b.length:a<-b.length&&(a=-b.length);a>0?(d=0,e=a):(d=b.length+a,e=b.length);for(;d<e;d++)c.push(b[d]);return c}}function cc(b){return function(a,c,d){function e(a,b){return ua(b)?function(b,c){return a(c,b)}:a}if(!F(a))return a;if(!c)return a;for(var c=F(c)?c:[c],c=
|
||||
Za(c,function(a){var c=!1,d=a||qa;if(E(a)){if(a.charAt(0)=="+"||a.charAt(0)=="-")c=a.charAt(0)=="-",a=a.substring(1);d=b(a)}return e(function(a,b){var c;c=d(a);var e=d(b),f=typeof c,g=typeof e;f==g?(f=="string"&&(c=c.toLowerCase()),f=="string"&&(e=e.toLowerCase()),c=c===e?0:c<e?-1:1):c=f<g?-1:1;return c},c)}),g=[],i=0;i<a.length;i++)g.push(a[i]);return g.sort(e(function(a,b){for(var d=0;d<c.length;d++){var e=c[d](a,b);if(e!==0)return e}return 0},d))}}function aa(b){H(b)&&(b={link:b});b.restrict=b.restrict||
|
||||
"AC";return S(b)}function fc(b,a){function c(a,c){c=c?"-"+bb(c,"-"):"";b.removeClass((a?Ra:Sa)+c).addClass((a?Sa:Ra)+c)}var d=this,e=b.parent().controller("form")||Ta,g=0,i=d.$error={},f=[];d.$name=a.name;d.$dirty=!1;d.$pristine=!0;d.$valid=!0;d.$invalid=!1;e.$addControl(d);b.addClass(pa);c(!0);d.$addControl=function(a){f.push(a);a.$name&&!d.hasOwnProperty(a.$name)&&(d[a.$name]=a)};d.$removeControl=function(a){a.$name&&d[a.$name]===a&&delete d[a.$name];n(i,function(b,c){d.$setValidity(c,!0,a)});ta(f,
|
||||
a)};d.$setValidity=function(a,b,f){var k=i[a];if(b){if(k&&(ta(k,f),!k.length)){g--;if(!g)c(b),d.$valid=!0,d.$invalid=!1;i[a]=!1;c(!0,a);e.$setValidity(a,!0,d)}}else{g||c(b);if(k){if(Ga(k,f)!=-1)return}else i[a]=k=[],g++,c(!1,a),e.$setValidity(a,!1,d);k.push(f);d.$valid=!1;d.$invalid=!0}};d.$setDirty=function(){b.removeClass(pa).addClass(Ua);d.$dirty=!0;d.$pristine=!1;e.$setDirty()};d.$setPristine=function(){b.removeClass(Ua).addClass(pa);d.$dirty=!1;d.$pristine=!0;n(f,function(a){a.$setPristine()})}}
|
||||
function X(b){return C(b)||b===""||b===null||b!==b}function Va(b,a,c,d,e,g){var i=function(){var e=a.val();if(ua(c.ngTrim||"T"))e=U(e);d.$viewValue!==e&&b.$apply(function(){d.$setViewValue(e)})};if(e.hasEvent("input"))a.bind("input",i);else{var f,h=function(){f||(f=g.defer(function(){i();f=null}))};a.bind("keydown",function(a){a=a.keyCode;a===91||15<a&&a<19||37<=a&&a<=40||h()});a.bind("change",i);e.hasEvent("paste")&&a.bind("paste cut",h)}d.$render=function(){a.val(X(d.$viewValue)?"":d.$viewValue)};
|
||||
var j=c.ngPattern,m=function(a,b){return X(b)||a.test(b)?(d.$setValidity("pattern",!0),b):(d.$setValidity("pattern",!1),p)};j&&((e=j.match(/^\/(.*)\/([gim]*)$/))?(j=RegExp(e[1],e[2]),e=function(a){return m(j,a)}):e=function(a){var c=b.$eval(j);if(!c||!c.test)throw Error("Expected "+j+" to be a RegExp but was "+c);return m(c,a)},d.$formatters.push(e),d.$parsers.push(e));if(c.ngMinlength){var k=N(c.ngMinlength),e=function(a){return!X(a)&&a.length<k?(d.$setValidity("minlength",!1),p):(d.$setValidity("minlength",
|
||||
!0),a)};d.$parsers.push(e);d.$formatters.push(e)}if(c.ngMaxlength){var l=N(c.ngMaxlength),e=function(a){return!X(a)&&a.length>l?(d.$setValidity("maxlength",!1),p):(d.$setValidity("maxlength",!0),a)};d.$parsers.push(e);d.$formatters.push(e)}}function ob(b,a){b="ngClass"+b;return aa(function(c,d,e){function g(b){if(a===!0||c.$index%2===a)h&&!ia(b,h)&&i(h),f(b);h=V(b)}function i(a){L(a)&&!F(a)&&(a=Za(a,function(a,b){if(a)return b}));d.removeClass(F(a)?a.join(" "):a)}function f(a){L(a)&&!F(a)&&(a=Za(a,
|
||||
function(a,b){if(a)return b}));a&&d.addClass(F(a)?a.join(" "):a)}var h=p;c.$watch(e[b],g,!0);e.$observe("class",function(){var a=c.$eval(e[b]);g(a,a)});b!=="ngClass"&&c.$watch("$index",function(d,g){var h=d&1;h!==g&1&&(h===a?f(c.$eval(e[b])):i(c.$eval(e[b])))})})}var I=function(b){return E(b)?b.toLowerCase():b},oa=function(b){return E(b)?b.toUpperCase():b},Z=N((/msie (\d+)/.exec(I(navigator.userAgent))||[])[1]),v,ga,ka=[].slice,Wa=[].push,Ea=Object.prototype.toString,mc=M.angular,Ha=M.angular||(M.angular=
|
||||
{}),Aa,hb,ba=["0","0","0"];q.$inject=[];qa.$inject=[];hb=Z<9?function(b){b=b.nodeName?b:b[0];return b.scopeName&&b.scopeName!="HTML"?oa(b.scopeName+":"+b.nodeName):b.nodeName}:function(b){return b.nodeName?b.nodeName:b[0].nodeName};var sc=/[A-Z]/g,pd={full:"1.1.5",major:1,minor:1,dot:5,codeName:"triangle-squarification"},Ka=R.cache={},Ja=R.expando="ng-"+(new Date).getTime(),wc=1,gc=M.document.addEventListener?function(b,a,c){b.addEventListener(a,c,!1)}:function(b,a,c){b.attachEvent("on"+a,c)},gb=
|
||||
M.document.removeEventListener?function(b,a,c){b.removeEventListener(a,c,!1)}:function(b,a,c){b.detachEvent("on"+a,c)},uc=/([\:\-\_]+(.))/g,vc=/^moz([A-Z])/,Ba=R.prototype={ready:function(b){function a(){c||(c=!0,b())}var c=!1;T.readyState==="complete"?setTimeout(a):(this.bind("DOMContentLoaded",a),R(M).bind("load",a))},toString:function(){var b=[];n(this,function(a){b.push(""+a)});return"["+b.join(", ")+"]"},eq:function(b){return b>=0?v(this[b]):v(this[this.length+b])},length:0,push:Wa,sort:[].sort,
|
||||
splice:[].splice},Na={};n("multiple,selected,checked,disabled,readOnly,required,open".split(","),function(b){Na[I(b)]=b});var Gb={};n("input,select,option,textarea,button,form,details".split(","),function(b){Gb[oa(b)]=!0});n({data:Bb,inheritedData:Ma,scope:function(b){return Ma(b,"$scope")},controller:Eb,injector:function(b){return Ma(b,"$injector")},removeAttr:function(b,a){b.removeAttribute(a)},hasClass:La,css:function(b,a,c){a=Ia(a);if(B(c))b.style[a]=c;else{var d;Z<=8&&(d=b.currentStyle&&b.currentStyle[a],
|
||||
d===""&&(d="auto"));d=d||b.style[a];Z<=8&&(d=d===""?p:d);return d}},attr:function(b,a,c){var d=I(a);if(Na[d])if(B(c))c?(b[a]=!0,b.setAttribute(a,d)):(b[a]=!1,b.removeAttribute(d));else return b[a]||(b.attributes.getNamedItem(a)||q).specified?d:p;else if(B(c))b.setAttribute(a,c);else if(b.getAttribute)return b=b.getAttribute(a,2),b===null?p:b},prop:function(b,a,c){if(B(c))b[a]=c;else return b[a]},text:t(Z<9?function(b,a){if(b.nodeType==1){if(C(a))return b.innerText;b.innerText=a}else{if(C(a))return b.nodeValue;
|
||||
b.nodeValue=a}}:function(b,a){if(C(a))return b.textContent;b.textContent=a},{$dv:""}),val:function(b,a){if(C(a))return b.value;b.value=a},html:function(b,a){if(C(a))return b.innerHTML;for(var c=0,d=b.childNodes;c<d.length;c++)ya(d[c]);b.innerHTML=a}},function(b,a){R.prototype[a]=function(a,d){var e,g;if((b.length==2&&b!==La&&b!==Eb?a:d)===p)if(L(a)){for(e=0;e<this.length;e++)if(b===Bb)b(this[e],a);else for(g in a)b(this[e],g,a[g]);return this}else{if(this.length)return b(this[0],a,d)}else{for(e=0;e<
|
||||
this.length;e++)b(this[e],a,d);return this}return b.$dv}});n({removeData:zb,dealoc:ya,bind:function a(c,d,e){var g=ca(c,"events"),i=ca(c,"handle");g||ca(c,"events",g={});i||ca(c,"handle",i=xc(c,g));n(d.split(" "),function(d){var h=g[d];if(!h){if(d=="mouseenter"||d=="mouseleave"){var j=T.body.contains||T.body.compareDocumentPosition?function(a,c){var d=a.nodeType===9?a.documentElement:a,e=c&&c.parentNode;return a===e||!(!e||!(e.nodeType===1&&(d.contains?d.contains(e):a.compareDocumentPosition&&a.compareDocumentPosition(e)&
|
||||
16)))}:function(a,c){if(c)for(;c=c.parentNode;)if(c===a)return!0;return!1};g[d]=[];a(c,{mouseleave:"mouseout",mouseenter:"mouseover"}[d],function(a){var c=a.relatedTarget;(!c||c!==this&&!j(this,c))&&i(a,d)})}else gc(c,d,i),g[d]=[];h=g[d]}h.push(e)})},unbind:Ab,replaceWith:function(a,c){var d,e=a.parentNode;ya(a);n(new R(c),function(c){d?e.insertBefore(c,d.nextSibling):e.replaceChild(c,a);d=c})},children:function(a){var c=[];n(a.childNodes,function(a){a.nodeType===1&&c.push(a)});return c},contents:function(a){return a.childNodes||
|
||||
[]},append:function(a,c){n(new R(c),function(c){(a.nodeType===1||a.nodeType===11)&&a.appendChild(c)})},prepend:function(a,c){if(a.nodeType===1){var d=a.firstChild;n(new R(c),function(c){d?a.insertBefore(c,d):(a.appendChild(c),d=c)})}},wrap:function(a,c){var c=v(c)[0],d=a.parentNode;d&&d.replaceChild(c,a);c.appendChild(a)},remove:function(a){ya(a);var c=a.parentNode;c&&c.removeChild(a)},after:function(a,c){var d=a,e=a.parentNode;n(new R(c),function(a){e.insertBefore(a,d.nextSibling);d=a})},addClass:Db,
|
||||
removeClass:Cb,toggleClass:function(a,c,d){C(d)&&(d=!La(a,c));(d?Db:Cb)(a,c)},parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},next:function(a){if(a.nextElementSibling)return a.nextElementSibling;for(a=a.nextSibling;a!=null&&a.nodeType!==1;)a=a.nextSibling;return a},find:function(a,c){return a.getElementsByTagName(c)},clone:fb,triggerHandler:function(a,c){var d=(ca(a,"events")||{})[c];n(d,function(c){c.call(a,{preventDefault:q})})}},function(a,c){R.prototype[c]=function(c,e){for(var g,
|
||||
i=0;i<this.length;i++)g==p?(g=a(this[i],c,e),g!==p&&(g=v(g))):eb(g,a(this[i],c,e));return g==p?this:g}});za.prototype={put:function(a,c){this[la(a)]=c},get:function(a){return this[la(a)]},remove:function(a){var c=this[a=la(a)];delete this[a];return c}};var zc=/^function\s*[^\(]*\(\s*([^\)]*)\)/m,Ac=/,/,Bc=/^\s*(_?)(\S+?)\1\s*$/,yc=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg;Ib.$inject=["$provide"];var qd=function(){var a="$ngAnimateController",c={running:!0};this.$get=["$animation","$window","$sniffer","$rootElement",
|
||||
"$rootScope",function(d,e,g,i){i.data(a,c);i=function(c,i){function j(j,k,o){return function(m,r,p){function x(a){var c=0,a=E(a)?a.split(/\s*,\s*/):[];n(a,function(a){c=Math.max(parseFloat(a)||0,c)});return c}function t(){m.addClass(K);if($)$(m,w,P);else if(H(e.getComputedStyle)){var a=g.vendorPrefix+"Animation",c=g.vendorPrefix+"Transition",d=0;n(m,function(f){if(f.nodeType==1){var g="transition",i=c,j=1,h=e.getComputedStyle(f)||{};if(parseFloat(h.animationDuration)>0||parseFloat(h[a+"Duration"])>
|
||||
0)g="animation",i=a,j=Math.max(parseInt(h[g+"IterationCount"])||0,parseInt(h[i+"IterationCount"])||0,j);f=Math.max(x(h[g+"Delay"]),x(h[i+"Delay"]));g=Math.max(x(h[g+"Duration"]),x(h[i+"Duration"]));d=Math.max(f+j*g,d)}});e.setTimeout(w,d*1E3)}else w()}function w(){if(!w.run)w.run=!0,o(m,r,p),m.removeClass(v),m.removeClass(K),m.removeData(a)}var A=c.$eval(i.ngAnimate),v=A?L(A)?A[j]:A+"-"+j:"",D=d(v),A=D&&D.setup,$=D&&D.start,D=D&&D.cancel;if(v){var K=v+"-active";r||(r=p?p.parent():m.parent());if(!g.transitions&&
|
||||
!A&&!$||(r.inheritedData(a)||q).running)k(m,r,p),o(m,r,p);else{var O=m.data(a)||{};O.running&&((D||q)(m),O.done());m.data(a,{running:!0,done:w});m.addClass(v);k(m,r,p);if(m.length==0)return w();var P=(A||q)(m);e.setTimeout(t,1)}}else k(m,r,p),o(m,r,p)}}function m(a,c,d){d?d.after(a):c.append(a)}var k={};k.enter=j("enter",m,q);k.leave=j("leave",q,function(a){a.remove()});k.move=j("move",function(a,c,d){m(a,c,d)},q);k.show=j("show",function(a){a.css("display","")},q);k.hide=j("hide",q,function(a){a.css("display",
|
||||
"none")});k.animate=function(a,c){j(a,q,q)(c)};return k};i.enabled=function(a){if(arguments.length)c.running=!a;return!c.running};return i}]},Kb="Non-assignable model expression: ";Jb.$inject=["$provide"];var Ic=/^(x[\:\-_]|data[\:\-_])/i,jb=/^([^:]+):\/\/(\w+:{0,1}\w*@)?(\{?[\w\.-]*\}?)(:([0-9]+))?(\/[^\?#]*)?(\?([^#]*))?(#(.*))?$/,Pb=/^([^\?#]*)(\?([^#]*))?(#(.*))?$/,Oa={http:80,https:443,ftp:21};Rb.prototype=lb.prototype=Qb.prototype={$$replace:!1,absUrl:Pa("$$absUrl"),url:function(a,c){if(C(a))return this.$$url;
|
||||
var d=Pb.exec(a);d[1]&&this.path(decodeURIComponent(d[1]));if(d[2]||d[1])this.search(d[3]||"");this.hash(d[5]||"",c);return this},protocol:Pa("$$protocol"),host:Pa("$$host"),port:Pa("$$port"),path:Sb("$$path",function(a){return a.charAt(0)=="/"?a:"/"+a}),search:function(a,c){if(C(a))return this.$$search;B(c)?c===null?delete this.$$search[a]:this.$$search[a]=c:this.$$search=E(a)?vb(a):a;this.$$compose();return this},hash:Sb("$$hash",qa),replace:function(){this.$$replace=!0;return this}};var Da={"null":function(){return null},
|
||||
"true":function(){return!0},"false":function(){return!1},undefined:q,"+":function(a,c,d,e){d=d(a,c);e=e(a,c);return B(d)?B(e)?d+e:d:B(e)?e:p},"-":function(a,c,d,e){d=d(a,c);e=e(a,c);return(B(d)?d:0)-(B(e)?e:0)},"*":function(a,c,d,e){return d(a,c)*e(a,c)},"/":function(a,c,d,e){return d(a,c)/e(a,c)},"%":function(a,c,d,e){return d(a,c)%e(a,c)},"^":function(a,c,d,e){return d(a,c)^e(a,c)},"=":q,"===":function(a,c,d,e){return d(a,c)===e(a,c)},"!==":function(a,c,d,e){return d(a,c)!==e(a,c)},"==":function(a,
|
||||
c,d,e){return d(a,c)==e(a,c)},"!=":function(a,c,d,e){return d(a,c)!=e(a,c)},"<":function(a,c,d,e){return d(a,c)<e(a,c)},">":function(a,c,d,e){return d(a,c)>e(a,c)},"<=":function(a,c,d,e){return d(a,c)<=e(a,c)},">=":function(a,c,d,e){return d(a,c)>=e(a,c)},"&&":function(a,c,d,e){return d(a,c)&&e(a,c)},"||":function(a,c,d,e){return d(a,c)||e(a,c)},"&":function(a,c,d,e){return d(a,c)&e(a,c)},"|":function(a,c,d,e){return e(a,c)(a,c,d(a,c))},"!":function(a,c,d){return!d(a,c)}},Qc={n:"\n",f:"\u000c",r:"\r",
|
||||
t:"\t",v:"\u000b","'":"'",'"':'"'},mb={},ad=/^(([^:]+):)?\/\/(\w+:{0,1}\w*@)?([\w\.-]*)?(:([0-9]+))?(.*)$/,ed=M.XMLHttpRequest||function(){try{return new ActiveXObject("Msxml2.XMLHTTP.6.0")}catch(a){}try{return new ActiveXObject("Msxml2.XMLHTTP.3.0")}catch(c){}try{return new ActiveXObject("Msxml2.XMLHTTP")}catch(d){}throw Error("This browser does not support XMLHttpRequest.");};Zb.$inject=["$provide"];$b.$inject=["$locale"];bc.$inject=["$locale"];var ec=".",od={yyyy:Q("FullYear",4),yy:Q("FullYear",
|
||||
2,0,!0),y:Q("FullYear",1),MMMM:Qa("Month"),MMM:Qa("Month",!0),MM:Q("Month",2,1),M:Q("Month",1,1),dd:Q("Date",2),d:Q("Date",1),HH:Q("Hours",2),H:Q("Hours",1),hh:Q("Hours",2,-12),h:Q("Hours",1,-12),mm:Q("Minutes",2),m:Q("Minutes",1),ss:Q("Seconds",2),s:Q("Seconds",1),sss:Q("Milliseconds",3),EEEE:Qa("Day"),EEE:Qa("Day",!0),a:function(a,c){return a.getHours()<12?c.AMPMS[0]:c.AMPMS[1]},Z:function(a){var a=-1*a.getTimezoneOffset(),c=a>=0?"+":"";c+=nb(Math[a>0?"floor":"ceil"](a/60),2)+nb(Math.abs(a%60),
|
||||
2);return c}},nd=/((?:[^yMdHhmsaZE']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z))(.*)/,md=/^\d+$/;ac.$inject=["$locale"];var kd=S(I),ld=S(oa);cc.$inject=["$parse"];var rd=S({restrict:"E",compile:function(a,c){Z<=8&&(!c.href&&!c.name&&c.$set("href",""),a.append(T.createComment("IE fix")));return function(a,c){c.bind("click",function(a){c.attr("href")||a.preventDefault()})}}}),pb={};n(Na,function(a,c){var d=da("ng-"+c);pb[d]=function(){return{priority:100,compile:function(){return function(a,
|
||||
g,i){a.$watch(i[d],function(a){i.$set(c,!!a)})}}}}});n(["src","srcset","href"],function(a){var c=da("ng-"+a);pb[c]=function(){return{priority:99,link:function(d,e,g){g.$observe(c,function(c){c&&(g.$set(a,c),Z&&e.prop(a,g[a]))})}}}});var Ta={$addControl:q,$removeControl:q,$setValidity:q,$setDirty:q,$setPristine:q};fc.$inject=["$element","$attrs","$scope"];var Wa=function(a){return["$timeout",function(c){var d={name:"form",restrict:"E",controller:fc,compile:function(){return{pre:function(a,d,i,f){if(!i.action){var h=
|
||||
function(a){a.preventDefault?a.preventDefault():a.returnValue=!1};gc(d[0],"submit",h);d.bind("$destroy",function(){c(function(){gb(d[0],"submit",h)},0,!1)})}var j=d.parent().controller("form"),m=i.name||i.ngForm;m&&(a[m]=f);j&&d.bind("$destroy",function(){j.$removeControl(f);m&&(a[m]=p);t(f,Ta)})}}}};return a?t(V(d),{restrict:"EAC"}):d}]},sd=Wa(),td=Wa(!0),ud=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/,vd=/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/,
|
||||
wd=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/,hc={text:Va,number:function(a,c,d,e,g,i){Va(a,c,d,e,g,i);e.$parsers.push(function(a){var c=X(a);return c||wd.test(a)?(e.$setValidity("number",!0),a===""?null:c?a:parseFloat(a)):(e.$setValidity("number",!1),p)});e.$formatters.push(function(a){return X(a)?"":""+a});if(d.min){var f=parseFloat(d.min),a=function(a){return!X(a)&&a<f?(e.$setValidity("min",!1),p):(e.$setValidity("min",!0),a)};e.$parsers.push(a);e.$formatters.push(a)}if(d.max){var h=parseFloat(d.max),
|
||||
d=function(a){return!X(a)&&a>h?(e.$setValidity("max",!1),p):(e.$setValidity("max",!0),a)};e.$parsers.push(d);e.$formatters.push(d)}e.$formatters.push(function(a){return X(a)||Ya(a)?(e.$setValidity("number",!0),a):(e.$setValidity("number",!1),p)})},url:function(a,c,d,e,g,i){Va(a,c,d,e,g,i);a=function(a){return X(a)||ud.test(a)?(e.$setValidity("url",!0),a):(e.$setValidity("url",!1),p)};e.$formatters.push(a);e.$parsers.push(a)},email:function(a,c,d,e,g,i){Va(a,c,d,e,g,i);a=function(a){return X(a)||vd.test(a)?
|
||||
(e.$setValidity("email",!0),a):(e.$setValidity("email",!1),p)};e.$formatters.push(a);e.$parsers.push(a)},radio:function(a,c,d,e){C(d.name)&&c.attr("name",Fa());c.bind("click",function(){c[0].checked&&a.$apply(function(){e.$setViewValue(d.value)})});e.$render=function(){c[0].checked=d.value==e.$viewValue};d.$observe("value",e.$render)},checkbox:function(a,c,d,e){var g=d.ngTrueValue,i=d.ngFalseValue;E(g)||(g=!0);E(i)||(i=!1);c.bind("click",function(){a.$apply(function(){e.$setViewValue(c[0].checked)})});
|
||||
e.$render=function(){c[0].checked=e.$viewValue};e.$formatters.push(function(a){return a===g});e.$parsers.push(function(a){return a?g:i})},hidden:q,button:q,submit:q,reset:q},ic=["$browser","$sniffer",function(a,c){return{restrict:"E",require:"?ngModel",link:function(d,e,g,i){i&&(hc[I(g.type)]||hc.text)(d,e,g,i,c,a)}}}],Sa="ng-valid",Ra="ng-invalid",pa="ng-pristine",Ua="ng-dirty",xd=["$scope","$exceptionHandler","$attrs","$element","$parse",function(a,c,d,e,g){function i(a,c){c=c?"-"+bb(c,"-"):"";
|
||||
e.removeClass((a?Ra:Sa)+c).addClass((a?Sa:Ra)+c)}this.$modelValue=this.$viewValue=Number.NaN;this.$parsers=[];this.$formatters=[];this.$viewChangeListeners=[];this.$pristine=!0;this.$dirty=!1;this.$valid=!0;this.$invalid=!1;this.$name=d.name;var f=g(d.ngModel),h=f.assign;if(!h)throw Error(Kb+d.ngModel+" ("+va(e)+")");this.$render=q;var j=e.inheritedData("$formController")||Ta,m=0,k=this.$error={};e.addClass(pa);i(!0);this.$setValidity=function(a,c){if(k[a]!==!c){if(c){if(k[a]&&m--,!m)i(!0),this.$valid=
|
||||
!0,this.$invalid=!1}else i(!1),this.$invalid=!0,this.$valid=!1,m++;k[a]=!c;i(c,a);j.$setValidity(a,c,this)}};this.$setPristine=function(){this.$dirty=!1;this.$pristine=!0;e.removeClass(Ua).addClass(pa)};this.$setViewValue=function(d){this.$viewValue=d;if(this.$pristine)this.$dirty=!0,this.$pristine=!1,e.removeClass(pa).addClass(Ua),j.$setDirty();n(this.$parsers,function(a){d=a(d)});if(this.$modelValue!==d)this.$modelValue=d,h(a,d),n(this.$viewChangeListeners,function(a){try{a()}catch(d){c(d)}})};
|
||||
var l=this;a.$watch(function(){var c=f(a);if(l.$modelValue!==c){var d=l.$formatters,e=d.length;for(l.$modelValue=c;e--;)c=d[e](c);if(l.$viewValue!==c)l.$viewValue=c,l.$render()}})}],yd=function(){return{require:["ngModel","^?form"],controller:xd,link:function(a,c,d,e){var g=e[0],i=e[1]||Ta;i.$addControl(g);c.bind("$destroy",function(){i.$removeControl(g)})}}},zd=S({require:"ngModel",link:function(a,c,d,e){e.$viewChangeListeners.push(function(){a.$eval(d.ngChange)})}}),jc=function(){return{require:"?ngModel",
|
||||
link:function(a,c,d,e){if(e){d.required=!0;var g=function(a){if(d.required&&(X(a)||a===!1))e.$setValidity("required",!1);else return e.$setValidity("required",!0),a};e.$formatters.push(g);e.$parsers.unshift(g);d.$observe("required",function(){g(e.$viewValue)})}}}},Ad=function(){return{require:"ngModel",link:function(a,c,d,e){var g=(a=/\/(.*)\//.exec(d.ngList))&&RegExp(a[1])||d.ngList||",";e.$parsers.push(function(a){var c=[];a&&n(a.split(g),function(a){a&&c.push(U(a))});return c});e.$formatters.push(function(a){return F(a)?
|
||||
a.join(", "):p})}}},Bd=/^(true|false|\d+)$/,Cd=function(){return{priority:100,compile:function(a,c){return Bd.test(c.ngValue)?function(a,c,g){g.$set("value",a.$eval(g.ngValue))}:function(a,c,g){a.$watch(g.ngValue,function(a){g.$set("value",a,!1)})}}}},Dd=aa(function(a,c,d){c.addClass("ng-binding").data("$binding",d.ngBind);a.$watch(d.ngBind,function(a){c.text(a==p?"":a)})}),Ed=["$interpolate",function(a){return function(c,d,e){c=a(d.attr(e.$attr.ngBindTemplate));d.addClass("ng-binding").data("$binding",
|
||||
c);e.$observe("ngBindTemplate",function(a){d.text(a)})}}],Fd=[function(){return function(a,c,d){c.addClass("ng-binding").data("$binding",d.ngBindHtmlUnsafe);a.$watch(d.ngBindHtmlUnsafe,function(a){c.html(a||"")})}}],Gd=ob("",!0),Hd=ob("Odd",0),Id=ob("Even",1),Jd=aa({compile:function(a,c){c.$set("ngCloak",p);a.removeClass("ng-cloak")}}),Kd=[function(){return{scope:!0,controller:"@"}}],Ld=["$sniffer",function(a){return{priority:1E3,compile:function(){a.csp=!0}}}],kc={};n("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress".split(" "),
|
||||
function(a){var c=da("ng-"+a);kc[c]=["$parse",function(d){return function(e,g,i){var f=d(i[c]);g.bind(I(a),function(a){e.$apply(function(){f(e,{$event:a})})})}}]});var Md=aa(function(a,c,d){c.bind("submit",function(){a.$apply(d.ngSubmit)})}),Nd=["$animator",function(a){return{transclude:"element",priority:1E3,terminal:!0,restrict:"A",compile:function(c,d,e){return function(c,d,f){var h=a(c,f),j,m;c.$watch(f.ngIf,function(a){j&&(h.leave(j),j=p);m&&(m.$destroy(),m=p);ua(a)&&(m=c.$new(),e(m,function(a){j=
|
||||
a;h.enter(a,d.parent(),d)}))})}}}}],Od=["$http","$templateCache","$anchorScroll","$compile","$animator",function(a,c,d,e,g){return{restrict:"ECA",terminal:!0,compile:function(i,f){var h=f.ngInclude||f.src,j=f.onload||"",m=f.autoscroll;return function(f,i,n){var o=g(f,n),p=0,r,t=function(){r&&(r.$destroy(),r=null);o.leave(i.contents(),i)};f.$watch(h,function(g){var h=++p;g?(a.get(g,{cache:c}).success(function(a){h===p&&(r&&r.$destroy(),r=f.$new(),o.leave(i.contents(),i),a=v("<div/>").html(a).contents(),
|
||||
o.enter(a,i),e(a)(r),B(m)&&(!m||f.$eval(m))&&d(),r.$emit("$includeContentLoaded"),f.$eval(j))}).error(function(){h===p&&t()}),f.$emit("$includeContentRequested")):t()})}}}}],Pd=aa({compile:function(){return{pre:function(a,c,d){a.$eval(d.ngInit)}}}}),Qd=aa({terminal:!0,priority:1E3}),Rd=["$locale","$interpolate",function(a,c){var d=/{}/g;return{restrict:"EA",link:function(e,g,i){var f=i.count,h=g.attr(i.$attr.when),j=i.offset||0,m=e.$eval(h),k={},l=c.startSymbol(),p=c.endSymbol();n(m,function(a,e){k[e]=
|
||||
c(a.replace(d,l+f+"-"+j+p))});e.$watch(function(){var c=parseFloat(e.$eval(f));return isNaN(c)?"":(c in m||(c=a.pluralCat(c-j)),k[c](e,g,!0))},function(a){g.text(a)})}}}],Sd=["$parse","$animator",function(a,c){return{transclude:"element",priority:1E3,terminal:!0,compile:function(d,e,g){return function(d,e,h){var j=c(d,h),m=h.ngRepeat,k=m.match(/^\s*(.+)\s+in\s+(.*?)\s*(\s+track\s+by\s+(.+)\s*)?$/),l,p,o,z,r,t={$id:la};if(!k)throw Error("Expected ngRepeat in form of '_item_ in _collection_[ track by _id_]' but got '"+
|
||||
m+"'.");h=k[1];o=k[2];(k=k[4])?(l=a(k),p=function(a,c,e){r&&(t[r]=a);t[z]=c;t.$index=e;return l(d,t)}):p=function(a,c){return la(c)};k=h.match(/^(?:([\$\w]+)|\(([\$\w]+)\s*,\s*([\$\w]+)\))$/);if(!k)throw Error("'item' in 'item in collection' should be identifier or (key, value) but got '"+h+"'.");z=k[3]||k[1];r=k[2];var x={};d.$watchCollection(o,function(a){var c,h,k=e,l,o={},t,q,v,s,B,y,C=[];if(Xa(a))B=a;else{B=[];for(v in a)a.hasOwnProperty(v)&&v.charAt(0)!="$"&&B.push(v);B.sort()}t=B.length;h=
|
||||
C.length=B.length;for(c=0;c<h;c++)if(v=a===B?c:B[c],s=a[v],l=p(v,s,c),x.hasOwnProperty(l))y=x[l],delete x[l],o[l]=y,C[c]=y;else if(o.hasOwnProperty(l))throw n(C,function(a){a&&a.element&&(x[a.id]=a)}),Error("Duplicates in a repeater are not allowed. Repeater: "+m+" key: "+l);else C[c]={id:l},o[l]=!1;for(v in x)if(x.hasOwnProperty(v))y=x[v],j.leave(y.element),y.element[0].$$NG_REMOVED=!0,y.scope.$destroy();c=0;for(h=B.length;c<h;c++){v=a===B?c:B[c];s=a[v];y=C[c];if(y.element){q=y.scope;l=k[0];do l=
|
||||
l.nextSibling;while(l&&l.$$NG_REMOVED);y.element[0]!=l&&j.move(y.element,null,k);k=y.element}else q=d.$new();q[z]=s;r&&(q[r]=v);q.$index=c;q.$first=c===0;q.$last=c===t-1;q.$middle=!(q.$first||q.$last);y.element||g(q,function(a){j.enter(a,null,k);k=a;y.scope=q;y.element=a;o[y.id]=y})}x=o})}}}}],Td=["$animator",function(a){return function(c,d,e){var g=a(c,e);c.$watch(e.ngShow,function(a){g[ua(a)?"show":"hide"](d)})}}],Ud=["$animator",function(a){return function(c,d,e){var g=a(c,e);c.$watch(e.ngHide,
|
||||
function(a){g[ua(a)?"hide":"show"](d)})}}],Vd=aa(function(a,c,d){a.$watch(d.ngStyle,function(a,d){d&&a!==d&&n(d,function(a,d){c.css(d,"")});a&&c.css(a)},!0)}),Wd=["$animator",function(a){return{restrict:"EA",require:"ngSwitch",controller:["$scope",function(){this.cases={}}],link:function(c,d,e,g){var i=a(c,e),f,h,j=[];c.$watch(e.ngSwitch||e.on,function(a){for(var d=0,l=j.length;d<l;d++)j[d].$destroy(),i.leave(h[d]);h=[];j=[];if(f=g.cases["!"+a]||g.cases["?"])c.$eval(e.change),n(f,function(a){var d=
|
||||
c.$new();j.push(d);a.transclude(d,function(c){var d=a.element;h.push(c);i.enter(c,d.parent(),d)})})})}}}],Xd=aa({transclude:"element",priority:500,require:"^ngSwitch",compile:function(a,c,d){return function(a,g,i,f){f.cases["!"+c.ngSwitchWhen]=f.cases["!"+c.ngSwitchWhen]||[];f.cases["!"+c.ngSwitchWhen].push({transclude:d,element:g})}}}),Yd=aa({transclude:"element",priority:500,require:"^ngSwitch",compile:function(a,c,d){return function(a,c,i,f){f.cases["?"]=f.cases["?"]||[];f.cases["?"].push({transclude:d,
|
||||
element:c})}}}),Zd=aa({controller:["$transclude","$element",function(a,c){a(function(a){c.append(a)})}]}),$d=["$http","$templateCache","$route","$anchorScroll","$compile","$controller","$animator",function(a,c,d,e,g,i,f){return{restrict:"ECA",terminal:!0,link:function(a,c,m){function k(){var f=d.current&&d.current.locals,k=f&&f.$template;if(k){o.leave(c.contents(),c);l&&(l.$destroy(),l=null);k=v("<div></div>").html(k).contents();o.enter(k,c);var k=g(k),m=d.current;l=m.scope=a.$new();if(m.controller)f.$scope=
|
||||
l,f=i(m.controller,f),m.controllerAs&&(l[m.controllerAs]=f),c.children().data("$ngControllerController",f);k(l);l.$emit("$viewContentLoaded");l.$eval(n);e()}else o.leave(c.contents(),c),l&&(l.$destroy(),l=null)}var l,n=m.onload||"",o=f(a,m);a.$on("$routeChangeSuccess",k);k()}}}],ae=["$templateCache",function(a){return{restrict:"E",terminal:!0,compile:function(c,d){d.type=="text/ng-template"&&a.put(d.id,c[0].text)}}}],be=S({terminal:!0}),ce=["$compile","$parse",function(a,c){var d=/^\s*(.*?)(?:\s+as\s+(.*?))?(?:\s+group\s+by\s+(.*))?\s+for\s+(?:([\$\w][\$\w\d]*)|(?:\(\s*([\$\w][\$\w\d]*)\s*,\s*([\$\w][\$\w\d]*)\s*\)))\s+in\s+(.*?)(?:\s+track\s+by\s+(.*?))?$/,
|
||||
e={$setViewValue:q};return{restrict:"E",require:["select","?ngModel"],controller:["$element","$scope","$attrs",function(a,c,d){var h=this,j={},m=e,k;h.databound=d.ngModel;h.init=function(a,c,d){m=a;k=d};h.addOption=function(c){j[c]=!0;m.$viewValue==c&&(a.val(c),k.parent()&&k.remove())};h.removeOption=function(a){this.hasOption(a)&&(delete j[a],m.$viewValue==a&&this.renderUnknownOption(a))};h.renderUnknownOption=function(c){c="? "+la(c)+" ?";k.val(c);a.prepend(k);a.val(c);k.prop("selected",!0)};h.hasOption=
|
||||
function(a){return j.hasOwnProperty(a)};c.$on("$destroy",function(){h.renderUnknownOption=q})}],link:function(e,i,f,h){function j(a,c,d,e){d.$render=function(){var a=d.$viewValue;e.hasOption(a)?(w.parent()&&w.remove(),c.val(a),a===""&&t.prop("selected",!0)):C(a)&&t?c.val(""):e.renderUnknownOption(a)};c.bind("change",function(){a.$apply(function(){w.parent()&&w.remove();d.$setViewValue(c.val())})})}function m(a,c,d){var e;d.$render=function(){var a=new za(d.$viewValue);n(c.find("option"),function(c){c.selected=
|
||||
B(a.get(c.value))})};a.$watch(function(){ia(e,d.$viewValue)||(e=V(d.$viewValue),d.$render())});c.bind("change",function(){a.$apply(function(){var a=[];n(c.find("option"),function(c){c.selected&&a.push(c.value)});d.$setViewValue(a)})})}function k(e,f,g){function i(){var a={"":[]},c=[""],d,h,q,w,s;q=g.$modelValue;w=u(e)||[];var z=l?qb(w):w,B,y,A;y={};s=!1;var C,D;if(o)if(t&&F(q)){s=new za([]);for(h=0;h<q.length;h++)y[k]=q[h],s.put(t(e,y),q[h])}else s=new za(q);for(A=0;B=z.length,A<B;A++){y[k]=w[l?y[l]=
|
||||
z[A]:A];d=m(e,y)||"";if(!(h=a[d]))h=a[d]=[],c.push(d);o?d=s.remove(t?t(e,y):n(e,y))!=p:(t?(d={},d[k]=q,d=t(e,d)===t(e,y)):d=q===n(e,y),s=s||d);C=j(e,y);C=C===p?"":C;h.push({id:t?t(e,y):l?z[A]:A,label:C,selected:d})}o||(r||q===null?a[""].unshift({id:"",label:"",selected:!s}):s||a[""].unshift({id:"?",label:"",selected:!0}));y=0;for(z=c.length;y<z;y++){d=c[y];h=a[d];if(v.length<=y)q={element:E.clone().attr("label",d),label:h.label},w=[q],v.push(w),f.append(q.element);else if(w=v[y],q=w[0],q.label!=d)q.element.attr("label",
|
||||
q.label=d);C=null;A=0;for(B=h.length;A<B;A++)if(d=h[A],s=w[A+1]){C=s.element;if(s.label!==d.label)C.text(s.label=d.label);if(s.id!==d.id)C.val(s.id=d.id);if(s.selected!==d.selected)C.prop("selected",s.selected=d.selected)}else d.id===""&&r?D=r:(D=x.clone()).val(d.id).attr("selected",d.selected).text(d.label),w.push({element:D,label:d.label,id:d.id,selected:d.selected}),C?C.after(D):q.element.append(D),C=D;for(A++;w.length>A;)w.pop().element.remove()}for(;v.length>y;)v.pop()[0].element.remove()}var h;
|
||||
if(!(h=q.match(d)))throw Error("Expected ngOptions in form of '_select_ (as _label_)? for (_key_,)?_value_ in _collection_ (track by _expr_)?' but got '"+q+"'.");var j=c(h[2]||h[1]),k=h[4]||h[6],l=h[5],m=c(h[3]||""),n=c(h[2]?h[1]:k),u=c(h[7]),t=h[8]?c(h[8]):null,v=[[{element:f,label:""}]];r&&(a(r)(e),r.removeClass("ng-scope"),r.remove());f.html("");f.bind("change",function(){e.$apply(function(){var a,c=u(e)||[],d={},h,i,j,m,q,r;if(o){i=[];m=0;for(r=v.length;m<r;m++){a=v[m];j=1;for(q=a.length;j<q;j++)if((h=
|
||||
a[j].element)[0].selected){h=h.val();l&&(d[l]=h);if(t)for(var s=0;s<c.length;s++){if(d[k]=c[s],t(e,d)==h)break}else d[k]=c[h];i.push(n(e,d))}}}else{h=f.val();if(h=="?")i=p;else if(h=="")i=null;else if(t)for(s=0;s<c.length;s++){if(d[k]=c[s],t(e,d)==h){i=n(e,d);break}}else d[k]=c[h],l&&(d[l]=h),i=n(e,d);if(v[0].length>1&&v[0][1].id!==h)v[0][1].selected=!1}g.$setViewValue(i)})});g.$render=i;e.$watch(i)}if(h[1]){for(var l=h[0],u=h[1],o=f.multiple,q=f.ngOptions,r=!1,t,x=v(T.createElement("option")),E=
|
||||
v(T.createElement("optgroup")),w=x.clone(),h=0,A=i.children(),G=A.length;h<G;h++)if(A[h].value==""){t=r=A.eq(h);break}l.init(u,r,w);if(o&&(f.required||f.ngRequired)){var D=function(a){u.$setValidity("required",!f.required||a&&a.length);return a};u.$parsers.push(D);u.$formatters.unshift(D);f.$observe("required",function(){D(u.$viewValue)})}q?k(e,i,u):o?m(e,i,u):j(e,i,u,l)}}}}],de=["$interpolate",function(a){var c={addOption:q,removeOption:q};return{restrict:"E",priority:100,compile:function(d,e){if(C(e.value)){var g=
|
||||
a(d.text(),!0);g||e.$set("value",d.text())}return function(a,d,e){var j=d.parent(),m=j.data("$selectController")||j.parent().data("$selectController");m&&m.databound?d.prop("selected",!1):m=c;g?a.$watch(g,function(a,c){e.$set("value",a);a!==c&&m.removeOption(c);m.addOption(a)}):m.addOption(e.value);d.bind("$destroy",function(){m.removeOption(e.value)})}}}}],ee=S({restrict:"E",terminal:!0});(ga=M.jQuery)?(v=ga,t(ga.fn,{scope:Ba.scope,controller:Ba.controller,injector:Ba.injector,inheritedData:Ba.inheritedData}),
|
||||
db("remove",!0),db("empty"),db("html")):v=R;Ha.element=v;(function(a){t(a,{bootstrap:xb,copy:V,extend:t,equals:ia,element:v,forEach:n,injector:yb,noop:q,bind:$a,toJson:ha,fromJson:ub,identity:qa,isUndefined:C,isDefined:B,isString:E,isFunction:H,isObject:L,isNumber:Ya,isElement:oc,isArray:F,version:pd,isDate:ra,lowercase:I,uppercase:oa,callbacks:{counter:0},noConflict:lc});Aa=tc(M);try{Aa("ngLocale")}catch(c){Aa("ngLocale",[]).provider("$locale",fd)}Aa("ng",["ngLocale"],["$provide",function(a){a.provider("$compile",
|
||||
Jb).directive({a:rd,input:ic,textarea:ic,form:sd,script:ae,select:ce,style:ee,option:de,ngBind:Dd,ngBindHtmlUnsafe:Fd,ngBindTemplate:Ed,ngClass:Gd,ngClassEven:Id,ngClassOdd:Hd,ngCsp:Ld,ngCloak:Jd,ngController:Kd,ngForm:td,ngHide:Ud,ngIf:Nd,ngInclude:Od,ngInit:Pd,ngNonBindable:Qd,ngPluralize:Rd,ngRepeat:Sd,ngShow:Td,ngSubmit:Md,ngStyle:Vd,ngSwitch:Wd,ngSwitchWhen:Xd,ngSwitchDefault:Yd,ngOptions:be,ngView:$d,ngTransclude:Zd,ngModel:yd,ngList:Ad,ngChange:zd,required:jc,ngRequired:jc,ngValue:Cd}).directive(pb).directive(kc);
|
||||
a.provider({$anchorScroll:Cc,$animation:Ib,$animator:qd,$browser:Ec,$cacheFactory:Fc,$controller:Jc,$document:Kc,$exceptionHandler:Lc,$filter:Zb,$interpolate:Mc,$http:bd,$httpBackend:cd,$location:Nc,$log:Oc,$parse:Sc,$route:Vc,$routeParams:Wc,$rootScope:Xc,$q:Tc,$sniffer:Yc,$templateCache:Gc,$timeout:gd,$window:Zc})}])})(Ha);v(T).ready(function(){rc(T,xb)})})(window,document);angular.element(document).find("head").append('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak{display:none;}ng\\:form{display:block;}</style>');
|
||||
|
||||
@@ -31,6 +31,7 @@ angular.module("umbraco.directives")
|
||||
resize: function(e, ui) {
|
||||
var wrapper = $("#mainwrapper");
|
||||
var contentPanel = $("#contentwrapper");
|
||||
var umbNotification = $("#umb-notifications-wrapper");
|
||||
var apps = $("#applications");
|
||||
var bottomBar = contentPanel.find(".umb-bottom-bar");
|
||||
var navOffeset = $("#navOffset");
|
||||
@@ -39,6 +40,7 @@ angular.module("umbraco.directives")
|
||||
|
||||
contentPanel.css({ left: leftPanelWidth });
|
||||
bottomBar.css({ left: leftPanelWidth });
|
||||
umbNotification.css({ left: leftPanelWidth });
|
||||
|
||||
navOffeset.css({ "margin-left": ui.element.outerWidth() });
|
||||
},
|
||||
@@ -55,11 +57,13 @@ angular.module("umbraco.directives")
|
||||
if (resizeEnabled) {
|
||||
//kill the resize
|
||||
element.resizable("destroy");
|
||||
|
||||
element.css("width", "");
|
||||
|
||||
var navInnerContainer = element.find(".navigation-inner-container");
|
||||
|
||||
navInnerContainer.css("width", "");
|
||||
$("#contentwrapper").css("left", "");
|
||||
$("#umb-notifications-wrapper").css("left", "");
|
||||
$("#navOffset").css("margin-left", "");
|
||||
|
||||
resizeEnabled = false;
|
||||
|
||||
@@ -19,7 +19,7 @@ angular.module("umbraco.directives")
|
||||
var ua = window.navigator.userAgent;
|
||||
var msie = ua.indexOf("MSIE ");
|
||||
|
||||
if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) {
|
||||
if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./) || navigator.userAgent.match(/Edge\/\d+/)) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
|
||||
@@ -9,18 +9,17 @@
|
||||
<link rel="stylesheet" href="assets/css/umbraco.css" />
|
||||
</head>
|
||||
|
||||
<body ng-class="{touch:touchDevice}" ng-controller="Umbraco.MainController" id="umbracoMainPageBody">
|
||||
<body ng-class="{touch:touchDevice,emptySection:emptySection}" ng-controller="Umbraco.MainController" id="umbracoMainPageBody">
|
||||
<div ng-hide="!authenticated" ng-cloak id="mainwrapper" class="clearfix" ng-click="closeDialogs($event)">
|
||||
<umb-navigation></umb-navigation>
|
||||
|
||||
<section id="contentwrapper">
|
||||
<div id="contentcolumn">
|
||||
<div class="content-column-body" ng-view></div>
|
||||
<div id="contentcolumn" ng-view>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<umb-notifications></umb-notifications>
|
||||
|
||||
<umb-notifications></umb-notifications>
|
||||
|
||||
<script src="lib/rgrove-lazyload/lazyload.js"></script>
|
||||
<script src="js/loader.dev.js"></script>
|
||||
|
||||
@@ -47,6 +47,10 @@ body {
|
||||
margin: 0
|
||||
}
|
||||
|
||||
#umb-notifications-wrapper {
|
||||
left: 80px;
|
||||
}
|
||||
|
||||
#contentcolumn {
|
||||
left: 0px;
|
||||
}
|
||||
@@ -168,12 +172,12 @@ body {
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
.ui-resizable-e {
|
||||
cursor: e-resize;
|
||||
width: 4px;
|
||||
right: -5px;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
.ui-resizable-e {
|
||||
cursor: e-resize;
|
||||
width: 4px;
|
||||
right: -5px;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
background-color: @grayLighter;
|
||||
border: solid 1px @grayLight;
|
||||
position:absolute;
|
||||
@@ -182,12 +186,12 @@ body {
|
||||
}
|
||||
|
||||
@media (min-width: 1101px) {
|
||||
#contentwrapper {left: 440px;}
|
||||
#contentwrapper, #umb-notifications-wrapper {left: 440px;}
|
||||
#speechbubble {left: 360px;}
|
||||
}
|
||||
|
||||
//empty section modification
|
||||
.emptySection #contentwrapper {left: 80px;}
|
||||
.emptySection #contentwrapper, .emptySection #umb-notifications-wrapper {left: 80px;}
|
||||
.emptySection #speechbubble {left: 0;}
|
||||
.emptySection #navigation {display: none}
|
||||
|
||||
@@ -202,7 +206,7 @@ body {
|
||||
|
||||
|
||||
@media (max-width: 767px) {
|
||||
|
||||
|
||||
// make leftcolumn smaller on tablets
|
||||
#leftcolumn {
|
||||
width: 60px;
|
||||
@@ -219,7 +223,7 @@ body {
|
||||
#navigation {
|
||||
left: 60px;
|
||||
}
|
||||
#contentwrapper, #contentcolumn {
|
||||
#contentwrapper, #contentcolumn, #umb-notifications-wrapper {
|
||||
left: 30px;
|
||||
}
|
||||
#umbracoMainPageBody .umb-modal-left.fade.in {
|
||||
@@ -230,7 +234,7 @@ body {
|
||||
|
||||
|
||||
@media (max-width: 500px) {
|
||||
|
||||
|
||||
// make leftcolumn smaller on mobiles
|
||||
#leftcolumn {
|
||||
width: 40px;
|
||||
@@ -259,7 +263,7 @@ body {
|
||||
#navigation {
|
||||
left: 40px;
|
||||
}
|
||||
#contentwrapper, #contentcolumn {
|
||||
#contentwrapper, #contentcolumn, #umb-notifications-wrapper {
|
||||
left: 20px;
|
||||
}
|
||||
#umbracoMainPageBody .umb-modal-left.fade.in {
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.umb-button__button:active {
|
||||
.umb-button__button:focus {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
|
||||
@@ -175,6 +175,10 @@
|
||||
}
|
||||
}
|
||||
|
||||
.umb-grid .umb-cell-content.-has-editors.-collapsed {
|
||||
padding-top: 10px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.umb-grid .cell-tools {
|
||||
@@ -289,6 +293,19 @@
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.umb-control-collapsed {
|
||||
background-color: @grayLighter;
|
||||
padding: 5px 10px;
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
border-color: transparent;
|
||||
cursor: move;
|
||||
}
|
||||
|
||||
.umb-control-collapsed:hover {
|
||||
border-color: @blue;
|
||||
}
|
||||
|
||||
.umb-grid .umb-control-click-overlay {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<div class="umb-notifications" ng-cloak>
|
||||
<div class="umb-notifications" id="umb-notifications-wrapper" ng-cloak>
|
||||
<ul class="umb-notifications__notifications">
|
||||
<li ng-repeat="notification in notifications"
|
||||
class="alert alert-block alert-{{notification.type}} umb-notifications__notification animated -half-second fadeIn"
|
||||
|
||||
@@ -10,6 +10,8 @@ angular.module("umbraco")
|
||||
$scope.openRTEToolbarId = null;
|
||||
$scope.hasSettings = false;
|
||||
$scope.showRowConfigurations = true;
|
||||
$scope.sortMode = false;
|
||||
$scope.reorderKey = "general_reorder";
|
||||
|
||||
// *********************************************
|
||||
// Sortable options
|
||||
@@ -80,7 +82,7 @@ angular.module("umbraco")
|
||||
distance: 10,
|
||||
cursor: "move",
|
||||
placeholder: "ui-sortable-placeholder",
|
||||
handle: ".umb-control-bar",
|
||||
handle: ".umb-control-handle",
|
||||
helper: "clone",
|
||||
connectWith: ".umb-cell-inner",
|
||||
forcePlaceholderSize: true,
|
||||
@@ -170,12 +172,17 @@ angular.module("umbraco")
|
||||
ui.item.context.style.display = "block";
|
||||
ui.item.find(".mceNoEditor").each(function () {
|
||||
notIncludedRte = [];
|
||||
var editors = _.findWhere(tinyMCE.editors, { id: $(this).attr("id") });
|
||||
|
||||
// save the dragged RTE settings
|
||||
draggedRteSettings = _.findWhere(tinyMCE.editors, { id: $(this).attr("id") }).settings;
|
||||
if(editors) {
|
||||
draggedRteSettings = editors.settings;
|
||||
|
||||
// remove the dragged RTE
|
||||
tinyMCE.execCommand("mceRemoveEditor", false, $(this).attr("id"));
|
||||
|
||||
}
|
||||
|
||||
// remove the dragged RTE
|
||||
tinyMCE.execCommand("mceRemoveEditor", false, $(this).attr("id"));
|
||||
});
|
||||
},
|
||||
|
||||
@@ -223,6 +230,15 @@ angular.module("umbraco")
|
||||
|
||||
};
|
||||
|
||||
$scope.toggleSortMode = function() {
|
||||
$scope.sortMode = !$scope.sortMode;
|
||||
if($scope.sortMode) {
|
||||
$scope.reorderKey = "general_reorderDone";
|
||||
} else {
|
||||
$scope.reorderKey = "general_reorder";
|
||||
}
|
||||
};
|
||||
|
||||
// *********************************************
|
||||
// Add items overlay menu
|
||||
// *********************************************
|
||||
|
||||
@@ -1,4 +1,19 @@
|
||||
<div ng-controller="Umbraco.PropertyEditors.GridController" class="umb-grid umb-editor" id="umb-grid">
|
||||
<div ng-controller="Umbraco.PropertyEditors.GridController" class="umb-grid umb-editor clearfix" id="umb-grid">
|
||||
|
||||
<umb-editor-sub-header>
|
||||
|
||||
<umb-editor-sub-header-content-right>
|
||||
<umb-button
|
||||
type="button"
|
||||
icon="icon-navigation"
|
||||
button-style="link"
|
||||
label-key="{{reorderKey}}"
|
||||
action="toggleSortMode()">
|
||||
</umb-button>
|
||||
</umb-editor-sub-header-content-right>
|
||||
|
||||
</umb-editor-sub-header>
|
||||
|
||||
|
||||
<div ng-if="contentReady">
|
||||
|
||||
@@ -66,13 +81,13 @@
|
||||
<div class=".umb-grid-right">
|
||||
<div class="umb-row-title">{{row.name}}</div>
|
||||
|
||||
<div class="umb-grid-has-config" ng-if="row.hasConfig">
|
||||
<div class="umb-grid-has-config" ng-if="row.hasConfig && !sortMode">
|
||||
<localize key="grid_settingsApplied" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Row tool -->
|
||||
<div class="umb-tools row-tools" ng-show="row.active">
|
||||
<div class="umb-tools row-tools" ng-show="row.active && !sortMode">
|
||||
|
||||
<div class="cell-tools-edit row-tool" ng-if="hasSettings">
|
||||
<i class="icon icon-settings" title="@grid_settings" localize="title" ng-click="editGridItemSettings(row, 'row')"></i>
|
||||
@@ -115,8 +130,10 @@
|
||||
|
||||
<!-- Cell -->
|
||||
<div class="umb-cell-content"
|
||||
ng-class="{'-active': area.active,
|
||||
'-has-editors': area.controls.length > 0}">
|
||||
ng-class="
|
||||
{'-active': area.active,
|
||||
'-has-editors': area.controls.length > 0,
|
||||
'-collapsed': sortMode}">
|
||||
|
||||
<!-- disable drop overlay -->
|
||||
<div class="drop-overlay -disable" ng-if="area.dropNotAllowed">
|
||||
@@ -130,11 +147,11 @@
|
||||
<localize key="grid_contentAllowed" />
|
||||
</div>
|
||||
|
||||
<div class="umb-grid-has-config" ng-if="area.hasConfig">
|
||||
<div class="umb-grid-has-config" ng-if="area.hasConfig && !sortMode">
|
||||
<localize key="grid_settingsApplied" />
|
||||
</div>
|
||||
|
||||
<div class="cell-tools" ng-if="area.active">
|
||||
<div class="cell-tools" ng-if="area.active && !sortMode">
|
||||
<div class="cell-tool" ng-click="editGridItemSettings(area, 'cell')">
|
||||
<i class="icon-settings"></i>
|
||||
</div>
|
||||
@@ -144,7 +161,10 @@
|
||||
|
||||
<!-- Control placeholder -->
|
||||
<div class="umb-cell-placeholder" ng-if="area.controls.length === 0" ng-click="openEditorOverlay($event, area, 0, area.$uniqueId);">
|
||||
<div href="" class="cell-tools-add -center"><localize key="grid_addElement" /></div>
|
||||
<div class="cell-tools-add -center">
|
||||
<localize ng-if="!sortMode" key="grid_addElement" />
|
||||
<localize ng-if="sortMode" key="grid_dropElement" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- for each control in areas -->
|
||||
@@ -155,11 +175,15 @@
|
||||
on-outside-click="clickOutsideControl($index, area.controls, area)"
|
||||
bind-click-on="{{control.active}}">
|
||||
|
||||
<div class="umb-control-click-overlay" ng-show="!control.active"></div>
|
||||
<div class="umb-control-click-overlay" ng-show="!control.active && !sortMode"></div>
|
||||
|
||||
<div class="umb-control-inner">
|
||||
<div class="umb-control-collapsed umb-control-handle" ng-show="sortMode">
|
||||
{{control.editor.name}}
|
||||
</div>
|
||||
|
||||
<div class="umb-control-bar">
|
||||
<div class="umb-control-inner" ng-hide="sortMode">
|
||||
|
||||
<div class="umb-control-bar umb-control-handle">
|
||||
|
||||
<div class="umb-control-title" ng-if="control.active">
|
||||
{{control.editor.name}}
|
||||
@@ -194,7 +218,7 @@
|
||||
<!-- Controls repeat end -->
|
||||
|
||||
<!-- if area is empty tools -->
|
||||
<div class="umb-grid-add-more-content" ng-if="area.controls.length > 0">
|
||||
<div class="umb-grid-add-more-content" ng-if="area.controls.length > 0 && !sortMode">
|
||||
<div class="cell-tools-add -bar newbtn" ng-click="openEditorOverlay($event, area, 0, area.$uniqueId);">+ <localize key="grid_addElement" /></div>
|
||||
</div>
|
||||
|
||||
@@ -216,7 +240,7 @@
|
||||
<!-- row sortable end -->
|
||||
<!-- column tools -->
|
||||
|
||||
<div class="umb-add-row">
|
||||
<div class="umb-add-row" ng-if="!sortMode">
|
||||
|
||||
<a href=""
|
||||
class="iconBox"
|
||||
|
||||
@@ -363,13 +363,6 @@
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Umbraco\Controls\ContentTypeControlNew.ascx.cs">
|
||||
<DependentUpon>ContentTypeControlNew.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Umbraco\Controls\ContentTypeControlNew.ascx.designer.cs">
|
||||
<DependentUpon>ContentTypeControlNew.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Umbraco\Controls\Images\ImageViewer.ascx.cs">
|
||||
<DependentUpon>ImageViewer.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
@@ -530,13 +523,6 @@
|
||||
<Compile Include="Umbraco\Search\QuickSearch.ascx.designer.cs">
|
||||
<DependentUpon>QuickSearch.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Umbraco\Settings\EditNodeTypeNew.aspx.cs">
|
||||
<DependentUpon>EditNodeTypeNew.aspx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Umbraco\Settings\EditNodeTypeNew.aspx.designer.cs">
|
||||
<DependentUpon>EditNodeTypeNew.aspx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Umbraco\Settings\EditTemplate.aspx.cs">
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
@@ -596,7 +582,6 @@
|
||||
<Content Include="Umbraco\create.aspx" />
|
||||
<Content Include="Umbraco\Logout.aspx" />
|
||||
<Content Include="Umbraco\umbraco.aspx" />
|
||||
<Content Include="Umbraco_Client\Editors\EditContentType.js" />
|
||||
<Content Include="Umbraco_Client\IconPicker\iconpicker.js" />
|
||||
<Compile Include="Umbraco\umbraco.aspx.cs">
|
||||
<DependentUpon>umbraco.aspx</DependentUpon>
|
||||
@@ -1652,8 +1637,6 @@
|
||||
<Content Include="Umbraco\Controls\ProgressBar.ascx" />
|
||||
<Content Include="Umbraco_Client\DateTimePicker\datetimepicker.css" />
|
||||
<Content Include="Umbraco_Client\DateTimePicker\timepicker.js" />
|
||||
<Content Include="Umbraco\Controls\ContentTypeControlNew.ascx" />
|
||||
<Content Include="Umbraco\Controls\GenericProperties\GenericProperty.ascx" />
|
||||
<Content Include="Umbraco\Create\DlrScripting.ascx" />
|
||||
<Content Include="Umbraco\Images\Umbraco\developerRuby.gif" />
|
||||
<Content Include="Umbraco\Images\Umbraco\developerScript.gif" />
|
||||
@@ -2022,7 +2005,6 @@
|
||||
<SubType>UserControl</SubType>
|
||||
</Content>
|
||||
<Content Include="Umbraco\Css\background.gif" />
|
||||
<Content Include="Umbraco_Client\GenericProperty\genericproperty.css" />
|
||||
<Content Include="Umbraco\Css\splitter.gif" />
|
||||
<Content Include="Umbraco\Css\umbracoGui.css" />
|
||||
<Content Include="Umbraco\Dashboard\LatestEdits.ascx" />
|
||||
@@ -2231,7 +2213,6 @@
|
||||
<Content Include="Umbraco\Images\Umbraco\userGroup.gif" />
|
||||
<Content Include="Umbraco\Images\Umbraco\userType.gif" />
|
||||
<Content Include="Umbraco\Js\dualSelectBox.js" />
|
||||
<Content Include="Umbraco_Client\GenericProperty\genericProperty.js" />
|
||||
<Content Include="Umbraco\Js\guiFunctions.js" />
|
||||
<Content Include="Umbraco\Js\language.aspx" />
|
||||
<Content Include="Umbraco\Js\umbracoCheckKeys.js" />
|
||||
@@ -2243,12 +2224,9 @@
|
||||
<Content Include="Umbraco\Members\EditMemberGroup.aspx">
|
||||
<SubType>Form</SubType>
|
||||
</Content>
|
||||
<Content Include="Umbraco\Members\EditMemberType.aspx" />
|
||||
<Content Include="Umbraco\publishStatus.aspx" />
|
||||
<Content Include="Umbraco\Settings\EditDictionaryItem.aspx" />
|
||||
<Content Include="Umbraco\Settings\editLanguage.aspx" />
|
||||
<Content Include="Umbraco\Settings\EditMediaType.aspx" />
|
||||
<Content Include="Umbraco\Settings\EditNodeTypeNew.aspx" />
|
||||
<Content Include="Umbraco\Settings\editTemplate.aspx" />
|
||||
<Content Include="Umbraco\Settings\Modals\ShowUmbracoTags.aspx" />
|
||||
<Content Include="Umbraco\Settings\Stylesheet\editstylesheet.aspx" />
|
||||
|
||||
@@ -391,6 +391,8 @@
|
||||
<key alias="yes">Ano</key>
|
||||
<key alias="folder">Složka</key>
|
||||
<key alias="searchResults">Výsledky hledání</key>
|
||||
<key alias="reorder">Reorder</key>
|
||||
<key alias="reorderDone">I am done reordering</key>
|
||||
</area>
|
||||
<area alias="graphicheadline">
|
||||
<key alias="backgroundcolor">Background color</key>
|
||||
@@ -823,6 +825,7 @@
|
||||
<key alias="chooseLayout">Choose a layout</key>
|
||||
<key alias="addRows">Add a row</key>
|
||||
<key alias="addElement">Add content</key>
|
||||
<key alias="dropElement">Drop content</key>
|
||||
<key alias="settingsApplied">Settings applied</key>
|
||||
|
||||
<key alias="contentNotAllowed">This content is not allowed here</key>
|
||||
|
||||
819
src/Umbraco.Web.UI/Umbraco/config/lang/nb.xml
Normal file
819
src/Umbraco.Web.UI/Umbraco/config/lang/nb.xml
Normal file
@@ -0,0 +1,819 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<language alias="no" intName="Norwegian" localName="norsk" lcid="20" culture="nb-NO">
|
||||
<creator>
|
||||
<name>The Umbraco community</name>
|
||||
<link>http://our.umbraco.org/documentation/Extending-Umbraco/Language-Files</link>
|
||||
</creator>
|
||||
<area alias="actions">
|
||||
<key alias="assignDomain">Angi domene</key>
|
||||
<key alias="auditTrail">Revisjoner</key>
|
||||
<key alias="browse">Bla gjennom</key>
|
||||
<key alias="copy">Kopier</key>
|
||||
<key alias="create">CREATE</key>
|
||||
<key alias="createPackage">Opprett pakke</key>
|
||||
<key alias="delete">Slett</key>
|
||||
<key alias="disable">Deaktiver</key>
|
||||
<key alias="emptyTrashcan">Tøm papirkurv</key>
|
||||
<key alias="exportDocumentType">Eksporter dokumenttype</key>
|
||||
<key alias="importDocumentType">Importer documenttype</key>
|
||||
<key alias="importPackage">Importer pakke</key>
|
||||
<key alias="liveEdit">Rediger i Canvas</key>
|
||||
<key alias="logout">Lukk Umbraco</key>
|
||||
<key alias="move">Flytt</key>
|
||||
<key alias="notify">Varsling</key>
|
||||
<key alias="protect">Offentlig tilgang</key>
|
||||
<key alias="publish">Publiser</key>
|
||||
<key alias="refreshNode">Oppdater noder</key>
|
||||
<key alias="republish">Republiser hele siten</key>
|
||||
<key alias="rights">Rettigheter</key>
|
||||
<key alias="rollback">Reverser</key>
|
||||
<key alias="sendtopublish">Send til publisering</key>
|
||||
<key alias="sendToTranslate">Send til oversetting</key>
|
||||
<key alias="sort">Sorter</key>
|
||||
<key alias="toPublish">Send til publisering</key>
|
||||
<key alias="translate">Oversett</key>
|
||||
<key alias="update">Oppdater</key>
|
||||
<key alias="unpublish">Avpubliser</key>
|
||||
</area>
|
||||
<area alias="assignDomain">
|
||||
<key alias="addNew">Legg til domene</key>
|
||||
<key alias="domain">Domene</key>
|
||||
<key alias="domainCreated">Domene '%0%' er nå opprettet og tilknyttet siden</key>
|
||||
<key alias="domainDeleted">Domenet '%0%' er nå slettet</key>
|
||||
<key alias="domainExists">Domenet '%0%' er allerede tilknyttet</key>
|
||||
<key alias="domainHelp">Gyldige domenenavn er: "eksempel.no", "www.eksempel.no", "eksempel.no:8080" eller "https://www.eksempel.no/".<br/><br/>Stier med ett nivå støttes, f.eks. "eksempel.com/no". Imidlertid bør det unngås. Bruk heller språkinnstillingen over.</key>
|
||||
<key alias="domainUpdated">Domenet '%0%' er nå oppdatert</key>
|
||||
<key alias="orEdit">eller rediger eksisterende domener</key>
|
||||
<key alias="permissionDenied">Ingen tilgang.</key>
|
||||
<key alias="remove">Fjern</key>
|
||||
<key alias="invalidNode">Ugyldig node.</key>
|
||||
<key alias="invalidDomain">Ugyldig domeneformat.</key>
|
||||
<key alias="duplicateDomain">Domene er allerede tilknyttet.</key>
|
||||
<key alias="language">Språk</key>
|
||||
<key alias="inherit">Arv</key>
|
||||
<key alias="setLanguage">Språk</key>
|
||||
<key alias="setLanguageHelp">Sett språk for underordnede noder eller arv språk fra overordnet.<br/>Vil også gjelde denne noden, med mindre et underordnet domene også gjelder.</key>
|
||||
<key alias="setDomains">Domener</key>
|
||||
</area>
|
||||
<area alias="auditTrails">
|
||||
<key alias="atViewingFor">Viser for</key>
|
||||
</area>
|
||||
<area alias="buttons">
|
||||
<key alias="bold">Fet</key>
|
||||
<key alias="deindent">Reduser innrykk</key>
|
||||
<key alias="formFieldInsert">Sett inn skjemafelt</key>
|
||||
<key alias="graphicHeadline">Sett inn grafisk overskrift</key>
|
||||
<key alias="htmlEdit">Rediger HTML</key>
|
||||
<key alias="indent">Øk innrykk</key>
|
||||
<key alias="italic">Kursiv</key>
|
||||
<key alias="justifyCenter">Midtstill</key>
|
||||
<key alias="justifyLeft">Juster tekst venstre</key>
|
||||
<key alias="justifyRight">Juster tekst høyre</key>
|
||||
<key alias="linkInsert">Sett inn lenke</key>
|
||||
<key alias="linkLocal">Sett inn lokal lenke (anker)</key>
|
||||
<key alias="listBullet">Punktmerking</key>
|
||||
<key alias="listNumeric">Nummerering</key>
|
||||
<key alias="macroInsert">Sett inn makro</key>
|
||||
<key alias="pictureInsert">Sett inn bilde</key>
|
||||
<key alias="relations">Rediger relasjoner</key>
|
||||
<key alias="save">Lagre</key>
|
||||
<key alias="saveAndPublish">Lagre og publiser</key>
|
||||
<key alias="saveToPublish">Lagre og send til publisering</key>
|
||||
<key alias="showPage">Forhåndsvis</key>
|
||||
<key alias="styleChoose">Velg formattering</key>
|
||||
<key alias="styleShow">Vis stiler</key>
|
||||
<key alias="tableInsert">Sett inn tabell</key>
|
||||
<key alias="showPageDisabled">Forhåndsvisning er deaktivert siden det ikke er angitt noen mal</key>
|
||||
</area>
|
||||
<area alias="content">
|
||||
<key alias="about">Om siden</key>
|
||||
<key alias="alias">Alternativ lenke</key>
|
||||
<key alias="alternativeTextHelp">(hvordan du ville beskrevet bildet over telefon)</key>
|
||||
<key alias="alternativeUrls">Alternative lenker</key>
|
||||
<key alias="clickToEdit">Klikk for å redigere denne noden</key>
|
||||
<key alias="createBy">Opprettet av</key>
|
||||
<key alias="createDate">Opprettet den</key>
|
||||
<key alias="documentType">Dokumenttype</key>
|
||||
<key alias="editing">Redigerer</key>
|
||||
<key alias="expireDate">Utløpsdato</key>
|
||||
<key alias="itemChanged">Denne noden er endret siden siste publisering</key>
|
||||
<key alias="itemNotPublished">Denne noden er enda ikke publisert</key>
|
||||
<key alias="lastPublished">Sist publisert</key>
|
||||
<key alias="mediatype">Mediatype</key>
|
||||
<key alias="membergroup">Medlemsgruppe</key>
|
||||
<key alias="memberrole">Rolle</key>
|
||||
<key alias="membertype">Medlemstype</key>
|
||||
<key alias="noDate">Ingen dato valgt</key>
|
||||
<key alias="nodeName">Sidetittel</key>
|
||||
<key alias="otherElements">Egenskaper</key>
|
||||
<key alias="parentNotPublished">Dette dokumentet er publisert, men ikke synlig ettersom den overliggende siden '%0%' ikke er publisert</key>
|
||||
<key alias="publish">Publisert</key>
|
||||
<key alias="publishStatus">Publiseringsstatus</key>
|
||||
<key alias="releaseDate">Publiseringsdato</key>
|
||||
<key alias="removeDate">Fjern dato</key>
|
||||
<key alias="sortDone">Sorteringsrekkefølgen er oppdatert</key>
|
||||
<key alias="sortHelp">Trekk og slipp nodene eller klikk på kolonneoverskriftene for å sortere. Du kan velge flere noder ved å holde shift eller control tastene mens du velger.</key>
|
||||
<key alias="statistics">Statistikk</key>
|
||||
<key alias="titleOptional">Tittel (valgfri)</key>
|
||||
<key alias="type">Type</key>
|
||||
<key alias="unPublish">Avpubliser</key>
|
||||
<key alias="updateDate">Sist endret</key>
|
||||
<key alias="uploadClear">Fjern fil</key>
|
||||
<key alias="urls">Lenke til dokument</key>
|
||||
<key alias="mediaLinks">Link til media</key>
|
||||
<key alias="parentNotPublishedAnomaly">Intern feil: dokumentet er publisert men finnes ikke i hurtigbuffer</key>
|
||||
</area>
|
||||
<area alias="create">
|
||||
<key alias="chooseNode">Hvor ønsker du å oprette den nye %0%</key>
|
||||
<key alias="createUnder">Opprett under</key>
|
||||
<key alias="updateData">Velg en type og skriv en tittel</key>
|
||||
</area>
|
||||
<area alias="dashboard">
|
||||
<key alias="browser">Til ditt nettsted</key>
|
||||
<key alias="dontShowAgain">- Skjul</key>
|
||||
<key alias="nothinghappens">Hvis Umbraco ikke starter, kan det skyldes at pop-up vinduer ikke er tillatt</key>
|
||||
<key alias="openinnew">er åpnet i nytt vindu</key>
|
||||
<key alias="restart">Omstart</key>
|
||||
<key alias="visit">Besøk</key>
|
||||
<key alias="welcome">Velkommen</key>
|
||||
</area>
|
||||
<area alias="defaultdialogs">
|
||||
<key alias="anchorInsert">Navn på lokal link</key>
|
||||
<key alias="assignDomain">Rediger domener</key>
|
||||
<key alias="closeThisWindow">Lukk dette vinduet</key>
|
||||
<key alias="confirmdelete">Er du sikker på at du vil slette</key>
|
||||
<key alias="confirmdisable">Er du sikker på at du vil deaktivere</key>
|
||||
<key alias="confirmEmptyTrashcan">Vennligst kryss av i denne boksen for å bekrefte sletting av %0% element(er)</key>
|
||||
<key alias="confirmlogout">Er du sikker på at du vil forlate Umbraco?</key>
|
||||
<key alias="confirmSure">Er du sikker?</key>
|
||||
<key alias="cut">Klipp ut</key>
|
||||
<key alias="editdictionary">Rediger ordboksnøkkel</key>
|
||||
<key alias="editlanguage">Rediger språk</key>
|
||||
<key alias="insertAnchor">Sett inn lokal link</key>
|
||||
<key alias="insertCharacter">Sett inn spesialtegn</key>
|
||||
<key alias="insertgraphicheadline">Sett inn grafisk overskrift</key>
|
||||
<key alias="insertimage">Sett inn bilde</key>
|
||||
<key alias="insertlink">Sett inn lenke</key>
|
||||
<key alias="insertMacro">Sett inn makro</key>
|
||||
<key alias="inserttable">Sett inn tabell</key>
|
||||
<key alias="lastEdited">Sist redigert</key>
|
||||
<key alias="link">Lenke</key>
|
||||
<key alias="linkinternal">Intern link:</key>
|
||||
<key alias="linklocaltip">Ved lokal link, sett inn "#" foran link</key>
|
||||
<key alias="linknewwindow">Åpne i nytt vindu?</key>
|
||||
<key alias="macroContainerSettings">Makroinnstillinger</key>
|
||||
<key alias="macroDoesNotHaveProperties">Denne makroen har ingen egenskaper du kan endre</key>
|
||||
<key alias="paste">Lim inn</key>
|
||||
<key alias="permissionsEdit">Endre rettigheter for</key>
|
||||
<key alias="recycleBinDeleting">Innholdet i papirkurven blir nå slettet. Vennligst ikke lukk dette vinduet mens denne operasjonen foregår</key>
|
||||
<key alias="recycleBinIsEmpty">Papirkurven er nå tom</key>
|
||||
<key alias="recycleBinWarning">Når elementer blir slettet fra papirkurven vil de være slettet for alltid</key>
|
||||
<key alias="regexSearchError"><a target='_blank' href='http://regexlib.com'>regexlib.com</a> tjenesten opplever for tiden problemer som vi ikke har kontroll over. Vi beklager denne ubeleiligheten.</key>
|
||||
<key alias="regexSearchHelp">Søk etter et regulært uttrykk for å legge inn validering til et felt. Eksempel: 'email, 'zip-code' 'url'</key>
|
||||
<key alias="removeMacro">Fjern makro</key>
|
||||
<key alias="requiredField">Obligatorisk</key>
|
||||
<key alias="sitereindexed">Nettstedet er indeksert</key>
|
||||
<key alias="siterepublished">Hurtigbufferen er blitt oppdatert. Alt publisert innhold er nå à jour. Alt upublisert innhold er fortsatt ikke publisert.</key>
|
||||
<key alias="siterepublishHelp">Hurtigbufferen for siden vil bli oppdatert. Alt publisert innhold vil bli oppdatert, mens upublisert innhold vil forbli upublisert.</key>
|
||||
<key alias="tableColumns">Antall kolonner</key>
|
||||
<key alias="tableRows">Antall rader</key>
|
||||
<key alias="templateContentAreaHelp"><strong>Sett en plassholder-ID</strong><br/>Ved å sette en ID på plassholderen kan du legge inn innhold i denne malen fra underliggende maler, ved å referere denne ID'en ved hjelp av et <code>&lt;asp:content /&gt;</code> element.</key>
|
||||
<key alias="templateContentPlaceHolderHelp"><strong>Velg en plassholder ID</strong> fra listen under. Du kan bare velge ID'er fra den gjeldende malens overordnede mal.</key>
|
||||
<key alias="thumbnailimageclickfororiginal">Klikk på bildet for å se det i full størrelse</key>
|
||||
<key alias="treepicker">Velg punkt</key>
|
||||
<key alias="viewCacheItem">Se buffret node</key>
|
||||
</area>
|
||||
<area alias="dictionaryItem">
|
||||
<key alias="description">Rediger de forskjellige språkversjonene for ordbokelementet '<em>%0%</em>' under.<br/>Du kan legge til flere språk under 'språk' i menyen til venstre.</key>
|
||||
<key alias="displayName">Språk</key>
|
||||
</area>
|
||||
<area alias="editcontenttype">
|
||||
<key alias="allowedchildnodetypes">Tillatte underordnede noder</key>
|
||||
<key alias="create">Opprett</key>
|
||||
<key alias="deletetab">Slett arkfane</key>
|
||||
<key alias="description">Beskrivelse</key>
|
||||
<key alias="newtab">Ny arkfane</key>
|
||||
<key alias="tab">Arkfane</key>
|
||||
<key alias="thumbnail">Miniatyrbilde</key>
|
||||
</area>
|
||||
<area alias="editdatatype">
|
||||
<key alias="addPrevalue">Legg til forhåndsverdi</key>
|
||||
<key alias="dataBaseDatatype">Database datatype</key>
|
||||
<key alias="guid">Kontrollelement GUID</key>
|
||||
<key alias="renderControl">Kontrollelement</key>
|
||||
<key alias="rteButtons">Knapper</key>
|
||||
<key alias="rteEnableAdvancedSettings">Aktiver avanserte instillinger for</key>
|
||||
<key alias="rteEnableContextMenu">Aktiver kontektsmeny</key>
|
||||
<key alias="rteMaximumDefaultImgSize">Maksimum standard størrelse på innsatte bilder</key>
|
||||
<key alias="rteRelatedStylesheets">Beslektede stilark</key>
|
||||
<key alias="rteShowLabel">Vis etikett</key>
|
||||
<key alias="rteWidthAndHeight">Bredde og høyde</key>
|
||||
</area>
|
||||
<area alias="errorHandling">
|
||||
<key alias="errorButDataWasSaved">Dine data har blitt lagret, men før du kan publisere denne siden må du rette noen feil:</key>
|
||||
<key alias="errorChangingProviderPassword">Den gjeldende Membership Provider støtter ikke endring av passord. (EnablePasswordRetrieval må være satt til sann)</key>
|
||||
<key alias="errorExistsWithoutTab">%0% finnes allerede</key>
|
||||
<key alias="errorHeader">Det var feil i dokumentet:</key>
|
||||
<key alias="errorHeaderWithoutTab">Det var feil i skjemaet:</key>
|
||||
<key alias="errorInPasswordFormat">Passordet bør være minst %0% tegn og inneholde minst %1% numeriske tegn</key>
|
||||
<key alias="errorIntegerWithoutTab">%0% må være et heltall</key>
|
||||
<key alias="errorMandatory">%0% under %1% er obligatorisk</key>
|
||||
<key alias="errorMandatoryWithoutTab">%0% er obligatorisk</key>
|
||||
<key alias="errorRegExp">%0% under %1% er ikke i et korrekt format</key>
|
||||
<key alias="errorRegExpWithoutTab">%0% er ikke i et korrekt format</key>
|
||||
</area>
|
||||
<area alias="errors">
|
||||
<key alias="codemirroriewarning">NB! Selv om CodeMirror er aktivert i konfigurasjon er det deaktivert i Internet Explorer pga. ustabilitet.</key>
|
||||
<key alias="contentTypeAliasAndNameNotNull">Fyll ut både alias og navn på den nye egenskapstypen!</key>
|
||||
<key alias="filePermissionsError">Det er et problem med lese/skrive rettighetene til en fil eller mappe</key>
|
||||
<key alias="missingTitle">Tittel mangler</key>
|
||||
<key alias="missingType">Type mangler</key>
|
||||
<key alias="pictureResizeBiggerThanOrg">Du er i ferd med å gjøre bildet større enn originalen. Det vil forringe kvaliteten på bildet, ønsker du å fortsette?</key>
|
||||
<key alias="pythonErrorHeader">Feil i python-skriptet</key>
|
||||
<key alias="pythonErrorText">Python-skriptet ble ikke lagret fordi det inneholder en eller flere feil</key>
|
||||
<key alias="startNodeDoesNotExists">Startnode er slettet. Kontakt din administrator</key>
|
||||
<key alias="stylesMustMarkBeforeSelect">Du må markere innhold før du kan endre stil</key>
|
||||
<key alias="stylesNoStylesOnPage">Det er ingen aktive stiler eller formateringer på denne siden</key>
|
||||
<key alias="tableColMergeLeft">Sett markøren til venstre i de 2 cellene du ønsker å slå sammen</key>
|
||||
<key alias="tableSplitNotSplittable">Du kan ikke dele en celle som allerede er delt.</key>
|
||||
<key alias="xsltErrorHeader">Feil i XSLT kode</key>
|
||||
<key alias="xsltErrorText">XSLT ble ikke lagret på grunn av feil i koden</key>
|
||||
<key alias="dissallowedMediaType">Filtypen er deaktivert av administrator</key>
|
||||
</area>
|
||||
<area alias="general">
|
||||
<key alias="about">Om</key>
|
||||
<key alias="action">Handling</key>
|
||||
<key alias="add">Legg til</key>
|
||||
<key alias="alias">Alias</key>
|
||||
<key alias="areyousure">Er du sikker?</key>
|
||||
<key alias="border">Ramme</key>
|
||||
<key alias="by">eller</key>
|
||||
<key alias="cancel">Avbryt</key>
|
||||
<key alias="cellMargin">Cellemargin</key>
|
||||
<key alias="choose">Velg</key>
|
||||
<key alias="close">Lukk</key>
|
||||
<key alias="closewindow">Lukk vindu</key>
|
||||
<key alias="comment">Kommentar</key>
|
||||
<key alias="confirm">Bekreft</key>
|
||||
<key alias="constrainProportions">Behold proposjoner</key>
|
||||
<key alias="continue">Fortsett</key>
|
||||
<key alias="copy">Kopier</key>
|
||||
<key alias="create">Opprett</key>
|
||||
<key alias="database">Database</key>
|
||||
<key alias="date">Dato</key>
|
||||
<key alias="default">Standard</key>
|
||||
<key alias="delete">Slett</key>
|
||||
<key alias="deleted">Slettet</key>
|
||||
<key alias="deleting">Sletter...</key>
|
||||
<key alias="design">Design</key>
|
||||
<key alias="dimensions">Dimensjoner</key>
|
||||
<key alias="down">Ned</key>
|
||||
<key alias="download">Last ned</key>
|
||||
<key alias="edit">Rediger</key>
|
||||
<key alias="edited">Endret</key>
|
||||
<key alias="elements">Elementer</key>
|
||||
<key alias="email">E-post</key>
|
||||
<key alias="error">Feil</key>
|
||||
<key alias="findDocument">Finn</key>
|
||||
<key alias="height">Høyde</key>
|
||||
<key alias="help">Hjelp</key>
|
||||
<key alias="icon">Ikon</key>
|
||||
<key alias="import">Importer</key>
|
||||
<key alias="innerMargin">Indre margin</key>
|
||||
<key alias="insert">Sett inn</key>
|
||||
<key alias="install">Installer</key>
|
||||
<key alias="justify">Justering</key>
|
||||
<key alias="language">Språk</key>
|
||||
<key alias="layout">Layout</key>
|
||||
<key alias="loading">Laster</key>
|
||||
<key alias="locked">Låst</key>
|
||||
<key alias="login">Logg inn</key>
|
||||
<key alias="logoff">Logg ut</key>
|
||||
<key alias="logout">Logg ut</key>
|
||||
<key alias="macro">Makro</key>
|
||||
<key alias="move">Flytt</key>
|
||||
<key alias="name">Navn</key>
|
||||
<key alias="new">Ny</key>
|
||||
<key alias="next">Neste</key>
|
||||
<key alias="no">Nei</key>
|
||||
<key alias="of">av</key>
|
||||
<key alias="ok">OK</key>
|
||||
<key alias="open">Åpne</key>
|
||||
<key alias="or">eller</key>
|
||||
<key alias="password">Passord</key>
|
||||
<key alias="path">Sti</key>
|
||||
<key alias="placeHolderID">Plassholder ID</key>
|
||||
<key alias="pleasewait">Ett øyeblikk...</key>
|
||||
<key alias="previous">Forrige</key>
|
||||
<key alias="properties">Egenskaper</key>
|
||||
<key alias="reciept">E-post som innholdet i skjemaet skal sendes til</key>
|
||||
<key alias="recycleBin">Papirkurv</key>
|
||||
<key alias="remaining">Gjenværende</key>
|
||||
<key alias="rename">Gi nytt navn</key>
|
||||
<key alias="renew">Forny</key>
|
||||
<key alias="retry">Prøv igjen</key>
|
||||
<key alias="rights">Rettigheter</key>
|
||||
<key alias="search">Søk</key>
|
||||
<key alias="server">Server</key>
|
||||
<key alias="show">Vis</key>
|
||||
<key alias="showPageOnSend">Hvilken side skal vises etter at skjemaet er sendt</key>
|
||||
<key alias="size">Størrelse</key>
|
||||
<key alias="sort">Sorter</key>
|
||||
<key alias="type">Type</key>
|
||||
<key alias="typeToSearch">Søk...</key>
|
||||
<key alias="up">Opp</key>
|
||||
<key alias="update">Oppdater</key>
|
||||
<key alias="upgrade">Oppgrader</key>
|
||||
<key alias="upload">Last opp</key>
|
||||
<key alias="url">Url</key>
|
||||
<key alias="user">Bruker</key>
|
||||
<key alias="username">Brukernavn</key>
|
||||
<key alias="value">Verdi</key>
|
||||
<key alias="view">Visning</key>
|
||||
<key alias="welcome">Velkommen...</key>
|
||||
<key alias="width">Bredde</key>
|
||||
<key alias="yes">Ja</key>
|
||||
<key alias="folder">Mappe</key>
|
||||
</area>
|
||||
<area alias="graphicheadline">
|
||||
<key alias="backgroundcolor">Bakgrunnsfarge</key>
|
||||
<key alias="bold">Fet</key>
|
||||
<key alias="color">Tekstfarge</key>
|
||||
<key alias="font">Skrifttype</key>
|
||||
<key alias="text">Tekst</key>
|
||||
</area>
|
||||
<area alias="headers">
|
||||
<key alias="page">Side</key>
|
||||
</area>
|
||||
<area alias="installer">
|
||||
<key alias="databaseErrorCannotConnect">Installasjonsprogrammet kan ikke koble til databasen</key>
|
||||
<key alias="databaseErrorWebConfig">Kunne ikke lagre Web.Config-filen. Vennligst endre databasens tilkoblingsstreng manuelt. </key>
|
||||
<key alias="databaseFound">Din database er funnet og identifisert som</key>
|
||||
<key alias="databaseHeader">Databasekonfigurasjon</key>
|
||||
<key alias="databaseInstall">Klikk <strong>installer</strong>-knappen for å installere Umbraco %0% databasen</key>
|
||||
<key alias="databaseInstallDone">Umbraco %0% har nå blitt kopiert til din database. Trykk <strong>Neste</strong> for å fortsette.</key>
|
||||
<key alias="databaseNotFound"><p>Databasen ble ikke funnet! Vennligst sjekk at informasjonen i "connection string" i "web.config"-filen er korrekt.</p><p>For å fortsette, vennligst rediger "web.config"-filen (bruk Visual Studio eller din favoritteditor), rull ned til bunnen, og legg til tilkoblingsstrengen for din database i nøkkelen "umbracoDbDSN" og lagre filen.</p><p>Klikk <strong>prøv på nytt</strong> når du er ferdig.<br /> <a href="http://our.umbraco.org/documentation/Using-Umbraco/Config-files/webconfig7" target="_blank">Mer informasjon om redigering av web.config her.</a></p></key>
|
||||
<key alias="databaseText">For å fullføre dette steget, må du vite en del informasjon om din database server ("tilkoblingsstreng").<br/> Vennligst kontakt din ISP om nødvendig. Hvis du installerer på en lokal maskin eller server, må du kanskje skaffe informasjonen fra din systemadministrator.</key>
|
||||
<key alias="databaseUpgrade"><p> Trykk på knappen <strong>oppgrader</strong> for å oppgradere databasen din til Umbraco %0%</p> <p> Ikke vær urolig - intet innhold vil bli slettet og alt vil fortsette å virke etterpå! </p></key>
|
||||
<key alias="databaseUpgradeDone">Databasen din har blitt oppgradert til den siste utgaven, %0%.<br/>Trykk <strong>Neste</strong> for å fortsette.</key>
|
||||
<key alias="databaseUpToDate">Databasen din er av nyeste versjon! Klikk <strong>neste</strong> for å fortsette konfigurasjonsveiviseren</key>
|
||||
<key alias="defaultUserChangePass"><strong>Passordet til standardbrukeren må endres!</key>
|
||||
<key alias="defaultUserDisabled"><strong>Standardbrukeren har blitt deaktivert eller har ingen tilgang til Umbraco!</strong></p><p>Ingen videre handling er nødvendig. Klikk <b>neste</b> for å fortsette.</key>
|
||||
<key alias="defaultUserPassChanged"><strong>Passordet til standardbrukeren har blitt forandret etter installasjonen!</strong></p><p>Ingen videre handling er nødvendig. Klikk <strong>Neste</strong> for å fortsette.</key>
|
||||
<key alias="defaultUserPasswordChanged">Passordet er blitt endret!</key>
|
||||
<key alias="defaultUserText"><p> Umbraco skaper en standard bruker med login <strong> ( "admin") </ strong> og passord <strong> ( "default") </ strong>. Det er <strong> viktig </ strong> at passordet er endret til noe unikt. </ p> <p> Dette trinnet vil sjekke standard brukerens passord og foreslår hvis det må skiftes </ p></key>
|
||||
<key alias="greatStart">Få en god start med våre introduksjonsvideoer</key>
|
||||
<key alias="licenseText">Ved å klikke på Neste-knappen (eller endre UmbracoConfigurationStatus i Web.config), godtar du lisensen for denne programvaren som angitt i boksen nedenfor. Legg merke til at denne Umbraco distribusjon består av to ulike lisenser, åpen kilde MIT lisens for rammen og Umbraco frivareverktøy lisens som dekker brukergrensesnittet.</key>
|
||||
<key alias="None">Ikke installert.</key>
|
||||
<key alias="permissionsAffectedFolders">Berørte filer og mapper</key>
|
||||
<key alias="permissionsAffectedFoldersMoreInfo">Mer informasjon om å sette opp rettigheter for Umbraco her</key>
|
||||
<key alias="permissionsAffectedFoldersText">Du må gi ASP.NET brukeren rettigheter til å endre de følgende filer og mapper</key>
|
||||
<key alias="permissionsAlmostPerfect"><strong>Rettighetene er nesten perfekt satt opp!</strong><br/><br/> Du kan kjøre Umbraco uten problemer, men du vil ikke være i stand til å installere de anbefalte pakkene for å utnytte Umbraco fullt ut.</key>
|
||||
<key alias="permissionsHowtoResolve">Hvordan løse problemet</key>
|
||||
<key alias="permissionsHowtoResolveLink">Klikk her for å lese tekstversjonen</key>
|
||||
<key alias="permissionsHowtoResolveText">Se vår <strong>innføringsvideo</strong> om å sette opp rettigheter for Umbraco eller les tekstversjonen.</key>
|
||||
<key alias="permissionsMaybeAnIssue"><strong>Rettighetsinnstillingene kan være et problem!</strong><br/><br/> Du kan kjøre Umbraco uten problemer, men du vil ikke være i stand til å installere de anbefalte pakkene for å utnytte Umbraco fullt ut.</key>
|
||||
<key alias="permissionsNotReady"><strong>Rettighetsinstillingene er ikke klargjort for Umbraco!</strong><br/><br/> For å kunne kjøre Umbraco, må du oppdatere rettighetsinnstillingene dine.</key>
|
||||
<key alias="permissionsPerfect"><strong>Rettighetsinnstillingene er perfekt!</strong><br/><br/>Du er klar for å kjøre Umbraco og installere pakker!</key>
|
||||
<key alias="permissionsResolveFolderIssues">Løser mappeproblem</key>
|
||||
<key alias="permissionsResolveFolderIssuesLink">Følg denne linken for mer informasjon om problemer med ASP.NET og oppretting av mapper</key>
|
||||
<key alias="permissionsSettingUpPermissions">Konfigurerer mappetillatelser</key>
|
||||
<key alias="permissionsText">Umbraco trenger skrive/endre tilgang til enkelte mapper for å kunne lagre filer som bilder og PDF-dokumenter. Den lagrer også midlertidig data (aka: hurtiglager) for å øke ytelsen på websiden din.</key>
|
||||
<key alias="runwayFromScratch">Jeg ønsker å starte fra bunnen.</key>
|
||||
<key alias="runwayFromScratchText">Din website er helt tom for øyeblikket. Dette er perfekt hvis du vil begynne helt forfra og lage dine egne dokumenttyper og maler. (<a href="http://Umbraco.tv/documentation/videos/for-site-builders/foundation/document-types">lær hvordan</a>) Du kan fortsatt velge å installere Runway senere. Vennligst gå til Utvikler-seksjonen og velg Pakker.</key>
|
||||
<key alias="runwayHeader">Du har akkurat satt opp en ren Umbraco plattform. Hva vil du gjøre nå?</key>
|
||||
<key alias="runwayInstalled">Runway er installert</key>
|
||||
<key alias="runwayInstalledText">Du har nå fundamentet på plass. Velg hvilke moduler du ønsker å installer på toppen av det.<br/> Dette er vår liste av anbefalte moduler- Kryss av de du ønsker å installere, eller se den<a href="#" onclick="toggleModules(); return false;" id="toggleModuleList">fulle listen av moduler</a> </key>
|
||||
<key alias="runwayOnlyProUsers">Bare anbefalt for erfarne brukere</key>
|
||||
<key alias="runwaySimpleSite">Jeg vil starte med en enkel webside</key>
|
||||
<key alias="runwaySimpleSiteText"><p> "Runway" er en enkel webside som utstyrer deg med noen grunnleggende dokumenttyper og maler. Veiviseren kan sette opp Runway for deg automatisk, men du kan enkelt endre, utvide eller slette den. Runway er ikke nødvendig, og du kan enkelt bruke Umbraco uten den. Imidlertidig tilbyr Runway et enkelt fundament basert på de beste metodene for å hjelpe deg i gang fortere enn noensinne. Hvis du velger å installere Runway, kan du også velge blant grunnleggende byggeklosser kalt Runway Moduler for å forøke dine Runway-sider. </p> <small> <em>Sider inkludert i Runway:</em> Hjemmeside, Komme-i-gang, Installere moduler.<br /> <em>Valgfrie Moduler:</em> Toppnavigasjon, Sidekart, Kontakt, Galleri. </small> </key>
|
||||
<key alias="runwayWhatIsRunway">Hva er Runway</key>
|
||||
<key alias="step1">Steg 1/5 Godta lisens</key>
|
||||
<key alias="step2">Steg 2/5 Database konfigurasjon</key>
|
||||
<key alias="step3">Steg 3/5: Valider filrettigheter</key>
|
||||
<key alias="step4">Steg 4/5: Skjekk Umbraco sikkerheten</key>
|
||||
<key alias="step5">Steg 5/5: Umbraco er klar for deg til å starte!</key>
|
||||
<key alias="thankYou">Tusen takk for at du valgte Umbraco!</key>
|
||||
<key alias="theEndBrowseSite"><h3>Se ditt nye nettsted</h3> Du har installert Runway, hvorfor ikke se hvordan ditt nettsted ser ut.</key>
|
||||
<key alias="theEndFurtherHelp"><h3>Mer hjelp og info</h3> Få hjelp fra vårt prisbelønte samfunn, bla gjennom dokumentasjonen eller se noen gratis videoer på hvordan man bygger et enkelt nettsted, hvordan bruke pakker og en rask guide til Umbraco terminologi</key>
|
||||
<key alias="theEndHeader">Umbraco %0% er installert og klar til bruk</key>
|
||||
<key alias="theEndInstallFailed">For å fullføre installasjonen, må du manuelt endre <strong>web.config</strong> filen, og oppdatere AppSetting-nøkkelen <strong>UmbracoConfigurationStatus</strong> til verdien <strong>'%0%'</strong></key>
|
||||
<key alias="theEndInstallSuccess">Du kan <strong>starte øyeblikkelig</strong> ved å klikke på "Start Umbraco" knappen nedenfor. <br/>Hvis du er <strong>ny på Umbraco</strong>, kan du finne mange ressurser på våre komme-i-gang sider.</key>
|
||||
<key alias="theEndOpenUmbraco"><h3>Start Umbraco</h3> For å administrere din webside, åpne Umbraco og begynn å legge til innhold, oppdatere maler og stilark eller utvide funksjonaliteten</key>
|
||||
<key alias="Unavailable">Tilkobling til databasen mislyktes.</key>
|
||||
<key alias="Version3">Umbraco Versjon 3</key>
|
||||
<key alias="Version4">Umbraco Versjon 4</key>
|
||||
<key alias="watch">Pass på</key>
|
||||
<key alias="welcomeIntro">Denne veiviseren vil hjelpe deg gjennom prosessen med å konfigurere <strong>Umbraco %0%</strong> for en ny installasjon eller oppgradering fra versjon 3.0. <br/><br/> Trykk <strong>"neste"</strong> for å starte veiviseren.</key>
|
||||
</area>
|
||||
<area alias="language">
|
||||
<key alias="cultureCode">Språkkode</key>
|
||||
<key alias="displayName">Språk</key>
|
||||
</area>
|
||||
<area alias="lockout">
|
||||
<key alias="lockoutWillOccur">Du har vært inaktiv og vil logges ut automatisk om</key>
|
||||
<key alias="renewSession">Forny innlogging for å lagre</key>
|
||||
</area>
|
||||
<area alias="login">
|
||||
<key alias="bottomText"><p style="text-align:right;">&copy; 2001 - %0% <br /><a href="http://umbraco.com" style="text-decoration: none" target="_blank">umbraco.org</a></p> </key>
|
||||
<key alias="topText">Velkommen til Umbraco, skriv inn ditt brukernavn og passord i feltene under:</key>
|
||||
</area>
|
||||
<area alias="main">
|
||||
<key alias="dashboard">Skrivebord</key>
|
||||
<key alias="sections">Seksjoner</key>
|
||||
<key alias="tree">Innhold</key>
|
||||
</area>
|
||||
<area alias="moveOrCopy">
|
||||
<key alias="choose">Velg side over...</key>
|
||||
<key alias="copyDone">%0% er nå kopiert til %1%</key>
|
||||
<key alias="copyTo">Kopier til</key>
|
||||
<key alias="moveDone">%0% er nå flyttet til %1%</key>
|
||||
<key alias="moveTo">Flytt til</key>
|
||||
<key alias="nodeSelected">har blitt valgt som rot til ditt nye innhold, klikk 'ok' nedenfor.</key>
|
||||
<key alias="noNodeSelected">Ingen node er valgt, vennligst velg en node i listen over før du klikker 'fortsett'</key>
|
||||
<key alias="notAllowedByContentType">Gjeldende nodes type tillates ikke under valgt node</key>
|
||||
<key alias="notAllowedByPath">Gjeldende node kan ikke legges under en underordnet node</key>
|
||||
<key alias="notValid">Handlingen tillates ikke. Du mangler tilgang til en eller flere underordnede noder.</key>
|
||||
<key alias="relateToOriginal">Relater kopierte elementer til original(e)</key>
|
||||
</area>
|
||||
<area alias="notifications">
|
||||
<key alias="editNotifications">Rediger dine varsler for %0%</key>
|
||||
<key alias="mailBody">
|
||||
Hei %0%
|
||||
|
||||
Dette er en automatisk mail for å informere om at handlingen '%1%'
|
||||
er utført på siden '%2%'
|
||||
av brukeren '%3%'
|
||||
|
||||
Gå til http://%4%/Umbraco/default.aspx?section=content&id=%5% for å redigere.
|
||||
|
||||
Ha en fin dag!
|
||||
|
||||
Vennlig hilsen Umbraco roboten
|
||||
</key>
|
||||
<key alias="mailBodyHtml"><p>Hei %0%</p>
|
||||
|
||||
<p>Dette er en automatisk mail for å informere om at handlingen '%1%'
|
||||
er blitt utført på siden <a href="http://%4%/actions/preview.aspx?id=%5%"><strong>'%2%'</strong></a>
|
||||
av brukeren <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%/Umbraco/actions/editContent.aspx?id=%5%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;REDIGER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</a> &nbsp;
|
||||
<br />
|
||||
</div>
|
||||
<p>
|
||||
<h3>Rettelser:</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: #5372c3; text-decoration : none; margin-right: 20px; border: 8px solid #5372c3; width: 150px;" href="http://%4%/Umbraco/actions/editContent.aspx?id=%5%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;REDIGER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</a> &nbsp;
|
||||
<br />
|
||||
</div>
|
||||
|
||||
<p>Ha en fin dag!<br /><br />
|
||||
Vennlig hilsen Umbraco roboten
|
||||
</p></key>
|
||||
<key alias="mailSubject">[%0%] Varsling om %1% utført på %2%</key>
|
||||
<key alias="notifications">Varsling</key>
|
||||
</area>
|
||||
<area alias="packager">
|
||||
<key alias="chooseLocalPackageText">Klikke browse og velg pakke fra lokal disk. Umbraco-pakker har vanligvis endelsen ".umb" eller ".zip".</key>
|
||||
<key alias="packageAuthor">Utvikler</key>
|
||||
<key alias="packageDemonstration">Demonstrasjon</key>
|
||||
<key alias="packageDocumentation">Dokumentasjon</key>
|
||||
<key alias="packageMetaData">Metadata</key>
|
||||
<key alias="packageName">Pakkenavn</key>
|
||||
<key alias="packageNoItemsHeader">Pakken inneholder ingen elementer</key>
|
||||
<key alias="packageNoItemsText">Denne pakkefilen inneholder ingen elementer å avinstallere.<br/><br/>Du kan trygt fjerne pakken fra systemet ved å klikke "avinstaller pakke" nedenfor.</key>
|
||||
<key alias="packageNoUpgrades">Ingen oppdateringer tilgjengelig</key>
|
||||
<key alias="packageOptions">Alternativer for pakke</key>
|
||||
<key alias="packageReadme">Lesmeg for pakke</key>
|
||||
<key alias="packageRepository">Pakkebrønn</key>
|
||||
<key alias="packageUninstallConfirm">Bekreft avinstallering</key>
|
||||
<key alias="packageUninstalledHeader">Pakken ble avinstallert</key>
|
||||
<key alias="packageUninstalledText">Pakken ble vellykket avinstallert</key>
|
||||
<key alias="packageUninstallHeader">Avinstaller pakke</key>
|
||||
<key alias="packageUninstallText">Du kan velge bort elementer du ikke vil slette på dette tidspunkt, nedenfor. Når du klikker "bekreft avinstallering" vil alle elementer som er krysset av bli slettet.<br/> <span style="color:red;font-weight:bold;">Advarsel:</span> alle dokumenter, media, etc. som som er avhengig av elementene du sletter, vil slutte å virke, noe som kan føre til ustabilitet, så avinstaller med forsiktighet. Hvis du er i tvil, kontakt pakkeutvikleren.</key>
|
||||
<key alias="packageUpgradeDownload">Last ned oppdatering fra pakkeregisteret</key>
|
||||
<key alias="packageUpgradeHeader">Oppgrader pakke</key>
|
||||
<key alias="packageUpgradeInstructions">Oppgraderingsinstrukser</key>
|
||||
<key alias="packageUpgradeText">Det er en oppdatering tilgjengelig for denne pakken. Du kan laste den ned direkte fra pakkebrønnen.</key>
|
||||
<key alias="packageVersion">Pakkeversjon</key>
|
||||
<key alias="viewPackageWebsite">Se pakkens nettsted</key>
|
||||
</area>
|
||||
<area alias="paste">
|
||||
<key alias="doNothing">Lim inn med full formattering (Anbefales ikke)</key>
|
||||
<key alias="errorMessage">Teksten du er i ferd med å lime inn, inneholder spesialtegn eller formattering. Dette kan skyldes at du kopierer fra f.eks. Microsoft Word. Umbraco kan fjerne denne spesialformatteringen automatisk slik at innholdet er mer velegnet for visning på en webside.</key>
|
||||
<key alias="removeAll">Lim inn som ren tekst, dvs. fjern al formattering</key>
|
||||
<key alias="removeSpecialFormattering">Lim inn og fjern uegnet formatering (anbefalt)</key>
|
||||
</area>
|
||||
<area alias="publicAccess">
|
||||
<key alias="paAdvanced">Avansert: Beskytt ved å velge hvilke brukergrupper som har tilgang til siden</key>
|
||||
<key alias="paAdvancedHelp">Om du ønsker å kontrollere tilgang til siden ved å bruke rolle-basert autentisering,<br /> ved å bruke Umbraco's medlems-grupper</key>
|
||||
<key alias="paAdvancedNoGroups">Du må opprette en medlemsgruppe før du kan bruke <br /> rollebasert autentikasjon.</key>
|
||||
<key alias="paErrorPage">Feilside</key>
|
||||
<key alias="paErrorPageHelp">Brukt når personer logger på, men ikke har tilgang</key>
|
||||
<key alias="paHowWould">Hvordan vil du beskytte siden din?</key>
|
||||
<key alias="paIsProtected">%0% er nå beskyttet</key>
|
||||
<key alias="paIsRemoved">Beskyttelse fjernet fra %0%</key>
|
||||
<key alias="paLoginPage">Innloggingsside</key>
|
||||
<key alias="paLoginPageHelp">Velg siden som har loginformularet</key>
|
||||
<key alias="paRemoveProtection">Fjern beskyttelse</key>
|
||||
<key alias="paSelectPages">Velg sidene som inneholder login-skjema og feilmelding ved feil innolgging.</key>
|
||||
<key alias="paSelectRoles">Velg rollene som har tilgang til denne siden</key>
|
||||
<key alias="paSetLogin">Sett brukernavn og passord for denne siden</key>
|
||||
<key alias="paSimple">Enkelt: Beskytt ved hjelp av brukernavn og passord</key>
|
||||
<key alias="paSimpleHelp">Om du ønsker å bruke enkel autentisering via ett enkelt brukernavn og passord</key>
|
||||
</area>
|
||||
<area alias="publish">
|
||||
<key alias="contentPublishedFailedByEvent">%0% kunne ikke publiseres fordi et tredjepartstillegg avbrøt handlingen.</key>
|
||||
<key alias="includeUnpublished">Inkluder upubliserte undersider</key>
|
||||
<key alias="inProgress">Publiserer - vennligst vent...</key>
|
||||
<key alias="inProgressCounter">%0% av %1% sider har blitt publisert...</key>
|
||||
<key alias="nodePublish">%0% er nå publisert</key>
|
||||
<key alias="nodePublishAll">%0% og alle undersider er nå publisert</key>
|
||||
<key alias="publishAll">Publiser alle undersider</key>
|
||||
<key alias="publishHelp">Klikk <em>ok</em> for å publisere <strong>%0%</strong> og dermed gjøre innholdet synlig for alle.<br/><br />Du kan publisere denne siden og alle dens undersider ved å krysse av <em>Publiser alle undersider</em> nedenfor.</key>
|
||||
<key alias="contentPublishedFailedInvalid">%0% ble ikke publisert. Ett eller flere felter ble ikke godkjent av validering.</key>
|
||||
<key alias="contentPublishedFailedByParent">%0% kan ikke publiseres fordi en overordnet side ikke er publisert.</key>
|
||||
</area>
|
||||
<area alias="relatedlinks">
|
||||
<key alias="addExternal">Legg til ekstern lenke</key>
|
||||
<key alias="addInternal">Legg til intern lenke</key>
|
||||
<key alias="addlink">Legg til</key>
|
||||
<key alias="caption">Tittel</key>
|
||||
<key alias="internalPage">Intern side</key>
|
||||
<key alias="linkurl">Url</key>
|
||||
<key alias="modeDown">Flytt ned</key>
|
||||
<key alias="modeUp">Flytt opp</key>
|
||||
<key alias="newWindow">Åpne i nytt vindu</key>
|
||||
<key alias="removeLink">Fjern lenke</key>
|
||||
</area>
|
||||
<area alias="rollback">
|
||||
<key alias="currentVersion">Gjeldende versjon</key>
|
||||
<key alias="diffHelp">Dette viser forskjellene mellom den gjeldende og den valgte versjonen<br /><del>Rød</del> tekst vil ikke bli vist i den valgte versjonen. , <ins>grønn betyr lagt til</ins></key>
|
||||
<key alias="documentRolledBack">Dokumentet er tilbakeført til en tidligere versjon</key>
|
||||
<key alias="htmlHelp">Dette viser den valgte versjonen som HTML, bruk avviksvisningen hvis du ønsker å se forksjellene mellom to versjoner samtidig.</key>
|
||||
<key alias="rollbackTo">Tilbakefør til</key>
|
||||
<key alias="selectVersion">Velg versjon</key>
|
||||
<key alias="view">Vis</key>
|
||||
</area>
|
||||
<area alias="scripts">
|
||||
<key alias="editscript">Rediger scriptfilen</key>
|
||||
</area>
|
||||
<area alias="sections">
|
||||
<key alias="concierge">Concierge</key>
|
||||
<key alias="content">Innhold</key>
|
||||
<key alias="courier">Courier</key>
|
||||
<key alias="developer">Utvikler</key>
|
||||
<key alias="installer">Umbraco konfigurasjonsveiviser</key>
|
||||
<key alias="media">Mediaarkiv</key>
|
||||
<key alias="member">Medlemmer</key>
|
||||
<key alias="newsletters">Nyhetsbrev</key>
|
||||
<key alias="settings">Innstillinger</key>
|
||||
<key alias="statistics">Statistikk</key>
|
||||
<key alias="translation">Oversettelse</key>
|
||||
<key alias="users">Brukere</key>
|
||||
</area>
|
||||
<area alias="settings">
|
||||
<key alias="defaulttemplate">Standardmal</key>
|
||||
<key alias="dictionary editor egenskab">Ordboksnøkkel</key>
|
||||
<key alias="importDocumentTypeHelp">For å importere en dokumenttype, finn ".udt" filen på datamaskinen din ved å klikke "Utforsk" knappen og klikk "Importer" (du vil bli spurt om bekreftelse i det neste skjermbildet)</key>
|
||||
<key alias="newtabname">Ny tittel på arkfane</key>
|
||||
<key alias="nodetype">Nodetype</key>
|
||||
<key alias="objecttype">Type</key>
|
||||
<key alias="stylesheet">Stilark</key>
|
||||
<key alias="stylesheet editor egenskab">Stilark-egenskap</key>
|
||||
<key alias="tab">Arkfane</key>
|
||||
<key alias="tabname">Tittel på arkfane</key>
|
||||
<key alias="tabs">Arkfaner</key>
|
||||
<key alias="contentTypeEnabled">Hovedinnholdstype aktivert</key>
|
||||
<key alias="contentTypeUses">Denne dokumenttypen bruker</key>
|
||||
<key alias="asAContentMasterType">som hoveddokumenttype. Arkfaner fra hoveddokumenttyper vises ikke og kan kun endres på hoveddokumenttypen selv.</key>
|
||||
</area>
|
||||
<area alias="sort">
|
||||
<key alias="sortDone">Sortering ferdig.</key>
|
||||
<key alias="sortHelp">Dra elementene opp eller ned for å arrangere dem. Du kan også klikke kolonneoverskriftene for å sortere alt på en gang.</key>
|
||||
<key alias="sortPleaseWait">Vennligst vent. Elementene blir sortert, dette kan ta litt tid.<br/> <br/> Ikke lukk dette vinduet under sortering</key>
|
||||
</area>
|
||||
<area alias="speechBubbles">
|
||||
<key alias="contentPublishedFailedByEvent">Publisering ble avbrutt av et tredjepartstillegg</key>
|
||||
<key alias="contentTypeDublicatePropertyType">Egenskaptypen finnes allerede</key>
|
||||
<key alias="contentTypePropertyTypeCreated">Egenskapstype opprettet</key>
|
||||
<key alias="contentTypePropertyTypeCreatedText">Navn: %0% <br /> DataType: %1%</key>
|
||||
<key alias="contentTypePropertyTypeDeleted">Egenskapstype slettet</key>
|
||||
<key alias="contentTypeSavedHeader">Innholdstype lagret</key>
|
||||
<key alias="contentTypeTabCreated">Du har opprettet en arkfane</key>
|
||||
<key alias="contentTypeTabDeleted">Arkfane slettet</key>
|
||||
<key alias="contentTypeTabDeletedText">Arkfane med id: %0% slettet</key>
|
||||
<key alias="cssErrorHeader">Stilarket ble ikke lagret</key>
|
||||
<key alias="cssSavedHeader">Stilarket ble lagret</key>
|
||||
<key alias="cssSavedText">Stilark lagret uten feil</key>
|
||||
<key alias="dataTypeSaved">Datatype lagret</key>
|
||||
<key alias="dictionaryItemSaved">Ordbokelement lagret</key>
|
||||
<key alias="editContentPublishedFailedByParent">Publiseringen feilet fordi den overliggende siden ikke er publisert</key>
|
||||
<key alias="editContentPublishedHeader">Innhold publisert</key>
|
||||
<key alias="editContentPublishedText">og er nå synlig for besøkende</key>
|
||||
<key alias="editContentSavedHeader">Innhold lagret</key>
|
||||
<key alias="editContentSavedText">Husk å publisere for å gjøre endringene synlig for besøkende</key>
|
||||
<key alias="editContentSendToPublish">Sendt for godkjenning</key>
|
||||
<key alias="editContentSendToPublishText">Endringer har blitt sendt til godkjenning</key>
|
||||
<key alias="editMemberSaved">Medlem lagret</key>
|
||||
<key alias="editStylesheetPropertySaved">Stilarksegenskap lagret</key>
|
||||
<key alias="editStylesheetSaved">Stilark lagret</key>
|
||||
<key alias="editTemplateSaved">Mal lagret</key>
|
||||
<key alias="editUserError">Feil ved lagring av bruker (sjekk loggen)</key>
|
||||
<key alias="editUserSaved">Bruker lagret</key>
|
||||
<key alias="fileErrorHeader">Filen ble ikke lagret</key>
|
||||
<key alias="fileErrorText">Filen kunne ikke lagres. Vennligst sjekk filrettigheter</key>
|
||||
<key alias="fileSavedHeader">Filen ble lagret</key>
|
||||
<key alias="fileSavedText">Filen ble lagret uten feil</key>
|
||||
<key alias="languageSaved">Språk lagret</key>
|
||||
<key alias="pythonErrorHeader">Python-skriptet ble ikke lagret</key>
|
||||
<key alias="pythonErrorText">Python-skriptet kunne ikke lagres fordi det inneholder en eller flere feil</key>
|
||||
<key alias="pythonSavedHeader">Python-skriptet er lagret!</key>
|
||||
<key alias="pythonSavedText">Ingen feil i python-skriptet!</key>
|
||||
<key alias="templateErrorHeader">Malen ble ikke lagret</key>
|
||||
<key alias="templateErrorText">Vennligst forviss deg om at du ikke har to maler med samme alias</key>
|
||||
<key alias="templateSavedHeader">Malen ble lagret</key>
|
||||
<key alias="templateSavedText">Malen ble lagret uten feil!</key>
|
||||
<key alias="xsltErrorHeader">XSLT-koden ble ikke lagret</key>
|
||||
<key alias="xsltErrorText">XSLT-koden inneholdt en feil</key>
|
||||
<key alias="xsltPermissionErrorText">XSLT-koden ble ikke lagret, sjekk filrettigheter</key>
|
||||
<key alias="xsltSavedHeader">XSLT lagret</key>
|
||||
<key alias="xsltSavedText">Ingen feil i XSLT!</key>
|
||||
<key alias="editMediaSaved">Media lagret</key>
|
||||
<key alias="editUserTypeSaved">Brukertypen lagret</key>
|
||||
<key alias="contentUnpublished">Innhold avpublisert</key>
|
||||
<key alias="partialViewSavedHeader">Delmal lagret</key>
|
||||
<key alias="partialViewSavedText">Delmal lagret uten feil</key>
|
||||
<key alias="partialViewErrorHeader">Delmal ble ikke lagret!</key>
|
||||
<key alias="partialViewErrorText">En feil oppsto ved lagring av delmal</key>
|
||||
</area>
|
||||
<area alias="stylesheet">
|
||||
<key alias="aliasHelp">Bruk CSS syntaks f.eks: h1, .redHeader, .blueText</key>
|
||||
<key alias="editstylesheet">Rediger stilark</key>
|
||||
<key alias="editstylesheetproperty">Rediger egenskap for stilark</key>
|
||||
<key alias="nameHelp">Navn for å identifisere stilarksegenskapen i rik-tekst editoren</key>
|
||||
<key alias="preview">Forhåndsvis</key>
|
||||
<key alias="styles">Stiler</key>
|
||||
</area>
|
||||
<area alias="template">
|
||||
<key alias="edittemplate">Rediger mal</key>
|
||||
<key alias="insertContentArea">Sett inn innholdsområde</key>
|
||||
<key alias="insertContentAreaPlaceHolder">Sett inn plassholder for innholdsområde</key>
|
||||
<key alias="insertDictionaryItem">Sett inn ordbokselement</key>
|
||||
<key alias="insertMacro">Sett inn makro</key>
|
||||
<key alias="insertPageField">Sett inn Umbraco sidefelt</key>
|
||||
<key alias="mastertemplate">Hovedmal</key>
|
||||
<key alias="quickGuide">Hurtigguide til Umbraco sine maltagger</key>
|
||||
<key alias="template">Mal</key>
|
||||
</area>
|
||||
<area alias="templateEditor">
|
||||
<key alias="alternativeField">Alternativt felt</key>
|
||||
<key alias="alternativeText">Alternativ tekst</key>
|
||||
<key alias="casing">Store/små bokstaver</key>
|
||||
<key alias="chooseField">Felt som skal settes inn</key>
|
||||
<key alias="convertLineBreaks">Konverter linjeskift</key>
|
||||
<key alias="convertLineBreaksHelp">Erstatter et linjeskift med htmltaggen &lt;br&gt;</key>
|
||||
<key alias="dateOnly">Ja, kun dato</key>
|
||||
<key alias="formatAsDate">Formatter som dato</key>
|
||||
<key alias="htmlEncode">HTML koding</key>
|
||||
<key alias="htmlEncodeHelp">Formater spesialtegn med tilsvarende HTML-tegn.</key>
|
||||
<key alias="insertedAfter">Denne teksten vil settes inn etter verdien av feltet</key>
|
||||
<key alias="insertedBefore">Denne teksten vil settes inn før verdien av feltet</key>
|
||||
<key alias="lowercase">Små bokstaver</key>
|
||||
<key alias="none">Ingen</key>
|
||||
<key alias="postContent">Sett inn etter felt</key>
|
||||
<key alias="preContent">Sett inn før felt</key>
|
||||
<key alias="recursive">Rekursivt</key>
|
||||
<key alias="removeParagraph">Fjern paragraftagger</key>
|
||||
<key alias="removeParagraphHelp">Fjerner eventuelle &lt;P&gt; rundt teksten</key>
|
||||
<key alias="uppercase">Store bokstaver</key>
|
||||
<key alias="urlEncode">URL koding</key>
|
||||
<key alias="urlEncodeHelp">Dersom innholdet av feltene skal sendes til en URL skal spesialtegn formatteres</key>
|
||||
<key alias="usedIfAllEmpty">Denne teksten vil benyttes dersom feltene over er tomme</key>
|
||||
<key alias="usedIfEmpty">Dette feltet vil benyttes dersom feltet over er tomt</key>
|
||||
<key alias="withTime">Ja, med klokkeslett. Dato/tid separator: </key>
|
||||
<key alias="customFields">Egendefinerte felt</key>
|
||||
<key alias="standardFields">Standardfelter</key>
|
||||
</area>
|
||||
<area alias="translation">
|
||||
<key alias="assignedTasks">Oppgaver satt til deg</key>
|
||||
<key alias="assignedTasksHelp">Listen nedenfor viser oversettelsesoppgaver <strong>som du er tildelt</strong>. For å se en detaljert visning inkludert kommentarer, klikk på "Detaljer" eller navnet på siden. Du kan også laste ned siden som XML direkte ved å klikke på linken "Last ned XML". <br/> For å lukke en oversettelsesoppgave, vennligst gå til detaljvisningen og klikk på "Lukk" knappen.</key>
|
||||
<key alias="closeTask">Lukk oppgave</key>
|
||||
<key alias="details">Oversettelses detaljer</key>
|
||||
<key alias="downloadAllAsXml">Last ned all oversettelsesoppgaver som XML</key>
|
||||
<key alias="downloadTaskAsXml">Last ned XML</key>
|
||||
<key alias="DownloadXmlDTD">Last ned XML DTD</key>
|
||||
<key alias="fields">Felt</key>
|
||||
<key alias="includeSubpages">Inkluder undersider</key>
|
||||
<key alias="mailBody">
|
||||
Hei %0%
|
||||
|
||||
Dette er en automatisk mail for å informere deg om at dokumentet '%1%'
|
||||
har blitt anmodet oversatt til '%5%' av %2%.
|
||||
|
||||
Gå til http://%3%/Umbraco/translation/default.aspx?id=%4% for å redigere.
|
||||
|
||||
Ha en fin dag!
|
||||
|
||||
Vennlig hilsen Umbraco Robot.
|
||||
</key>
|
||||
<key alias="mailSubject">[%0%] Oversettingsoppgave for %1%</key>
|
||||
<key alias="noTranslators">Ingen oversettelses-bruker funnet. Vennligst opprett en oversettelses-bruker før du begynner å sende innhold til oversetting</key>
|
||||
<key alias="ownedTasks">Oppgaver opprettet av deg</key>
|
||||
<key alias="ownedTasksHelp">Listen under viser sider <strong>opprettet av deg</strong>. For å se en detaljert visning inkludert kommentarer, klikk på "Detaljer" eller navnet på siden. Du kan også laste ned siden som XML direkte ved å klikke på linken "Last ned XML". For å lukke en oversettelsesoppgave, vennligst gå til detaljvisningen og klikk på "Lukk" knappen.</key>
|
||||
<key alias="pageHasBeenSendToTranslation">Siden '%0%' har blitt sendt til oversetting</key>
|
||||
<key alias="sendToTranslate">Send til oversetting</key>
|
||||
<key alias="taskAssignedBy">Tildelt av</key>
|
||||
<key alias="taskOpened">Oppgave åpnet</key>
|
||||
<key alias="totalWords">Antall ord</key>
|
||||
<key alias="translateTo">Oversett til</key>
|
||||
<key alias="translationDone">Oversetting fullført.</key>
|
||||
<key alias="translationDoneHelp">Du kan forhåndsvise sidene du nettopp har oversatt ved å klikke nedenfor. Hvis den originale siden finnes, vil du få en sammenligning av sidene.</key>
|
||||
<key alias="translationFailed">Oversetting mislykkes, XML filen kan være korrupt</key>
|
||||
<key alias="translationOptions">Alternativer for oversetting</key>
|
||||
<key alias="translator">Oversetter</key>
|
||||
<key alias="uploadTranslationXml">Last opp XML med oversettelse</key>
|
||||
</area>
|
||||
<area alias="treeHeaders">
|
||||
<key alias="cacheBrowser">Hurtigbufferleser</key>
|
||||
<key alias="contentRecycleBin">Papirkurv</key>
|
||||
<key alias="createdPackages">Opprettede pakker</key>
|
||||
<key alias="datatype">Datatyper</key>
|
||||
<key alias="dictionary">Ordbok</key>
|
||||
<key alias="installedPackages">Installerte pakker</key>
|
||||
<key alias="installSkin">Installer utseende</key>
|
||||
<key alias="installStarterKit">Installer startpakke</key>
|
||||
<key alias="languages">Språk</key>
|
||||
<key alias="localPackage">Installer lokal pakke</key>
|
||||
<key alias="macros">Makroer</key>
|
||||
<key alias="mediaTypes">Mediatyper</key>
|
||||
<key alias="member">Medlemmer</key>
|
||||
<key alias="memberGroup">Medlemsgrupper</key>
|
||||
<key alias="memberRoles">Roller</key>
|
||||
<key alias="memberType">Medlemstyper</key>
|
||||
<key alias="nodeTypes">Dokumenttyper</key>
|
||||
<key alias="packager">Pakker</key>
|
||||
<key alias="packages">Pakker</key>
|
||||
<key alias="python">Python Filer</key>
|
||||
<key alias="repositories">Installer fra pakkeregister</key>
|
||||
<key alias="runway">Installer Runway</key>
|
||||
<key alias="runwayModules">Runway moduler</key>
|
||||
<key alias="scripting">Skriptfiler</key>
|
||||
<key alias="scripts">Skript</key>
|
||||
<key alias="stylesheets">Stiler</key>
|
||||
<key alias="templates">Maler</key>
|
||||
<key alias="xslt">XSLT Filer</key>
|
||||
</area>
|
||||
<area alias="update">
|
||||
<key alias="updateAvailable">Ny oppdatering er klar</key>
|
||||
<key alias="updateDownloadText">%0% er klar, klikk her for å laste ned</key>
|
||||
<key alias="updateNoServer">Ingen forbindelse til server</key>
|
||||
<key alias="updateNoServerError">Kunne ikke sjekke etter ny oppdatering. Se trace for mere info.</key>
|
||||
</area>
|
||||
<area alias="user">
|
||||
<key alias="administrators">Administrator</key>
|
||||
<key alias="categoryField">Kategorifelt</key>
|
||||
<key alias="changePassword">Bytt passord</key>
|
||||
<key alias="changePasswordDescription">Du kan endre passordet til Umbraco ved å fylle ut skjemaet under og klikke "Bytt passord" knappen.</key>
|
||||
<key alias="contentChannel">Innholdskanal</key>
|
||||
<key alias="descriptionField">Beskrivelsesfelt</key>
|
||||
<key alias="disabled">Deaktiver bruker</key>
|
||||
<key alias="documentType">Dokumenttype</key>
|
||||
<key alias="editors">Redaktør</key>
|
||||
<key alias="excerptField">Utdragsfelt</key>
|
||||
<key alias="language">Språk</key>
|
||||
<key alias="loginname">Login</key>
|
||||
<key alias="mediastartnode">Øverste nivå i Media</key>
|
||||
<key alias="modules">Moduler</key>
|
||||
<key alias="noConsole">Deaktiver tilgang til Umbraco</key>
|
||||
<key alias="password">Passord</key>
|
||||
<key alias="passwordChanged">Passordet er endret</key>
|
||||
<key alias="passwordConfirm">Bekreft nytt passord</key>
|
||||
<key alias="passwordEnterNew">Nytt passord</key>
|
||||
<key alias="passwordIsBlank">Nytt passord kan ikke være blankt</key>
|
||||
<key alias="passwordIsDifferent">Nytt og bekreftet passord må være like</key>
|
||||
<key alias="passwordMismatch">Nytt og bekreftet passord må være like</key>
|
||||
<key alias="permissionReplaceChildren">Overskriv tillatelser på undernoder</key>
|
||||
<key alias="permissionSelectedPages">Du redigerer for øyeblikket tillatelser for sidene:</key>
|
||||
<key alias="permissionSelectPages">Velg sider for å redigere deres tillatelser</key>
|
||||
<key alias="searchAllChildren">Søk i alle undersider</key>
|
||||
<key alias="startnode">Startnode</key>
|
||||
<key alias="username">Brukernavn</key>
|
||||
<key alias="userPermissions">Brukertillatelser</key>
|
||||
<key alias="usertype">Brukertype</key>
|
||||
<key alias="userTypes">Brukertyper</key>
|
||||
<key alias="writer">Forfatter</key>
|
||||
<key alias="newPassword">Nytt passord</key>
|
||||
<key alias="confirmNewPassword">Bekreft nytt passord</key>
|
||||
<key alias="passwordCurrent">Gjeldende passord</key>
|
||||
<key alias="passwordInvalid">Feil passord</key>
|
||||
</area>
|
||||
</language>
|
||||
@@ -54,16 +54,17 @@
|
||||
</head>
|
||||
<noscript><h5><strong> JavaScript is disabled. Please enable to continue!</strong></h5></noscript>
|
||||
<body ng-class="{touch:touchDevice,emptySection:emptySection}" ng-controller="Umbraco.MainController" id="umbracoMainPageBody">
|
||||
<div ng-hide="!authenticated" ng-cloak id="mainwrapper" id="mainwrapper" class="clearfix" ng-click="closeDialogs($event)">
|
||||
<div ng-hide="!authenticated" ng-cloak id="mainwrapper" class="clearfix" ng-click="closeDialogs($event)">
|
||||
|
||||
<umb-navigation></umb-navigation>
|
||||
|
||||
<section id="contentwrapper">
|
||||
<div id="contentcolumn" ng-view>
|
||||
</div>
|
||||
<umb-notifications></umb-notifications>
|
||||
</section>
|
||||
|
||||
<umb-notifications></umb-notifications>
|
||||
|
||||
</div>
|
||||
|
||||
@Html.BareMinimumServerVariablesScript(Url, Url.Action("ExternalLogin", "BackOffice", new { area = ViewBag.UmbracoPath }))
|
||||
|
||||
@@ -405,6 +405,8 @@
|
||||
<key alias="yes">Ja</key>
|
||||
<key alias="folder">Mappe</key>
|
||||
<key alias="searchResults">Søgeresultater</key>
|
||||
<key alias="reorder">Reorder</key>
|
||||
<key alias="reorderDone">I am done reordering</key>
|
||||
</area>
|
||||
<area alias="graphicheadline">
|
||||
<key alias="backgroundcolor">Baggrundsfarve</key>
|
||||
@@ -630,6 +632,7 @@ Mange hilsner fra Umbraco robotten
|
||||
<key alias="chooseLayout">Vælg layout</key>
|
||||
<key alias="addRows">Tilføj række</key>
|
||||
<key alias="addElement">Tilføj indhold</key>
|
||||
<key alias="dropElement">Slip indhold</key>
|
||||
<key alias="settingsApplied">Instillinger tilføjet</key>
|
||||
|
||||
<key alias="contentNotAllowed">Indholdet er ikke tilladt her</key>
|
||||
@@ -872,7 +875,7 @@ Mange hilsner fra Umbraco robotten
|
||||
<key alias="memberTypes">Medlemstype</key>
|
||||
<key alias="documentTypes">Dokumenttyper</key>
|
||||
<key alias="relationTypes">Dokumenttyper</key>
|
||||
|
||||
|
||||
<key alias="packager">Pakker</key>
|
||||
<key alias="packages">Pakker</key>
|
||||
<key alias="python">Python</key>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<language alias="de" intName="German" localName="Deutsch" lcid="7" culture="de-DE">
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<language alias="de" intName="German (DE)" localName="Deutsch (DE)" lcid="7" culture="de-DE">
|
||||
<creator>
|
||||
<name>The Umbraco community</name>
|
||||
<link>http://our.umbraco.org/documentation/Extending-Umbraco/Language-Files</link>
|
||||
@@ -8,7 +8,7 @@
|
||||
<key alias="assignDomain">Hostnamen verwalten</key>
|
||||
<key alias="auditTrail">Protokoll</key>
|
||||
<key alias="browse">Durchsuchen</key>
|
||||
<key alias="changeDocType">Dokumententyp ändern</key>
|
||||
<key alias="changeDocType">Dokumenttyp ändern</key>
|
||||
<key alias="copy">Kopieren</key>
|
||||
<key alias="create">Erstellen</key>
|
||||
<key alias="createPackage">Paket erstellen</key>
|
||||
@@ -24,9 +24,10 @@
|
||||
<key alias="notify">Benachrichtigungen</key>
|
||||
<key alias="protect">Öffentlicher Zugriff</key>
|
||||
<key alias="publish">Veröffentlichen</key>
|
||||
<key alias="unpublish">Veröffentlichung zurück nehmen</key>
|
||||
<key alias="unpublish">Veröffentlichung zurücknehmen</key>
|
||||
<key alias="refreshNode">Aktualisieren</key>
|
||||
<key alias="republish">Erneut veröffentlichen</key>
|
||||
<key alias="restore" version="7.3.0">Wiederherstellen</key>
|
||||
<key alias="rights">Berechtigungen</key>
|
||||
<key alias="rollback">Zurücksetzen</key>
|
||||
<key alias="sendtopublish">Zur Veröffentlichung einreichen</key>
|
||||
@@ -35,15 +36,15 @@
|
||||
<key alias="toPublish">Zur Veröffentlichung einreichen</key>
|
||||
<key alias="translate">Übersetzen</key>
|
||||
<key alias="update">Aktualisieren</key>
|
||||
<key alias="defaultValue">Standard Wert</key>
|
||||
<key alias="defaultValue">Standardwert</key>
|
||||
</area>
|
||||
<area alias="assignDomain">
|
||||
<key alias="permissionDenied">Zugriff verweigert</key>
|
||||
<key alias="permissionDenied">Erlaubnis verweigert.</key>
|
||||
<key alias="addNew">Neue Domain hinzufügen</key>
|
||||
<key alias="remove">Entfernen</key>
|
||||
<key alias="invalidNode">Ungültiges Element</key>
|
||||
<key alias="invalidDomain">Format der Domain ungültig</key>
|
||||
<key alias="duplicateDomain">Die Domain ist bereits zugeordnet</key>
|
||||
<key alias="remove">entfernen</key>
|
||||
<key alias="invalidNode">Ungültiges Element.</key>
|
||||
<key alias="invalidDomain">Format der Domain ungültig.</key>
|
||||
<key alias="duplicateDomain">Domain wurde bereits zugewiesen.</key>
|
||||
<key alias="language">Sprache</key>
|
||||
<key alias="domain">Domain</key>
|
||||
<key alias="domainCreated">Domain '%0%' hinzugefügt</key>
|
||||
@@ -51,23 +52,20 @@
|
||||
<key alias="domainExists">Die Domain '%0%' ist bereits zugeordnet</key>
|
||||
<key alias="domainUpdated">Domain '%0%' aktualisiert</key>
|
||||
<key alias="orEdit">Domains bearbeiten</key>
|
||||
<key alias="domainHelp"><![CDATA[Gültige Domainnamen sind: "example.com", "www.example.com", "example.com:8080" oder
|
||||
"https://www.example.com/".<br /><br />1-Level Pfade in Domains werden unterstützt, z.B. "example.com/en". Diese sollten aber nach Möglichkeit vermieden werden. Besser sollten
|
||||
die Sprachkultur-Einstellungen verwendet werden.]]></key>
|
||||
<key alias="domainHelp">Beispiel: example.com, www.example.com</key>
|
||||
<key alias="inherit">Vererben</key>
|
||||
<key alias="setLanguage">Sprachkultur</key>
|
||||
<key alias="setLanguageHelp">Definiert die Sprachkultureinstellung für untergeordnete Elemente dieses Elements oder vererbt vom übergeordneten Element. Wird auch auf das aktuelle Element angewendet, sofern auf tieferer Ebene keine Domain zugeordnet ist.</key>
|
||||
|
||||
<key alias="setDomains">Domains</key>
|
||||
</area>
|
||||
<key alias="setLanguage">Kultur</key>
|
||||
<key alias="setLanguageHelp">Definiert die Kultureinstellung für untergeordnete Elemente dieses Elements oder vererbt vom übergeordneten Element. Wird auch auf das aktuelle Element angewendet, sofern auf tieferer Ebene keine Domain zugeordnet ist.</key>
|
||||
<key alias="setDomains">Domains</key>
|
||||
</area>
|
||||
<area alias="auditTrails">
|
||||
<key alias="atViewingFor">Ansicht für</key>
|
||||
</area>
|
||||
<area alias="buttons">
|
||||
<key alias="select">Auswählen</key>
|
||||
<key alias="selectCurrentFolder">Verzeichnis wählen</key>
|
||||
<key alias="somethingElse">Etwas anders machen</key>
|
||||
<key alias="bold">Fett</key>
|
||||
<key alias="selectCurrentFolder">Aktuellen Ordner auswählen</key>
|
||||
<key alias="somethingElse">Etwas anderes machen</key>
|
||||
<key alias="bold">Fett</key>
|
||||
<key alias="deindent">Ausrücken</key>
|
||||
<key alias="formFieldInsert">Formularelement einfügen</key>
|
||||
<key alias="graphicHeadline">Graphische Überschrift einfügen</key>
|
||||
@@ -82,37 +80,37 @@
|
||||
<key alias="listBullet">Aufzählung</key>
|
||||
<key alias="listNumeric">Nummerierung</key>
|
||||
<key alias="macroInsert">Makro einfügen</key>
|
||||
<key alias="pictureInsert">Bild einfügen</key>
|
||||
<key alias="pictureInsert">Abbildung einfügen</key>
|
||||
<key alias="relations">Datenbeziehungen bearbeiten</key>
|
||||
<key alias="returnToList">Zürück zur Übersicht</key>
|
||||
<key alias="returnToList">Zurück zur Liste</key>
|
||||
<key alias="save">Speichern</key>
|
||||
<key alias="saveAndPublish">Speichern und veröffentlichen</key>
|
||||
<key alias="saveToPublish">Speichern und zur Abnahme übergeben</key>
|
||||
<key alias="showPage">Vorschau</key>
|
||||
<key alias="showPageDisabled">Die Vorschaufunktion ist deaktiviert, da keine Vorlage zugewiesen ist</key>
|
||||
<key alias="showPageDisabled">Die Vorschaufunktion ist deaktiviert, da keine Vorlage zugewiesen ist</key>
|
||||
<key alias="styleChoose">Stil auswählen</key>
|
||||
<key alias="styleShow">Stil anzeigen</key>
|
||||
<key alias="tableInsert">Tabelle einfügen</key>
|
||||
</area>
|
||||
<area alias="changeDocType">
|
||||
<key alias="changeDocTypeInstruction">Um einen Dokumententyp zu ändern muss zunächst ein gültiger Dokumententyp in der Liste für diesen Inhalt ausgewählt werden.</key>
|
||||
<key alias="changeDocTypeInstruction2">Danach muss die Zuweisung der Eigenschaften vom aktuellen zum neuen Dokumententyp bestätigt und/oder geändert werden und auf Speichern geklickt werden.</key>
|
||||
<key alias="changeDocTypeInstruction">Um den Typ des ausgewählten Dokuments zu ändern, wählen Sie bitte zunächst aus der Liste der an dieser Stelle erlaubten Dokumenttypen.</key>
|
||||
<key alias="changeDocTypeInstruction2">Im Anschluss bestätigen oder korrigieren Sie die Zuordnung der Eigenschaften und klicken Sie auf 'Speichern'.</key>
|
||||
<key alias="contentRepublished">Der Inhalt wurde neu veröffentlicht.</key>
|
||||
<key alias="currentProperty">Aktuelle Eigenschaft</key>
|
||||
<key alias="currentType">Aktueller Doumententyp</key>
|
||||
<key alias="docTypeCannotBeChanged">Der Dokumententyp kann nicht geändert werden, da es keine alternativen gültigen Eigenschaften für dieses Dokument gibt. Eine Alternative wird gültig sein, wenn es unter dem übergeordenten Knoten des ausgewählten Dokuments erlaubt ist und alle bestehenden untergeordneten Dokumente unter diesem erstellt werden dürfen.</key>
|
||||
<key alias="docTypeChanged">Dokumententyp ändern</key>
|
||||
<key alias="mapProperties">Eigenschaften zuweisen</key>
|
||||
<key alias="mapToProperty">Zu Eigenschaft zuweisen</key>
|
||||
<key alias="currentProperty">Derzeitige Eigenschaft</key>
|
||||
<key alias="currentType">Derzeitiger Datentyp</key>
|
||||
<key alias="docTypeCannotBeChanged">Der Typ dieses Dokuments kann nicht geändert werden, da an dieser Stelle keine Alternativen zugelassen sind. Ein alternativer Dokumenttyp kann nur dann verwendet werden, wenn er unterhalb des diesem Dokument übergeordneten Elements angelegt werden darf.</key>
|
||||
<key alias="docTypeChanged">Dokumenttyp geändert</key>
|
||||
<key alias="mapProperties">Eigenschaften zuordnen</key>
|
||||
<key alias="mapToProperty">Dieser Eigenschaft zuordnen</key>
|
||||
<key alias="newTemplate">Neue Vorlage</key>
|
||||
<key alias="newType">Neue Eigenschaft</key>
|
||||
<key alias="none">keine</key>
|
||||
<key alias="newType">Neuer Typ</key>
|
||||
<key alias="none">keiner</key>
|
||||
<key alias="selectedContent">Inhalt</key>
|
||||
<key alias="selectNewDocType">Neuen Dokumententyp auswählen</key>
|
||||
<key alias="successMessage">Der Dokumententyp des ausgewählten Dokuments wurde erfolgreich geändert zu [new type] und zu folgenden Eigenschaften zugewiesen:</key>
|
||||
<key alias="to">zu</key>
|
||||
<key alias="validationErrorPropertyWithMoreThanOneMapping">Zuweisung der Eigenschaft konnte nicht abgeschlossen werden, weil es eine oder mehr Eigenschaften mehr gibt als für eine Zuweisung definiert wurden.</key>
|
||||
<key alias="validDocTypesNote">Nur wecheselnde Eigenschaften sind gültig für das aktuell angezeigte Dokument.</key>
|
||||
<key alias="selectNewDocType">Neuen Dokumenttyp auswählen</key>
|
||||
<key alias="successMessage">Der Typ des ausgewählten Dokuments wurde erfolgreich zu [new type] geändert und die Eigenschaften wie folgend zugeordnet:</key>
|
||||
<key alias="to">nach</key>
|
||||
<key alias="validationErrorPropertyWithMoreThanOneMapping">Die Zuordnung der Eigenschaften kann nicht abgeschlossen werden, da mindestens eine Eigenschaft mehrfach zugeordnet werden soll.</key>
|
||||
<key alias="validDocTypesNote">Nur an dieser Stelle erlaubte Dokumenttypen werden angezeigt.</key>
|
||||
</area>
|
||||
<area alias="content">
|
||||
<key alias="isPublished" version="7.2">Ist veröffentlicht</key>
|
||||
@@ -122,19 +120,19 @@
|
||||
<key alias="alternativeUrls">Alternative Links</key>
|
||||
<key alias="clickToEdit">Klicken, um das Dokument zu bearbeiten</key>
|
||||
<key alias="createBy">Erstellt von</key>
|
||||
<key alias="createByDesc" version="7.0">Ursprünglicher Author</key>
|
||||
<key alias="updatedBy" version="7.0">Geändert von</key>
|
||||
<key alias="createByDesc" version="7.0">Ursprünglicher Autor</key>
|
||||
<key alias="updatedBy" version="7.0">Aktualisiert von</key>
|
||||
<key alias="createDate">Erstellt am</key>
|
||||
<key alias="createDateDesc" version="7.0">Erstellungszeitpunkt des Dokuments</key>
|
||||
<key alias="createDateDesc" version="7.0">Erstellungszeitpunkt des Dokuments</key>
|
||||
<key alias="documentType">Dokumenttyp</key>
|
||||
<key alias="editing">In Bearbeitung</key>
|
||||
<key alias="expireDate">Veröffentlichung aufheben am</key>
|
||||
<key alias="itemChanged">Dieses Dokument wurde nach dem Veröffentlichen bearbeitet.</key>
|
||||
<key alias="itemNotPublished">Dieses Dokument ist nicht veröffentlicht.</key>
|
||||
<key alias="lastPublished">Zuletzt veröffentlicht</key>
|
||||
<key alias="listViewNoItems" version="7.1.5">Es gibt keine anzeigbaren Elemente in dieser Liste.</key>
|
||||
<key alias="listViewNoItems" version="7.1.5">Diese Liste enthält keine Einträge.</key>
|
||||
<key alias="mediatype">Medientyp</key>
|
||||
<key alias="mediaLinks">Link zu Medienobjekt(en)</key>
|
||||
<key alias="mediaLinks">Verweis auf Medienobjekt(e)</key>
|
||||
<key alias="membergroup">Mitgliedergruppe</key>
|
||||
<key alias="memberrole">Mitgliederrolle</key>
|
||||
<key alias="membertype">Mitglieder-Typ</key>
|
||||
@@ -142,38 +140,42 @@
|
||||
<key alias="nodeName">Name des Dokument</key>
|
||||
<key alias="otherElements">Eigenschaften</key>
|
||||
<key alias="parentNotPublished">Dieses Dokument ist veröffentlicht aber nicht sichtbar, da das übergeordnete Dokument '%0%' nicht publiziert ist</key>
|
||||
<key alias="parentNotPublishedAnomaly">Ups! Dieses Dokument ist veröffentlicht, aber befindet sich nicht im internen Cache (Systemfehler)</key>
|
||||
<key alias="parentNotPublishedAnomaly">Ups! Dieses Dokument ist veröffentlicht aber nicht im internen Cache aufzufinden: Systemfehler.</key>
|
||||
<key alias="publish">Veröffentlichen</key>
|
||||
<key alias="publishStatus">Publikationsstatus</key>
|
||||
<key alias="releaseDate">Veröffentlichen am</key>
|
||||
<key alias="unpublishDate">Veröffentlichung aufheben am</key>
|
||||
<key alias="unpublishDate">Veröffentlichung widerrufen am</key>
|
||||
<key alias="removeDate">Datum entfernen</key>
|
||||
<key alias="sortDone">Sortierung abgeschlossen</key>
|
||||
<key alias="sortHelp">Um die Dokumente zu sortieren, ziehen Sie sie einfach an die gewünschte Position. Sie können mehrere Zeilen markieren indem Sie die Umschalttaste ("Shift") oder die Steuerungstaste ("Strg") gedrückt halten</key>
|
||||
<key alias="statistics">Statistiken</key>
|
||||
<key alias="titleOptional">Titel (optional)</key>
|
||||
<key alias="altTextOptional">Alternativer Text (optional)</key>
|
||||
<key alias="altTextOptional">Alternativtext (optional)</key>
|
||||
<key alias="type">Typ</key>
|
||||
<key alias="unPublish">Veröffentlichung zurück nehmen</key>
|
||||
<key alias="unPublish">Veröffentlichung widerrufen</key>
|
||||
<key alias="updateDate">Zuletzt bearbeitet am</key>
|
||||
<key alias="updateDateDesc" version="7.0">Letzter Änderungszeitpunkt des Dokuments</key>
|
||||
<key alias="uploadClear">Datei entfernen</key>
|
||||
<key alias="urls">Link zum Dokument</key>
|
||||
<key alias="memberof">Mitglied der Gruppe(n)</key>
|
||||
<key alias="notmemberof">Kein Mitglied der Gruppe(n)</key>
|
||||
<key alias="childItems">Untergeordnete Elemente</key>
|
||||
<key alias="target" version="7.0">Ziel</key>
|
||||
<key alias="childItems" version="7.0">Untergeordnete Elemente</key>
|
||||
<key alias="target" version="7.0">Ziel</key>
|
||||
</area>
|
||||
<area alias="media">
|
||||
<key alias="clickToUpload">Klicken zum Hochladen</key>
|
||||
<key alias="dropFilesHere">Dateien hierher ziehen...</key>
|
||||
<area alias="media">
|
||||
<key alias="clickToUpload">Für Upload klicken</key>
|
||||
<key alias="dropFilesHere">Dateien hier fallen lassen ...</key>
|
||||
</area>
|
||||
<area alias="member">
|
||||
<key alias="createNewMember">Neues Mitglied anlegen</key>
|
||||
<key alias="allMembers">Alle Mitglieder</key>
|
||||
</area>
|
||||
<area alias="create">
|
||||
<key alias="chooseNode">An welcher Stellen wollen Sie das Element erstellen</key>
|
||||
<key alias="createUnder">Erstellen unter</key>
|
||||
<key alias="updateData">Wählen Sie einen Namen und einen Typ</key>
|
||||
<key alias="noDocumentTypes">Es stehen keine erlaubten Dokumenttypen zur Verfügung. Sie müssen diese in den Einstellungen (unter "Dokumenttypen") aktivieren.</key>
|
||||
<key alias="noMediaTypes">Es stehen keine erlaubten Medientypen zur Verfügung. Sie müssen diese in den Einstellungen (unter "Medientypen") aktivieren.</key>
|
||||
<key alias="noDocumentTypes" version="7.0">Es stehen keine erlaubten Dokumenttypen zur Verfügung. Sie müssen diese in den Einstellungen (unter "Dokumenttypen") aktivieren.</key>
|
||||
<key alias="noMediaTypes" version="7.0">Es stehen keine erlaubten Medientypen zur Verfügung. Sie müssen diese in den Einstellungen (unter "Medientypen") aktivieren.</key>
|
||||
</area>
|
||||
<area alias="dashboard">
|
||||
<key alias="browser">Website anzeigen</key>
|
||||
@@ -232,24 +234,22 @@
|
||||
</area>
|
||||
<area alias="dictionaryItem">
|
||||
<key alias="description">Bearbeiten Sie nachfolgend die verschiedenen Sprachversionen für den Wörterbucheintrag '<em>%0%</em>'. <br/>Unter dem links angezeigten Menüpunkt 'Sprachen' können Sie weitere hinzufügen.</key>
|
||||
<key alias="displayName">Name der Sprachkultur</key>
|
||||
</area>
|
||||
|
||||
|
||||
<area alias="placeholders">
|
||||
<key alias="username">Benutzername eingeben</key>
|
||||
<key alias="password">Passwort eingeben</key>
|
||||
<key alias="nameentity">Benenne %0%...</key>
|
||||
<key alias="entername">Name eingeben...</key>
|
||||
<key alias="search">Suchbegriff eingeben...</key>
|
||||
<key alias="filter">Tippen zum Filtern...</key>
|
||||
<key alias="enterTags">Tippen für Schlagworte hinzuzufügen (drücke Enter nach jedem Schlagwort)...</key>
|
||||
<key alias="displayName">Name der Kultur</key>
|
||||
</area>
|
||||
<area alias="placeholders">
|
||||
<key alias="username">Benutzername eingeben</key>
|
||||
<key alias="password">Kennwort eingeben</key>
|
||||
<key alias="nameentity">%0% benennen ...</key>
|
||||
<key alias="entername">Name angeben ...</key>
|
||||
<key alias="search">Durchsuchen ...</key>
|
||||
<key alias="filter">Filtern ...</key>
|
||||
<key alias="enterTags">Tippen, um Tags hinzuzufügen (nach jedem Tag die Eingabetaste drücken) ...</key>
|
||||
</area>
|
||||
<area alias="editcontenttype">
|
||||
<key alias="allowAtRoot" version="7.2">Als Wurzel-Knoten erlauben</key>
|
||||
<key alias="allowAtRootDesc" version="7.2">Nur Dokumententype mit dieser Markierung können auf Ebene 1 im Inhalts- und Medienverzeichnisbaum erstellt werden</key>
|
||||
<key alias="allowAtRoot" version="7.2">Auf oberster Ebene erlauben</key>
|
||||
<key alias="allowAtRootDesc" version="7.2">Nur diese Dokumenttypen können auf oberster Ebene in Inhalte und Medien angelegt werden</key>
|
||||
<key alias="allowedchildnodetypes">Dokumenttypen, die unterhalb dieses Typs erlaubt sind</key>
|
||||
<key alias="contenttypecompositions">Dokumententyp-Kompositionen</key>
|
||||
<key alias="contenttypecompositions">Zusammengesetzte Dokumenttypen</key>
|
||||
<key alias="create">Erstellen</key>
|
||||
<key alias="deletetab">Registerkarte löschen</key>
|
||||
<key alias="description">Beschreibung</key>
|
||||
@@ -257,11 +257,11 @@
|
||||
<key alias="tab">Registerkarte</key>
|
||||
<key alias="thumbnail">Illustration</key>
|
||||
<key alias="hasListView">Listenansicht aktivieren</key>
|
||||
<key alias="hasListViewDesc" version="7.2">Konfiguriert das Dokument zur Darstellung einer sortierbaren und durchsuchbaren Liste mit untergeordneten Dokumenten. Die untergeordneten Elemente werden im Verzeichnisbaum nicht mehr angezeigt.</key>
|
||||
<key alias="hasListViewDesc" version="7.2">Aktiviert eine durchsuch- und sortierbare Listendarstellung der untergeordneten Elemente anstelle diese in der Baumstruktur anzuzeigen</key>
|
||||
<key alias="currentListView" version="7.2">Aktuelle Listenansicht</key>
|
||||
<key alias="currentListViewDesc" version="7.2">Datentyp der aktiven Listenansicht</key>
|
||||
<key alias="createListView" version="7.2">Erstelle benutzerdefinierte Listenansicht</key>
|
||||
<key alias="removeListView" version="7.2">Entferne benutzerdefinierte Listenansicht</key>
|
||||
<key alias="currentListViewDesc" version="7.2">Der Datentyp für die aktuelle Ansicht der Liste</key>
|
||||
<key alias="createListView" version="7.2">Angepasste Listenansicht erstellen</key>
|
||||
<key alias="removeListView" version="7.2">Angepasste Listenansicht entfernen</key>
|
||||
</area>
|
||||
<area alias="editdatatype">
|
||||
<key alias="addPrevalue">Vorgabewert hinzufügen</key>
|
||||
@@ -290,6 +290,7 @@
|
||||
<key alias="errorRegExpWithoutTab">'%0%' hat ein falsches Format</key>
|
||||
</area>
|
||||
<area alias="errors">
|
||||
<key alias="dissallowedMediaType">Dieser Dateityp wird durch die Systemeinstellungen blockiert</key>
|
||||
<key alias="codemirroriewarning">ACHTUNG! Obwohl CodeMirror in den Einstellungen aktiviert ist, bleibt das Modul wegen mangelnder Stabilität in Internet Explorer deaktiviert.</key>
|
||||
<key alias="contentTypeAliasAndNameNotNull">Bitte geben Sie die Bezeichnung und den Alias des neuen Dokumenttyps ein.</key>
|
||||
<key alias="filePermissionsError">Es besteht ein Problem mit den Lese-/Schreibrechten auf eine Datei oder einen Ordner</key>
|
||||
@@ -305,7 +306,7 @@
|
||||
<key alias="tableSplitNotSplittable">Sie können keine Zelle trennen, die nicht zuvor aus mehreren zusammengeführt wurde.</key>
|
||||
<key alias="xsltErrorHeader">Fehler im XSLT</key>
|
||||
<key alias="xsltErrorText">Das XSLT ist fehlerhaft und wurde daher nicht gespeichert.</key>
|
||||
<key alias="dissallowedMediaType">Dieser Dateityp wird durch die Systemeinstellungen blockiert</key>
|
||||
<key alias="missingPropertyEditorErrorMessage">Es liegt ein Konfigurationsfehler beim Datentyp dieser Eigenschaft vor. Bitte prüfen Sie den Datentyp bzw. die Eigenschaft.</key>
|
||||
</area>
|
||||
<area alias="general">
|
||||
<key alias="about">Info</key>
|
||||
@@ -380,7 +381,7 @@
|
||||
<key alias="remaining">Verbleibend</key>
|
||||
<key alias="rename">Umbenennen</key>
|
||||
<key alias="renew">Erneuern</key>
|
||||
<key alias="required" version="7.0">Pflichtangaben</key>
|
||||
<key alias="required" version="7.0">Pflichtangabe</key>
|
||||
<key alias="retry">Wiederholen</key>
|
||||
<key alias="rights">Berechtigungen</key>
|
||||
<key alias="search">Suchen</key>
|
||||
@@ -390,7 +391,7 @@
|
||||
<key alias="size">Größe</key>
|
||||
<key alias="sort">Sortieren</key>
|
||||
<key alias="type">Typ</key>
|
||||
<key alias="typeToSearch">nach Inhalten suchen ...</key>
|
||||
<key alias="typeToSearch">Durchsuchen ...</key>
|
||||
<key alias="up">nach oben</key>
|
||||
<key alias="update">Aktualisieren</key>
|
||||
<key alias="upgrade">Update</key>
|
||||
@@ -405,10 +406,9 @@
|
||||
<key alias="yes">Ja</key>
|
||||
<key alias="folder">Ordner</key>
|
||||
<key alias="searchResults">Suchergebnisse</key>
|
||||
<key alias="reorder">Reorder</key>
|
||||
<key alias="reorderDone">I am done reordering</key>
|
||||
</area>
|
||||
|
||||
|
||||
|
||||
<area alias="graphicheadline">
|
||||
<key alias="backgroundcolor">Hintergrundfarbe</key>
|
||||
<key alias="bold">Fett</key>
|
||||
@@ -438,7 +438,7 @@
|
||||
Keine Sorge - Dabei werden keine Inhalte gelöscht und alles wird weiterhin funktionieren!
|
||||
</p>
|
||||
</key>
|
||||
<key alias="databaseUpgradeDone">Die Datenbank wurde auf die Version %0% aktualisiert. Klicken Sie auf <strong>weiter</strong>, um fortzufahren.</key>
|
||||
<key alias="databaseUpgradeDone">Die Datenbank wurde auf die Version %0% aktualisiert. Klicken Sie auf <strong>weiter</strong>, um fortzufahren.</key>
|
||||
<key alias="databaseUpToDate">Die Datenbank ist fertig eingerichtet. Klicken Sie auf <strong>"weiter"</strong>, um mit der Einrichtung fortzufahren.</key>
|
||||
<key alias="defaultUserChangePass"><strong>Das Kennwort des Standard-Benutzers muss geändert werden!</strong></key>
|
||||
<key alias="defaultUserDisabled"><strong>Der Standard-Benutzer wurde deaktiviert oder hat keinen Zugriff auf Umbraco.</strong></p><p>Es sind keine weiteren Aktionen notwendig. Klicken Sie auf <b>Weiter</b> um fortzufahren.</key>
|
||||
@@ -514,8 +514,8 @@ Wenn Sie sich für Runway entscheiden, können Sie optional Blöcke nutzen, die
|
||||
<key alias="welcomeIntro">Dieser Assistent führt Sie durch die Einrichtung einer neuen Installation von <strong>Umbraco %0%</strong> oder einem Upgrade von Version 3.0.<br /><br />Klicken Sie auf <strong>weiter</strong>, um zu beginnen.</key>
|
||||
</area>
|
||||
<area alias="language">
|
||||
<key alias="cultureCode">Code der Sprachkultur</key>
|
||||
<key alias="displayName">Name der Sprachkultur</key>
|
||||
<key alias="cultureCode">Code der Kultur</key>
|
||||
<key alias="displayName">Name der Kultur</key>
|
||||
</area>
|
||||
<area alias="lockout">
|
||||
<key alias="lockoutWillOccur">Sie haben keine Tätigkeiten mehr durchgeführt und werden automatisch abgemeldet in</key>
|
||||
@@ -523,18 +523,18 @@ Wenn Sie sich für Runway entscheiden, können Sie optional Blöcke nutzen, die
|
||||
</area>
|
||||
<area alias="login">
|
||||
<key alias="greeting0">Einen wunderbaren Sonntag</key>
|
||||
<key alias="greeting5">Frohen freundlichen Freitag</key>
|
||||
<key alias="greeting4">Donnerwetter Donnerstag</key>
|
||||
<key alias="greeting1">Schönen Montag</key>
|
||||
<key alias="greeting2">Einen großartigen Dienstag</key>
|
||||
<key alias="greeting3">Wunderbaren Mittwoch</key>
|
||||
<key alias="greeting4">Donnerwetter Donnerstag</key>
|
||||
<key alias="greeting5">Frohen freundlichen Freitag</key>
|
||||
<key alias="greeting6">Wunderbaren sonnigen Samstag</key>
|
||||
<key alias="instruction">Hier anmelden:</key>
|
||||
<key alias="timeout">Die Sitzung ist abgelaufen</key>
|
||||
<key alias="bottomText"><p style="text-align:right;">&copy; 2001 - %0% <br /><a href="http://umbraco.com" style="text-decoration: none" target="_blank">umbraco.org</a></p> </key>
|
||||
<key alias="timeout">Sitzung abgelaufen</key>
|
||||
<key alias="bottomText"><p style="text-align:right;">&copy; 2001 - %0% <br /><a href="http://umbraco.com" style="text-decoration: none" target="_blank">umbraco.org</a></p> </key>
|
||||
</area>
|
||||
<area alias="main">
|
||||
<key alias="dashboard">Armaturenbrett</key>
|
||||
<key alias="dashboard">Dashboard</key>
|
||||
<key alias="sections">Bereiche</key>
|
||||
<key alias="tree">Inhalt</key>
|
||||
</area>
|
||||
@@ -548,9 +548,9 @@ Wenn Sie sich für Runway entscheiden, können Sie optional Blöcke nutzen, die
|
||||
<key alias="noNodeSelected">Es ist noch kein Element ausgewählt. Bitte wählen Sie ein Element aus der Liste aus, bevor Sie fortfahren.</key>
|
||||
<key alias="notAllowedByContentType">Das aktuelle Element kann aufgrund seines Dokumenttyps nicht an diese Stelle verschoben werden.</key>
|
||||
<key alias="notAllowedByPath">Das ausgewählte Element kann nicht zu einem seiner eigenen Unterelemente verschoben werden.</key>
|
||||
<key alias="notAllowedAtRoot">Dieses Element kann nicht auf der obersten Ebene platziert werden.</key>
|
||||
<key alias="notValid">Diese Aktion ist nicht erlaubt, da Sie unzureichende Berechtigungen für mindestens ein untergeordnetes Element haben.</key>
|
||||
<key alias="relateToOriginal">Kopierte Elemente mit dem Original verknüpfen</key>
|
||||
<key alias="notAllowedAtRoot">Dieses Element kann nicht auf der obersten Ebene platziert werden.</key>
|
||||
</area>
|
||||
<area alias="notifications">
|
||||
<key alias="editNotifications">Bearbeiten Sie Ihre Benachrichtigungseinstellungen für '%0%'</key>
|
||||
@@ -565,8 +565,7 @@ Wenn Sie sich für Runway entscheiden, können Sie optional Blöcke nutzen, die
|
||||
Ihr freundlicher Umbraco-Robot
|
||||
</key>
|
||||
<key alias="mailBodyHtml">
|
||||
<![CDATA[<p>Hi %0%</p>
|
||||
|
||||
<![CDATA[<p>Hallo %0%</p>
|
||||
<p>Dies ist eine automatisch E-Mail, welche Sie informiert, dass die Aufgabe <strong>'%1%'</strong>
|
||||
an der Seite <a href="http://%4%/#/content/content/edit/%5%"><strong>'%2%'</strong></a>
|
||||
vom Benutzer <strong>'%3%'</strong> ausgeführt wurde.
|
||||
@@ -591,7 +590,8 @@ Wenn Sie sich für Runway entscheiden, können Sie optional Blöcke nutzen, die
|
||||
|
||||
<p>Einen schönen Tag wünscht<br /><br />
|
||||
Ihr freundlicher Umbraco-Robot
|
||||
</p>]]>
|
||||
</p>
|
||||
]]>
|
||||
</key>
|
||||
<key alias="mailSubject">[%0%] Benachrichtigung: %1% ausgeführt an Seite '%2%' </key>
|
||||
<key alias="notifications">Benachrichtigungen</key>
|
||||
@@ -619,8 +619,8 @@ Wenn Sie sich für Runway entscheiden, können Sie optional Blöcke nutzen, die
|
||||
<key alias="packageUpgradeInstructions">Hinweise für die Durchführung des Updates</key>
|
||||
<key alias="packageUpgradeText"> Es ist ein Update für dieses Paket verfügbar. Sie können es direkt vom Umbraco-Paket-Repository herunterladen.</key>
|
||||
<key alias="packageVersion">Version des Pakets</key>
|
||||
<key alias="viewPackageWebsite">Paket-Webseite aufrufen</key>
|
||||
<key alias="packageVersionHistory">Versionsverlauf des Pakets</key>
|
||||
<key alias="viewPackageWebsite">Paket-Webseite aufrufen</key>
|
||||
</area>
|
||||
<area alias="paste">
|
||||
<key alias="doNothing">Einfügen mit Formatierung (Nicht empfohlen)</key>
|
||||
@@ -647,7 +647,10 @@ Wenn Sie sich für Runway entscheiden, können Sie optional Blöcke nutzen, die
|
||||
<key alias="paSimpleHelp">Wenn Sie einen einfachen Zugriffsschutz unter Verwendung eines einzelnen Logins mit Kennwort aktivieren wollen</key>
|
||||
</area>
|
||||
<area alias="publish">
|
||||
<key alias="contentPublishedFailedAwaitingRelease">%0% kann nicht veröffentlicht werden, da die Veröffentlichung zeitlich geplant ist.</key>
|
||||
<key alias="contentPublishedFailedInvalid">%0% konnte nicht veröffentlicht werden, da einige Daten die Gültigkeitsprüfung nicht bestanden haben.</key>
|
||||
<key alias="contentPublishedFailedByEvent">%0% konnte nicht veröffentlicht werden, da ein Plug-In die Aktion abgebrochen hat.</key>
|
||||
<key alias="contentPublishedFailedByParent">%0% kann nicht veröffentlicht werden, da das übergeordnete Dokument nicht veröffentlicht ist.</key>
|
||||
<key alias="includeUnpublished">Unveröffentlichte Unterelemente einschließen</key>
|
||||
<key alias="inProgress">Bitte warten, Veröffentlichung läuft...</key>
|
||||
<key alias="inProgressCounter">%0% Elemente veröffentlicht, %1% Elemente ausstehend ...</key>
|
||||
@@ -655,22 +658,22 @@ Wenn Sie sich für Runway entscheiden, können Sie optional Blöcke nutzen, die
|
||||
<key alias="nodePublishAll">%0% und die untergeordneten Elemente wurden veröffentlicht</key>
|
||||
<key alias="publishAll">%0% und alle untergeordneten Elemente veröffentlichen</key>
|
||||
<key alias="publishHelp">Mit <em>Ok</em> wird <strong>%0%</strong> veröffentlicht und auf der Website sichtbar.<br/><br />Sie können dieses Element mitsamt seinen untergeordneten Elementen veröffentlichen, indem Sie <em>Unveröffentlichte Unterelemente einschließen</em> aktivieren.</key>
|
||||
<key alias="contentPublishedFailedInvalid">%0% konnte nicht veröffentlicht werden, da einige Daten die Gültigkeitsprüfung nicht bestanden haben.</key>
|
||||
<key alias="contentPublishedFailedByParent">%0% kann nicht veröffentlicht werden, da das übergeordnete Dokument nicht veröffentlicht ist.</key>
|
||||
<key alias="contentPublishedFailedAwaitingRelease">%0% kann nicht veröffentlicht werden, da die Veröffentlichung zeitlich geplant ist.</key>
|
||||
</area>
|
||||
<area alias="colorpicker">
|
||||
<key alias="noColors">Sie haben keine freigegeben Farben konfiguriert</key>
|
||||
</area>
|
||||
<area alias="relatedlinks">
|
||||
<key alias="enterExternal">Externer Link eingeben</key>
|
||||
<key alias="chooseInternal">Interne Seite auswählen</key>
|
||||
<key alias="link">Link hinzufügen</key>
|
||||
<key alias="enterExternal">Externen Link eingeben</key>
|
||||
<key alias="chooseInternal">Internen Link auswählen</key>
|
||||
<key alias="caption">Beschriftung</key>
|
||||
<key alias="newWindow">In neuem Fenster öffnen</key>
|
||||
<key alias="captionPlaceholder">Neue Beschriftung eingeben</key>
|
||||
<key alias="externalLinkPlaceholder">Link eingeben</key>
|
||||
</area>
|
||||
<area alias="imagecropper">
|
||||
<key alias="reset">Zurücksetzen</key>
|
||||
</area>
|
||||
<key alias="link">Link</key>
|
||||
<key alias="newWindow">In neuem Fenster öffnen</key>
|
||||
<key alias="captionPlaceholder">Bezeichnung eingeben</key>
|
||||
<key alias="externalLinkPlaceholder">Link eingeben</key>
|
||||
</area>
|
||||
<area alias="imagecropper">
|
||||
<key alias="reset">Zurücksetzen</key>
|
||||
</area>
|
||||
<area alias="rollback">
|
||||
<key alias="currentVersion">Aktuelle Version</key>
|
||||
<key alias="diffHelp">Zeigt die Unterschiede zwischen der aktuellen und der ausgewählten Version an.<br />Text in <del>rot</del> fehlen in der ausgewählten Version, <ins>grün</ins> markierter Text wurde hinzugefügt.</key>
|
||||
@@ -696,9 +699,15 @@ Wenn Sie sich für Runway entscheiden, können Sie optional Blöcke nutzen, die
|
||||
<key alias="statistics">Statistiken</key>
|
||||
<key alias="translation">Übersetzung</key>
|
||||
<key alias="users">Benutzer</key>
|
||||
<key alias="forms">Umbraco Forms</key>
|
||||
<key alias="help">Hilfe</key>
|
||||
<key alias="analytics">Analytics</key>
|
||||
<key alias="help" version="7.0">Hilfe</key>
|
||||
<key alias="forms">Formulare</key>
|
||||
<key alias="analytics">Auswertungen</key>
|
||||
</area>
|
||||
<area alias="help">
|
||||
<key alias="goTo">go to</key>
|
||||
<key alias="helpTopicsFor">Hilfethemen zu</key>
|
||||
<key alias="videoChaptersFor">Video-Tutorials für</key>
|
||||
<key alias="theBestUmbracoVideoTutorials">Die besten Umbraco-Video-Tutorials</key>
|
||||
</area>
|
||||
<area alias="settings">
|
||||
<key alias="defaulttemplate">Standardvorlage</key>
|
||||
@@ -708,17 +717,17 @@ Wenn Sie sich für Runway entscheiden, können Sie optional Blöcke nutzen, die
|
||||
<key alias="nodetype">Elementtyp</key>
|
||||
<key alias="objecttype">Typ</key>
|
||||
<key alias="stylesheet">Stylesheet</key>
|
||||
<key alias="script">Skript</key>
|
||||
<key alias="stylesheet editor egenskab">Stylesheet-Eigenschaft</key>
|
||||
<key alias="script">Skript</key>
|
||||
<key alias="tab">Registerkarte</key>
|
||||
<key alias="tabname">Registerkartenbeschriftung</key>
|
||||
<key alias="tabs">Registerkarten</key>
|
||||
<key alias="contentTypeUses">Dieser Dokumenttyp verwendet</key>
|
||||
<key alias="contentTypeEnabled">Masterdokumenttyp aktiviert</key>
|
||||
<key alias="contentTypeUses">Dieser Dokumenttyp verwendet</key>
|
||||
<key alias="asAContentMasterType">als Masterdokumenttyp. Register vom Masterdokumenttyp werden nicht angezeigt und können nur im Masterdokumenttyp selbst bearbeitet werden</key>
|
||||
<key alias="noPropertiesDefinedOnTab">Für dieses Register sind keine Eigenschaften definiert. Klicken Sie oben auf "neue Eigenschaft hinzufügen", um eine neue Eigenschaft hinzuzufügen.</key>
|
||||
<key alias="masterDocumentType">Master Dokumententyp</key>
|
||||
<key alias="createMatchingTemplate">Erstelle zugehörige Vorlage</key>
|
||||
<key alias="masterDocumentType">Masterdokumenttyp</key>
|
||||
<key alias="createMatchingTemplate">Zugehörige Vorlage anlegen</key>
|
||||
</area>
|
||||
<area alias="sort">
|
||||
<key alias="sortDone">Sortierung abgeschlossen.</key>
|
||||
@@ -726,6 +735,10 @@ Wenn Sie sich für Runway entscheiden, können Sie optional Blöcke nutzen, die
|
||||
<key alias="sortPleaseWait">Bitte warten, die Seiten werden sortiert. Das kann einen Moment dauern. Bitte schließen Sie dieses Fenster nicht, bis der Sortiervorgang abgeschlossen ist.</key>
|
||||
</area>
|
||||
<area alias="speechBubbles">
|
||||
<key alias="operationFailedHeader">Fehlgeschlagen</key>
|
||||
<key alias="invalidUserPermissionsText">Unzureichende Benutzerberechtigungen. Vorgang kann nicht abgeschlossen werden.</key>
|
||||
<key alias="operationCancelledHeader">Abgebrochen</key>
|
||||
<key alias="operationCancelledText">Vorgang wurde durch eine benutzerdefinierte Erweiterung abgebrochen</key>
|
||||
<key alias="contentPublishedFailedByEvent">Das Veröffentlichen wurde von einem individuellen Ereignishandler abgebrochen</key>
|
||||
<key alias="contentTypeDublicatePropertyType">Eigenschaft existiert bereits</key>
|
||||
<key alias="contentTypePropertyTypeCreated">Eigenschaft erstellt</key>
|
||||
@@ -742,17 +755,20 @@ Wenn Sie sich für Runway entscheiden, können Sie optional Blöcke nutzen, die
|
||||
<key alias="dictionaryItemSaved">Wörterbucheintrag gespeichert</key>
|
||||
<key alias="editContentPublishedFailedByParent">Veröffentlichung nicht möglich, da das übergeordnete Dokument nicht veröffentlicht ist.</key>
|
||||
<key alias="editContentPublishedHeader">Inhalte veröffentlicht</key>
|
||||
<key alias="editContentPublishedText">und sichtbar auf der Webseite</key>
|
||||
<key alias="editContentPublishedText">Sichtbar auf der Webseite</key>
|
||||
<key alias="editContentSavedHeader">Inhalte gespeichert</key>
|
||||
<key alias="editContentSavedText">Denken Sie daran die Inhalte zu veröffentlichen, um die Änderungen sichtbar zu machen</key>
|
||||
<key alias="editContentSavedText">Denken Sie daran, die Inhalte zu veröffentlichen, um die Änderungen sichtbar zu machen</key>
|
||||
<key alias="editContentSendToPublish">Zur Abnahme eingereicht</key>
|
||||
<key alias="editContentSendToPublishText">Die Änderungen wurden zur Abnahme eingereicht</key>
|
||||
<key alias="editMediaSaved">Medium gespeichert</key>
|
||||
<key alias="editMediaSavedText">Medium fehlerfrei gespeichert</key>
|
||||
<key alias="editMemberSaved">Mitglied gespeichert</key>
|
||||
<key alias="editStylesheetPropertySaved">Stylesheet-Regel gespeichert</key>
|
||||
<key alias="editStylesheetSaved">Stylesheet gespeichert</key>
|
||||
<key alias="editTemplateSaved">Vorlage gespeichert</key>
|
||||
<key alias="editUserError">Fehler beim Speichern des Benutzers.</key>
|
||||
<key alias="editUserSaved">Benutzer gespeichert</key>
|
||||
<key alias="editUserTypeSaved">Benutzertyp gepsichert</key>
|
||||
<key alias="fileErrorHeader">Datei wurde nicht gespeichert</key>
|
||||
<key alias="fileErrorText">Datei konnte nicht gespeichert werden. Bitte überprüfen Sie die Schreibrechte auf Dateiebene.</key>
|
||||
<key alias="fileSavedHeader">Datei gespeichert</key>
|
||||
@@ -771,14 +787,16 @@ Wenn Sie sich für Runway entscheiden, können Sie optional Blöcke nutzen, die
|
||||
<key alias="xsltPermissionErrorText">XSLT kann nicht gespeichert werden. Bitte überprüfen Sie die Schreibrechte auf Dateiebene.</key>
|
||||
<key alias="xsltSavedHeader">XSLT gespeichert</key>
|
||||
<key alias="xsltSavedText">Keine Fehler im XSLT</key>
|
||||
<key alias="editMediaSaved">Medium gespeichert</key>
|
||||
<key alias="contentUnpublished">Veröffentlichung des Inhalts aufgehoben</key>
|
||||
<key alias="partialViewSavedHeader">Partielle Ansicht gespeichert</key>
|
||||
<key alias="partialViewSavedText">Partielle Ansicht ohne Fehler gespeichert.</key>
|
||||
<key alias="partialViewErrorHeader">Partielle Ansicht nicht gespeichert</key>
|
||||
<key alias="partialViewErrorText">Fehler beim Speichern der Datei.</key>
|
||||
<key alias="editUserTypeSaved">Benutzertyp gepsichert</key>
|
||||
<key alias="editMediaSavedText">Medium fehlerfrei gespeichert</key>
|
||||
<key alias="scriptSavedHeader">Skript gespeichert</key>
|
||||
<key alias="scriptSavedText">Skript fehlerfrei gespeichert!</key>
|
||||
<key alias="scriptErrorHeader">Skript nicht gespeichert</key>
|
||||
<key alias="scriptErrorText">Fehler beim Speichern der Datei.</key>
|
||||
<key alias="cssErrorText">Fehler beim Speichern der Datei.</key>
|
||||
</area>
|
||||
<area alias="stylesheet">
|
||||
<key alias="aliasHelp">Gewünschter CSS-Selektor, zum Beispiel 'h1', '.bigHeader' oder 'p.infoText'</key>
|
||||
@@ -800,73 +818,41 @@ Wenn Sie sich für Runway entscheiden, können Sie optional Blöcke nutzen, die
|
||||
<key alias="template">Vorlage</key>
|
||||
</area>
|
||||
<area alias="grid">
|
||||
<key alias="insertControl">Typ auswählen</key>
|
||||
<key alias="addLayout">Wählen Sie ein Layout für diese Seite</key>
|
||||
<key alias="addRows">Wählen Sie ein Reihe</key>
|
||||
<key alias="addElement">Element hinzufügen</key>
|
||||
<key alias="settingsApplied">Settings applied</key>
|
||||
|
||||
<key alias="contentNotAllowed">This content is not allowed here</key>
|
||||
<key alias="contentAllowed">This content is allowed here</key>
|
||||
|
||||
<key alias="clickToEmbed">Klicken zum Einfügen</key>
|
||||
<key alias="clickToInsertImage">Klicken zum Bild Einfügen</key>
|
||||
<key alias="placeholderImageCaption">Bildbeschriftung...</key>
|
||||
<key alias="placeholderWriteHere">Schreibe hier...</key>
|
||||
|
||||
<key alias="gridLayouts">Grid Layouts</key>
|
||||
<key alias="gridLayoutsDetail">Layouts sind der gesamte Arbeitsbereich des Grid Editors. Sie brauchen aber meistens nur ein oder zwei unterschiedliche Layouts.</key>
|
||||
<key alias="addGridLayout">Grid Layout hinzufügen</key>
|
||||
<key alias="addGridLayoutDetail">Layout einstellen (Spaltenbreite festlegen und zusätzliche Bereiche hinzufügen)</key>
|
||||
|
||||
<key alias="rowConfigurations">Zeilenkonfiguration</key>
|
||||
<key alias="rowConfigurationsDetail">Zeilen sind vordefinierte und horizontal angeordnete Zellen</key>
|
||||
<key alias="addRowConfiguration">Zeilenkonfiguration hinzufügen</key>
|
||||
<key alias="addRowConfigurationDetail">Zeilen einstellen (Zellenbreite festlegen und zusätzliche Zellen hinzufügen)</key>
|
||||
|
||||
<key alias="insertControl">Element hinzufügen</key>
|
||||
<key alias="addRows">Zeilenlayout auswählen</key>
|
||||
<key alias="addElement">Einfach auf <i class="icon icon-add blue"></i> klicken, um das erste Element anzulegen</key>
|
||||
<key alias="dropElement">Drop content</key>
|
||||
<key alias="clickToEmbed">Klicken, um Inhalt einzubetten</key>
|
||||
<key alias="clickToInsertImage">Klicken, um Abbildung einzufügen</key>
|
||||
<key alias="placeholderImageCaption">Beschriftung ...</key>
|
||||
<key alias="placeholderWriteHere">Hier schreiben ...</key>
|
||||
<key alias="gridLayouts">Layouts</key>
|
||||
<key alias="gridLayoutsDetail">Layouts sind die grundlegenden Arbeitsflächen für das Gestaltungsraster. Üblicherweise sind nicht mehr als ein oder zwei Layouts nötig.</key>
|
||||
<key alias="addGridLayout">Layout hinzufügen</key>
|
||||
<key alias="addGridLayoutDetail">Passen Sie das Layout an, indem Sie die Spaltenbreiten einstellen und Abschnitte hinzufügen.</key>
|
||||
<key alias="rowConfigurations">Einstellungen für das Zeilenlayout</key>
|
||||
<key alias="rowConfigurationsDetail">Zeilen sind vordefinierte horizontale Zellenanordnungen</key>
|
||||
<key alias="addRowConfiguration">Zeilenlayout hinzufügen</key>
|
||||
<key alias="addRowConfigurationDetail">Pasen Sie das Zeilenlayout an, indem Sie die Zellenbreite einstellen und Zellen hinzufügen.</key>
|
||||
<key alias="columns">Spalten</key>
|
||||
<key alias="columnsDetails">Gesamtanzahl von allen kombinierten Spalten im Grid Layout</key>
|
||||
|
||||
<key alias="columnsDetails">Insgesamte Spaltenanzahl im Layout</key>
|
||||
<key alias="settings">Einstellungen</key>
|
||||
<key alias="settingsDetails">Konfiguriere, welche Einstellungen der Editor ändern kann</key>
|
||||
|
||||
|
||||
<key alias="styles">Stilangaben</key>
|
||||
<key alias="stylesDetails">Konfiguriere, welche Stilangaben Editoren ändern können</key>
|
||||
|
||||
<key alias="settingDialogDetails">Einstellungen werden nur mit eingetragener und gültiger JSON Konfiguration gespeichert</key>
|
||||
|
||||
<key alias="allowAllEditors">Allen Editoren erlauben</key>
|
||||
<key alias="allowAllRowConfigurations">Alle Zeilenkonfigurationen erlauben</key>
|
||||
<key alias="settingsDetails">Legen Sie fest, welche Einstellungen die Autoren anpassen können.</key>
|
||||
<key alias="styles">CSS-Stile</key>
|
||||
<key alias="stylesDetails">Legen Sie fest, welche Stile die Autoren anpassen können.</key>
|
||||
<key alias="settingDialogDetails">Die Einstellungen werden nur gespeichert, wenn die angegebene JSON-Konfiguration gültig ist.</key>
|
||||
<key alias="allowAllEditors">Alle Elemente erlauben</key>
|
||||
<key alias="allowAllRowConfigurations">Alle Zeilenlayouts erlauben</key>
|
||||
</area>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<area alias="templateEditor">
|
||||
<area alias="templateEditor">
|
||||
<key alias="alternativeField">Alternatives Feld</key>
|
||||
<key alias="alternativeText">Alternativer Text</key>
|
||||
<key alias="casing">Groß- und Kleinschreibung</key>
|
||||
<key alias="encoding">Kodierung</key>
|
||||
<key alias="chooseField">Feld auswählen</key>
|
||||
<key alias="convertLineBreaks">Zeilenumbrüche ersetzen</key>
|
||||
<key alias="convertLineBreaksHelp">Ersetzt Zeilenumbrüche durch das HTML-Tag <br /></key>
|
||||
<key alias="customFields">Benutzerdefinierte Felder</key>
|
||||
<key alias="dateOnly">nur Datum</key>
|
||||
<key alias="formatAsDate">Als Datum formatieren</key>
|
||||
<key alias="htmlEncode">HTML kodieren</key>
|
||||
@@ -880,15 +866,13 @@ Wenn Sie sich für Runway entscheiden, können Sie optional Blöcke nutzen, die
|
||||
<key alias="recursive">Rekursiv</key>
|
||||
<key alias="removeParagraph">Textabsatz entfernen</key>
|
||||
<key alias="removeParagraphHelp">Alle <p> am Anfang und am Ende des Feldinhalts werden entfernt</key>
|
||||
<key alias="standardFields">Standardfelder</key>
|
||||
<key alias="uppercase">Großbuchstaben</key>
|
||||
<key alias="urlEncode">URL kodieren</key>
|
||||
<key alias="urlEncodeHelp">Wandelt Sonderzeichen zur Verwendung in URLs um</key>
|
||||
<key alias="usedIfAllEmpty">Wird nur verwendet, wenn beide vorgenannten Felder leer sind</key>
|
||||
<key alias="usedIfEmpty">Dieses Feld wird nur verwendet, wenn das primäre Feld leer ist</key>
|
||||
<key alias="withTime">Datum und Zeit mit Trennzeichen: </key>
|
||||
<key alias="customFields">Benutzerdefinierte Felder</key>
|
||||
<key alias="standardFields">Standardfelder</key>
|
||||
<key alias="encoding">Kodierung</key>
|
||||
</area>
|
||||
<area alias="translation">
|
||||
<key alias="assignedTasks">Ihre Aufgaben</key>
|
||||
@@ -958,7 +942,7 @@ Ihr freundlicher Umbraco-Robot
|
||||
<key alias="stylesheets">Stylesheets</key>
|
||||
<key alias="templates">Vorlagen</key>
|
||||
<key alias="xslt">XSLT-Dateien</key>
|
||||
<key alias="analytics">Analysen</key>
|
||||
<key alias="analytics">Auswertungen</key>
|
||||
</area>
|
||||
<area alias="update">
|
||||
<key alias="updateAvailable">Neues Update verfügbar</key>
|
||||
@@ -969,10 +953,10 @@ Ihr freundlicher Umbraco-Robot
|
||||
<area alias="user">
|
||||
<key alias="administrators">Administrator</key>
|
||||
<key alias="categoryField">Feld für Kategorie</key>
|
||||
<key alias="changePassword">Passwort ändern</key>
|
||||
<key alias="newPassword">Neues Passwort</key>
|
||||
<key alias="confirmNewPassword">Neues Kennwort (Bestätigung)</key>
|
||||
<key alias="changePasswordDescription">Sie können Ihr Kennwort für den Zugriff auf den Umbraco-Verwaltungsbereich ändern, indem Sie das nachfolgende Formular ausfüllen und auf die 'Kennwort ändern'-Schaltfläche klicken</key>
|
||||
<key alias="changePassword">Kennwort ändern</key>
|
||||
<key alias="newPassword">Neues Kennwort</key>
|
||||
<key alias="confirmNewPassword">Neues Kennwort (Bestätigung)</key>
|
||||
<key alias="changePasswordDescription">Sie können Ihr Kennwort für den Zugriff auf den Umbraco-Verwaltungsbereich ändern, indem Sie das nachfolgende Formular ausfüllen und auf 'Kennwort ändern' klicken</key>
|
||||
<key alias="contentChannel">Schnittstelle für externe Editoren</key>
|
||||
<key alias="descriptionField">Feld für Beschreibung</key>
|
||||
<key alias="disabled">Benutzer endgültig deaktivieren</key>
|
||||
@@ -988,12 +972,12 @@ Ihr freundlicher Umbraco-Robot
|
||||
<key alias="resetPassword">Kennwort zurücksetzen</key>
|
||||
<key alias="passwordChanged">Ihr Kennwort wurde geändert!</key>
|
||||
<key alias="passwordConfirm">Bitte bestätigen Sie das neue Kennwort</key>
|
||||
<key alias="passwordCurrent">Aktuelle Kennwort</key>
|
||||
<key alias="passwordInvalid">Ungültig aktuelle Kennwort</key>
|
||||
<key alias="passwordEnterNew">Geben Sie Ihr neues Kennwort ein</key>
|
||||
<key alias="passwordIsBlank">Ihr neues Kennwort darf nicht leer sein!</key>
|
||||
<key alias="passwordCurrent">Aktuelles Kennwort</key>
|
||||
<key alias="passwordInvalid">Aktuelles Kennwort falsch</key>
|
||||
<key alias="passwordIsDifferent">Ihr neues Kennwort und die Wiederholung Ihres neuen Kennworts stimmen nicht überein. Bitte versuchen Sie es erneut!</key>
|
||||
<key alias="passwordMismatch">Die Wiederholung Ihres Kennworts stimmt nicht mit dem neuen Kennwort überein!</key>
|
||||
<key alias="passwordMismatch">Die Bestätigung Ihres Kennworts stimmt nicht mit dem angegebenen neuen Kennwort überein!</key>
|
||||
<key alias="permissionReplaceChildren">Die Berechtigungen der untergeordneten Elemente ersetzen</key>
|
||||
<key alias="permissionSelectedPages">Die Berechtigungen für folgende Seiten werden angepasst:</key>
|
||||
<key alias="permissionSelectPages">Dokumente auswählen, um deren Berechtigungen zu ändern</key>
|
||||
@@ -1004,9 +988,9 @@ Ihr freundlicher Umbraco-Robot
|
||||
<key alias="usertype">Rolle</key>
|
||||
<key alias="userTypes">Rollen</key>
|
||||
<key alias="writer">Autor</key>
|
||||
<key alias="translator">Übersetzer</key>
|
||||
<key alias="yourProfile">Ihr Profil</key>
|
||||
<key alias="yourHistory">Ihr Verlauf</key>
|
||||
<key alias="sessionExpires">Sitzung läuft ab in</key>
|
||||
<key alias="translator">Übersetzer</key>
|
||||
<key alias="yourProfile" version="7.0">Ihr Profil</key>
|
||||
<key alias="yourHistory" version="7.0">Ihr Verlauf</key>
|
||||
<key alias="sessionExpires" version="7.0">Sitzung läuft ab in</key>
|
||||
</area>
|
||||
</language>
|
||||
|
||||
@@ -302,6 +302,12 @@
|
||||
<key alias="codemirroriewarning">NOTE! Even though CodeMirror is enabled by configuration, it is disabled in Internet Explorer because it's not stable enough.</key>
|
||||
<key alias="contentTypeAliasAndNameNotNull">Please fill both alias and name on the new property type!</key>
|
||||
<key alias="filePermissionsError">There is a problem with read/write access to a specific file or folder</key>
|
||||
<key alias="macroErrorLoadingPartialView">Error loading Partial View script (file: %0%)</key>
|
||||
<key alias="macroErrorLoadingUsercontrol">Error loading userControl '%0%'</key>
|
||||
<key alias="macroErrorLoadingCustomControl">Error loading customControl (Assembly: %0%, Type: '%1%')</key>
|
||||
<key alias="macroErrorLoadingMacroEngineScript">Error loading MacroEngine script (file: %0%)</key>
|
||||
<key alias="macroErrorParsingXSLTFile">"Error parsing XSLT file: %0%</key>
|
||||
<key alias="macroErrorReadingXSLTFile">"Error reading XSLT file: %0%</key>
|
||||
<key alias="missingTitle">Please enter a title</key>
|
||||
<key alias="missingType">Please choose a type</key>
|
||||
<key alias="pictureResizeBiggerThanOrg">You're about to make the picture larger than the original size. Are you sure that you want to proceed?</key>
|
||||
@@ -414,6 +420,8 @@
|
||||
<key alias="yes">Yes</key>
|
||||
<key alias="folder">Folder</key>
|
||||
<key alias="searchResults">Search results</key>
|
||||
<key alias="reorder">Reorder</key>
|
||||
<key alias="reorderDone">I am done reordering</key>
|
||||
</area>
|
||||
<area alias="graphicheadline">
|
||||
<key alias="backgroundcolor">Background colour</key>
|
||||
@@ -874,6 +882,7 @@ To manage your website, simply open the Umbraco back office and start adding con
|
||||
<key alias="chooseLayout">Choose a layout</key>
|
||||
<key alias="addRows">Add a row</key>
|
||||
<key alias="addElement">Add content</key>
|
||||
<key alias="dropElement">Drop content</key>
|
||||
<key alias="settingsApplied">Settings applied</key>
|
||||
|
||||
<key alias="contentNotAllowed">This content is not allowed here</key>
|
||||
|
||||
@@ -302,6 +302,12 @@
|
||||
<key alias="codemirroriewarning">NOTE! Even though CodeMirror is enabled by configuration, it is disabled in Internet Explorer because it's not stable enough.</key>
|
||||
<key alias="contentTypeAliasAndNameNotNull">Please fill both alias and name on the new property type!</key>
|
||||
<key alias="filePermissionsError">There is a problem with read/write access to a specific file or folder</key>
|
||||
<key alias="macroErrorLoadingPartialView">Error loading Partial View script (file: %0%)</key>
|
||||
<key alias="macroErrorLoadingUsercontrol">Error loading userControl '%0%'</key>
|
||||
<key alias="macroErrorLoadingCustomControl">Error loading customControl (Assembly: %0%, Type: '%1%')</key>
|
||||
<key alias="macroErrorLoadingMacroEngineScript">Error loading MacroEngine script (file: %0%)</key>
|
||||
<key alias="macroErrorParsingXSLTFile">"Error parsing XSLT file: %0%</key>
|
||||
<key alias="macroErrorReadingXSLTFile">"Error reading XSLT file: %0%</key>
|
||||
<key alias="missingTitle">Please enter a title</key>
|
||||
<key alias="missingType">Please choose a type</key>
|
||||
<key alias="pictureResizeBiggerThanOrg">You're about to make the picture larger than the original size. Are you sure that you want to proceed?</key>
|
||||
@@ -414,6 +420,8 @@
|
||||
<key alias="yes">Yes</key>
|
||||
<key alias="folder">Folder</key>
|
||||
<key alias="searchResults">Search results</key>
|
||||
<key alias="reorder">Reorder</key>
|
||||
<key alias="reorderDone">I am done reordering</key>
|
||||
</area>
|
||||
<area alias="graphicheadline">
|
||||
<key alias="backgroundcolor">Background color</key>
|
||||
@@ -874,6 +882,7 @@ To manage your website, simply open the Umbraco back office and start adding con
|
||||
<key alias="chooseLayout">Choose a layout</key>
|
||||
<key alias="addRows">Add a row</key>
|
||||
<key alias="addElement">Add content</key>
|
||||
<key alias="dropElement">Drop content</key>
|
||||
<key alias="settingsApplied">Settings applied</key>
|
||||
|
||||
<key alias="contentNotAllowed">This content is not allowed here</key>
|
||||
|
||||
@@ -407,6 +407,8 @@
|
||||
<key alias="welcome">Bienvenido...</key>
|
||||
<key alias="width">Ancho</key>
|
||||
<key alias="yes">Si</key>
|
||||
<key alias="reorder">Reorder</key>
|
||||
<key alias="reorderDone">I am done reordering</key>
|
||||
</area>
|
||||
<area alias="graphicheadline">
|
||||
<key alias="backgroundcolor">Color de fondo</key>
|
||||
@@ -720,6 +722,7 @@
|
||||
<key alias="chooseLayout">Choose layout</key>
|
||||
<key alias="addRows">Añade más filas</key>
|
||||
<key alias="addElement">Add content</key>
|
||||
<key alias="dropElement">Drop content</key>
|
||||
<key alias="settingsApplied">Settings applied</key>
|
||||
|
||||
<key alias="contentNotAllowed">This content is not allowed here</key>
|
||||
|
||||
@@ -396,6 +396,8 @@
|
||||
<key alias="yes">Oui</key>
|
||||
<key alias="folder">Dossier</key>
|
||||
<key alias="searchResults">Résultats de recherche</key>
|
||||
<key alias="reorder">Reorder</key>
|
||||
<key alias="reorderDone">I am done reordering</key>
|
||||
</area>
|
||||
<area alias="graphicheadline">
|
||||
<key alias="backgroundcolor">Background color</key>
|
||||
@@ -838,6 +840,7 @@ Pour gérer votre site, ouvrez simplement le backoffice Umbraco et commencez à
|
||||
<key alias="chooseLayout">Choose a layout</key>
|
||||
<key alias="addRows">Add a row</key>
|
||||
<key alias="addElement">Add content</key>
|
||||
<key alias="dropElement">Drop content</key>
|
||||
<key alias="settingsApplied">Settings applied</key>
|
||||
|
||||
<key alias="contentNotAllowed">This content is not allowed here</key>
|
||||
|
||||
@@ -330,6 +330,8 @@
|
||||
<key alias="welcome">ברוכים הבאים...</key>
|
||||
<key alias="width">רוחב</key>
|
||||
<key alias="yes">כן</key>
|
||||
<key alias="reorder">Reorder</key>
|
||||
<key alias="reorderDone">I am done reordering</key>
|
||||
</area>
|
||||
<area alias="graphicheadline">
|
||||
<key alias="backgroundcolor">צבע רקע</key>
|
||||
@@ -727,6 +729,7 @@ To manage your website, simply open the Umbraco back office and start adding con
|
||||
<key alias="chooseLayout">Choose a layout</key>
|
||||
<key alias="addRows">Add a row</key>
|
||||
<key alias="addElement">Add content</key>
|
||||
<key alias="dropElement">Drop content</key>
|
||||
<key alias="settingsApplied">Settings applied</key>
|
||||
|
||||
<key alias="contentNotAllowed">This content is not allowed here</key>
|
||||
|
||||
@@ -323,6 +323,8 @@
|
||||
<key alias="welcome">Benvenuto...</key>
|
||||
<key alias="width">Larghezza</key>
|
||||
<key alias="yes">Si</key>
|
||||
<key alias="reorder">Reorder</key>
|
||||
<key alias="reorderDone">I am done reordering</key>
|
||||
</area>
|
||||
<area alias="graphicheadline">
|
||||
<key alias="backgroundcolor">Colore di sfondo</key>
|
||||
@@ -697,6 +699,7 @@ Per gestire il tuo sito web, è sufficiente aprire il back office di Umbraco e i
|
||||
<key alias="chooseLayout">Choose a layout</key>
|
||||
<key alias="addRows">Add a row</key>
|
||||
<key alias="addElement">Add content</key>
|
||||
<key alias="dropElement">Drop content</key>
|
||||
<key alias="settingsApplied">Settings applied</key>
|
||||
|
||||
<key alias="contentNotAllowed">This content is not allowed here</key>
|
||||
|
||||
@@ -410,6 +410,8 @@
|
||||
<key alias="yes">はい</key>
|
||||
<key alias="folder">フォルダー</key>
|
||||
<key alias="searchResults">検索結果</key>
|
||||
<key alias="reorder">Reorder</key>
|
||||
<key alias="reorderDone">I am done reordering</key>
|
||||
</area>
|
||||
<area alias="graphicheadline">
|
||||
<key alias="backgroundcolor">背景色</key>
|
||||
@@ -870,6 +872,7 @@ Runwayをインストールして作られた新しいウェブサイトがど
|
||||
<key alias="addLayout">Choose a layout</key>
|
||||
<key alias="addRows">ここからレイアウトを選択します</key>
|
||||
<key alias="addElement"><![CDATA[<i class="icon icon-add blue"></i> 最初の要素を追加します]]></key>
|
||||
<key alias="dropElement">Drop content</key>
|
||||
<key alias="settingsApplied">Settings applied</key>
|
||||
|
||||
<key alias="contentNotAllowed">This content is not allowed here</key>
|
||||
|
||||
@@ -323,6 +323,8 @@
|
||||
<key alias="welcome">환영합니다...</key>
|
||||
<key alias="width">너비</key>
|
||||
<key alias="yes">예</key>
|
||||
<key alias="reorder">Reorder</key>
|
||||
<key alias="reorderDone">I am done reordering</key>
|
||||
</area>
|
||||
<area alias="graphicheadline">
|
||||
<key alias="backgroundcolor">배경색</key>
|
||||
@@ -703,6 +705,7 @@
|
||||
<key alias="chooseLayout">Choose a layout</key>
|
||||
<key alias="addRows">Add a row</key>
|
||||
<key alias="addElement">Add content</key>
|
||||
<key alias="dropElement">Drop content</key>
|
||||
<key alias="settingsApplied">Settings applied</key>
|
||||
|
||||
<key alias="contentNotAllowed">This content is not allowed here</key>
|
||||
|
||||
@@ -412,6 +412,8 @@
|
||||
<key alias="width">Breedte</key>
|
||||
<key alias="yes">Ja</key>
|
||||
<key alias="folder">Map</key>
|
||||
<key alias="reorder">Reorder</key>
|
||||
<key alias="reorderDone">I am done reordering</key>
|
||||
|
||||
<key alias="searchResults">Zoekresultaten</key>
|
||||
</area>
|
||||
@@ -810,6 +812,7 @@ Echter, Runway biedt een gemakkelijke basis om je snel op weg te helpen. Als je
|
||||
<key alias="chooseLayout">Choose a layout</key>
|
||||
<key alias="addRows">Een rij aan de lay-out toevoegen</key>
|
||||
<key alias="addElement"><![CDATA[Klik om te starten op het <i class="icon icon-add blue"></i> teken onderaan en voeg je eerste item toe]]></key>
|
||||
<key alias="dropElement">Drop content</key>
|
||||
<key alias="settingsApplied">Settings applied</key>
|
||||
|
||||
<key alias="contentNotAllowed">This content is not allowed here</key>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<language alias="no" intName="Norwegian" localName="norsk" lcid="20" culture="nb-NO">
|
||||
<creator>
|
||||
<name>The Umbraco community</name>
|
||||
@@ -8,6 +8,7 @@
|
||||
<key alias="assignDomain">Angi domene</key>
|
||||
<key alias="auditTrail">Revisjoner</key>
|
||||
<key alias="browse">Bla gjennom</key>
|
||||
<key alias="changeDocType">Skift dokumenttype</key>
|
||||
<key alias="copy">Kopier</key>
|
||||
<key alias="create">Opprett</key>
|
||||
<key alias="createPackage">Opprett pakke</key>
|
||||
@@ -15,16 +16,18 @@
|
||||
<key alias="disable">Deaktiver</key>
|
||||
<key alias="emptyTrashcan">Tøm papirkurv</key>
|
||||
<key alias="exportDocumentType">Eksporter dokumenttype</key>
|
||||
<key alias="importDocumentType">Importer documenttype</key>
|
||||
<key alias="importDocumentType">Importer dokumenttype</key>
|
||||
<key alias="importPackage">Importer pakke</key>
|
||||
<key alias="liveEdit">Rediger i Canvas</key>
|
||||
<key alias="logout">Lukk Umbraco</key>
|
||||
<key alias="logout">Logg av</key>
|
||||
<key alias="move">Flytt</key>
|
||||
<key alias="notify">Varsling</key>
|
||||
<key alias="notify">Varslinger</key>
|
||||
<key alias="protect">Offentlig tilgang</key>
|
||||
<key alias="publish">Publiser</key>
|
||||
<key alias="unpublish">Avpubliser</key>
|
||||
<key alias="refreshNode">Oppdater noder</key>
|
||||
<key alias="republish">Republiser hele siten</key>
|
||||
<key alias="restore" version="7.3.0">Gjenopprett</key>
|
||||
<key alias="rights">Rettigheter</key>
|
||||
<key alias="rollback">Reverser</key>
|
||||
<key alias="sendtopublish">Send til publisering</key>
|
||||
@@ -33,32 +36,35 @@
|
||||
<key alias="toPublish">Send til publisering</key>
|
||||
<key alias="translate">Oversett</key>
|
||||
<key alias="update">Oppdater</key>
|
||||
<key alias="unpublish">Avpubliser</key>
|
||||
<key alias="defaultValue">Standard verdi</key>
|
||||
</area>
|
||||
<area alias="assignDomain">
|
||||
<key alias="addNew">Legg til domene</key>
|
||||
<key alias="domain">Domene</key>
|
||||
<key alias="domainCreated">Domene '%0%' er nå opprettet og tilknyttet siden</key>
|
||||
<key alias="domainDeleted">Domenet '%0%' er nå slettet</key>
|
||||
<key alias="domainExists">Domenet '%0%' er allerede tilknyttet</key>
|
||||
<key alias="domainHelp">Gyldige domenenavn er: "eksempel.no", "www.eksempel.no", "eksempel.no:8080" eller "https://www.eksempel.no/".<br/><br/>Stier med ett nivå støttes, f.eks. "eksempel.com/no". Imidlertid bør det unngås. Bruk heller språkinnstillingen over.</key>
|
||||
<key alias="domainUpdated">Domenet '%0%' er nå oppdatert</key>
|
||||
<key alias="orEdit">eller rediger eksisterende domener</key>
|
||||
<key alias="permissionDenied">Ingen tilgang.</key>
|
||||
<key alias="addNew">Legg til domene</key>
|
||||
<key alias="remove">Fjern</key>
|
||||
<key alias="invalidNode">Ugyldig node.</key>
|
||||
<key alias="invalidDomain">Ugyldig domeneformat.</key>
|
||||
<key alias="duplicateDomain">Domene er allerede tilknyttet.</key>
|
||||
<key alias="language">Språk</key>
|
||||
<key alias="domain">Domene</key>
|
||||
<key alias="domainCreated">Domene '%0%' er nå opprettet og tilknyttet siden</key>
|
||||
<key alias="domainDeleted">Domenet '%0%' er nå slettet</key>
|
||||
<key alias="domainExists">Domenet '%0%' er allerede tilknyttet</key>
|
||||
<key alias="domainUpdated">Domenet '%0%' er nå oppdatert</key>
|
||||
<key alias="orEdit">eller rediger eksisterende domener</key>
|
||||
<key alias="domainHelp"><![CDATA[Gyldige domenenavn er: "eksempel.no", "www.eksempel.no", "eksempel.no:8080" eller "https://www.eksempel.no/".<br/><br/>Stier med ett nivå støttes, f.eks. "eksempel.com/no". Imidlertid bør det unngås. Bruk heller språkinnstillingen over.]]></key>
|
||||
<key alias="inherit">Arv</key>
|
||||
<key alias="setLanguage">Språk</key>
|
||||
<key alias="setLanguageHelp">Sett språk for underordnede noder eller arv språk fra overordnet.<br/>Vil også gjelde denne noden, med mindre et underordnet domene også gjelder.</key>
|
||||
<key alias="setLanguageHelp"><![CDATA[Sett språk for underordnede noder eller arv språk fra overordnet.<br/>Vil også gjelde denne noden, med mindre et underordnet domene også gjelder.]]></key>
|
||||
<key alias="setDomains">Domener</key>
|
||||
</area>
|
||||
<area alias="auditTrails">
|
||||
<key alias="atViewingFor">Viser for</key>
|
||||
</area>
|
||||
<area alias="buttons">
|
||||
<key alias="select">Velg</key>
|
||||
<key alias="selectCurrentFolder">Velg gjeldende mappe</key>
|
||||
<key alias="somethingElse">Gjør noe annet</key>
|
||||
<key alias="bold">Fet</key>
|
||||
<key alias="deindent">Reduser innrykk</key>
|
||||
<key alias="formFieldInsert">Sett inn skjemafelt</key>
|
||||
@@ -76,30 +82,57 @@
|
||||
<key alias="macroInsert">Sett inn makro</key>
|
||||
<key alias="pictureInsert">Sett inn bilde</key>
|
||||
<key alias="relations">Rediger relasjoner</key>
|
||||
<key alias="returnToList">Tilbake til listen</key>
|
||||
<key alias="save">Lagre</key>
|
||||
<key alias="saveAndPublish">Lagre og publiser</key>
|
||||
<key alias="saveToPublish">Lagre og send til publisering</key>
|
||||
<key alias="showPage">Forhåndsvis</key>
|
||||
<key alias="showPageDisabled">Forhåndsvisning er deaktivert siden det ikke er angitt noen mal</key>
|
||||
<key alias="styleChoose">Velg formattering</key>
|
||||
<key alias="styleShow">Vis stiler</key>
|
||||
<key alias="tableInsert">Sett inn tabell</key>
|
||||
<key alias="showPageDisabled">Forhåndsvisning er deaktivert siden det ikke er angitt noen mal</key>
|
||||
</area>
|
||||
<area alias="changeDocType">
|
||||
<key alias="changeDocTypeInstruction">For å endre det valge innholdets dokumenttype, velger du først en ny dokumenttype som er gyldig på gjeldende plassering.</key>
|
||||
<key alias="changeDocTypeInstruction2">Kontroller deretter at alle egenskaper blir overført riktig til den nye dokumenttypen og klikk på Lagre.</key>
|
||||
<key alias="contentRepublished">Innholdet har blitt republisert.</key>
|
||||
<key alias="currentProperty">Nåværende egenskap</key>
|
||||
<key alias="currentType">Nåværende type</key>
|
||||
<key alias="docTypeCannotBeChanged">Du kan ikke endre dokumenttype, ettersom det ikke er andre gyldige dokumenttyper på denne plasseringen.</key>
|
||||
<key alias="docTypeChanged">Dokumenttype endret</key>
|
||||
<key alias="mapProperties">Overfør egenskaper</key>
|
||||
<key alias="mapToProperty">Overfør til egenskap</key>
|
||||
<key alias="newTemplate">Ny mal</key>
|
||||
<key alias="newType">Ny type</key>
|
||||
<key alias="none">ingen</key>
|
||||
<key alias="selectedContent">Innhold</key>
|
||||
<key alias="selectNewDocType">Velg ny dokumenttype</key>
|
||||
<key alias="successMessage">Dokumenttypen på det valgte innhold ble endret til [new type], og følgende egenskaper ble overført:</key>
|
||||
<key alias="to">til</key>
|
||||
<key alias="validationErrorPropertyWithMoreThanOneMapping">Overføringen av egenskaper kunne ikke fullføres da en eller flere egenskaper er satt til å bli overført mer enn en gang.</key>
|
||||
<key alias="validDocTypesNote">Kun andre dokumenttyper som er gyldige for denne plasseringen vises.</key>
|
||||
</area>
|
||||
<area alias="content">
|
||||
<key alias="isPublished" version="7.2">Publisert</key>
|
||||
<key alias="about">Om siden</key>
|
||||
<key alias="alias">Alternativ lenke</key>
|
||||
<key alias="alias">Alias</key>
|
||||
<key alias="alternativeTextHelp">(hvordan du ville beskrevet bildet over telefon)</key>
|
||||
<key alias="alternativeUrls">Alternative lenker</key>
|
||||
<key alias="clickToEdit">Klikk for å redigere denne noden</key>
|
||||
<key alias="createBy">Opprettet av</key>
|
||||
<key alias="createByDesc" version="7.0">Opprinnelig forfatter</key>
|
||||
<key alias="updatedBy" version="7.0">Oppdatert av</key>
|
||||
<key alias="createDate">Opprettet den</key>
|
||||
<key alias="createDateDesc" version="7.0">Tidspunkt for opprettelse</key>
|
||||
<key alias="documentType">Dokumenttype</key>
|
||||
<key alias="editing">Redigerer</key>
|
||||
<key alias="expireDate">Utløpsdato</key>
|
||||
<key alias="itemChanged">Denne noden er endret siden siste publisering</key>
|
||||
<key alias="itemNotPublished">Denne noden er enda ikke publisert</key>
|
||||
<key alias="lastPublished">Sist publisert</key>
|
||||
<key alias="listViewNoItems" version="7.1.5">Det er ingen elementer å vise i listen.</key>
|
||||
<key alias="mediatype">Mediatype</key>
|
||||
<key alias="mediaLinks">Link til media</key>
|
||||
<key alias="membergroup">Medlemsgruppe</key>
|
||||
<key alias="memberrole">Rolle</key>
|
||||
<key alias="membertype">Medlemstype</key>
|
||||
@@ -107,26 +140,42 @@
|
||||
<key alias="nodeName">Sidetittel</key>
|
||||
<key alias="otherElements">Egenskaper</key>
|
||||
<key alias="parentNotPublished">Dette dokumentet er publisert, men ikke synlig ettersom den overliggende siden '%0%' ikke er publisert</key>
|
||||
<key alias="parentNotPublishedAnomaly">Intern feil: dokumentet er publisert men finnes ikke i hurtigbuffer</key>
|
||||
<key alias="publish">Publisert</key>
|
||||
<key alias="publishStatus">Publiseringsstatus</key>
|
||||
<key alias="releaseDate">Publiseringsdato</key>
|
||||
<key alias="unpublishDate">Dato for avpublisering</key>
|
||||
<key alias="removeDate">Fjern dato</key>
|
||||
<key alias="sortDone">Sorteringsrekkefølgen er oppdatert</key>
|
||||
<key alias="sortHelp">Trekk og slipp nodene eller klikk på kolonneoverskriftene for å sortere. Du kan velge flere noder ved å holde shift eller control tastene mens du velger.</key>
|
||||
<key alias="statistics">Statistikk</key>
|
||||
<key alias="titleOptional">Tittel (valgfri)</key>
|
||||
<key alias="altTextOptional">Alternativ tekst (valgfri)</key>
|
||||
<key alias="type">Type</key>
|
||||
<key alias="unPublish">Avpubliser</key>
|
||||
<key alias="updateDate">Sist endret</key>
|
||||
<key alias="updateDateDesc" version="7.0">Tidspunkt for siste endring</key>
|
||||
<key alias="uploadClear">Fjern fil</key>
|
||||
<key alias="urls">Lenke til dokument</key>
|
||||
<key alias="mediaLinks">Link til media</key>
|
||||
<key alias="parentNotPublishedAnomaly">Intern feil: dokumentet er publisert men finnes ikke i hurtigbuffer</key>
|
||||
<key alias="memberof">Medlem av gruppe(ne)</key>
|
||||
<key alias="notmemberof">Ikke medlem av gruppe(ne)</key>
|
||||
<key alias="childItems" version="7.0">Undersider</key>
|
||||
<key alias="target" version="7.0">Åpne i vindu</key>
|
||||
</area>
|
||||
<area alias="media">
|
||||
<key alias="clickToUpload">Klikk for å laste opp</key>
|
||||
<key alias="dropFilesHere">Slipp filene her...</key>
|
||||
</area>
|
||||
<area alias="member">
|
||||
<key alias="createNewMember">Opprett et nytt medlem</key>
|
||||
<key alias="allMembers">Alle medlemmer</key>
|
||||
</area>
|
||||
<area alias="create">
|
||||
<key alias="chooseNode">Hvor ønsker du å oprette den nye %0%</key>
|
||||
<key alias="createUnder">Opprett under</key>
|
||||
<key alias="updateData">Velg en type og skriv en tittel</key>
|
||||
<key alias="noDocumentTypes" version="7.0"><![CDATA[Det er ingen tillatte dokumenttyper tilgjengelig. Du må tillate disse i innstillinger under <strong>"dokumenttyper"</strong>.]]></key>
|
||||
<key alias="noMediaTypes" version="7.0"><![CDATA[Det er ingen tillatte mediatyper tilgjengelig. Du må tillate disse i innstillinger under <strong>"mediatyper"</strong>.]]></key>
|
||||
</area>
|
||||
<area alias="dashboard">
|
||||
<key alias="browser">Til ditt nettsted</key>
|
||||
@@ -168,7 +217,7 @@
|
||||
<key alias="recycleBinDeleting">Innholdet i papirkurven blir nå slettet. Vennligst ikke lukk dette vinduet mens denne operasjonen foregår</key>
|
||||
<key alias="recycleBinIsEmpty">Papirkurven er nå tom</key>
|
||||
<key alias="recycleBinWarning">Når elementer blir slettet fra papirkurven vil de være slettet for alltid</key>
|
||||
<key alias="regexSearchError"><a target='_blank' href='http://regexlib.com'>regexlib.com</a> tjenesten opplever for tiden problemer som vi ikke har kontroll over. Vi beklager denne ubeleiligheten.</key>
|
||||
<key alias="regexSearchError"><![CDATA[<a target='_blank' href='http://regexlib.com'>regexlib.com</a> tjenesten opplever for tiden problemer som vi ikke har kontroll over. Vi beklager denne ubeleiligheten.]]></key>
|
||||
<key alias="regexSearchHelp">Søk etter et regulært uttrykk for å legge inn validering til et felt. Eksempel: 'email, 'zip-code' 'url'</key>
|
||||
<key alias="removeMacro">Fjern makro</key>
|
||||
<key alias="requiredField">Obligatorisk</key>
|
||||
@@ -177,24 +226,42 @@
|
||||
<key alias="siterepublishHelp">Hurtigbufferen for siden vil bli oppdatert. Alt publisert innhold vil bli oppdatert, mens upublisert innhold vil forbli upublisert.</key>
|
||||
<key alias="tableColumns">Antall kolonner</key>
|
||||
<key alias="tableRows">Antall rader</key>
|
||||
<key alias="templateContentAreaHelp"><strong>Sett en plassholder-ID</strong><br/>Ved å sette en ID på plassholderen kan du legge inn innhold i denne malen fra underliggende maler, ved å referere denne ID'en ved hjelp av et <code>&lt;asp:content /&gt;</code> element.</key>
|
||||
<key alias="templateContentPlaceHolderHelp"><strong>Velg en plassholder ID</strong> fra listen under. Du kan bare velge ID'er fra den gjeldende malens overordnede mal.</key>
|
||||
<key alias="templateContentAreaHelp"><![CDATA[<strong>Sett en plassholder-ID</strong><br/>Ved å sette en ID på plassholderen kan du legge inn innhold i denne malen fra underliggende maler, ved å referere denne ID'en ved hjelp av et <code><asp:content /></code> element.]]></key>
|
||||
<key alias="templateContentPlaceHolderHelp"><![CDATA[<strong>Velg en plassholder ID</strong> fra listen under. Du kan bare velge ID'er fra den gjeldende malens overordnede mal.]]></key>
|
||||
<key alias="thumbnailimageclickfororiginal">Klikk på bildet for å se det i full størrelse</key>
|
||||
<key alias="treepicker">Velg punkt</key>
|
||||
<key alias="viewCacheItem">Se buffret node</key>
|
||||
</area>
|
||||
<area alias="dictionaryItem">
|
||||
<key alias="description">Rediger de forskjellige språkversjonene for ordbokelementet '<em>%0%</em>' under.<br/>Du kan legge til flere språk under 'språk' i menyen til venstre.</key>
|
||||
<key alias="description"><![CDATA[Rediger de forskjellige språkversjonene for ordbokelementet '<em>%0%</em>' under.<br/>Du kan legge til flere språk under 'språk' i menyen til venstre.]]></key>
|
||||
<key alias="displayName">Språk</key>
|
||||
</area>
|
||||
<area alias="placeholders">
|
||||
<key alias="username">Skriv inn ditt brukernavn</key>
|
||||
<key alias="password">Skriv inn ditt passord</key>
|
||||
<key alias="nameentity">Navngi %0%...</key>
|
||||
<key alias="entername">Skriv inn navn...</key>
|
||||
<key alias="search">Søk...</key>
|
||||
<key alias="filter">Filtrer...</key>
|
||||
<key alias="enterTags">Skriv inn nøkkelord (trykk på Enter etter hvert nøkkelord)...</key>
|
||||
</area>
|
||||
<area alias="editcontenttype">
|
||||
<key alias="allowAtRoot" version="7.2">Tillat på rotnivå</key>
|
||||
<key alias="allowAtRootDesc" version="7.2">Kun dokumenttyper med denne innstillingen aktivert kan opprettes på rotnivå under Innhold og Mediearkiv</key>
|
||||
<key alias="allowedchildnodetypes">Tillatte underordnede noder</key>
|
||||
<key alias="contenttypecompositions">Sammensetting av dokumenttyper</key>
|
||||
<key alias="create">Opprett</key>
|
||||
<key alias="deletetab">Slett arkfane</key>
|
||||
<key alias="description">Beskrivelse</key>
|
||||
<key alias="newtab">Ny arkfane</key>
|
||||
<key alias="tab">Arkfane</key>
|
||||
<key alias="thumbnail">Miniatyrbilde</key>
|
||||
<key alias="hasListView">Aktiver listevisning</key>
|
||||
<key alias="hasListViewDesc" version="7.2">Viser undersider i en søkbar liste, undersider vises ikke i innholdstreet</key>
|
||||
<key alias="currentListView" version="7.2">Gjeldende listevisning</key>
|
||||
<key alias="currentListViewDesc" version="7.2">Den aktive listevisningsdatatypen</key>
|
||||
<key alias="createListView" version="7.2">Opprett brukerdefinert listevisning</key>
|
||||
<key alias="removeListView" version="7.2">Fjern brukerdefinert listevisning</key>
|
||||
</area>
|
||||
<area alias="editdatatype">
|
||||
<key alias="addPrevalue">Legg til forhåndsverdi</key>
|
||||
@@ -223,6 +290,7 @@
|
||||
<key alias="errorRegExpWithoutTab">%0% er ikke i et korrekt format</key>
|
||||
</area>
|
||||
<area alias="errors">
|
||||
<key alias="dissallowedMediaType">Filtypen er deaktivert av administrator</key>
|
||||
<key alias="codemirroriewarning">NB! Selv om CodeMirror er aktivert i konfigurasjon er det deaktivert i Internet Explorer pga. ustabilitet.</key>
|
||||
<key alias="contentTypeAliasAndNameNotNull">Fyll ut både alias og navn på den nye egenskapstypen!</key>
|
||||
<key alias="filePermissionsError">Det er et problem med lese/skrive rettighetene til en fil eller mappe</key>
|
||||
@@ -238,16 +306,17 @@
|
||||
<key alias="tableSplitNotSplittable">Du kan ikke dele en celle som allerede er delt.</key>
|
||||
<key alias="xsltErrorHeader">Feil i XSLT kode</key>
|
||||
<key alias="xsltErrorText">XSLT ble ikke lagret på grunn av feil i koden</key>
|
||||
<key alias="dissallowedMediaType">Filtypen er deaktivert av administrator</key>
|
||||
<key alias="missingPropertyEditorErrorMessage">Det er et problem dem datatypen som brukes til denne egenskapen. Kontroller innstillingene og prøv igjen.</key>
|
||||
</area>
|
||||
<area alias="general">
|
||||
<key alias="about">Om</key>
|
||||
<key alias="action">Handling</key>
|
||||
<key alias="actions">Muligheter</key>
|
||||
<key alias="add">Legg til</key>
|
||||
<key alias="alias">Alias</key>
|
||||
<key alias="areyousure">Er du sikker?</key>
|
||||
<key alias="border">Ramme</key>
|
||||
<key alias="by">eller</key>
|
||||
<key alias="by">av</key>
|
||||
<key alias="cancel">Avbryt</key>
|
||||
<key alias="cellMargin">Cellemargin</key>
|
||||
<key alias="choose">Velg</key>
|
||||
@@ -292,6 +361,7 @@
|
||||
<key alias="logout">Logg ut</key>
|
||||
<key alias="macro">Makro</key>
|
||||
<key alias="move">Flytt</key>
|
||||
<key alias="more">Mer</key>
|
||||
<key alias="name">Navn</key>
|
||||
<key alias="new">Ny</key>
|
||||
<key alias="next">Neste</key>
|
||||
@@ -311,6 +381,7 @@
|
||||
<key alias="remaining">Gjenværende</key>
|
||||
<key alias="rename">Gi nytt navn</key>
|
||||
<key alias="renew">Forny</key>
|
||||
<key alias="required" version="7.0">Påkrevd</key>
|
||||
<key alias="retry">Prøv igjen</key>
|
||||
<key alias="rights">Rettigheter</key>
|
||||
<key alias="search">Søk</key>
|
||||
@@ -334,6 +405,7 @@
|
||||
<key alias="width">Bredde</key>
|
||||
<key alias="yes">Ja</key>
|
||||
<key alias="folder">Mappe</key>
|
||||
<key alias="searchResults">Søkeresultater</key>
|
||||
</area>
|
||||
<area alias="graphicheadline">
|
||||
<key alias="backgroundcolor">Bakgrunnsfarge</key>
|
||||
@@ -350,43 +422,43 @@
|
||||
<key alias="databaseErrorWebConfig">Kunne ikke lagre Web.Config-filen. Vennligst endre databasens tilkoblingsstreng manuelt. </key>
|
||||
<key alias="databaseFound">Din database er funnet og identifisert som</key>
|
||||
<key alias="databaseHeader">Databasekonfigurasjon</key>
|
||||
<key alias="databaseInstall">Klikk <strong>installer</strong>-knappen for å installere Umbraco %0% databasen</key>
|
||||
<key alias="databaseInstallDone">Umbraco %0% har nå blitt kopiert til din database. Trykk <strong>Neste</strong> for å fortsette.</key>
|
||||
<key alias="databaseNotFound"><p>Databasen ble ikke funnet! Vennligst sjekk at informasjonen i "connection string" i "web.config"-filen er korrekt.</p><p>For å fortsette, vennligst rediger "web.config"-filen (bruk Visual Studio eller din favoritteditor), rull ned til bunnen, og legg til tilkoblingsstrengen for din database i nøkkelen "umbracoDbDSN" og lagre filen.</p><p>Klikk <strong>prøv på nytt</strong> når du er ferdig.<br /> <a href="http://our.umbraco.org/documentation/Using-Umbraco/Config-files/webconfig7" target="_blank">Mer informasjon om redigering av web.config her.</a></p></key>
|
||||
<key alias="databaseText">For å fullføre dette steget, må du vite en del informasjon om din database server ("tilkoblingsstreng").<br/> Vennligst kontakt din ISP om nødvendig. Hvis du installerer på en lokal maskin eller server, må du kanskje skaffe informasjonen fra din systemadministrator.</key>
|
||||
<key alias="databaseUpgrade"><p> Trykk på knappen <strong>oppgrader</strong> for å oppgradere databasen din til Umbraco %0%</p> <p> Ikke vær urolig - intet innhold vil bli slettet og alt vil fortsette å virke etterpå! </p></key>
|
||||
<key alias="databaseUpgradeDone">Databasen din har blitt oppgradert til den siste utgaven, %0%.<br/>Trykk <strong>Neste</strong> for å fortsette.</key>
|
||||
<key alias="databaseUpToDate">Databasen din er av nyeste versjon! Klikk <strong>neste</strong> for å fortsette konfigurasjonsveiviseren</key>
|
||||
<key alias="defaultUserChangePass"><strong>Passordet til standardbrukeren må endres!</key>
|
||||
<key alias="defaultUserDisabled"><strong>Standardbrukeren har blitt deaktivert eller har ingen tilgang til Umbraco!</strong></p><p>Ingen videre handling er nødvendig. Klikk <b>neste</b> for å fortsette.</key>
|
||||
<key alias="defaultUserPassChanged"><strong>Passordet til standardbrukeren har blitt forandret etter installasjonen!</strong></p><p>Ingen videre handling er nødvendig. Klikk <strong>Neste</strong> for å fortsette.</key>
|
||||
<key alias="databaseInstall"><![CDATA[Klikk <strong>installer</strong>-knappen for å installere Umbraco %0% databasen]]></key>
|
||||
<key alias="databaseInstallDone"><![CDATA[Umbraco %0% har nå blitt kopiert til din database. Trykk <strong>Neste</strong> for å fortsette.]]></key>
|
||||
<key alias="databaseNotFound"><![CDATA[<p>Databasen ble ikke funnet! Vennligst sjekk at informasjonen i "connection string" i "web.config"-filen er korrekt.</p><p>For å fortsette, vennligst rediger "web.config"-filen (bruk Visual Studio eller din favoritteditor), rull ned til bunnen, og legg til tilkoblingsstrengen for din database i nøkkelen "umbracoDbDSN" og lagre filen.</p><p>Klikk <strong>prøv på nytt</strong> når du er ferdig.<br /> <a href="http://our.umbraco.org/documentation/Using-Umbraco/Config-files/webconfig7" target="_blank">Mer informasjon om redigering av web.config her.</a></p>]]></key>
|
||||
<key alias="databaseText"><![CDATA[For å fullføre dette steget, må du vite en del informasjon om din database server ("tilkoblingsstreng").<br/> Vennligst kontakt din ISP om nødvendig. Hvis du installerer på en lokal maskin eller server, må du kanskje skaffe informasjonen fra din systemadministrator.]]></key>
|
||||
<key alias="databaseUpgrade"><![CDATA[<p> Trykk på knappen <strong>oppgrader</strong> for å oppgradere databasen din til Umbraco %0%</p> <p> Ikke vær urolig - intet innhold vil bli slettet og alt vil fortsette å virke etterpå! </p>]]></key>
|
||||
<key alias="databaseUpgradeDone"><![CDATA[Databasen din har blitt oppgradert til den siste utgaven, %0%.<br/>Trykk <strong>Neste</strong> for å fortsette.]]></key>
|
||||
<key alias="databaseUpToDate"><![CDATA[Databasen din er av nyeste versjon! Klikk <strong>neste</strong> for å fortsette konfigurasjonsveiviseren]]></key>
|
||||
<key alias="defaultUserChangePass"><![CDATA[<strong>Passordet til standardbrukeren må endres!]]></key>
|
||||
<key alias="defaultUserDisabled"><![CDATA[<strong>Standardbrukeren har blitt deaktivert eller har ingen tilgang til Umbraco!</strong></p><p>Ingen videre handling er nødvendig. Klikk <b>neste</b> for å fortsette.]]></key>
|
||||
<key alias="defaultUserPassChanged"><![CDATA[<strong>Passordet til standardbrukeren har blitt forandret etter installasjonen!</strong></p><p>Ingen videre handling er nødvendig. Klikk <strong>Neste</strong> for å fortsette.]]></key>
|
||||
<key alias="defaultUserPasswordChanged">Passordet er blitt endret!</key>
|
||||
<key alias="defaultUserText"><p> Umbraco skaper en standard bruker med login <strong> ( "admin") </ strong> og passord <strong> ( "default") </ strong>. Det er <strong> viktig </ strong> at passordet er endret til noe unikt. </ p> <p> Dette trinnet vil sjekke standard brukerens passord og foreslår hvis det må skiftes </ p></key>
|
||||
<key alias="defaultUserText"><![CDATA[<p> Umbraco skaper en standard bruker med login <strong> ( "admin") </ strong> og passord <strong> ( "default") </ strong>. Det er <strong> viktig </ strong> at passordet er endret til noe unikt. </ p> <p> Dette trinnet vil sjekke standard brukerens passord og foreslår hvis det må skiftes </ p>]]></key>
|
||||
<key alias="greatStart">Få en god start med våre introduksjonsvideoer</key>
|
||||
<key alias="licenseText">Ved å klikke på Neste-knappen (eller endre UmbracoConfigurationStatus i Web.config), godtar du lisensen for denne programvaren som angitt i boksen nedenfor. Legg merke til at denne Umbraco distribusjon består av to ulike lisenser, åpen kilde MIT lisens for rammen og Umbraco frivareverktøy lisens som dekker brukergrensesnittet.</key>
|
||||
<key alias="None">Ikke installert.</key>
|
||||
<key alias="permissionsAffectedFolders">Berørte filer og mapper</key>
|
||||
<key alias="permissionsAffectedFoldersMoreInfo">Mer informasjon om å sette opp rettigheter for Umbraco her</key>
|
||||
<key alias="permissionsAffectedFoldersText">Du må gi ASP.NET brukeren rettigheter til å endre de følgende filer og mapper</key>
|
||||
<key alias="permissionsAlmostPerfect"><strong>Rettighetene er nesten perfekt satt opp!</strong><br/><br/> Du kan kjøre Umbraco uten problemer, men du vil ikke være i stand til å installere de anbefalte pakkene for å utnytte Umbraco fullt ut.</key>
|
||||
<key alias="permissionsAlmostPerfect"><![CDATA[<strong>Rettighetene er nesten perfekt satt opp!</strong><br/><br/> Du kan kjøre Umbraco uten problemer, men du vil ikke være i stand til å installere de anbefalte pakkene for å utnytte Umbraco fullt ut.]]></key>
|
||||
<key alias="permissionsHowtoResolve">Hvordan løse problemet</key>
|
||||
<key alias="permissionsHowtoResolveLink">Klikk her for å lese tekstversjonen</key>
|
||||
<key alias="permissionsHowtoResolveText">Se vår <strong>innføringsvideo</strong> om å sette opp rettigheter for Umbraco eller les tekstversjonen.</key>
|
||||
<key alias="permissionsMaybeAnIssue"><strong>Rettighetsinnstillingene kan være et problem!</strong><br/><br/> Du kan kjøre Umbraco uten problemer, men du vil ikke være i stand til å installere de anbefalte pakkene for å utnytte Umbraco fullt ut.</key>
|
||||
<key alias="permissionsNotReady"><strong>Rettighetsinstillingene er ikke klargjort for Umbraco!</strong><br/><br/> For å kunne kjøre Umbraco, må du oppdatere rettighetsinnstillingene dine.</key>
|
||||
<key alias="permissionsPerfect"><strong>Rettighetsinnstillingene er perfekt!</strong><br/><br/>Du er klar for å kjøre Umbraco og installere pakker!</key>
|
||||
<key alias="permissionsHowtoResolveText"><![CDATA[Se vår <strong>innføringsvideo</strong> om å sette opp rettigheter for Umbraco eller les tekstversjonen.]]></key>
|
||||
<key alias="permissionsMaybeAnIssue"><![CDATA[<strong>Rettighetsinnstillingene kan være et problem!</strong><br/><br/> Du kan kjøre Umbraco uten problemer, men du vil ikke være i stand til å installere de anbefalte pakkene for å utnytte Umbraco fullt ut.]]></key>
|
||||
<key alias="permissionsNotReady"><![CDATA[<strong>Rettighetsinstillingene er ikke klargjort for Umbraco!</strong><br/><br/> For å kunne kjøre Umbraco, må du oppdatere rettighetsinnstillingene dine.]]></key>
|
||||
<key alias="permissionsPerfect"><![CDATA[<strong>Rettighetsinnstillingene er perfekt!</strong><br/><br/>Du er klar for å kjøre Umbraco og installere pakker!]]></key>
|
||||
<key alias="permissionsResolveFolderIssues">Løser mappeproblem</key>
|
||||
<key alias="permissionsResolveFolderIssuesLink">Følg denne linken for mer informasjon om problemer med ASP.NET og oppretting av mapper</key>
|
||||
<key alias="permissionsSettingUpPermissions">Konfigurerer mappetillatelser</key>
|
||||
<key alias="permissionsText">Umbraco trenger skrive/endre tilgang til enkelte mapper for å kunne lagre filer som bilder og PDF-dokumenter. Den lagrer også midlertidig data (aka: hurtiglager) for å øke ytelsen på websiden din.</key>
|
||||
<key alias="permissionsText"><![CDATA[Umbraco trenger skrive/endre tilgang til enkelte mapper for å kunne lagre filer som bilder og PDF-dokumenter. Den lagrer også midlertidig data (aka: hurtiglager) for å øke ytelsen på websiden din.]]></key>
|
||||
<key alias="runwayFromScratch">Jeg ønsker å starte fra bunnen.</key>
|
||||
<key alias="runwayFromScratchText">Din website er helt tom for øyeblikket. Dette er perfekt hvis du vil begynne helt forfra og lage dine egne dokumenttyper og maler. (<a href="http://Umbraco.tv/documentation/videos/for-site-builders/foundation/document-types">lær hvordan</a>) Du kan fortsatt velge å installere Runway senere. Vennligst gå til Utvikler-seksjonen og velg Pakker.</key>
|
||||
<key alias="runwayFromScratchText"><![CDATA[Din website er helt tom for øyeblikket. Dette er perfekt hvis du vil begynne helt forfra og lage dine egne dokumenttyper og maler. (<a href="http://Umbraco.tv/documentation/videos/for-site-builders/foundation/document-types">lær hvordan</a>) Du kan fortsatt velge å installere Runway senere. Vennligst gå til Utvikler-seksjonen og velg Pakker.]]></key>
|
||||
<key alias="runwayHeader">Du har akkurat satt opp en ren Umbraco plattform. Hva vil du gjøre nå?</key>
|
||||
<key alias="runwayInstalled">Runway er installert</key>
|
||||
<key alias="runwayInstalledText">Du har nå fundamentet på plass. Velg hvilke moduler du ønsker å installer på toppen av det.<br/> Dette er vår liste av anbefalte moduler- Kryss av de du ønsker å installere, eller se den<a href="#" onclick="toggleModules(); return false;" id="toggleModuleList">fulle listen av moduler</a> </key>
|
||||
<key alias="runwayInstalledText"><![CDATA[Du har nå fundamentet på plass. Velg hvilke moduler du ønsker å installer på toppen av det.<br/> Dette er vår liste av anbefalte moduler- Kryss av de du ønsker å installere, eller se den<a href="#" onclick="toggleModules(); return false;" id="toggleModuleList">fulle listen av moduler</a> ]]></key>
|
||||
<key alias="runwayOnlyProUsers">Bare anbefalt for erfarne brukere</key>
|
||||
<key alias="runwaySimpleSite">Jeg vil starte med en enkel webside</key>
|
||||
<key alias="runwaySimpleSiteText"><p> "Runway" er en enkel webside som utstyrer deg med noen grunnleggende dokumenttyper og maler. Veiviseren kan sette opp Runway for deg automatisk, men du kan enkelt endre, utvide eller slette den. Runway er ikke nødvendig, og du kan enkelt bruke Umbraco uten den. Imidlertidig tilbyr Runway et enkelt fundament basert på de beste metodene for å hjelpe deg i gang fortere enn noensinne. Hvis du velger å installere Runway, kan du også velge blant grunnleggende byggeklosser kalt Runway Moduler for å forøke dine Runway-sider. </p> <small> <em>Sider inkludert i Runway:</em> Hjemmeside, Komme-i-gang, Installere moduler.<br /> <em>Valgfrie Moduler:</em> Toppnavigasjon, Sidekart, Kontakt, Galleri. </small> </key>
|
||||
<key alias="runwaySimpleSiteText"><![CDATA[<p> "Runway" er en enkel webside som utstyrer deg med noen grunnleggende dokumenttyper og maler. Veiviseren kan sette opp Runway for deg automatisk, men du kan enkelt endre, utvide eller slette den. Runway er ikke nødvendig, og du kan enkelt bruke Umbraco uten den. Imidlertidig tilbyr Runway et enkelt fundament basert på de beste metodene for å hjelpe deg i gang fortere enn noensinne. Hvis du velger å installere Runway, kan du også velge blant grunnleggende byggeklosser kalt Runway Moduler for å forøke dine Runway-sider. </p> <small> <em>Sider inkludert i Runway:</em> Hjemmeside, Komme-i-gang, Installere moduler.<br /> <em>Valgfrie Moduler:</em> Toppnavigasjon, Sidekart, Kontakt, Galleri. </small> ]]></key>
|
||||
<key alias="runwayWhatIsRunway">Hva er Runway</key>
|
||||
<key alias="step1">Steg 1/5 Godta lisens</key>
|
||||
<key alias="step2">Steg 2/5 Database konfigurasjon</key>
|
||||
@@ -394,17 +466,17 @@
|
||||
<key alias="step4">Steg 4/5: Skjekk Umbraco sikkerheten</key>
|
||||
<key alias="step5">Steg 5/5: Umbraco er klar for deg til å starte!</key>
|
||||
<key alias="thankYou">Tusen takk for at du valgte Umbraco!</key>
|
||||
<key alias="theEndBrowseSite"><h3>Se ditt nye nettsted</h3> Du har installert Runway, hvorfor ikke se hvordan ditt nettsted ser ut.</key>
|
||||
<key alias="theEndFurtherHelp"><h3>Mer hjelp og info</h3> Få hjelp fra vårt prisbelønte samfunn, bla gjennom dokumentasjonen eller se noen gratis videoer på hvordan man bygger et enkelt nettsted, hvordan bruke pakker og en rask guide til Umbraco terminologi</key>
|
||||
<key alias="theEndBrowseSite"><![CDATA[<h3>Se ditt nye nettsted</h3> Du har installert Runway, hvorfor ikke se hvordan ditt nettsted ser ut.]]></key>
|
||||
<key alias="theEndFurtherHelp"><![CDATA[<h3>Mer hjelp og info</h3> Få hjelp fra vårt prisbelønte samfunn, bla gjennom dokumentasjonen eller se noen gratis videoer på hvordan man bygger et enkelt nettsted, hvordan bruke pakker og en rask guide til Umbraco terminologi]]></key>
|
||||
<key alias="theEndHeader">Umbraco %0% er installert og klar til bruk</key>
|
||||
<key alias="theEndInstallFailed">For å fullføre installasjonen, må du manuelt endre <strong>web.config</strong> filen, og oppdatere AppSetting-nøkkelen <strong>UmbracoConfigurationStatus</strong> til verdien <strong>'%0%'</strong></key>
|
||||
<key alias="theEndInstallSuccess">Du kan <strong>starte øyeblikkelig</strong> ved å klikke på "Start Umbraco" knappen nedenfor. <br/>Hvis du er <strong>ny på Umbraco</strong>, kan du finne mange ressurser på våre komme-i-gang sider.</key>
|
||||
<key alias="theEndOpenUmbraco"><h3>Start Umbraco</h3> For å administrere din webside, åpne Umbraco og begynn å legge til innhold, oppdatere maler og stilark eller utvide funksjonaliteten</key>
|
||||
<key alias="theEndInstallFailed"><![CDATA[For å fullføre installasjonen, må du manuelt endre <strong>web.config</strong> filen, og oppdatere AppSetting-nøkkelen <strong>UmbracoConfigurationStatus</strong> til verdien <strong>'%0%'</strong>]]></key>
|
||||
<key alias="theEndInstallSuccess"><![CDATA[Du kan <strong>starte øyeblikkelig</strong> ved å klikke på "Start Umbraco" knappen nedenfor. <br/>Hvis du er <strong>ny på Umbraco</strong>, kan du finne mange ressurser på våre komme-i-gang sider.]]></key>
|
||||
<key alias="theEndOpenUmbraco"><![CDATA[<h3>Start Umbraco</h3> For å administrere din webside, åpne Umbraco og begynn å legge til innhold, oppdatere maler og stilark eller utvide funksjonaliteten]]></key>
|
||||
<key alias="Unavailable">Tilkobling til databasen mislyktes.</key>
|
||||
<key alias="Version3">Umbraco Versjon 3</key>
|
||||
<key alias="Version4">Umbraco Versjon 4</key>
|
||||
<key alias="watch">Pass på</key>
|
||||
<key alias="welcomeIntro">Denne veiviseren vil hjelpe deg gjennom prosessen med å konfigurere <strong>Umbraco %0%</strong> for en ny installasjon eller oppgradering fra versjon 3.0. <br/><br/> Trykk <strong>"neste"</strong> for å starte veiviseren.</key>
|
||||
<key alias="watch">Se</key>
|
||||
<key alias="welcomeIntro"><![CDATA[Denne veiviseren vil hjelpe deg gjennom prosessen med å konfigurere <strong>Umbraco %0%</strong> for en ny installasjon eller oppgradering fra versjon 3.0. <br/><br/> Trykk <strong>"neste"</strong> for å starte veiviseren.]]></key>
|
||||
</area>
|
||||
<area alias="language">
|
||||
<key alias="cultureCode">Språkkode</key>
|
||||
@@ -415,8 +487,16 @@
|
||||
<key alias="renewSession">Forny innlogging for å lagre</key>
|
||||
</area>
|
||||
<area alias="login">
|
||||
<key alias="bottomText"><p style="text-align:right;">&copy; 2001 - %0% <br /><a href="http://umbraco.com" style="text-decoration: none" target="_blank">umbraco.org</a></p> </key>
|
||||
<key alias="topText">Velkommen til Umbraco, skriv inn ditt brukernavn og passord i feltene under:</key>
|
||||
<key alias="greeting0">Da er det søndag!</key>
|
||||
<key alias="greeting1">Smil, det er mandag!</key>
|
||||
<key alias="greeting2">Hurra, det er tirsdag!</key>
|
||||
<key alias="greeting3">For en herlig onsdag!</key>
|
||||
<key alias="greeting4">Gledelig torsdag!</key>
|
||||
<key alias="greeting5">Endelig fredag!</key>
|
||||
<key alias="greeting6">Gledelig lørdag</key>
|
||||
<key alias="instruction">Logg på nedenfor</key>
|
||||
<key alias="timeout">Din sesjon er utløpt</key>
|
||||
<key alias="bottomText"><![CDATA[<p style="text-align:right;">© 2001 - %0% <br /><a href="http://umbraco.com" style="text-decoration: none" target="_blank">umbraco.com</a></p> ]]></key>
|
||||
</area>
|
||||
<area alias="main">
|
||||
<key alias="dashboard">Skrivebord</key>
|
||||
@@ -433,63 +513,64 @@
|
||||
<key alias="noNodeSelected">Ingen node er valgt, vennligst velg en node i listen over før du klikker 'fortsett'</key>
|
||||
<key alias="notAllowedByContentType">Gjeldende nodes type tillates ikke under valgt node</key>
|
||||
<key alias="notAllowedByPath">Gjeldende node kan ikke legges under en underordnet node</key>
|
||||
<key alias="notAllowedAtRoot">Denne noden kan ikke ligge på rotnivå</key>
|
||||
<key alias="notValid">Handlingen tillates ikke. Du mangler tilgang til en eller flere underordnede noder.</key>
|
||||
<key alias="relateToOriginal">Relater kopierte elementer til original(e)</key>
|
||||
</area>
|
||||
<area alias="notifications">
|
||||
<key alias="editNotifications">Rediger dine varsler for %0%</key>
|
||||
<key alias="mailBody">
|
||||
<key alias="mailBody"><![CDATA[
|
||||
Hei %0%
|
||||
|
||||
Dette er en automatisk mail for å informere om at handlingen '%1%'
|
||||
er utført på siden '%2%'
|
||||
av brukeren '%3%'
|
||||
|
||||
Gå til http://%4%/Umbraco/default.aspx?section=content&id=%5% for å redigere.
|
||||
|
||||
|
||||
Gå til http://%4%/Umbraco/default.aspx?section=content&id=%5% for å redigere.
|
||||
|
||||
Ha en fin dag!
|
||||
|
||||
|
||||
Vennlig hilsen Umbraco roboten
|
||||
</key>
|
||||
<key alias="mailBodyHtml"><p>Hei %0%</p>
|
||||
]]></key>
|
||||
<key alias="mailBodyHtml"><![CDATA[<p>Hei %0%</p>
|
||||
|
||||
<p>Dette er en automatisk mail for å informere om at handlingen '%1%'
|
||||
er blitt utført på siden <a href="http://%4%/actions/preview.aspx?id=%5%"><strong>'%2%'</strong></a>
|
||||
av brukeren <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%/Umbraco/actions/editContent.aspx?id=%5%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;REDIGER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</a> &nbsp;
|
||||
<br />
|
||||
</div>
|
||||
<p>
|
||||
<h3>Rettelser:</h3>
|
||||
<table style="width: 100%;">
|
||||
<p>Dette er en automatisk mail for å informere om at handlingen '%1%'
|
||||
er blitt utført på siden <a href="http://%4%/actions/preview.aspx?id=%5%"><strong>'%2%'</strong></a>
|
||||
av brukeren <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%/Umbraco/actions/editContent.aspx?id=%5%"> REDIGER </a>
|
||||
<br />
|
||||
</div>
|
||||
<p>
|
||||
<h3>Rettelser:</h3>
|
||||
<table style="width: 100%;">
|
||||
%6%
|
||||
</table>
|
||||
</p>
|
||||
</table>
|
||||
</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%/Umbraco/actions/editContent.aspx?id=%5%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;REDIGER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</a> &nbsp;
|
||||
<br />
|
||||
</div>
|
||||
<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%/Umbraco/actions/editContent.aspx?id=%5%"> REDIGER </a>
|
||||
<br />
|
||||
</div>
|
||||
|
||||
<p>Ha en fin dag!<br /><br />
|
||||
<p>Ha en fin dag!<br /><br />
|
||||
Vennlig hilsen Umbraco roboten
|
||||
</p></key>
|
||||
</p>]]></key>
|
||||
<key alias="mailSubject">[%0%] Varsling om %1% utført på %2%</key>
|
||||
<key alias="notifications">Varsling</key>
|
||||
<key alias="notifications">Varslinger</key>
|
||||
</area>
|
||||
<area alias="packager">
|
||||
<key alias="chooseLocalPackageText">Klikke browse og velg pakke fra lokal disk. Umbraco-pakker har vanligvis endelsen ".umb" eller ".zip".</key>
|
||||
<key alias="chooseLocalPackageText"><![CDATA[Klikk browse og velg pakke fra lokal disk.<br/> Umbraco-pakker har vanligvis endelsen ".umb" eller ".zip".]]></key>
|
||||
<key alias="packageAuthor">Utvikler</key>
|
||||
<key alias="packageDemonstration">Demonstrasjon</key>
|
||||
<key alias="packageDocumentation">Dokumentasjon</key>
|
||||
<key alias="packageMetaData">Metadata</key>
|
||||
<key alias="packageName">Pakkenavn</key>
|
||||
<key alias="packageNoItemsHeader">Pakken inneholder ingen elementer</key>
|
||||
<key alias="packageNoItemsText">Denne pakkefilen inneholder ingen elementer å avinstallere.<br/><br/>Du kan trygt fjerne pakken fra systemet ved å klikke "avinstaller pakke" nedenfor.</key>
|
||||
<key alias="packageNoItemsText"><![CDATA[Denne pakkefilen inneholder ingen elementer å avinstallere.<br/><br/>Du kan trygt fjerne pakken fra systemet ved å klikke "avinstaller pakke" nedenfor.]]></key>
|
||||
<key alias="packageNoUpgrades">Ingen oppdateringer tilgjengelig</key>
|
||||
<key alias="packageOptions">Alternativer for pakke</key>
|
||||
<key alias="packageReadme">Lesmeg for pakke</key>
|
||||
@@ -498,12 +579,13 @@ Vennlig hilsen Umbraco roboten
|
||||
<key alias="packageUninstalledHeader">Pakken ble avinstallert</key>
|
||||
<key alias="packageUninstalledText">Pakken ble vellykket avinstallert</key>
|
||||
<key alias="packageUninstallHeader">Avinstaller pakke</key>
|
||||
<key alias="packageUninstallText">Du kan velge bort elementer du ikke vil slette på dette tidspunkt, nedenfor. Når du klikker "bekreft avinstallering" vil alle elementer som er krysset av bli slettet.<br/> <span style="color:red;font-weight:bold;">Advarsel:</span> alle dokumenter, media, etc. som som er avhengig av elementene du sletter, vil slutte å virke, noe som kan føre til ustabilitet, så avinstaller med forsiktighet. Hvis du er i tvil, kontakt pakkeutvikleren.</key>
|
||||
<key alias="packageUninstallText"><![CDATA[Du kan velge bort elementer du ikke vil slette på dette tidspunkt, nedenfor. Når du klikker "bekreft avinstallering" vil alle elementer som er krysset av bli slettet.<br/> <span style="color:red;font-weight:bold;">Advarsel:</span> alle dokumenter, media, etc. som som er avhengig av elementene du sletter, vil slutte å virke, noe som kan føre til ustabilitet, så avinstaller med forsiktighet. Hvis du er i tvil, kontakt pakkeutvikleren.]]></key>
|
||||
<key alias="packageUpgradeDownload">Last ned oppdatering fra pakkeregisteret</key>
|
||||
<key alias="packageUpgradeHeader">Oppgrader pakke</key>
|
||||
<key alias="packageUpgradeInstructions">Oppgraderingsinstrukser</key>
|
||||
<key alias="packageUpgradeText">Det er en oppdatering tilgjengelig for denne pakken. Du kan laste den ned direkte fra pakkebrønnen.</key>
|
||||
<key alias="packageVersion">Pakkeversjon</key>
|
||||
<key alias="packageVersionHistory">Pakkeversjonshistorie</key>
|
||||
<key alias="viewPackageWebsite">Se pakkens nettsted</key>
|
||||
</area>
|
||||
<area alias="paste">
|
||||
@@ -514,8 +596,8 @@ Vennlig hilsen Umbraco roboten
|
||||
</area>
|
||||
<area alias="publicAccess">
|
||||
<key alias="paAdvanced">Avansert: Beskytt ved å velge hvilke brukergrupper som har tilgang til siden</key>
|
||||
<key alias="paAdvancedHelp">Om du ønsker å kontrollere tilgang til siden ved å bruke rolle-basert autentisering,<br /> ved å bruke Umbraco's medlems-grupper</key>
|
||||
<key alias="paAdvancedNoGroups">Du må opprette en medlemsgruppe før du kan bruke <br /> rollebasert autentikasjon.</key>
|
||||
<key alias="paAdvancedHelp"><![CDATA[Om du ønsker å kontrollere tilgang til siden ved å bruke rolle-basert autentisering,<br /> ved å bruke Umbraco's medlems-grupper]]></key>
|
||||
<key alias="paAdvancedNoGroups"><![CDATA[Du må opprette en medlemsgruppe før du kan bruke <br /> rollebasert autentikasjon.]]></key>
|
||||
<key alias="paErrorPage">Feilside</key>
|
||||
<key alias="paErrorPageHelp">Brukt når personer logger på, men ikke har tilgang</key>
|
||||
<key alias="paHowWould">Hvordan vil du beskytte siden din?</key>
|
||||
@@ -531,32 +613,36 @@ Vennlig hilsen Umbraco roboten
|
||||
<key alias="paSimpleHelp">Om du ønsker å bruke enkel autentisering via ett enkelt brukernavn og passord</key>
|
||||
</area>
|
||||
<area alias="publish">
|
||||
<key alias="contentPublishedFailedAwaitingRelease">%0% kunne ikke publiseres fordi den har planlagt utgivelsesdato.</key>
|
||||
<key alias="contentPublishedFailedInvalid">%0% ble ikke publisert. Ett eller flere felter ble ikke godkjent av validering.</key>
|
||||
<key alias="contentPublishedFailedByEvent">%0% kunne ikke publiseres fordi et tredjepartstillegg avbrøt handlingen.</key>
|
||||
<key alias="contentPublishedFailedByParent">%0% kan ikke publiseres fordi en overordnet side ikke er publisert.</key>
|
||||
<key alias="includeUnpublished">Inkluder upubliserte undersider</key>
|
||||
<key alias="inProgress">Publiserer - vennligst vent...</key>
|
||||
<key alias="inProgressCounter">%0% av %1% sider har blitt publisert...</key>
|
||||
<key alias="nodePublish">%0% er nå publisert</key>
|
||||
<key alias="nodePublishAll">%0% og alle undersider er nå publisert</key>
|
||||
<key alias="publishAll">Publiser alle undersider</key>
|
||||
<key alias="publishHelp">Klikk <em>ok</em> for å publisere <strong>%0%</strong> og dermed gjøre innholdet synlig for alle.<br/><br />Du kan publisere denne siden og alle dens undersider ved å krysse av <em>Publiser alle undersider</em> nedenfor.</key>
|
||||
<key alias="contentPublishedFailedInvalid">%0% ble ikke publisert. Ett eller flere felter ble ikke godkjent av validering.</key>
|
||||
<key alias="contentPublishedFailedByParent">%0% kan ikke publiseres fordi en overordnet side ikke er publisert.</key>
|
||||
<key alias="publishHelp"><![CDATA[Klikk <em>ok</em> for å publisere <strong>%0%</strong> og dermed gjøre innholdet synlig for alle.<br/><br />Du kan publisere denne siden og alle dens undersider ved å krysse av <em>Publiser alle undersider</em> nedenfor.]]></key>
|
||||
</area>
|
||||
<area alias="colorpicker">
|
||||
<key alias="noColors">Du har ikke konfigurert noen godkjente farger</key>
|
||||
</area>
|
||||
<area alias="relatedlinks">
|
||||
<key alias="addExternal">Legg til ekstern lenke</key>
|
||||
<key alias="addInternal">Legg til intern lenke</key>
|
||||
<key alias="addlink">Legg til</key>
|
||||
<key alias="enterExternal">skriv inn ekstern lenke</key>
|
||||
<key alias="chooseInternal">velg en intern side</key>
|
||||
<key alias="caption">Tittel</key>
|
||||
<key alias="internalPage">Intern side</key>
|
||||
<key alias="linkurl">Url</key>
|
||||
<key alias="modeDown">Flytt ned</key>
|
||||
<key alias="modeUp">Flytt opp</key>
|
||||
<key alias="link">Lenke</key>
|
||||
<key alias="newWindow">Åpne i nytt vindu</key>
|
||||
<key alias="removeLink">Fjern lenke</key>
|
||||
<key alias="captionPlaceholder">Skriv inn en tekst</key>
|
||||
<key alias="externalLinkPlaceholder">Skriv inn en lenke</key>
|
||||
</area>
|
||||
<area alias="imagecropper">
|
||||
<key alias="reset">Nullstill</key>
|
||||
</area>
|
||||
<area alias="rollback">
|
||||
<key alias="currentVersion">Gjeldende versjon</key>
|
||||
<key alias="diffHelp">Dette viser forskjellene mellom den gjeldende og den valgte versjonen<br /><del>Rød</del> tekst vil ikke bli vist i den valgte versjonen. , <ins>grønn betyr lagt til</ins></key>
|
||||
<key alias="diffHelp"><![CDATA[Dette viser forskjellene mellom den gjeldende og den valgte versjonen<br /><del>Rød</del> tekst vil ikke bli vist i den valgte versjonen. , <ins>grønn betyr lagt til</ins>]]></key>
|
||||
<key alias="documentRolledBack">Dokumentet er tilbakeført til en tidligere versjon</key>
|
||||
<key alias="htmlHelp">Dette viser den valgte versjonen som HTML, bruk avviksvisningen hvis du ønsker å se forksjellene mellom to versjoner samtidig.</key>
|
||||
<key alias="rollbackTo">Tilbakefør til</key>
|
||||
@@ -579,6 +665,15 @@ Vennlig hilsen Umbraco roboten
|
||||
<key alias="statistics">Statistikk</key>
|
||||
<key alias="translation">Oversettelse</key>
|
||||
<key alias="users">Brukere</key>
|
||||
<key alias="help" version="7.0">Hjelp</key>
|
||||
<key alias="forms">Skjemaer</key>
|
||||
<key alias="analytics">Analytics</key>
|
||||
</area>
|
||||
<area alias="help">
|
||||
<key alias="goTo">gå til</key>
|
||||
<key alias="helpTopicsFor">Hjelpeemner for</key>
|
||||
<key alias="videoChaptersFor">Videokapitler for</key>
|
||||
<key alias="theBestUmbracoVideoTutorials">De beste Umbraco opplæringsvideoer</key>
|
||||
</area>
|
||||
<area alias="settings">
|
||||
<key alias="defaulttemplate">Standardmal</key>
|
||||
@@ -588,6 +683,7 @@ Vennlig hilsen Umbraco roboten
|
||||
<key alias="nodetype">Nodetype</key>
|
||||
<key alias="objecttype">Type</key>
|
||||
<key alias="stylesheet">Stilark</key>
|
||||
<key alias="script">Script</key>
|
||||
<key alias="stylesheet editor egenskab">Stilark-egenskap</key>
|
||||
<key alias="tab">Arkfane</key>
|
||||
<key alias="tabname">Tittel på arkfane</key>
|
||||
@@ -595,17 +691,24 @@ Vennlig hilsen Umbraco roboten
|
||||
<key alias="contentTypeEnabled">Hovedinnholdstype aktivert</key>
|
||||
<key alias="contentTypeUses">Denne dokumenttypen bruker</key>
|
||||
<key alias="asAContentMasterType">som hoveddokumenttype. Arkfaner fra hoveddokumenttyper vises ikke og kan kun endres på hoveddokumenttypen selv.</key>
|
||||
<key alias="noPropertiesDefinedOnTab">Ingen egenskaper definert i denne arkfanen. Klikk på "legg til ny egenskap" lenken i toppen for å opprette en ny egenskap.</key>
|
||||
<key alias="masterDocumentType">Hovedinnholdstype</key>
|
||||
<key alias="createMatchingTemplate">Opprett tilhørende mal</key>
|
||||
</area>
|
||||
<area alias="sort">
|
||||
<key alias="sortDone">Sortering ferdig.</key>
|
||||
<key alias="sortHelp">Dra elementene opp eller ned for å arrangere dem. Du kan også klikke kolonneoverskriftene for å sortere alt på en gang.</key>
|
||||
<key alias="sortPleaseWait">Vennligst vent. Elementene blir sortert, dette kan ta litt tid.<br/> <br/> Ikke lukk dette vinduet under sortering</key>
|
||||
<key alias="sortPleaseWait"><![CDATA[Vennligst vent. Elementene blir sortert, dette kan ta litt tid.<br/> <br/> Ikke lukk dette vinduet under sortering]]></key>
|
||||
</area>
|
||||
<area alias="speechBubbles">
|
||||
<key alias="operationFailedHeader">En feil oppsto</key>
|
||||
<key alias="invalidUserPermissionsText">Utilstrekkelige brukertillatelser, kunne ikke fullføre operasjonen</key>
|
||||
<key alias="operationCancelledHeader">Avbrutt</key>
|
||||
<key alias="operationCancelledText">Handlingen ble avbrutt av et tredjepartstillegg</key>
|
||||
<key alias="contentPublishedFailedByEvent">Publisering ble avbrutt av et tredjepartstillegg</key>
|
||||
<key alias="contentTypeDublicatePropertyType">Egenskaptypen finnes allerede</key>
|
||||
<key alias="contentTypePropertyTypeCreated">Egenskapstype opprettet</key>
|
||||
<key alias="contentTypePropertyTypeCreatedText">Navn: %0% <br /> DataType: %1%</key>
|
||||
<key alias="contentTypePropertyTypeCreatedText"><![CDATA[Navn: %0% <br /> DataType: %1%]]></key>
|
||||
<key alias="contentTypePropertyTypeDeleted">Egenskapstype slettet</key>
|
||||
<key alias="contentTypeSavedHeader">Innholdstype lagret</key>
|
||||
<key alias="contentTypeTabCreated">Du har opprettet en arkfane</key>
|
||||
@@ -623,12 +726,15 @@ Vennlig hilsen Umbraco roboten
|
||||
<key alias="editContentSavedText">Husk å publisere for å gjøre endringene synlig for besøkende</key>
|
||||
<key alias="editContentSendToPublish">Sendt for godkjenning</key>
|
||||
<key alias="editContentSendToPublishText">Endringer har blitt sendt til godkjenning</key>
|
||||
<key alias="editMediaSaved">Media lagret</key>
|
||||
<key alias="editMediaSavedText">Media lagret uten feil</key>
|
||||
<key alias="editMemberSaved">Medlem lagret</key>
|
||||
<key alias="editStylesheetPropertySaved">Stilarksegenskap lagret</key>
|
||||
<key alias="editStylesheetSaved">Stilark lagret</key>
|
||||
<key alias="editTemplateSaved">Mal lagret</key>
|
||||
<key alias="editUserError">Feil ved lagring av bruker (sjekk loggen)</key>
|
||||
<key alias="editUserSaved">Bruker lagret</key>
|
||||
<key alias="editUserTypeSaved">Brukertypen lagret</key>
|
||||
<key alias="fileErrorHeader">Filen ble ikke lagret</key>
|
||||
<key alias="fileErrorText">Filen kunne ikke lagres. Vennligst sjekk filrettigheter</key>
|
||||
<key alias="fileSavedHeader">Filen ble lagret</key>
|
||||
@@ -647,13 +753,16 @@ Vennlig hilsen Umbraco roboten
|
||||
<key alias="xsltPermissionErrorText">XSLT-koden ble ikke lagret, sjekk filrettigheter</key>
|
||||
<key alias="xsltSavedHeader">XSLT lagret</key>
|
||||
<key alias="xsltSavedText">Ingen feil i XSLT!</key>
|
||||
<key alias="editMediaSaved">Media lagret</key>
|
||||
<key alias="editUserTypeSaved">Brukertypen lagret</key>
|
||||
<key alias="contentUnpublished">Innhold avpublisert</key>
|
||||
<key alias="partialViewSavedHeader">Delmal lagret</key>
|
||||
<key alias="partialViewSavedText">Delmal lagret uten feil</key>
|
||||
<key alias="partialViewErrorHeader">Delmal ble ikke lagret!</key>
|
||||
<key alias="partialViewErrorText">En feil oppsto ved lagring av delmal</key>
|
||||
<key alias="scriptSavedHeader">Script visning lagret</key>
|
||||
<key alias="scriptSavedText">Script visning lagret uten feil!</key>
|
||||
<key alias="scriptErrorHeader">Script visning ikke lagret</key>
|
||||
<key alias="scriptErrorText">En feil oppsto under lagring av filen.</key>
|
||||
<key alias="cssErrorText">En feil oppsto under lagring av filen.</key>
|
||||
</area>
|
||||
<area alias="stylesheet">
|
||||
<key alias="aliasHelp">Bruk CSS syntaks f.eks: h1, .redHeader, .blueText</key>
|
||||
@@ -675,50 +784,40 @@ Vennlig hilsen Umbraco roboten
|
||||
<key alias="template">Mal</key>
|
||||
</area>
|
||||
<area alias="grid">
|
||||
<key alias="insertControl">Choose type of content</key>
|
||||
<key alias="chooseLayout">Choose a layout</key>
|
||||
<key alias="addRows">Add a row</key>
|
||||
<key alias="addElement">Add content</key>
|
||||
<key alias="settingsApplied">Settings applied</key>
|
||||
|
||||
<key alias="contentNotAllowed">This content is not allowed here</key>
|
||||
<key alias="contentAllowed">This content is allowed here</key>
|
||||
|
||||
<key alias="clickToEmbed">Click to embed</key>
|
||||
<key alias="clickToInsertImage">Click to insert image</key>
|
||||
<key alias="placeholderImageCaption">Image caption...</key>
|
||||
<key alias="placeholderWriteHere">Write here...</key>
|
||||
|
||||
<key alias="gridLayouts">Grid Layouts</key>
|
||||
<key alias="gridLayoutsDetail">Layouts are the overall work area for the grid editor, usually you only need one or two different layouts</key>
|
||||
<key alias="addGridLayout">Add Grid Layout</key>
|
||||
<key alias="addGridLayoutDetail">Adjust the layout by setting column widths and adding additional sections</key>
|
||||
<key alias="rowConfigurations">Row configurations</key>
|
||||
<key alias="rowConfigurationsDetail">Rows are predefined cells arranged horizontally</key>
|
||||
<key alias="addRowConfiguration">Add row configuration</key>
|
||||
<key alias="addRowConfigurationDetail">Adjust the row by setting cell widths and adding additional cells</key>
|
||||
|
||||
<key alias="columns">Columns</key>
|
||||
<key alias="columnsDetails">Total combined number of columns in the grid layout</key>
|
||||
|
||||
<key alias="settings">Settings</key>
|
||||
<key alias="settingsDetails">Configure what settings editors can change</key>
|
||||
|
||||
<key alias="styles">Styles</key>
|
||||
<key alias="stylesDetails">Configure what styling editors can change</key>
|
||||
|
||||
<key alias="settingDialogDetails">Settings will only save if the entered json configuration is valid</key>
|
||||
|
||||
<key alias="allowAllEditors">Allow all editors</key>
|
||||
<key alias="allowAllRowConfigurations">Allow all row configurations</key>
|
||||
<key alias="insertControl">Sett inn element</key>
|
||||
<key alias="addRows">Velg ett oppsett for denne seksjonen</key>
|
||||
<key alias="addElement"><![CDATA[Kom i gang ved å trykke på <i class=" icon icon-add blue"></i> nedenfor og legg til det første elementet]]></key>
|
||||
<key alias="clickToEmbed">Klikk for å bygge inn</key>
|
||||
<key alias="clickToInsertImage">Klikk for å sette inn et bilde</key>
|
||||
<key alias="placeholderImageCaption">Bildetekst...</key>
|
||||
<key alias="placeholderWriteHere">Skriv her...</key>
|
||||
<key alias="gridLayouts">Rutenettoppsett</key>
|
||||
<key alias="gridLayoutsDetail">Et oppsett er det overordnede arbeidsområdet til ditt rutenett - du vil typisk kun behøve ét eller to</key>
|
||||
<key alias="addGridLayout">Legg til rutenettoppsett</key>
|
||||
<key alias="addGridLayoutDetail">Juster oppsettet ved at justere kolonnebredder og legg til ytterligere seksjoner</key>
|
||||
<key alias="rowConfigurations">Radkonfigurasjoner</key>
|
||||
<key alias="rowConfigurationsDetail">Rader er forhåndsdefinerte celler arrangert vannrett</key>
|
||||
<key alias="addRowConfiguration">Legg til radkonfigurasjon</key>
|
||||
<key alias="addRowConfigurationDetail">Juster raden ved å sette celle bredder og legge til flere celler</key>
|
||||
<key alias="columns">Kolonner</key>
|
||||
<key alias="columnsDetails">Totale antallet kolonner i rutenettet</key>
|
||||
<key alias="settings">Innstillinger</key>
|
||||
<key alias="settingsDetails">Konfigurer hvilke innstillinger brukeren kan endre</key>
|
||||
<key alias="styles">Stiler</key>
|
||||
<key alias="stylesDetails">Konfigurer hvilke stiler redaktørene kan endre</key>
|
||||
<key alias="settingDialogDetails">Innstillingene lagres kun når json-konfigurasjonen er gyldig</key>
|
||||
<key alias="allowAllEditors">Tillatt alle editorer</key>
|
||||
<key alias="allowAllRowConfigurations">Tillat alle radkonfigurasjoner</key>
|
||||
</area>
|
||||
<area alias="templateEditor">
|
||||
<key alias="alternativeField">Alternativt felt</key>
|
||||
<key alias="alternativeText">Alternativ tekst</key>
|
||||
<key alias="casing">Store/små bokstaver</key>
|
||||
<key alias="encoding">Encoding</key>
|
||||
<key alias="chooseField">Felt som skal settes inn</key>
|
||||
<key alias="convertLineBreaks">Konverter linjeskift</key>
|
||||
<key alias="convertLineBreaksHelp">Erstatter et linjeskift med htmltaggen &lt;br&gt;</key>
|
||||
<key alias="convertLineBreaksHelp">Erstatter et linjeskift med htmltaggen <br></key>
|
||||
<key alias="customFields">Egendefinerte felt</key>
|
||||
<key alias="dateOnly">Ja, kun dato</key>
|
||||
<key alias="formatAsDate">Formatter som dato</key>
|
||||
<key alias="htmlEncode">HTML koding</key>
|
||||
@@ -731,19 +830,18 @@ Vennlig hilsen Umbraco roboten
|
||||
<key alias="preContent">Sett inn før felt</key>
|
||||
<key alias="recursive">Rekursivt</key>
|
||||
<key alias="removeParagraph">Fjern paragraftagger</key>
|
||||
<key alias="removeParagraphHelp">Fjerner eventuelle &lt;P&gt; rundt teksten</key>
|
||||
<key alias="removeParagraphHelp">Fjerner eventuelle <P> rundt teksten</key>
|
||||
<key alias="standardFields">Standardfelter</key>
|
||||
<key alias="uppercase">Store bokstaver</key>
|
||||
<key alias="urlEncode">URL koding</key>
|
||||
<key alias="urlEncodeHelp">Dersom innholdet av feltene skal sendes til en URL skal spesialtegn formatteres</key>
|
||||
<key alias="usedIfAllEmpty">Denne teksten vil benyttes dersom feltene over er tomme</key>
|
||||
<key alias="usedIfEmpty">Dette feltet vil benyttes dersom feltet over er tomt</key>
|
||||
<key alias="withTime">Ja, med klokkeslett. Dato/tid separator: </key>
|
||||
<key alias="customFields">Egendefinerte felt</key>
|
||||
<key alias="standardFields">Standardfelter</key>
|
||||
</area>
|
||||
<area alias="translation">
|
||||
<key alias="assignedTasks">Oppgaver satt til deg</key>
|
||||
<key alias="assignedTasksHelp">Listen nedenfor viser oversettelsesoppgaver <strong>som du er tildelt</strong>. For å se en detaljert visning inkludert kommentarer, klikk på "Detaljer" eller navnet på siden. Du kan også laste ned siden som XML direkte ved å klikke på linken "Last ned XML". <br/> For å lukke en oversettelsesoppgave, vennligst gå til detaljvisningen og klikk på "Lukk" knappen.</key>
|
||||
<key alias="assignedTasksHelp"><![CDATA[Listen nedenfor viser oversettelsesoppgaver <strong>som du er tildelt</strong>. For å se en detaljert visning inkludert kommentarer, klikk på "Detaljer" eller navnet på siden. Du kan også laste ned siden som XML direkte ved å klikke på linken "Last ned XML". <br/> For å lukke en oversettelsesoppgave, vennligst gå til detaljvisningen og klikk på "Lukk" knappen.]]></key>
|
||||
<key alias="closeTask">Lukk oppgave</key>
|
||||
<key alias="details">Oversettelses detaljer</key>
|
||||
<key alias="downloadAllAsXml">Last ned all oversettelsesoppgaver som XML</key>
|
||||
@@ -751,7 +849,7 @@ Vennlig hilsen Umbraco roboten
|
||||
<key alias="DownloadXmlDTD">Last ned XML DTD</key>
|
||||
<key alias="fields">Felt</key>
|
||||
<key alias="includeSubpages">Inkluder undersider</key>
|
||||
<key alias="mailBody">
|
||||
<key alias="mailBody"><![CDATA[
|
||||
Hei %0%
|
||||
|
||||
Dette er en automatisk mail for å informere deg om at dokumentet '%1%'
|
||||
@@ -762,11 +860,11 @@ Vennlig hilsen Umbraco roboten
|
||||
Ha en fin dag!
|
||||
|
||||
Vennlig hilsen Umbraco Robot.
|
||||
</key>
|
||||
]]></key>
|
||||
<key alias="mailSubject">[%0%] Oversettingsoppgave for %1%</key>
|
||||
<key alias="noTranslators">Ingen oversettelses-bruker funnet. Vennligst opprett en oversettelses-bruker før du begynner å sende innhold til oversetting</key>
|
||||
<key alias="ownedTasks">Oppgaver opprettet av deg</key>
|
||||
<key alias="ownedTasksHelp">Listen under viser sider <strong>opprettet av deg</strong>. For å se en detaljert visning inkludert kommentarer, klikk på "Detaljer" eller navnet på siden. Du kan også laste ned siden som XML direkte ved å klikke på linken "Last ned XML". For å lukke en oversettelsesoppgave, vennligst gå til detaljvisningen og klikk på "Lukk" knappen.</key>
|
||||
<key alias="ownedTasksHelp"><![CDATA[Listen under viser sider <strong>opprettet av deg</strong>. For å se en detaljert visning inkludert kommentarer, klikk på "Detaljer" eller navnet på siden. Du kan også laste ned siden som XML direkte ved å klikke på linken "Last ned XML". For å lukke en oversettelsesoppgave, vennligst gå til detaljvisningen og klikk på "Lukk" knappen.]]></key>
|
||||
<key alias="pageHasBeenSendToTranslation">Siden '%0%' har blitt sendt til oversetting</key>
|
||||
<key alias="sendToTranslate">Send til oversetting</key>
|
||||
<key alias="taskAssignedBy">Tildelt av</key>
|
||||
@@ -784,7 +882,7 @@ Vennlig hilsen Umbraco roboten
|
||||
<key alias="cacheBrowser">Hurtigbufferleser</key>
|
||||
<key alias="contentRecycleBin">Papirkurv</key>
|
||||
<key alias="createdPackages">Opprettede pakker</key>
|
||||
<key alias="dataTypes">Datatyper</key>
|
||||
<key alias="datatype">Datatyper</key>
|
||||
<key alias="dictionary">Ordbok</key>
|
||||
<key alias="installedPackages">Installerte pakker</key>
|
||||
<key alias="installSkin">Installer utseende</key>
|
||||
@@ -794,10 +892,10 @@ Vennlig hilsen Umbraco roboten
|
||||
<key alias="macros">Makroer</key>
|
||||
<key alias="mediaTypes">Mediatyper</key>
|
||||
<key alias="member">Medlemmer</key>
|
||||
<key alias="memberGroups">Medlemsgrupper</key>
|
||||
<key alias="memberGroup">Medlemsgrupper</key>
|
||||
<key alias="memberRoles">Roller</key>
|
||||
<key alias="memberTypes">Medlemstyper</key>
|
||||
<key alias="documentTypes">Dokumenttyper</key>
|
||||
<key alias="memberType">Medlemstyper</key>
|
||||
<key alias="nodeTypes">Dokumenttyper</key>
|
||||
<key alias="packager">Pakker</key>
|
||||
<key alias="packages">Pakker</key>
|
||||
<key alias="python">Python Filer</key>
|
||||
@@ -809,6 +907,7 @@ Vennlig hilsen Umbraco roboten
|
||||
<key alias="stylesheets">Stiler</key>
|
||||
<key alias="templates">Maler</key>
|
||||
<key alias="xslt">XSLT Filer</key>
|
||||
<key alias="analytics">Analytics</key>
|
||||
</area>
|
||||
<area alias="update">
|
||||
<key alias="updateAvailable">Ny oppdatering er klar</key>
|
||||
@@ -820,6 +919,8 @@ Vennlig hilsen Umbraco roboten
|
||||
<key alias="administrators">Administrator</key>
|
||||
<key alias="categoryField">Kategorifelt</key>
|
||||
<key alias="changePassword">Bytt passord</key>
|
||||
<key alias="newPassword">Nytt passord</key>
|
||||
<key alias="confirmNewPassword">Bekreft nytt passord</key>
|
||||
<key alias="changePasswordDescription">Du kan endre passordet til Umbraco ved å fylle ut skjemaet under og klikke "Bytt passord" knappen.</key>
|
||||
<key alias="contentChannel">Innholdskanal</key>
|
||||
<key alias="descriptionField">Beskrivelsesfelt</key>
|
||||
@@ -828,15 +929,18 @@ Vennlig hilsen Umbraco roboten
|
||||
<key alias="editors">Redaktør</key>
|
||||
<key alias="excerptField">Utdragsfelt</key>
|
||||
<key alias="language">Språk</key>
|
||||
<key alias="loginname">Login</key>
|
||||
<key alias="loginname">Brukernavn</key>
|
||||
<key alias="mediastartnode">Øverste nivå i Media</key>
|
||||
<key alias="modules">Moduler</key>
|
||||
<key alias="noConsole">Deaktiver tilgang til Umbraco</key>
|
||||
<key alias="password">Passord</key>
|
||||
<key alias="resetPassword">Nullstill passord</key>
|
||||
<key alias="passwordChanged">Passordet er endret</key>
|
||||
<key alias="passwordConfirm">Bekreft nytt passord</key>
|
||||
<key alias="passwordEnterNew">Nytt passord</key>
|
||||
<key alias="passwordIsBlank">Nytt passord kan ikke være blankt</key>
|
||||
<key alias="passwordCurrent">Gjeldende passord</key>
|
||||
<key alias="passwordInvalid">Feil passord</key>
|
||||
<key alias="passwordIsDifferent">Nytt og bekreftet passord må være like</key>
|
||||
<key alias="passwordMismatch">Nytt og bekreftet passord må være like</key>
|
||||
<key alias="permissionReplaceChildren">Overskriv tillatelser på undernoder</key>
|
||||
@@ -844,14 +948,15 @@ Vennlig hilsen Umbraco roboten
|
||||
<key alias="permissionSelectPages">Velg sider for å redigere deres tillatelser</key>
|
||||
<key alias="searchAllChildren">Søk i alle undersider</key>
|
||||
<key alias="startnode">Startnode</key>
|
||||
<key alias="username">Brukernavn</key>
|
||||
<key alias="username">Navn</key>
|
||||
<key alias="userPermissions">Brukertillatelser</key>
|
||||
<key alias="usertype">Brukertype</key>
|
||||
<key alias="userTypes">Brukertyper</key>
|
||||
<key alias="writer">Forfatter</key>
|
||||
<key alias="newPassword">Nytt passord</key>
|
||||
<key alias="confirmNewPassword">Bekreft nytt passord</key>
|
||||
<key alias="passwordCurrent">Gjeldende passord</key>
|
||||
<key alias="passwordInvalid">Feil passord</key>
|
||||
<key alias="translator">Oversetter</key>
|
||||
<key alias="change">Endre</key>
|
||||
<key alias="yourProfile" version="7.0">Din profil</key>
|
||||
<key alias="yourHistory" version="7.0">Din historikk</key>
|
||||
<key alias="sessionExpires" version="7.0">Sesjonen utløper om</key>
|
||||
</area>
|
||||
</language>
|
||||
@@ -321,6 +321,8 @@ Możesz dodać dodatkowe języki w menu "Języki" po lewej stronie.]]></key>
|
||||
<key alias="welcome">Witaj...</key>
|
||||
<key alias="width">Szerokość</key>
|
||||
<key alias="yes">Tak</key>
|
||||
<key alias="reorder">Reorder</key>
|
||||
<key alias="reorderDone">I am done reordering</key>
|
||||
</area>
|
||||
<area alias="graphicheadline">
|
||||
<key alias="backgroundcolor">Kolor tła</key>
|
||||
@@ -619,6 +621,7 @@ Miłego dnia!]]></key>
|
||||
<key alias="chooseLayout">Choose a layout</key>
|
||||
<key alias="addRows">Add a row</key>
|
||||
<key alias="addElement">Add content</key>
|
||||
<key alias="dropElement">Drop content</key>
|
||||
<key alias="settingsApplied">Settings applied</key>
|
||||
|
||||
<key alias="contentNotAllowed">This content is not allowed here</key>
|
||||
|
||||
@@ -320,6 +320,8 @@
|
||||
<key alias="welcome">Bem Vindo(a)...</key>
|
||||
<key alias="width">Largura</key>
|
||||
<key alias="yes">Sim</key>
|
||||
<key alias="reorder">Reorder</key>
|
||||
<key alias="reorderDone">I am done reordering</key>
|
||||
</area>
|
||||
<area alias="graphicheadline">
|
||||
<key alias="backgroundcolor">Cor de fundo</key>
|
||||
@@ -692,6 +694,7 @@ Você pode publicar esta página e todas suas sub-páginas ao selecionar <em>pub
|
||||
<key alias="chooseLayout">Choose a layout</key>
|
||||
<key alias="addRows">Add a row</key>
|
||||
<key alias="addElement">Add content</key>
|
||||
<key alias="dropElement">Drop content</key>
|
||||
<key alias="settingsApplied">Settings applied</key>
|
||||
|
||||
<key alias="contentNotAllowed">This content is not allowed here</key>
|
||||
|
||||
@@ -400,6 +400,8 @@
|
||||
<key alias="welcome">Добро пожаловать...</key>
|
||||
<key alias="width">Ширина</key>
|
||||
<key alias="yes">Да</key>
|
||||
<key alias="reorder">Reorder</key>
|
||||
<key alias="reorderDone">I am done reordering</key>
|
||||
</area>
|
||||
<area alias="graphicheadline">
|
||||
<key alias="backgroundcolor">Цвет фона</key>
|
||||
@@ -410,6 +412,7 @@
|
||||
</area>
|
||||
<area alias="grid">
|
||||
<key alias="addElement">Add content</key>
|
||||
<key alias="dropElement">Drop content</key>
|
||||
<key alias="addGridLayout">Добавить шаблон сетки</key>
|
||||
<key alias="addGridLayoutDetail">Настройте шаблон, задавая ширину колонок или добавляя дополнительные секции</key>
|
||||
<key alias="addRowConfiguration">Добавить конфигурацию строки</key>
|
||||
|
||||
@@ -392,6 +392,8 @@
|
||||
<key alias="width">Bredd</key>
|
||||
<key alias="view">Titta på</key>
|
||||
<key alias="yes">Ja</key>
|
||||
<key alias="reorder">Reorder</key>
|
||||
<key alias="reorderDone">I am done reordering</key>
|
||||
</area>
|
||||
<area alias="graphicheadline">
|
||||
<key alias="backgroundcolor">Bakgrundsfärg</key>
|
||||
@@ -732,6 +734,7 @@
|
||||
<key alias="chooseLayout">Choose layout</key>
|
||||
<key alias="addRows">Lägg till rad</key>
|
||||
<key alias="addElement">Add content</key>
|
||||
<key alias="dropElement">Drop content</key>
|
||||
<key alias="stylesApplied">Styles applied</key>
|
||||
<key alias="contentNotAllowed">Indholdet er ikke tilladt her</key>
|
||||
<key alias="contentAllowed">Indholdet er tilladt her</key>
|
||||
|
||||
@@ -363,6 +363,8 @@
|
||||
<key alias="welcome">欢迎…</key>
|
||||
<key alias="width">宽</key>
|
||||
<key alias="yes">是</key>
|
||||
<key alias="reorder">Reorder</key>
|
||||
<key alias="reorderDone">I am done reordering</key>
|
||||
</area>
|
||||
<area alias="graphicheadline">
|
||||
<key alias="backgroundcolor">背景色</key>
|
||||
@@ -778,6 +780,7 @@
|
||||
<key alias="chooseLayout">Choose a layout</key>
|
||||
<key alias="addRows">Add a row</key>
|
||||
<key alias="addElement">Add content</key>
|
||||
<key alias="dropElement">Drop content</key>
|
||||
<key alias="settingsApplied">Settings applied</key>
|
||||
|
||||
<key alias="contentNotAllowed">This content is not allowed here</key>
|
||||
|
||||
@@ -1,240 +0,0 @@
|
||||
<%@ Control Language="c#" AutoEventWireup="True" Codebehind="ContentTypeControlNew.ascx.cs"
|
||||
Inherits="Umbraco.Web.UI.Umbraco.Controls.ContentTypeControlNew" TargetSchema="http://schemas.microsoft.com/intellisense/ie5" %>
|
||||
<%@ Import Namespace="umbraco" %>
|
||||
<%@ Register TagPrefix="cc1" Namespace="umbraco.uicontrols" Assembly="controls" %>
|
||||
<%@ Register TagPrefix="cc2" Namespace="umbraco.uicontrols" Assembly="controls" %>
|
||||
<%@ Register TagPrefix="cdf" Namespace="ClientDependency.Core.Controls" Assembly="ClientDependency.Core" %>
|
||||
|
||||
<cdf:JsInclude ID="JsInclude" runat="server" FilePath="Editors/EditContentType.js" PathNameAlias="UmbracoClient" />
|
||||
|
||||
<cc1:TabView ID="TabView1" Height="392px" Width="552px" runat="server"></cc1:TabView>
|
||||
|
||||
<asp:Panel ID="pnlGeneral" runat="server"></asp:Panel>
|
||||
|
||||
<asp:Panel ID="pnlTab" Style="text-align: left" runat="server">
|
||||
|
||||
<cc2:Pane ID="PaneTabsInherited" runat="server" Visible="false">
|
||||
<p><strong><%=ui.GetText("settings", "contentTypeEnabled")%></strong><br /><%=umbraco.ui.GetText("settings", "contentTypeUses")%> <em><asp:Literal ID="tabsMasterContentTypeName" runat="server"></asp:Literal></em> <%=umbraco.ui.GetText("settings", "asAContentMasterType")%></p>
|
||||
</cc2:Pane>
|
||||
|
||||
<cc2:Pane ID="Pane2" runat="server">
|
||||
<cc2:PropertyPanel runat="server" id="pp_newTab" Text="New tab">
|
||||
<asp:TextBox ID="txtNewTab" runat="server"/> <asp:Button ID="btnNewTab" CssClass="btn" runat="server" Text="New tab" OnClick="btnNewTab_Click"/>
|
||||
</cc2:PropertyPanel>
|
||||
</cc2:Pane>
|
||||
|
||||
<cc2:Pane ID="Pane1" runat="server" Width="216" Height="80">
|
||||
<asp:DataGrid ID="dgTabs" Width="100%" runat="server" CellPadding="2" HeaderStyle-CssClass="propertyHeader"
|
||||
ItemStyle-CssClass="propertyContent" GridLines="None" OnItemCommand="dgTabs_ItemCommand" OnItemDataBound="dgTabs_ItemDataBound" OnPreRender="dgTabs_PreRender"
|
||||
HeaderStyle-Font-Bold="True" AutoGenerateColumns="False" CssClass="tabs-table">
|
||||
<Columns>
|
||||
<asp:BoundColumn DataField="id" Visible="False"></asp:BoundColumn>
|
||||
<asp:TemplateColumn HeaderText="Name & sort order">
|
||||
<ItemTemplate>
|
||||
<i class="icon-navigation handle" style="display:inline-block; margin-top:5px;"></i>
|
||||
<asp:TextBox ID="txtTab" runat="server" Value='<%#DataBinder.Eval(Container.DataItem,"name")%>'></asp:TextBox>
|
||||
<asp:TextBox ID="txtSortOrder" runat="server" CssClass="sort-order" style="width:40px;background-color:#f2f2f2;" Value='<%#DataBinder.Eval(Container.DataItem,"order") %>'></asp:TextBox>
|
||||
<asp:Button ID="btnDelete" runat="server" Text="Delete" CommandName="Delete" CssClass="btn btn-small btn-danger" />
|
||||
</ItemTemplate>
|
||||
</asp:TemplateColumn>
|
||||
</Columns>
|
||||
</asp:DataGrid>
|
||||
<p style="text-align: center;">
|
||||
<asp:Literal ID="lttNoTabs" runat="server"></asp:Literal></p>
|
||||
</cc2:Pane>
|
||||
</asp:Panel>
|
||||
|
||||
<asp:Panel ID="pnlInfo" runat="server">
|
||||
|
||||
<cc2:Pane ID="Pane3" runat="server">
|
||||
<cc2:PropertyPanel ID="pp_name" runat="server" Text="Name">
|
||||
<asp:TextBox ID="txtName" CssClass="guiInputText guiInputStandardSize" runat="server"></asp:TextBox>
|
||||
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" ControlToValidate="txtName" runat="server" ErrorMessage="Name cannot be empty!"></asp:RequiredFieldValidator>
|
||||
</cc2:PropertyPanel>
|
||||
|
||||
<cc2:PropertyPanel ID="pp_alias" runat="server" Text="Alias">
|
||||
<asp:TextBox ID="txtAlias" CssClass="guiInputText guiInputStandardSize" runat="server"></asp:TextBox>
|
||||
<asp:RequiredFieldValidator Display="Dynamic" ControlToValidate="txtAlias" runat="server" ErrorMessage="Alias cannot be empty!"></asp:RequiredFieldValidator>
|
||||
<asp:CustomValidator Display="Dynamic" runat="server" ID="DuplicateAliasValidator" ErrorMessage="A type with this alias already exists"></asp:CustomValidator>
|
||||
</cc2:PropertyPanel>
|
||||
</cc2:Pane>
|
||||
|
||||
<cc2:Pane runat="server">
|
||||
<cc2:PropertyPanel ID="pp_icon" runat="server" Text="Icon">
|
||||
<div class="umbIconDropdownList">
|
||||
<a href="#" class="btn btn-link picker-icons"> <i class="<asp:Literal runat="server" ID="lt_icon" />"></i> Choose...</a>
|
||||
<asp:HiddenField ID="tb_icon" runat="server" />
|
||||
</div>
|
||||
</cc2:PropertyPanel>
|
||||
<cc2:PropertyPanel ID="pp_description" runat="server" Text="Description">
|
||||
<asp:TextBox ID="description" runat="server" CssClass="guiInputText guiInputStandardSize" TextMode="MultiLine" Rows="3"/>
|
||||
</cc2:PropertyPanel>
|
||||
</cc2:Pane>
|
||||
</asp:Panel>
|
||||
|
||||
|
||||
<asp:Panel ID="pnlStructure" runat="server">
|
||||
<cc2:Pane ID="Pane6" runat="server">
|
||||
<cc2:PropertyPanel ID="pp_Root" runat="server">
|
||||
<asp:CheckBox runat="server" ID="allowAtRoot" Text="Yes" /><br />
|
||||
</cc2:PropertyPanel>
|
||||
|
||||
<cc2:PropertyPanel ID="pp_isContainer" runat="server">
|
||||
<asp:CheckBox runat="server" ID="cb_isContainer" Text="Yes" />
|
||||
|
||||
<%if (cb_isContainer.Checked) { %>
|
||||
|
||||
<div id="containerConfigPanel">
|
||||
|
||||
<div class="umb-pane">
|
||||
<div class="umb-property">
|
||||
<div class="control-group umb-control-group">
|
||||
<div class="umb-el-wrap">
|
||||
<label class="control-label">
|
||||
<%=ui.Text("editcontenttype", "currentListView", Security.CurrentUser) %>
|
||||
<small><%=ui.Text("editcontenttype", "currentListViewDesc", Security.CurrentUser) %></small>
|
||||
</label>
|
||||
|
||||
<div class="controls controls-row">
|
||||
<strong></strong>
|
||||
|
||||
<em style="display:none;"> (<%=ui.Text("general", "default", Security.CurrentUser) %>)</em>
|
||||
|
||||
<br/>
|
||||
<a href="#" class="text-info">
|
||||
<%=ui.Text("general", "edit", Security.CurrentUser) %>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="controls controls-row">
|
||||
<button id="createListView" class="btn" type="button" style="display: none;">
|
||||
<%=ui.Text("editcontenttype", "createListView", Security.CurrentUser) %>
|
||||
</button>
|
||||
<button id="removeListView" class="btn btn-warning" type="button" style="display: none;">
|
||||
<%=ui.Text("editcontenttype", "removeListView", Security.CurrentUser) %>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<%--Scripting to for configuring a list view--%>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function () {
|
||||
|
||||
var editor = new Umbraco.Editors.EditContentType({
|
||||
configPanel: $("#containerConfigPanel"),
|
||||
createListViewButton: $("#createListView"),
|
||||
removeListViewButton: $("#removeListView"),
|
||||
isContainerChk: $("#<%= cb_isContainer.ClientID %>"),
|
||||
contentTypeAlias: "<%=ContentTypeAlias%>",
|
||||
contentTypeId: <%=ContentTypeId%>,
|
||||
dataTypeServiceBaseUrl: "<%=DataTypeControllerUrl %>",
|
||||
contentTypeServiceBaseUrl: "<%=ContentTypeControllerUrl %>",
|
||||
});
|
||||
|
||||
editor.init();
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
<%} %>
|
||||
|
||||
</cc2:PropertyPanel>
|
||||
|
||||
</cc2:Pane>
|
||||
|
||||
<cc2:Pane ID="Pane5" runat="server">
|
||||
<cc2:PropertyPanel ID="pp_allowedChildren" runat="server" Text="Allowed Child nodetypes">
|
||||
<asp:CheckBoxList ID="lstAllowedContentTypes" runat="server" EnableViewState="True"/>
|
||||
<asp:PlaceHolder ID="PlaceHolderAllowedContentTypes" runat="server"/>
|
||||
</cc2:PropertyPanel>
|
||||
</cc2:Pane>
|
||||
|
||||
<cc2:Pane ID="Pane9" runat="server">
|
||||
<cc2:PropertyPanel ID="pp_compositions" runat="server" Text="ContentType Compositions">
|
||||
<asp:CheckBoxList ID="lstContentTypeCompositions" runat="server" EnableViewState="True"/>
|
||||
<asp:PlaceHolder ID="PlaceHolderContentTypeCompositions" runat="server"/>
|
||||
</cc2:PropertyPanel>
|
||||
</cc2:Pane>
|
||||
</asp:Panel>
|
||||
|
||||
|
||||
<asp:Panel ID="pnlProperties" runat="server">
|
||||
<cc2:Pane ID="PanePropertiesInherited" runat="server" Visible="false">
|
||||
<p><strong>Master Content Type enabled</strong><br />This Content Type uses <em><asp:Literal ID="propertiesMasterContentTypeName" runat="server"></asp:Literal></em> as a Master Content Type. Properties from Master Content Types are not shown and can only be edited on the Master Content Type itself</p>
|
||||
</cc2:Pane>
|
||||
|
||||
<cc2:Pane ID="Pane4" runat="server" Width="216" Height="80">
|
||||
<div class="genericPropertyForm">
|
||||
<asp:PlaceHolder ID="PropertyTypeNew" runat="server"></asp:PlaceHolder>
|
||||
<asp:PlaceHolder ID="PropertyTypes" runat="server"></asp:PlaceHolder>
|
||||
</div>
|
||||
</cc2:Pane>
|
||||
</asp:Panel>
|
||||
<%-- cannot put a <%= block here 'cos it prevents the Controls collection from being modified = use a literal --%>
|
||||
<script type="text/javascript">
|
||||
$(function () {
|
||||
<asp:Literal runat="server" ID="checkTxtAliasJs" />
|
||||
});
|
||||
|
||||
|
||||
jQuery(document).ready(function () {
|
||||
|
||||
checkAlias('.prop-alias');
|
||||
|
||||
duplicatePropertyNameAsSafeAlias('ul.addNewProperty');
|
||||
|
||||
jQuery(".picker-icons").click(function(){
|
||||
var that = this;
|
||||
UmbClientMgr.openAngularModalWindow({
|
||||
template: 'views/common/dialogs/iconpicker.html',
|
||||
callback: function(data){
|
||||
jQuery(that).next().val(data);
|
||||
jQuery(that).find("i").attr("class", data);
|
||||
}});
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
$("table.tabs-table tr.propertyContent input.sort-order").keydown(function(e) {
|
||||
// Allow: backspace, delete, tab, escape, enter and .
|
||||
if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 190]) !== -1 ||
|
||||
// Allow: Ctrl+A
|
||||
(e.keyCode == 65 && e.ctrlKey === true) ||
|
||||
// Allow: home, end, left, right
|
||||
(e.keyCode >= 35 && e.keyCode <= 39)) {
|
||||
// let it happen, don't do anything
|
||||
return;
|
||||
}
|
||||
// Ensure that it is a number and stop the keypress
|
||||
if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
|
||||
e.preventDefault();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// Make each tr of the tabs table sortable (prevent dragging of header row, and set up a callback for when row dragged)
|
||||
$("table.tabs-table tbody").sortable({
|
||||
containment: 'parent',
|
||||
cancel: '.propertyHeader, input',
|
||||
tolerance: 'pointer',
|
||||
update: function (event, ui) {
|
||||
saveOrder();
|
||||
}
|
||||
});
|
||||
|
||||
// Fired after row dragged; go through each tr and save position to the hidden sort order field
|
||||
function saveOrder() {
|
||||
$("table.tabs-table tbody tr.propertyContent").each(function (index) {
|
||||
$("input.sort-order", this).val(index + 1);
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
</script>
|
||||
@@ -1,59 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.UI.WebControls;
|
||||
using AutoMapper;
|
||||
using Umbraco.Core;
|
||||
using Umbraco.Core.Models;
|
||||
using Umbraco.Web.Editors;
|
||||
using Umbraco.Web.Models.ContentEditing;
|
||||
|
||||
namespace Umbraco.Web.UI.Umbraco.Controls
|
||||
{
|
||||
public partial class ContentTypeControlNew : global::umbraco.controls.ContentTypeControlNew
|
||||
{
|
||||
protected string DataTypeControllerUrl { get; private set; }
|
||||
protected string ContentTypeControllerUrl { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Raises the <see cref="E:System.Web.UI.Control.Load"/> event.
|
||||
/// </summary>
|
||||
/// <param name="e">The <see cref="T:System.EventArgs"/> object that contains the event data. </param>
|
||||
protected override void OnLoad(EventArgs e)
|
||||
{
|
||||
base.OnLoad(e);
|
||||
|
||||
DataTypeControllerUrl = Url.GetUmbracoApiServiceBaseUrl<DataTypeController>(x => x.GetById(0));
|
||||
ContentTypeControllerUrl = Url.GetUmbracoApiServiceBaseUrl<ContentTypeController>(x => x.GetAssignedListViewDataType(0));
|
||||
}
|
||||
|
||||
protected void dgTabs_PreRender(object sender, EventArgs e)
|
||||
{
|
||||
dgTabs.UseAccessibleHeader = true; //to make sure we render th, not td
|
||||
|
||||
Table table = dgTabs.Controls[0] as Table;
|
||||
if (table != null && table.Rows.Count > 0)
|
||||
{
|
||||
// here we render <thead> and <tfoot>
|
||||
if (dgTabs.ShowHeader)
|
||||
table.Rows[0].TableSection = TableRowSection.TableHeader;
|
||||
if (dgTabs.ShowFooter)
|
||||
table.Rows[table.Rows.Count - 1].TableSection = TableRowSection.TableFooter;
|
||||
}
|
||||
}
|
||||
|
||||
protected void dgTabs_ItemDataBound(object sender, DataGridItemEventArgs e)
|
||||
{
|
||||
Table table = dgTabs.Controls[0] as Table;
|
||||
if (table != null && table.Rows.Count > 0)
|
||||
{
|
||||
if (dgTabs.ShowHeader)
|
||||
table.Rows[0].TableSection = TableRowSection.TableHeader;
|
||||
if (dgTabs.ShowFooter)
|
||||
table.Rows[table.Rows.Count - 1].TableSection = TableRowSection.TableFooter;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Umbraco.Web.UI.Umbraco.Controls {
|
||||
|
||||
|
||||
public partial class ContentTypeControlNew {
|
||||
|
||||
/// <summary>
|
||||
/// JsInclude control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::ClientDependency.Core.Controls.JsInclude JsInclude;
|
||||
}
|
||||
}
|
||||
@@ -1,80 +0,0 @@
|
||||
<%@ Control Language="c#" AutoEventWireup="True" Inherits="umbraco.controls.GenericProperties.GenericProperty" TargetSchema="http://schemas.microsoft.com/intellisense/ie5" %>
|
||||
<%@ Register TagPrefix="cc1" Namespace="umbraco.uicontrols" Assembly="controls" %>
|
||||
|
||||
<li id="<%=this.FullId%>" onmousedown="activeDragId = this.id;">
|
||||
<div class="propertyForm" id="<%=this.FullId%>_form">
|
||||
<div id="desc<%=this.ClientID%>" ondblclick="expandCollapse('<%=this.ClientID%>'); document.getElementById('<%=this.ClientID%>_tbName').focus();">
|
||||
<div class="header">
|
||||
<i class="icon-navigation handle"></i>
|
||||
|
||||
<asp:LinkButton ID="DeleteButton2" runat="server">
|
||||
<i class="btn btn-mini icon-delete"></i>
|
||||
</asp:LinkButton>
|
||||
|
||||
<a href="javascript:expandCollapse('<%=this.ClientID%>');">
|
||||
|
||||
|
||||
<i class="toggle-button btn btn-mini icon-navigation-down"></i>
|
||||
<asp:Literal ID="FullHeader" runat="server"></asp:Literal>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="edit<%=this.ClientID%>" style="DISPLAY: none;">
|
||||
<div class="header">
|
||||
<i class="icon-navigation handle"></i>
|
||||
<asp:LinkButton ID="DeleteButton" runat="server">
|
||||
<i class="btn btn-mini icon-delete"></i>
|
||||
</asp:LinkButton>
|
||||
<a href="javascript:expandCollapse('<%=this.ClientID%>');">
|
||||
<i class="toggle-button btn btn-mini icon-navigation-up"></i>
|
||||
Edit "<asp:Literal ID="Header" runat="server"></asp:Literal>"
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<cc1:Pane ID="Pane1" runat="server">
|
||||
<cc1:PropertyPanel ID="PropertyPanel1" runat="server" Text="Name">
|
||||
<asp:TextBox ID="tbName" runat="server" CssClass="propertyFormInput prop-name"></asp:TextBox>
|
||||
</cc1:PropertyPanel>
|
||||
|
||||
<cc1:PropertyPanel ID="PropertyPanel2" runat="server" Text="Alias">
|
||||
<asp:TextBox ID="tbAlias" runat="server" CssClass="propertyFormInput prop-alias"></asp:TextBox>
|
||||
</cc1:PropertyPanel>
|
||||
|
||||
<cc1:PropertyPanel ID="PropertyPanel3" runat="server" Text="Type">
|
||||
<asp:DropDownList ID="ddlTypes" runat="server" CssClass="propertyFormInput"></asp:DropDownList>
|
||||
</cc1:PropertyPanel>
|
||||
|
||||
<cc1:PropertyPanel ID="PropertyPanel4" runat="server" Text="Tab">
|
||||
<asp:DropDownList ID="ddlTab" runat="server" CssClass="propertyFormInput"></asp:DropDownList>
|
||||
</cc1:PropertyPanel>
|
||||
|
||||
<cc1:PropertyPanel ID="PropertyPanel5" runat="server" Text="Mandatory" >
|
||||
<asp:CheckBox ID="checkMandatory" runat="server"></asp:CheckBox>
|
||||
</cc1:PropertyPanel>
|
||||
|
||||
<cc1:PropertyPanel ID="PropertyPanel6" runat="server" Text="Validation">
|
||||
<asp:TextBox ID="tbValidation" runat="server" TextMode="MultiLine" CssClass="propertyFormInput"></asp:TextBox><br />
|
||||
<asp:CustomValidator runat="server" ID="cvValidation" ControlToValidate="tbValidation" ErrorMessage="Invalid expression" ClientValidationFunction="ValidateValidation" /><br />
|
||||
<small>
|
||||
<asp:HyperLink ID="validationLink" runat="server">Search for a regular expression</asp:HyperLink></small>
|
||||
</cc1:PropertyPanel>
|
||||
|
||||
<cc1:PropertyPanel ID="PropertyPanel7" runat="server" Text="Description">
|
||||
<asp:TextBox ID="tbDescription" runat="server" CssClass="propertyFormInput" TextMode="MultiLine"></asp:TextBox>
|
||||
</cc1:PropertyPanel>
|
||||
</cc1:Pane>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<script type="text/javascript">
|
||||
function ValidateValidation(sender, args) {
|
||||
try {
|
||||
var patt = new RegExp(args.Value);
|
||||
args.IsValid = true;
|
||||
|
||||
} catch (e) {
|
||||
args.IsValid = false;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -1,37 +0,0 @@
|
||||
<%@ Page Async="true" language="c#" MasterPageFile="../masterpages/umbracoPage.Master" AutoEventWireup="True" Inherits="umbraco.cms.presentation.members.EditMemberType" %>
|
||||
<%@ Register TagPrefix="cc1" Namespace="umbraco.uicontrols" Assembly="controls" %>
|
||||
<%@ Register TagPrefix="uc1" TagName="ContentTypeControlNew" Src="../controls/ContentTypeControlNew.ascx" %>
|
||||
<%@ Register Namespace="umbraco" TagPrefix="umb" Assembly="umbraco" %>
|
||||
|
||||
<asp:Content ContentPlaceHolderID="head" runat="server">
|
||||
<style type="text/css">
|
||||
.gridHeader{border-bottom:2px solid #D9D7D7;}
|
||||
.gridItem{border-color: #D9D7D7;}
|
||||
</style>
|
||||
</asp:Content>
|
||||
<asp:Content ContentPlaceHolderID="body" runat="server">
|
||||
<uc1:ContentTypeControlNew id="ContentTypeControlNew1" HideStructure="true" runat="server"></uc1:ContentTypeControlNew>
|
||||
<cc1:Pane id="Pane1andmore" runat="server">
|
||||
|
||||
<asp:DataGrid id="dgEditExtras" runat="server" ItemStyle-BorderStyle="NotSet" HeaderStyle-BorderStyle="NotSet" BorderStyle="NotSet" AutoGenerateColumns="False" CssClass="table" OnItemDataBound="dgEditExtras_itemdatabound">
|
||||
<Columns>
|
||||
<asp:BoundColumn DataField="id" HeaderText="" Visible="False"></asp:BoundColumn>
|
||||
<asp:BoundColumn DataField="name" HeaderText="Property name"></asp:BoundColumn>
|
||||
|
||||
<asp:TemplateColumn HeaderText="Member can edit">
|
||||
<ItemTemplate>
|
||||
<asp:CheckBox ID="ckbMemberCanEdit" Runat="server"></asp:CheckBox>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateColumn>
|
||||
|
||||
<asp:TemplateColumn HeaderText="Show on profile">
|
||||
<ItemTemplate>
|
||||
<asp:CheckBox ID="ckbMemberCanView" Runat="server"></asp:CheckBox>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateColumn>
|
||||
|
||||
</Columns>
|
||||
</asp:DataGrid>
|
||||
|
||||
</cc1:Pane>
|
||||
</asp:Content>
|
||||
@@ -133,7 +133,7 @@
|
||||
//get the thumb of the image
|
||||
var src = document.forms[0].src.value;
|
||||
var ext = src.split('.').pop();
|
||||
var thumb = src.replace("." + ext, "_thumb.jpg");
|
||||
var thumb = src.replace("." + ext, "_thumb." + ext);
|
||||
if (src != "") jQuery("#<%=ImageViewer.ClientID%>").UmbracoImageViewerAPI().showImage(thumb);
|
||||
}
|
||||
}, 500);
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
<%@ Register TagPrefix="cc2" Namespace="umbraco.uicontrols" Assembly="controls" %>
|
||||
|
||||
<%@ Page Language="c#" CodeBehind="EditMediaType.aspx.cs" MasterPageFile="../masterpages/umbracoPage.Master"
|
||||
Async="true" AsyncTimeOut="300"
|
||||
AutoEventWireup="True" Inherits="umbraco.cms.presentation.settings.EditMediaType" %>
|
||||
|
||||
<%@ Register TagPrefix="uc1" TagName="ContentTypeControlNew" Src="../controls/ContentTypeControlNew.ascx" %>
|
||||
<asp:Content ContentPlaceHolderID="body" runat="server">
|
||||
<uc1:ContentTypeControlNew ID="ContentTypeControlNew1" runat="server"></uc1:ContentTypeControlNew>
|
||||
<script type="text/javascript">
|
||||
jQuery(document).ready(function () {
|
||||
UmbClientMgr.appActions().bindSaveShortCut();
|
||||
});
|
||||
</script>
|
||||
</asp:Content>
|
||||
@@ -1,57 +0,0 @@
|
||||
<%@ Page Language="c#" CodeBehind="EditNodeTypeNew.aspx.cs" AutoEventWireup="True" ValidateRequest="false"
|
||||
Async="true" AsyncTimeOut="300" Trace="false" Inherits="Umbraco.Web.UI.Umbraco.Settings.EditNodeTypeNew" MasterPageFile="../masterpages/umbracoPage.Master" %>
|
||||
|
||||
<%@ Register TagPrefix="cc1" Namespace="umbraco.uicontrols" Assembly="controls" %>
|
||||
<%@ Register TagPrefix="uc1" TagName="ContentTypeControlNew" Src="../controls/ContentTypeControlNew.ascx" %>
|
||||
|
||||
<asp:Content ContentPlaceHolderID="head" runat="server">
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function () {
|
||||
|
||||
UmbClientMgr.appActions().bindSaveShortCut();
|
||||
|
||||
// Auto selection/de-selection of default template based on allow templates
|
||||
$("#<%= templateList.ClientID %> input[type='checkbox']").on("change", function() {
|
||||
var checkbox = $(this);
|
||||
var ddl = $("#<%= ddlTemplates.ClientID %>");
|
||||
// If default template is not set, and an allowed template is selected, auto-select the default template
|
||||
if (checkbox.is(":checked")) {
|
||||
if (ddl.val() == "0") {
|
||||
ddl.val(checkbox.val());
|
||||
}
|
||||
}
|
||||
else {
|
||||
// If allowed template has been de-selected, and it's selected as the default, then de-select the default template
|
||||
if (ddl.val() == checkbox.val()) {
|
||||
ddl.val("0");
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Auto selection allowed template based on default template
|
||||
$("#<%= ddlTemplates.ClientID %>").on("change", function () {
|
||||
var ddl = $(this);
|
||||
if (ddl.val() != "0") {
|
||||
$("#<%= templateList.ClientID %> input[type='checkbox'][value='" + ddl.val() + "']").prop("checked", true);
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</asp:Content>
|
||||
|
||||
<asp:Content ContentPlaceHolderID="body" runat="server">
|
||||
<uc1:ContentTypeControlNew ID="ContentTypeControlNew1" runat="server"></uc1:ContentTypeControlNew>
|
||||
|
||||
<cc1:Pane ID="tmpPane" runat="server">
|
||||
<cc1:PropertyPanel Text="Allowed templates" runat="server">
|
||||
<div class="guiInputStandardSize" style="border: #ccc 1px solid; background: #fff;
|
||||
overflow: auto; height: 170px;">
|
||||
<asp:CheckBoxList ID="templateList" runat="server" />
|
||||
</div>
|
||||
</cc1:PropertyPanel>
|
||||
<cc1:PropertyPanel Text="Default template" runat="server">
|
||||
<asp:DropDownList ID="ddlTemplates" CssClass="guiInputText guiInputStandardSize"
|
||||
runat="server" />
|
||||
</cc1:PropertyPanel>
|
||||
</cc1:Pane>
|
||||
</asp:Content>
|
||||
@@ -1,11 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
|
||||
namespace Umbraco.Web.UI.Umbraco.Settings
|
||||
{
|
||||
public partial class EditNodeTypeNew : global::umbraco.settings.EditContentTypeNew
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Umbraco.Web.UI.Umbraco.Settings {
|
||||
|
||||
|
||||
public partial class EditNodeTypeNew {
|
||||
|
||||
/// <summary>
|
||||
/// allowedTemplates control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::umbraco.uicontrols.PropertyPanel allowedTemplates;
|
||||
|
||||
/// <summary>
|
||||
/// defaultTemplate control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::umbraco.uicontrols.PropertyPanel defaultTemplate;
|
||||
}
|
||||
}
|
||||
@@ -1,108 +0,0 @@
|
||||
Umbraco.Sys.registerNamespace("Umbraco.Editors");
|
||||
|
||||
(function ($) {
|
||||
|
||||
var _model = {};
|
||||
var _opts = null;
|
||||
|
||||
//updates the UI elements
|
||||
function updateElements() {
|
||||
_opts.configPanel.find("strong").html(_model.listViewName);
|
||||
if (_model.isSystem) {
|
||||
_opts.createListViewButton.show();
|
||||
_opts.removeListViewButton.hide();
|
||||
_opts.configPanel.find("em").show();
|
||||
}
|
||||
else {
|
||||
_opts.createListViewButton.hide();
|
||||
_opts.removeListViewButton.show();
|
||||
_opts.configPanel.find("em").hide();
|
||||
}
|
||||
}
|
||||
|
||||
function populateData() {
|
||||
//get init data
|
||||
|
||||
$.get(_opts.contentTypeServiceBaseUrl + "GetAssignedListViewDataType?contentTypeId=" + _opts.contentTypeId, function (result) {
|
||||
_model.isSystem = result.isSystem;
|
||||
_model.listViewName = result.name;
|
||||
_model.listViewId = result.id;
|
||||
updateElements();
|
||||
});
|
||||
}
|
||||
|
||||
$.ajaxSetup({
|
||||
beforeSend: function (xhr) {
|
||||
xhr.setRequestHeader("X-XSRF-TOKEN", $.cookie("XSRF-TOKEN"));
|
||||
},
|
||||
contentType: 'application/json;charset=utf-8',
|
||||
dataType: "json",
|
||||
dataFilter: function (data, dataType) {
|
||||
if ((typeof data) === "string") {
|
||||
//trim the csrf bits off
|
||||
data = data.replace(/^\)\]\}\'\,\n/, "");
|
||||
}
|
||||
return data;
|
||||
}
|
||||
});
|
||||
|
||||
Umbraco.Editors.EditContentType = base2.Base.extend({
|
||||
|
||||
// Constructor
|
||||
constructor: function(opts) {
|
||||
// Merge options with default
|
||||
_opts = $.extend({
|
||||
// Default options go here
|
||||
}, opts);
|
||||
},
|
||||
|
||||
init: function () {
|
||||
//wire up handlers
|
||||
|
||||
_opts.configPanel.find("a").click(function() {
|
||||
UmbClientMgr.contentFrame('#/developer/datatype/edit/' + _model.listViewId);
|
||||
});
|
||||
|
||||
_opts.isContainerChk.on("change", function () {
|
||||
if ($(this).is(":checked")) {
|
||||
_opts.configPanel.slideDown();
|
||||
}
|
||||
else {
|
||||
_opts.configPanel.slideUp();
|
||||
}
|
||||
});
|
||||
|
||||
_opts.createListViewButton.click(function (event) {
|
||||
event.preventDefault();
|
||||
|
||||
var data = {
|
||||
parentId: -1,
|
||||
id: 0,
|
||||
preValues: [],
|
||||
action: "SaveNew",
|
||||
name: "List View - " + _opts.contentTypeAlias,
|
||||
selectedEditor: "Umbraco.ListView"
|
||||
};
|
||||
|
||||
$.post(_opts.dataTypeServiceBaseUrl + "PostSave", JSON.stringify(data), function (result) {
|
||||
_model.isSystem = result.isSystem;
|
||||
_model.listViewName = result.name;
|
||||
_model.listViewId = result.id;
|
||||
updateElements();
|
||||
});
|
||||
});
|
||||
|
||||
_opts.removeListViewButton.click(function (event) {
|
||||
event.preventDefault();
|
||||
|
||||
$.post(_opts.dataTypeServiceBaseUrl + "DeleteById?id=" + _model.listViewId, function (result) {
|
||||
//re-get the data
|
||||
populateData();
|
||||
});
|
||||
});
|
||||
|
||||
populateData();
|
||||
|
||||
}
|
||||
});
|
||||
})(jQuery);
|
||||
@@ -1,53 +0,0 @@
|
||||
var activeDragId = "";
|
||||
function expandCollapse(theId) {
|
||||
|
||||
var edit = document.getElementById("edit" + theId);
|
||||
|
||||
if (edit.style.display == 'none') {
|
||||
edit.style.display = 'block';
|
||||
document.getElementById("desc" + theId).style.display = 'none';
|
||||
}
|
||||
else {
|
||||
edit.style.display = 'none';
|
||||
document.getElementById("desc" + theId).style.display = 'block';
|
||||
}
|
||||
}
|
||||
function duplicatePropertyNameAsSafeAlias(propertySelector) {
|
||||
$(propertySelector).each(function() {
|
||||
var prop = $(this);
|
||||
var inputName = prop.find('.prop-name');
|
||||
var inputAlias = prop.find('.prop-alias');
|
||||
inputName.on('input blur', function (event) {
|
||||
getSafeAlias(inputAlias, inputName.val(), false, function (alias) {
|
||||
if (!inputAlias.data('dirty'))
|
||||
inputAlias.val(alias);
|
||||
});
|
||||
});
|
||||
inputAlias.on('input', function(event) {
|
||||
inputName.off('input blur');
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function checkAlias(aliasSelector) {
|
||||
$(aliasSelector).on('input', function (event) {
|
||||
var input = $(this);
|
||||
input.data('dirty', true);
|
||||
var value = input.val();
|
||||
validateSafeAlias(input, value, false, function (isSafe) {
|
||||
input.toggleClass('highlight-error', !isSafe);
|
||||
});
|
||||
}).on('blur', function(event) {
|
||||
var input = $(this);
|
||||
if (!input.data('dirty')) return;
|
||||
input.removeData('dirty');
|
||||
var value = input.val();
|
||||
getSafeAlias(input, value, true, function (alias) {
|
||||
if (value.toLowerCase() != alias.toLowerCase())
|
||||
input.val(alias);
|
||||
input.removeClass('highlight-error');
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// validateSafeAlias and getSafeAlias are defined by UmbracoCasingRules.aspx
|
||||
@@ -1,107 +0,0 @@
|
||||
|
||||
.genericPropertyForm {
|
||||
|
||||
}
|
||||
.genericPropertyForm h2 {
|
||||
font-size: 16px;
|
||||
line-height: 20px;
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
|
||||
.genericPropertyList .header{
|
||||
padding: 4px;
|
||||
}
|
||||
.genericPropertyList .umb-pane{
|
||||
margin: 10px;
|
||||
}
|
||||
|
||||
.genericPropertyList {
|
||||
margin: 0px 0px 30px 0px;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.genericPropertyList .delete-button, .genericPropertyList .toggle-button{
|
||||
float: right;
|
||||
margin-left: 3px;
|
||||
border: none;
|
||||
background: none;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.genericPropertyList .delete-button i {
|
||||
background: none;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.handle{
|
||||
color: #ccc;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.addNewProperty .handle {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.genericPropertyList li {
|
||||
display: block;
|
||||
position: relative;
|
||||
border-bottom: 1px solid #eee;
|
||||
margin-bottom: 3px;
|
||||
cursor: move;
|
||||
}
|
||||
|
||||
.genericPropertyList li .delete-button i {
|
||||
color: #b94a48;
|
||||
}
|
||||
|
||||
.addNewProperty li {
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.genericPropertyList li table {
|
||||
display: block;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.genericPropertyList li table th {
|
||||
width: 140px;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
.propertyFormInput {
|
||||
width: 300px;
|
||||
z-index: 9999;
|
||||
}
|
||||
|
||||
.propertyForm SELECT {
|
||||
width: 300px;
|
||||
}
|
||||
|
||||
.propertyForm h3 a {
|
||||
color: #000;
|
||||
text-decoration: none;
|
||||
font-size: 14px;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.genericPropertyList li img {
|
||||
background: red;
|
||||
z-index: 9999;
|
||||
position: relative;
|
||||
border-right: medium none;
|
||||
border-top: medium none;
|
||||
border-left: medium none;
|
||||
margin-right: 5px;
|
||||
border-bottom: medium none;
|
||||
}
|
||||
.genericPropertyList li h3 input {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.aliasValidationError
|
||||
{
|
||||
background-color: #ff9999;
|
||||
border: 1px solid: red;
|
||||
}
|
||||
@@ -97,7 +97,7 @@ namespace Umbraco.Web.Editors
|
||||
if (result.Succeeded)
|
||||
{
|
||||
var user = await UserManager.FindByIdAsync(User.Identity.GetUserId<int>());
|
||||
await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false);
|
||||
await SignInManager.SignInAsync(user, isPersistent: true, rememberBrowser: false);
|
||||
return Request.CreateResponse(HttpStatusCode.OK);
|
||||
}
|
||||
else
|
||||
@@ -240,7 +240,9 @@ namespace Umbraco.Web.Editors
|
||||
[ValidateAngularAntiForgeryToken]
|
||||
public HttpResponseMessage PostLogout()
|
||||
{
|
||||
Request.TryGetOwinContext().Result.Authentication.SignOut();
|
||||
Request.TryGetOwinContext().Result.Authentication.SignOut(
|
||||
Core.Constants.Security.BackOfficeAuthenticationType,
|
||||
Core.Constants.Security.BackOfficeExternalAuthenticationType);
|
||||
|
||||
Logger.Info<AuthenticationController>("User {0} from IP address {1} has logged out",
|
||||
() => User.Identity == null ? "UNKNOWN" : User.Identity.Name,
|
||||
|
||||
@@ -27,11 +27,11 @@ namespace Umbraco.Web.Editors
|
||||
/// The API controller used for editing data types
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// This controller is decorated with the UmbracoApplicationAuthorizeAttribute which means that any user requesting
|
||||
/// access to ALL of the methods on this controller will need access to the developer application.
|
||||
/// The security for this controller is defined to allow full CRUD access to data types if the user has access to either:
|
||||
/// Content Types, Member Types or Media Types ... and of course to Data Types
|
||||
/// </remarks>
|
||||
[PluginController("UmbracoApi")]
|
||||
[UmbracoTreeAuthorize(Constants.Trees.DataTypes)]
|
||||
[UmbracoTreeAuthorize(Constants.Trees.DataTypes, Constants.Trees.DocumentTypes, Constants.Trees.MediaTypes, Constants.Trees.MemberTypes)]
|
||||
[EnableOverrideAuthorization]
|
||||
public class DataTypeController : UmbracoAuthorizedJsonController
|
||||
{
|
||||
@@ -76,7 +76,7 @@ namespace Umbraco.Web.Editors
|
||||
throw new HttpResponseException(HttpStatusCode.NotFound);
|
||||
}
|
||||
|
||||
Services.DataTypeService.Delete(foundType, UmbracoUser.Id);
|
||||
Services.DataTypeService.Delete(foundType, Security.CurrentUser.Id);
|
||||
|
||||
return Request.CreateResponse(HttpStatusCode.OK);
|
||||
}
|
||||
|
||||
@@ -124,7 +124,7 @@ namespace Umbraco.Web.Editors
|
||||
return Request.CreateResponse(HttpStatusCode.NotFound);
|
||||
}
|
||||
|
||||
var thumbFilePath = imagePath.TrimEnd(ext) + "_" + suffix + ".jpg";
|
||||
var thumbFilePath = imagePath.TrimEnd(ext) + "_" + suffix + ext;
|
||||
var fullOrgPath = mediaFileSystem.GetFullPath(mediaFileSystem.GetRelativePath(imagePath));
|
||||
var fullNewPath = mediaFileSystem.GetFullPath(mediaFileSystem.GetRelativePath(thumbFilePath));
|
||||
var thumbIsNew = mediaFileSystem.FileExists(fullNewPath) == false;
|
||||
@@ -148,7 +148,7 @@ namespace Umbraco.Web.Editors
|
||||
originalImage,
|
||||
width,
|
||||
fullNewPath,
|
||||
"jpg",
|
||||
ext.Replace(".", ""),
|
||||
mediaFileSystem);
|
||||
}
|
||||
else
|
||||
@@ -168,7 +168,8 @@ namespace Umbraco.Web.Editors
|
||||
if (stream.CanSeek) stream.Seek(0, 0);
|
||||
result.Content = new StreamContent(stream);
|
||||
result.Headers.Date = mediaFileSystem.GetLastModified(imagePath);
|
||||
result.Content.Headers.ContentType = new MediaTypeHeaderValue("image/jpeg");
|
||||
result.Content.Headers.ContentType = new MediaTypeHeaderValue(System.Web.MimeMapping.GetMimeMapping(imagePath));
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,11 +2,8 @@ namespace Umbraco.Web
|
||||
{
|
||||
/// <summary>
|
||||
/// Used to retrieve the Umbraco context
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// TODO: We could expose this to make working with UmbracoContext easier if we were to use it throughout the codebase
|
||||
/// </remarks>
|
||||
internal interface IUmbracoContextAccessor
|
||||
/// </summary>
|
||||
public interface IUmbracoContextAccessor
|
||||
{
|
||||
UmbracoContext Value { get; }
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ namespace Umbraco.Web.Media.ThumbnailProviders
|
||||
return false;
|
||||
|
||||
// Make sure the thumbnail exists
|
||||
var tmpThumbUrl = fileUrl.Replace(ext, "_thumb.jpg");
|
||||
var tmpThumbUrl = fileUrl.Replace(ext, "_thumb" + ext);
|
||||
|
||||
try
|
||||
{
|
||||
|
||||
@@ -84,6 +84,33 @@ namespace Umbraco.Web.Models.Mapping
|
||||
|
||||
private static void AfterMap(IMedia media, MediaItemDisplay display, IDataTypeService dataTypeService)
|
||||
{
|
||||
// Adapted from ContentModelMapper
|
||||
//map the IsChildOfListView (this is actually if it is a descendant of a list view!)
|
||||
//TODO: Fix this shorthand .Ancestors() lookup, at least have an overload to use the current
|
||||
if (media.HasIdentity)
|
||||
{
|
||||
var ancesctorListView = media.Ancestors().FirstOrDefault(x => x.ContentType.IsContainer);
|
||||
display.IsChildOfListView = ancesctorListView != null;
|
||||
}
|
||||
else
|
||||
{
|
||||
//it's new so it doesn't have a path, so we need to look this up by it's parent + ancestors
|
||||
var parent = media.Parent();
|
||||
if (parent == null)
|
||||
{
|
||||
display.IsChildOfListView = false;
|
||||
}
|
||||
else if (parent.ContentType.IsContainer)
|
||||
{
|
||||
display.IsChildOfListView = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
var ancesctorListView = parent.Ancestors().FirstOrDefault(x => x.ContentType.IsContainer);
|
||||
display.IsChildOfListView = ancesctorListView != null;
|
||||
}
|
||||
}
|
||||
|
||||
//map the tree node url
|
||||
if (HttpContext.Current != null)
|
||||
{
|
||||
|
||||
@@ -131,7 +131,7 @@ namespace Umbraco.Web.Security
|
||||
var userData = Mapper.Map<UserData>(user);
|
||||
_httpContext.SetPrincipalForRequest(userData);
|
||||
|
||||
SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false).Wait();
|
||||
SignInManager.SignInAsync(user, isPersistent: true, rememberBrowser: false).Wait();
|
||||
return TimeSpan.FromMinutes(GlobalSettings.TimeOutInMinutes).TotalSeconds;
|
||||
}
|
||||
|
||||
@@ -162,7 +162,9 @@ namespace Umbraco.Web.Security
|
||||
public virtual void ClearCurrentLogin()
|
||||
{
|
||||
_httpContext.UmbracoLogout();
|
||||
_httpContext.GetOwinContext().Authentication.SignOut();
|
||||
_httpContext.GetOwinContext().Authentication.SignOut(
|
||||
Core.Constants.Security.BackOfficeAuthenticationType,
|
||||
Core.Constants.Security.BackOfficeExternalAuthenticationType);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -617,9 +617,6 @@
|
||||
<Compile Include="UI\JavaScript\AssetInitialization.cs" />
|
||||
<Compile Include="UI\JavaScript\CssInitialization.cs" />
|
||||
<Compile Include="UI\JavaScript\DependencyPathRenderer.cs" />
|
||||
<Compile Include="umbraco.presentation\umbraco\controls\GenericProperties\GenericProperty.ascx.cs">
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="umbraco.presentation\umbraco\create.aspx.cs">
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
@@ -847,9 +844,6 @@
|
||||
<Compile Include="umbraco.presentation\umbraco\controls\PasswordChanger.ascx.cs">
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="umbraco.presentation\umbraco\controls\ContentTypeControlNew.ascx.cs">
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="umbraco.presentation\umbraco\controls\Tree\TreeControl.ascx.cs">
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
@@ -1083,9 +1077,6 @@
|
||||
<Compile Include="umbraco.presentation\umbraco\Search\QuickSearch.ascx.cs">
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="umbraco.presentation\umbraco\settings\EditNodeTypeNew.aspx.cs">
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="umbraco.presentation\umbraco\settings\editTemplate.aspx.cs">
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
@@ -1263,7 +1254,6 @@
|
||||
<DependentUpon>UploadMediaImage.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="umbraco.presentation\umbraco\controls\dualSelectBox.cs" />
|
||||
<Compile Include="umbraco.presentation\umbraco\controls\GenericProperties\GenericPropertyWrapper.cs" />
|
||||
<Compile Include="umbraco.presentation\umbraco\controls\GenericValidation.cs" />
|
||||
<Compile Include="umbraco.presentation\umbraco\controls\LabelButton.cs" />
|
||||
<Compile Include="umbraco.presentation\umbraco\controls\macroParameterControl.cs" />
|
||||
@@ -1600,13 +1590,6 @@
|
||||
<Compile Include="umbraco.presentation\umbraco\members\EditMemberGroup.aspx.designer.cs">
|
||||
<DependentUpon>EditMemberGroup.aspx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="umbraco.presentation\umbraco\members\EditMemberType.aspx.cs">
|
||||
<DependentUpon>EditMemberType.aspx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="umbraco.presentation\umbraco\members\EditMemberType.aspx.designer.cs">
|
||||
<DependentUpon>EditMemberType.aspx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="umbraco.presentation\umbraco\members\search.aspx.cs">
|
||||
<DependentUpon>search.aspx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
@@ -1697,13 +1680,6 @@
|
||||
<Compile Include="umbraco.presentation\umbraco\settings\editLanguage.aspx.designer.cs">
|
||||
<DependentUpon>editLanguage.aspx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="umbraco.presentation\umbraco\settings\EditMediaType.aspx.cs">
|
||||
<DependentUpon>EditMediaType.aspx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="umbraco.presentation\umbraco\settings\EditMediaType.aspx.designer.cs">
|
||||
<DependentUpon>EditMediaType.aspx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="umbraco.presentation\umbraco\settings\scripts\editScript.aspx.cs">
|
||||
<DependentUpon>editScript.aspx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
@@ -2118,9 +2094,6 @@
|
||||
<Content Include="umbraco.presentation\umbraco\members\EditMemberGroup.aspx">
|
||||
<SubType>Form</SubType>
|
||||
</Content>
|
||||
<Content Include="umbraco.presentation\umbraco\members\EditMemberType.aspx">
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Content>
|
||||
<Content Include="umbraco.presentation\umbraco\schemas\umbraco.xsd">
|
||||
<SubType>Designer</SubType>
|
||||
</Content>
|
||||
@@ -2128,9 +2101,6 @@
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Content>
|
||||
<Content Include="umbraco.presentation\umbraco\settings\editLanguage.aspx" />
|
||||
<Content Include="umbraco.presentation\umbraco\settings\EditMediaType.aspx">
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Content>
|
||||
<Content Include="umbraco.presentation\umbraco\users\EditUserType.aspx">
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Content>
|
||||
|
||||
@@ -490,6 +490,8 @@ namespace Umbraco.Web
|
||||
httpContext.Response.Headers.Remove("Server");
|
||||
//this doesn't normally work since IIS sets it but we'll keep it here anyways.
|
||||
httpContext.Response.Headers.Remove("X-Powered-By");
|
||||
httpContext.Response.Headers.Remove("X-AspNet-Version");
|
||||
httpContext.Response.Headers.Remove("X-AspNetMvc-Version");
|
||||
}
|
||||
catch (PlatformNotSupportedException ex)
|
||||
{
|
||||
|
||||
@@ -19,7 +19,9 @@ namespace Umbraco.Web.WebApi.Filters
|
||||
|
||||
//this calls the underlying owin sign out logic - which should call the
|
||||
// auth providers middleware callbacks if using custom auth middleware
|
||||
context.Request.TryGetOwinContext().Result.Authentication.SignOut();
|
||||
context.Request.TryGetOwinContext().Result.Authentication.SignOut(
|
||||
Core.Constants.Security.BackOfficeAuthenticationType,
|
||||
Core.Constants.Security.BackOfficeExternalAuthenticationType);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -146,6 +146,8 @@ namespace Umbraco.Web
|
||||
});
|
||||
ClientDependencySettings.Instance.MvcRendererCollection.Add(renderer);
|
||||
|
||||
// Disable the X-AspNetMvc-Version HTTP Header
|
||||
MvcHandler.DisableMvcResponseHeader = true;
|
||||
|
||||
InstallHelper insHelper = new InstallHelper(UmbracoContext.Current);
|
||||
insHelper.DeleteLegacyInstaller();
|
||||
|
||||
@@ -24,6 +24,7 @@ using Umbraco.Core.IO;
|
||||
using Umbraco.Core.Logging;
|
||||
using Umbraco.Core.Macros;
|
||||
using Umbraco.Core.Models;
|
||||
using Umbraco.Core.Services;
|
||||
using Umbraco.Core.Xml.XPath;
|
||||
using Umbraco.Core.Profiling;
|
||||
using umbraco.interfaces;
|
||||
@@ -62,7 +63,7 @@ namespace umbraco
|
||||
private readonly StringBuilder _content = new StringBuilder();
|
||||
private const string MacrosAddedKey = "macrosAdded";
|
||||
public IList<Exception> Exceptions = new List<Exception>();
|
||||
|
||||
|
||||
protected static ISqlHelper SqlHelper
|
||||
{
|
||||
get { return Application.SqlHelper; }
|
||||
@@ -157,7 +158,7 @@ namespace umbraco
|
||||
public macro(string alias)
|
||||
{
|
||||
Macro m = Macro.GetByAlias(alias);
|
||||
Model = new MacroModel(m);
|
||||
Model = new MacroModel(m);
|
||||
}
|
||||
|
||||
public MacroModel Model { get; set; }
|
||||
@@ -168,7 +169,7 @@ namespace umbraco
|
||||
}
|
||||
|
||||
public static macro GetMacro(int id)
|
||||
{
|
||||
{
|
||||
return new macro(id);
|
||||
}
|
||||
|
||||
@@ -199,9 +200,9 @@ namespace umbraco
|
||||
{
|
||||
if (this.Model != null)
|
||||
{
|
||||
DistributedCache.Instance.RemoveMacroCache(this);
|
||||
DistributedCache.Instance.RemoveMacroCache(this);
|
||||
}
|
||||
|
||||
|
||||
//this always returned false... hrm. oh well i guess we leave it like that
|
||||
return false;
|
||||
}
|
||||
@@ -253,7 +254,7 @@ namespace umbraco
|
||||
/// An event that is raised just before the macro is rendered allowing developers to modify the macro before it executes.
|
||||
/// </summary>
|
||||
public static event TypedEventHandler<macro, MacroRenderingEventArgs> MacroRendering;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Raises the MacroRendering event
|
||||
/// </summary>
|
||||
@@ -281,7 +282,7 @@ namespace umbraco
|
||||
|
||||
using (DisposableTimer.DebugDuration<macro>(macroInfo))
|
||||
{
|
||||
TraceInfo("renderMacro", macroInfo, excludeProfiling:true);
|
||||
TraceInfo("renderMacro", macroInfo, excludeProfiling: true);
|
||||
|
||||
StateHelper.SetContextValue(MacrosAddedKey, StateHelper.GetContextValue<int>(MacrosAddedKey) + 1);
|
||||
|
||||
@@ -301,12 +302,13 @@ namespace umbraco
|
||||
{
|
||||
var renderFailed = false;
|
||||
var macroType = Model.MacroType != MacroTypes.Unknown
|
||||
? (int) Model.MacroType
|
||||
? (int)Model.MacroType
|
||||
: MacroType;
|
||||
var textService = ApplicationContext.Current.Services.TextService;
|
||||
|
||||
switch (macroType)
|
||||
{
|
||||
case (int) MacroTypes.PartialView:
|
||||
case (int)MacroTypes.PartialView:
|
||||
|
||||
//error handler for partial views, is an action because we need to re-use it twice below
|
||||
Func<Exception, Control> handleError = e =>
|
||||
@@ -322,12 +324,14 @@ namespace umbraco
|
||||
Exception = e,
|
||||
Behaviour = UmbracoConfig.For.UmbracoSettings().Content.MacroErrorBehaviour
|
||||
};
|
||||
return GetControlForErrorBehavior("Error loading Partial View script (file: " + ScriptFile + ")", macroErrorEventArgs);
|
||||
|
||||
var errorMessage = textService.Localize("errors/macroErrorLoadingPartialView", new[] { ScriptFile });
|
||||
return GetControlForErrorBehavior(errorMessage, macroErrorEventArgs);
|
||||
};
|
||||
|
||||
using (DisposableTimer.DebugDuration<macro>("Executing Partial View: " + Model.TypeName))
|
||||
{
|
||||
TraceInfo("umbracoMacro", "Partial View added (" + Model.TypeName + ")", excludeProfiling:true);
|
||||
TraceInfo("umbracoMacro", "Partial View added (" + Model.TypeName + ")", excludeProfiling: true);
|
||||
try
|
||||
{
|
||||
var result = LoadPartialViewMacro(Model);
|
||||
@@ -362,13 +366,13 @@ namespace umbraco
|
||||
|
||||
break;
|
||||
}
|
||||
case (int) MacroTypes.UserControl:
|
||||
case (int)MacroTypes.UserControl:
|
||||
|
||||
using (DisposableTimer.DebugDuration<macro>("Executing UserControl: " + Model.TypeName))
|
||||
{
|
||||
try
|
||||
{
|
||||
TraceInfo("umbracoMacro", "Usercontrol added (" + Model.TypeName + ")", excludeProfiling:true);
|
||||
TraceInfo("umbracoMacro", "Usercontrol added (" + Model.TypeName + ")", excludeProfiling: true);
|
||||
|
||||
// Add tilde for v4 defined macros
|
||||
if (string.IsNullOrEmpty(Model.TypeName) == false &&
|
||||
@@ -394,7 +398,8 @@ namespace umbraco
|
||||
Behaviour = UmbracoConfig.For.UmbracoSettings().Content.MacroErrorBehaviour
|
||||
};
|
||||
|
||||
macroControl = GetControlForErrorBehavior("Error loading userControl '" + Model.TypeName + "'", macroErrorEventArgs);
|
||||
var errorMessage = textService.Localize("errors/macroErrorLoadingUsercontrol", new[] { Model.TypeName });
|
||||
macroControl = GetControlForErrorBehavior(errorMessage, macroErrorEventArgs);
|
||||
//if it is null, then we are supposed to throw the (original) exception
|
||||
// see: http://issues.umbraco.org/issue/U4-497 at the end
|
||||
if (macroControl == null)
|
||||
@@ -405,8 +410,8 @@ namespace umbraco
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
case (int) MacroTypes.CustomControl:
|
||||
|
||||
case (int)MacroTypes.CustomControl:
|
||||
|
||||
using (DisposableTimer.DebugDuration<macro>("Executing CustomControl: " + Model.TypeName + "." + Model.TypeAssembly))
|
||||
{
|
||||
@@ -435,7 +440,8 @@ namespace umbraco
|
||||
Behaviour = UmbracoConfig.For.UmbracoSettings().Content.MacroErrorBehaviour
|
||||
};
|
||||
|
||||
macroControl = GetControlForErrorBehavior("Error loading customControl (Assembly: " + Model.TypeAssembly + ", Type: '" + Model.TypeName + "'", macroErrorEventArgs);
|
||||
var errorMessage = textService.Localize("errors/macroErrorLoadingCustomControl", new[] { Model.TypeAssembly, Model.TypeName });
|
||||
macroControl = GetControlForErrorBehavior(errorMessage, macroErrorEventArgs);
|
||||
//if it is null, then we are supposed to throw the (original) exception
|
||||
// see: http://issues.umbraco.org/issue/U4-497 at the end
|
||||
if (macroControl == null)
|
||||
@@ -446,10 +452,10 @@ namespace umbraco
|
||||
break;
|
||||
}
|
||||
}
|
||||
case (int) MacroTypes.XSLT:
|
||||
case (int)MacroTypes.XSLT:
|
||||
macroControl = LoadMacroXslt(this, Model, pageElements, true);
|
||||
break;
|
||||
case (int) MacroTypes.Script:
|
||||
break;
|
||||
case (int)MacroTypes.Script:
|
||||
|
||||
//error handler for partial views, is an action because we need to re-use it twice below
|
||||
Func<Exception, Control> handleMacroScriptError = e =>
|
||||
@@ -467,7 +473,8 @@ namespace umbraco
|
||||
Behaviour = UmbracoConfig.For.UmbracoSettings().Content.MacroErrorBehaviour
|
||||
};
|
||||
|
||||
return GetControlForErrorBehavior("Error loading MacroEngine script (file: " + ScriptFile + ")", macroErrorEventArgs);
|
||||
var errorMessage = textService.Localize("errors/macroErrorLoadingMacroEngineScript", new[] { ScriptFile });
|
||||
return GetControlForErrorBehavior(errorMessage, macroErrorEventArgs);
|
||||
};
|
||||
|
||||
using (DisposableTimer.DebugDuration<macro>("Executing MacroEngineScript: " + ScriptFile))
|
||||
@@ -505,7 +512,7 @@ namespace umbraco
|
||||
break;
|
||||
}
|
||||
}
|
||||
case (int) MacroTypes.Unknown:
|
||||
case (int)MacroTypes.Unknown:
|
||||
default:
|
||||
if (GlobalSettings.DebugMode)
|
||||
{
|
||||
@@ -601,9 +608,9 @@ namespace umbraco
|
||||
CacheItemPriority.NotRemovable,
|
||||
new TimeSpan(0, 0, Model.CacheDuration),
|
||||
() => DateTime.Now);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -745,7 +752,7 @@ namespace umbraco
|
||||
switch (model.MacroType)
|
||||
{
|
||||
case MacroTypes.XSLT:
|
||||
return string.Concat("~/xslt/", model.Xslt);
|
||||
return string.Concat("~/xslt/", model.Xslt);
|
||||
case MacroTypes.Python:
|
||||
case MacroTypes.Script:
|
||||
return string.Concat("~/macroScripts/", model.ScriptName);
|
||||
@@ -753,7 +760,7 @@ namespace umbraco
|
||||
return model.ScriptName; //partial views are saved with the full virtual path
|
||||
case MacroTypes.UserControl:
|
||||
return model.TypeName; //user controls saved with the full virtual path
|
||||
case MacroTypes.CustomControl:
|
||||
case MacroTypes.CustomControl:
|
||||
case MacroTypes.Unknown:
|
||||
default:
|
||||
return "/" + model.TypeName;
|
||||
@@ -777,7 +784,7 @@ namespace umbraco
|
||||
{
|
||||
switch (model.MacroType)
|
||||
{
|
||||
case MacroTypes.XSLT:
|
||||
case MacroTypes.XSLT:
|
||||
case MacroTypes.Python:
|
||||
case MacroTypes.Script:
|
||||
case MacroTypes.PartialView:
|
||||
@@ -798,12 +805,12 @@ namespace umbraco
|
||||
CacheItemPriority.Default,
|
||||
new CacheDependency(IOHelper.MapPath(SystemDirectories.Xslt + "/" + XsltFile)),
|
||||
() =>
|
||||
{
|
||||
using (var xslReader = new XmlTextReader(IOHelper.MapPath(SystemDirectories.Xslt.EnsureEndsWith('/') + XsltFile)))
|
||||
{
|
||||
using (var xslReader = new XmlTextReader(IOHelper.MapPath(SystemDirectories.Xslt.EnsureEndsWith('/') + XsltFile)))
|
||||
{
|
||||
return CreateXsltTransform(xslReader, GlobalSettings.DebugMode);
|
||||
}
|
||||
});
|
||||
return CreateXsltTransform(xslReader, GlobalSettings.DebugMode);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void UpdateMacroModel(Hashtable attributes)
|
||||
@@ -884,7 +891,7 @@ namespace umbraco
|
||||
|
||||
if (!canNavigate)
|
||||
{
|
||||
// get master xml document
|
||||
// get master xml document
|
||||
var cache = UmbracoContext.Current.ContentCache.InnerCache as Umbraco.Web.PublishedCache.XmlPublishedCache.PublishedContentCache;
|
||||
if (cache == null) throw new Exception("Unsupported IPublishedContentCache, only the Xml one is supported.");
|
||||
XmlDocument umbracoXml = cache.GetXml(UmbracoContext.Current, UmbracoContext.Current.InPreviewMode);
|
||||
@@ -916,7 +923,8 @@ namespace umbraco
|
||||
"</b><br/><p>" + HttpContext.Current.Server.HtmlEncode(outerXml) +
|
||||
"</p></div>");
|
||||
}
|
||||
|
||||
|
||||
var textService = ApplicationContext.Current.Services.TextService;
|
||||
try
|
||||
{
|
||||
var xsltFile = getXslt(XsltFile);
|
||||
@@ -925,9 +933,9 @@ namespace umbraco
|
||||
{
|
||||
try
|
||||
{
|
||||
var transformed = canNavigate
|
||||
? GetXsltTransformResult(macroNavigator, contentNavigator, xsltFile) // better?
|
||||
: GetXsltTransformResult(macroXml, xsltFile); // document
|
||||
var transformed = canNavigate
|
||||
? GetXsltTransformResult(macroNavigator, contentNavigator, xsltFile) // better?
|
||||
: GetXsltTransformResult(macroXml, xsltFile); // document
|
||||
var result = CreateControlsFromText(transformed);
|
||||
|
||||
return result;
|
||||
@@ -936,9 +944,11 @@ namespace umbraco
|
||||
{
|
||||
Exceptions.Add(e);
|
||||
LogHelper.WarnWithException<macro>("Error parsing XSLT file", e);
|
||||
|
||||
|
||||
var macroErrorEventArgs = new MacroErrorEventArgs { Name = Model.Name, Alias = Model.Alias, ItemKey = Model.Xslt, Exception = e, Behaviour = UmbracoConfig.For.UmbracoSettings().Content.MacroErrorBehaviour };
|
||||
var macroControl = GetControlForErrorBehavior("Error parsing XSLT file: \\xslt\\" + XsltFile, macroErrorEventArgs);
|
||||
|
||||
var errorMessage = textService.Localize("errors/macroErrorParsingXSLTFile", new[] { XsltFile });
|
||||
var macroControl = GetControlForErrorBehavior(errorMessage, macroErrorEventArgs);
|
||||
//if it is null, then we are supposed to throw the (original) exception
|
||||
// see: http://issues.umbraco.org/issue/U4-497 at the end
|
||||
if (macroControl == null && throwError)
|
||||
@@ -946,8 +956,8 @@ namespace umbraco
|
||||
throw;
|
||||
}
|
||||
return macroControl;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
@@ -956,7 +966,8 @@ namespace umbraco
|
||||
|
||||
// Invoke any error handlers for this macro
|
||||
var macroErrorEventArgs = new MacroErrorEventArgs { Name = Model.Name, Alias = Model.Alias, ItemKey = Model.Xslt, Exception = e, Behaviour = UmbracoConfig.For.UmbracoSettings().Content.MacroErrorBehaviour };
|
||||
var macroControl = GetControlForErrorBehavior("Error reading XSLT file: \\xslt\\" + XsltFile, macroErrorEventArgs);
|
||||
var errorMessage = textService.Localize("errors/macroErrorReadingXSLTFile", new[] { XsltFile });
|
||||
var macroControl = GetControlForErrorBehavior(errorMessage + XsltFile, macroErrorEventArgs);
|
||||
//if it is null, then we are supposed to throw the (original) exception
|
||||
// see: http://issues.umbraco.org/issue/U4-497 at the end
|
||||
if (macroControl == null && throwError)
|
||||
@@ -965,7 +976,7 @@ namespace umbraco
|
||||
}
|
||||
return macroControl;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// gets the control for the macro, using GetXsltTransform methods for execution
|
||||
@@ -1046,12 +1057,12 @@ namespace umbraco
|
||||
XsltArgumentList xslArgs;
|
||||
|
||||
using (DisposableTimer.DebugDuration<macro>("Adding XSLT Extensions"))
|
||||
{
|
||||
{
|
||||
xslArgs = AddXsltExtensions();
|
||||
var lib = new library();
|
||||
xslArgs.AddExtensionObject("urn:umbraco.library", lib);
|
||||
}
|
||||
|
||||
|
||||
// Add parameters
|
||||
if (parameters == null || !parameters.ContainsKey("currentPage"))
|
||||
{
|
||||
@@ -1067,8 +1078,8 @@ namespace umbraco
|
||||
using (DisposableTimer.DebugDuration<macro>("Executing XSLT transform"))
|
||||
{
|
||||
xslt.Transform(macroXml.CreateNavigator(), xslArgs, tw);
|
||||
}
|
||||
return TemplateUtilities.ResolveUrlsFromTextString(tw.ToString());
|
||||
}
|
||||
return TemplateUtilities.ResolveUrlsFromTextString(tw.ToString());
|
||||
}
|
||||
|
||||
// gets the result of the xslt transform with no parameters - Navigator mode
|
||||
@@ -1128,7 +1139,7 @@ namespace umbraco
|
||||
return XsltExtensionsResolver.Current.XsltExtensions
|
||||
.ToDictionary(x => x.Namespace, x => x.ExtensionObject);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Returns an XSLT argument list with all XSLT extensions added,
|
||||
/// both predefined and configured ones.
|
||||
@@ -1142,9 +1153,9 @@ namespace umbraco
|
||||
{
|
||||
string extensionNamespace = "urn:" + extension.Key;
|
||||
xslArgs.AddExtensionObject(extensionNamespace, extension.Value);
|
||||
TraceInfo("umbracoXsltExtension",
|
||||
String.Format("Extension added: {0}, {1}",
|
||||
extensionNamespace, extension.Value.GetType().Name));
|
||||
TraceInfo("umbracoXsltExtension",
|
||||
String.Format("Extension added: {0}, {1}",
|
||||
extensionNamespace, extension.Value.GetType().Name));
|
||||
}
|
||||
|
||||
return xslArgs;
|
||||
@@ -1162,12 +1173,12 @@ namespace umbraco
|
||||
// if no value is passed, then use the current "pageID" as value
|
||||
var contentId = macroPropertyValue == string.Empty ? UmbracoContext.Current.PageId.ToString() : macroPropertyValue;
|
||||
|
||||
TraceInfo("umbracoMacro",
|
||||
"Xslt node adding search start (" + macroPropertyAlias + ",'" +
|
||||
macroPropertyValue + "')");
|
||||
|
||||
TraceInfo("umbracoMacro",
|
||||
"Xslt node adding search start (" + macroPropertyAlias + ",'" +
|
||||
macroPropertyValue + "')");
|
||||
|
||||
//TODO: WE need to fix this so that we give control of this stuff over to the actual parameter editors!
|
||||
|
||||
|
||||
switch (macroPropertyType)
|
||||
{
|
||||
case "contentTree":
|
||||
@@ -1197,7 +1208,7 @@ namespace umbraco
|
||||
|
||||
macroXmlNode.AppendChild(currentNode);
|
||||
|
||||
break;
|
||||
break;
|
||||
|
||||
case "contentAll":
|
||||
macroXmlNode.AppendChild(macroXml.ImportNode(umbracoXml.DocumentElement, true));
|
||||
@@ -1205,33 +1216,33 @@ namespace umbraco
|
||||
|
||||
case "contentRandom":
|
||||
XmlNode source = umbracoXml.GetElementById(contentId);
|
||||
if (source != null)
|
||||
{
|
||||
var sourceList = source.SelectNodes("node|*[@isDoc]");
|
||||
if (sourceList.Count > 0)
|
||||
{
|
||||
int rndNumber;
|
||||
var r = library.GetRandom();
|
||||
lock (r)
|
||||
{
|
||||
rndNumber = r.Next(sourceList.Count);
|
||||
}
|
||||
var node = macroXml.ImportNode(sourceList[rndNumber], true);
|
||||
// remove all sub content nodes
|
||||
foreach (XmlNode n in node.SelectNodes("node|*[@isDoc]"))
|
||||
node.RemoveChild(n);
|
||||
if (source != null)
|
||||
{
|
||||
var sourceList = source.SelectNodes("node|*[@isDoc]");
|
||||
if (sourceList.Count > 0)
|
||||
{
|
||||
int rndNumber;
|
||||
var r = library.GetRandom();
|
||||
lock (r)
|
||||
{
|
||||
rndNumber = r.Next(sourceList.Count);
|
||||
}
|
||||
var node = macroXml.ImportNode(sourceList[rndNumber], true);
|
||||
// remove all sub content nodes
|
||||
foreach (XmlNode n in node.SelectNodes("node|*[@isDoc]"))
|
||||
node.RemoveChild(n);
|
||||
|
||||
macroXmlNode.AppendChild(node);
|
||||
}
|
||||
else
|
||||
TraceWarn("umbracoMacro",
|
||||
"Error adding random node - parent (" + macroPropertyValue +
|
||||
") doesn't have children!");
|
||||
}
|
||||
else
|
||||
TraceWarn("umbracoMacro",
|
||||
"Error adding random node - parent (" + macroPropertyValue +
|
||||
") doesn't exists!");
|
||||
macroXmlNode.AppendChild(node);
|
||||
}
|
||||
else
|
||||
TraceWarn("umbracoMacro",
|
||||
"Error adding random node - parent (" + macroPropertyValue +
|
||||
") doesn't have children!");
|
||||
}
|
||||
else
|
||||
TraceWarn("umbracoMacro",
|
||||
"Error adding random node - parent (" + macroPropertyValue +
|
||||
") doesn't exists!");
|
||||
break;
|
||||
|
||||
case "mediaCurrent":
|
||||
@@ -1252,14 +1263,14 @@ namespace umbraco
|
||||
// add parameters to the macro parameters collection
|
||||
private void AddMacroParameter(ICollection<MacroNavigator.MacroParameter> parameters,
|
||||
NavigableNavigator contentNavigator, NavigableNavigator mediaNavigator,
|
||||
string macroPropertyAlias,string macroPropertyType, string macroPropertyValue)
|
||||
string macroPropertyAlias, string macroPropertyType, string macroPropertyValue)
|
||||
{
|
||||
// if no value is passed, then use the current "pageID" as value
|
||||
var contentId = macroPropertyValue == string.Empty ? UmbracoContext.Current.PageId.ToString() : macroPropertyValue;
|
||||
|
||||
TraceInfo("umbracoMacro",
|
||||
"Xslt node adding search start (" + macroPropertyAlias + ",'" +
|
||||
macroPropertyValue + "')");
|
||||
TraceInfo("umbracoMacro",
|
||||
"Xslt node adding search start (" + macroPropertyAlias + ",'" +
|
||||
macroPropertyValue + "')");
|
||||
|
||||
// beware! do not use the raw content- or media- navigators, but clones !!
|
||||
|
||||
@@ -1315,15 +1326,15 @@ namespace umbraco
|
||||
if (node != null)
|
||||
{
|
||||
nav = contentNavigator.CloneWithNewRoot(node.Id.ToString(CultureInfo.InvariantCulture));
|
||||
parameters.Add(new MacroNavigator.MacroParameter(macroPropertyAlias, nav, 0));
|
||||
parameters.Add(new MacroNavigator.MacroParameter(macroPropertyAlias, nav, 0));
|
||||
}
|
||||
else
|
||||
throw new InvalidOperationException("Iterator contains non-INavigableContent elements.");
|
||||
}
|
||||
else
|
||||
TraceWarn("umbracoMacro",
|
||||
"Error adding random node - parent (" + macroPropertyValue +
|
||||
") doesn't have children!");
|
||||
TraceWarn("umbracoMacro",
|
||||
"Error adding random node - parent (" + macroPropertyValue +
|
||||
") doesn't have children!");
|
||||
}
|
||||
else
|
||||
TraceWarn("umbracoMacro",
|
||||
@@ -1346,31 +1357,31 @@ namespace umbraco
|
||||
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// Renders a Partial View Macro
|
||||
/// </summary>
|
||||
/// <param name="macro"></param>
|
||||
/// <returns></returns>
|
||||
internal ScriptingMacroResult LoadPartialViewMacro(MacroModel macro)
|
||||
{
|
||||
var retVal = new ScriptingMacroResult();
|
||||
IMacroEngine engine = null;
|
||||
|
||||
engine = MacroEngineFactory.GetEngine(PartialViewMacroEngine.EngineName);
|
||||
var ret = engine.Execute(macro, GetCurrentNode());
|
||||
/// <summary>
|
||||
/// Renders a Partial View Macro
|
||||
/// </summary>
|
||||
/// <param name="macro"></param>
|
||||
/// <returns></returns>
|
||||
internal ScriptingMacroResult LoadPartialViewMacro(MacroModel macro)
|
||||
{
|
||||
var retVal = new ScriptingMacroResult();
|
||||
IMacroEngine engine = null;
|
||||
|
||||
// if the macro engine supports success reporting and executing failed, then return an empty control so it's not cached
|
||||
if (engine is IMacroEngineResultStatus)
|
||||
{
|
||||
var result = engine as IMacroEngineResultStatus;
|
||||
if (!result.Success)
|
||||
{
|
||||
retVal.ResultException = result.ResultException;
|
||||
}
|
||||
}
|
||||
retVal.Result = ret;
|
||||
return retVal;
|
||||
}
|
||||
engine = MacroEngineFactory.GetEngine(PartialViewMacroEngine.EngineName);
|
||||
var ret = engine.Execute(macro, GetCurrentNode());
|
||||
|
||||
// if the macro engine supports success reporting and executing failed, then return an empty control so it's not cached
|
||||
if (engine is IMacroEngineResultStatus)
|
||||
{
|
||||
var result = engine as IMacroEngineResultStatus;
|
||||
if (!result.Success)
|
||||
{
|
||||
retVal.ResultException = result.ResultException;
|
||||
}
|
||||
}
|
||||
retVal.Result = ret;
|
||||
return retVal;
|
||||
}
|
||||
|
||||
public ScriptingMacroResult loadMacroScript(MacroModel macro)
|
||||
{
|
||||
@@ -1403,7 +1414,7 @@ namespace umbraco
|
||||
retVal.Result = ret;
|
||||
return retVal;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Loads a custom or webcontrol using reflection into the macro object
|
||||
/// </summary>
|
||||
@@ -1432,8 +1443,8 @@ namespace umbraco
|
||||
if (!File.Exists(currentAss))
|
||||
return new LiteralControl("Unable to load user control because is does not exist: " + fileName);
|
||||
asm = Assembly.LoadFrom(currentAss);
|
||||
|
||||
TraceInfo("umbracoMacro", "Assembly file " + currentAss + " LOADED!!");
|
||||
|
||||
TraceInfo("umbracoMacro", "Assembly file " + currentAss + " LOADED!!");
|
||||
}
|
||||
catch
|
||||
{
|
||||
@@ -1442,7 +1453,7 @@ namespace umbraco
|
||||
".dll")));
|
||||
}
|
||||
|
||||
TraceInfo("umbracoMacro", string.Format("Assembly Loaded from ({0}.dll)", fileName));
|
||||
TraceInfo("umbracoMacro", string.Format("Assembly Loaded from ({0}.dll)", fileName));
|
||||
type = asm.GetType(controlName);
|
||||
if (type == null)
|
||||
return new LiteralControl(string.Format("Unable to get type {0} from assembly {1}",
|
||||
@@ -1470,8 +1481,8 @@ namespace umbraco
|
||||
{
|
||||
var prop = type.GetProperty(mp.Key);
|
||||
if (prop == null)
|
||||
{
|
||||
TraceWarn("macro", string.Format("control property '{0}' doesn't exist or aren't accessible (public)", mp.Key));
|
||||
{
|
||||
TraceWarn("macro", string.Format("control property '{0}' doesn't exist or aren't accessible (public)", mp.Key));
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -1507,17 +1518,17 @@ namespace umbraco
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Loads an usercontrol using reflection into the macro object
|
||||
/// </summary>
|
||||
/// <param name="fileName">Filename of the usercontrol - ie. ~wulff.ascx</param>
|
||||
/// <param name="model"> </param>
|
||||
/// <param name="pageElements">The page elements.</param>
|
||||
/// <returns></returns>
|
||||
public Control loadUserControl(string fileName, MacroModel model, Hashtable pageElements)
|
||||
/// <summary>
|
||||
/// Loads an usercontrol using reflection into the macro object
|
||||
/// </summary>
|
||||
/// <param name="fileName">Filename of the usercontrol - ie. ~wulff.ascx</param>
|
||||
/// <param name="model"> </param>
|
||||
/// <param name="pageElements">The page elements.</param>
|
||||
/// <returns></returns>
|
||||
public Control loadUserControl(string fileName, MacroModel model, Hashtable pageElements)
|
||||
{
|
||||
Mandate.ParameterNotNullOrEmpty(fileName, "fileName");
|
||||
Mandate.ParameterNotNull(model, "model");
|
||||
Mandate.ParameterNotNullOrEmpty(fileName, "fileName");
|
||||
Mandate.ParameterNotNull(model, "model");
|
||||
|
||||
try
|
||||
{
|
||||
@@ -1541,13 +1552,13 @@ namespace umbraco
|
||||
|
||||
TraceInfo(LoadUserControlKey, string.Format("Usercontrol added with id '{0}'", oControl.ID));
|
||||
|
||||
AddCurrentNodeToControl(oControl);
|
||||
AddCurrentNodeToControl(oControl);
|
||||
UpdateControlProperties(oControl, model);
|
||||
return oControl;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LogHelper.WarnWithException<macro>(string.Format("Error creating usercontrol ({0})", fileName), true, e);
|
||||
LogHelper.WarnWithException<macro>(string.Format("Error creating usercontrol ({0})", fileName), true, e);
|
||||
throw;
|
||||
}
|
||||
}
|
||||
@@ -1587,7 +1598,7 @@ namespace umbraco
|
||||
private static void TraceWarn(string category, string message, bool excludeProfiling = false)
|
||||
{
|
||||
if (HttpContext.Current != null)
|
||||
HttpContext.Current.Trace.Warn(category, message);
|
||||
HttpContext.Current.Trace.Warn(category, message);
|
||||
|
||||
//Trace out to profiling... doesn't actually profile, just for informational output.
|
||||
if (excludeProfiling == false)
|
||||
@@ -1599,9 +1610,9 @@ namespace umbraco
|
||||
}
|
||||
|
||||
private static void TraceWarn(string category, string message, Exception ex, bool excludeProfiling = false)
|
||||
{
|
||||
if (HttpContext.Current != null)
|
||||
HttpContext.Current.Trace.Warn(category, message, ex);
|
||||
{
|
||||
if (HttpContext.Current != null)
|
||||
HttpContext.Current.Trace.Warn(category, message, ex);
|
||||
|
||||
//Trace out to profiling... doesn't actually profile, just for informational output.
|
||||
if (excludeProfiling == false)
|
||||
@@ -1610,7 +1621,7 @@ namespace umbraco
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static string renderMacroStartTag(Hashtable attributes, int pageId, Guid versionId)
|
||||
{
|
||||
@@ -1678,7 +1689,7 @@ namespace umbraco
|
||||
{
|
||||
return "<span style='color: red'>Cannot render macro content in the rich text editor when the application is running in a Partial Trust environment</span>";
|
||||
}
|
||||
|
||||
|
||||
string tempAlias = (attributes["macroalias"] != null)
|
||||
? attributes["macroalias"].ToString()
|
||||
: attributes["macroAlias"].ToString();
|
||||
@@ -1868,7 +1879,7 @@ namespace umbraco
|
||||
var pageId = UmbracoContext.Current.PageId;
|
||||
content = pageId.HasValue ? UmbracoContext.Current.ContentCache.GetById(pageId.Value) : null;
|
||||
}
|
||||
|
||||
|
||||
return content == null ? null : LegacyNodeHelper.ConvertToNode(content);
|
||||
}
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,456 +0,0 @@
|
||||
using System;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.Mvc;
|
||||
using System.Web.Routing;
|
||||
using System.Web.UI.WebControls;
|
||||
using ClientDependency.Core;
|
||||
using umbraco.BasePages;
|
||||
using umbraco.BusinessLogic;
|
||||
using umbraco.cms.businesslogic;
|
||||
using umbraco.cms.businesslogic.propertytype;
|
||||
using Umbraco.Core;
|
||||
using Umbraco.Core.Configuration;
|
||||
|
||||
namespace umbraco.controls.GenericProperties
|
||||
{
|
||||
/// <summary>
|
||||
/// Summary description for GenericProperty.
|
||||
/// </summary>
|
||||
[ClientDependency(ClientDependencyType.Css, "GenericProperty/genericproperty.css", "UmbracoClient")]
|
||||
[ClientDependency(ClientDependencyType.Javascript, "GenericProperty/genericproperty.js", "UmbracoClient")]
|
||||
public partial class GenericProperty : System.Web.UI.UserControl
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Constructor
|
||||
/// </summary>
|
||||
public GenericProperty()
|
||||
{
|
||||
FullId = "";
|
||||
AllowPropertyEdit = true;
|
||||
}
|
||||
|
||||
private cms.businesslogic.datatype.DataTypeDefinition[] _dataTypeDefinitions;
|
||||
private int _tabId = 0;
|
||||
|
||||
public event EventHandler Delete;
|
||||
|
||||
/// <summary>
|
||||
/// Defines whether the property can be edited in the UI
|
||||
/// </summary>
|
||||
[Obsolete("Use the combination of AllowAliasEdit,AllowValidationEdit,AllowDelete,AllowDataTypeEdit instead")]
|
||||
public bool AllowPropertyEdit
|
||||
{
|
||||
get { return AllowAliasEdit && AllowValidationEdit && AllowDelete && AllowDataTypeEdit; }
|
||||
set { AllowAliasEdit = AllowValidationEdit = AllowDelete = AllowDataTypeEdit = true; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Defines whether the property's name can be edited in the UI
|
||||
/// </summary>
|
||||
public bool AllowNameEdit { get; set; }
|
||||
public bool AllowAliasEdit { get; set; }
|
||||
public bool AllowDataTypeEdit { get; set; }
|
||||
public bool AllowTabEdit { get; set; }
|
||||
public bool AllowValidationEdit { get; set; }
|
||||
public bool AllowDescriptionEdit { get; set; }
|
||||
public bool AllowDelete { get; set; }
|
||||
|
||||
public cms.businesslogic.datatype.DataTypeDefinition[] DataTypeDefinitions
|
||||
{
|
||||
set { _dataTypeDefinitions = value; }
|
||||
}
|
||||
|
||||
public int TabId
|
||||
{
|
||||
set { _tabId = value; }
|
||||
}
|
||||
|
||||
public PropertyType PropertyType { get; set; }
|
||||
|
||||
public ContentType.TabI[] Tabs { get; set; }
|
||||
|
||||
public string Name
|
||||
{
|
||||
get { return tbName.Text; }
|
||||
}
|
||||
|
||||
public string Alias
|
||||
{
|
||||
get { return tbAlias.Text; } // FIXME so we blindly trust the UI for safe aliases?!
|
||||
}
|
||||
|
||||
public string Description
|
||||
{
|
||||
get { return tbDescription.Text; }
|
||||
}
|
||||
public string Validation
|
||||
{
|
||||
get { return tbValidation.Text; }
|
||||
}
|
||||
public bool Mandatory
|
||||
{
|
||||
get { return checkMandatory.Checked; }
|
||||
}
|
||||
public int Tab
|
||||
{
|
||||
get { return int.Parse(ddlTab.SelectedValue); }
|
||||
}
|
||||
|
||||
public string FullId { get; set; }
|
||||
|
||||
public int Id { get; set; }
|
||||
|
||||
public int Type
|
||||
{
|
||||
get { return int.Parse(ddlTypes.SelectedValue); }
|
||||
}
|
||||
|
||||
public void Clear()
|
||||
{
|
||||
tbName.Text = "";
|
||||
tbAlias.Text = "";
|
||||
tbValidation.Text = "";
|
||||
tbDescription.Text = "";
|
||||
ddlTab.SelectedIndex = 0;
|
||||
SetDefaultDocumentTypeProperty();
|
||||
checkMandatory.Checked = false;
|
||||
}
|
||||
|
||||
protected void Page_Load(object sender, System.EventArgs e)
|
||||
{
|
||||
if (!IsPostBack)
|
||||
{
|
||||
UpdateInterface();
|
||||
}
|
||||
}
|
||||
|
||||
//SD: this is temporary in v4, in v6 we have a proper user control hierarchy
|
||||
//containing this property.
|
||||
//this is required due to this issue: http://issues.umbraco.org/issue/u4-493
|
||||
//because we need to execute some code in async but due to the localization
|
||||
//framework requiring an httpcontext.current, it will not work.
|
||||
//http://issues.umbraco.org/issue/u4-2143
|
||||
//so, we are going to make a property here and ensure that the basepage has
|
||||
//resolved the user before we execute the async task so that in this method
|
||||
//our calls to ui.text will include the current user and not rely on the
|
||||
//httpcontext.current. This also makes it perform better:
|
||||
// http://issues.umbraco.org/issue/U4-2142
|
||||
private User CurrentUser
|
||||
{
|
||||
get { return ((BasePage)Page).getUser(); }
|
||||
}
|
||||
|
||||
public void UpdateInterface()
|
||||
{
|
||||
// Name and alias
|
||||
if (PropertyType != null)
|
||||
{
|
||||
Id = PropertyType.Id;
|
||||
//form.Attributes.Add("style", "display: none;");
|
||||
tbName.Text = PropertyType.GetRawName();
|
||||
tbAlias.Text = PropertyType.Alias;
|
||||
FullHeader.Text = PropertyType.GetRawName() + " (" + PropertyType.Alias + "), Type: " + PropertyType.DataTypeDefinition.Text; ;
|
||||
Header.Text = PropertyType.GetRawName();
|
||||
|
||||
DeleteButton.CssClass = "delete-button";
|
||||
DeleteButton.Attributes.Add("onclick", "return confirm('" + ui.Text("areyousure", CurrentUser) + "');");
|
||||
|
||||
DeleteButton2.CssClass = "delete-button";
|
||||
DeleteButton2.Attributes.Add("onclick", "return confirm('" + ui.Text("areyousure", CurrentUser) + "');");
|
||||
|
||||
DeleteButton.Visible = AllowDelete;
|
||||
DeleteButton2.Visible = AllowDelete;
|
||||
|
||||
//alias visibility
|
||||
PropertyPanel2.Visible = AllowAliasEdit;
|
||||
//chk mandatory visibility
|
||||
PropertyPanel5.Visible = AllowValidationEdit;
|
||||
// validation visibility
|
||||
PropertyPanel6.Visible = AllowValidationEdit;
|
||||
// drop down data types visibility
|
||||
PropertyPanel3.Visible = AllowDataTypeEdit;
|
||||
// name visibility
|
||||
PropertyPanel1.Visible = AllowNameEdit;
|
||||
// desc visibility
|
||||
PropertyPanel7.Visible = AllowDescriptionEdit;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Add new header
|
||||
FullHeader.Text = "Click here to add a new property";
|
||||
Header.Text = "Create new property";
|
||||
|
||||
// Hide image button
|
||||
DeleteButton.Visible = false;
|
||||
DeleteButton2.Visible = false;
|
||||
}
|
||||
validationLink.NavigateUrl = "#";
|
||||
validationLink.Attributes["onclick"] = ClientTools.Scripts.OpenModalWindow("dialogs/regexWs.aspx?target=" + tbValidation.ClientID, "Search for regular expression", 600, 500) + ";return false;";
|
||||
|
||||
// Data type definitions
|
||||
if (_dataTypeDefinitions != null)
|
||||
{
|
||||
ddlTypes.Items.Clear();
|
||||
var itemSelected = false;
|
||||
foreach (cms.businesslogic.datatype.DataTypeDefinition dt in _dataTypeDefinitions)
|
||||
{
|
||||
var li = new ListItem(dt.Text, dt.Id.ToString(CultureInfo.InvariantCulture));
|
||||
if ((PropertyType != null && PropertyType.DataTypeDefinition.Id == dt.Id))
|
||||
{
|
||||
li.Selected = true;
|
||||
itemSelected = true;
|
||||
}
|
||||
|
||||
ddlTypes.Items.Add(li);
|
||||
}
|
||||
|
||||
// If item not selected from previous edit or load, set to default according to settings
|
||||
if (!itemSelected)
|
||||
{
|
||||
SetDefaultDocumentTypeProperty();
|
||||
}
|
||||
}
|
||||
|
||||
// tabs
|
||||
if (Tabs != null)
|
||||
{
|
||||
ddlTab.Items.Clear();
|
||||
for (int i = 0; i < Tabs.Length; i++)
|
||||
{
|
||||
ListItem li = new ListItem(Tabs[i].Caption, Tabs[i].Id.ToString());
|
||||
if (Tabs[i].Id == _tabId)
|
||||
li.Selected = true;
|
||||
ddlTab.Items.Add(li);
|
||||
}
|
||||
}
|
||||
ListItem liGeneral = new ListItem("Generic Properties", "0");
|
||||
if (_tabId == 0)
|
||||
liGeneral.Selected = true;
|
||||
ddlTab.Items.Add(liGeneral);
|
||||
|
||||
// mandatory
|
||||
if (PropertyType != null && PropertyType.Mandatory)
|
||||
checkMandatory.Checked = true;
|
||||
|
||||
// validation
|
||||
if (PropertyType != null && string.IsNullOrEmpty(PropertyType.ValidationRegExp) == false)
|
||||
tbValidation.Text = PropertyType.ValidationRegExp;
|
||||
|
||||
// description
|
||||
if (PropertyType != null && PropertyType.Description != "")
|
||||
tbDescription.Text = PropertyType.GetRawDescription();
|
||||
}
|
||||
|
||||
private void SetDefaultDocumentTypeProperty()
|
||||
{
|
||||
var itemToSelect = ddlTypes.Items.Cast<ListItem>()
|
||||
.FirstOrDefault(item => item.Text.ToLowerInvariant() == UmbracoConfig.For.UmbracoSettings().Content.DefaultDocumentTypeProperty.ToLowerInvariant());
|
||||
|
||||
if (itemToSelect != null)
|
||||
{
|
||||
itemToSelect.Selected = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
ddlTypes.SelectedIndex = -1;
|
||||
}
|
||||
}
|
||||
|
||||
protected void defaultDeleteHandler(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
override protected void OnInit(EventArgs e)
|
||||
{
|
||||
base.OnInit(e);
|
||||
|
||||
DeleteButton.Click += DeleteButton_Click;
|
||||
DeleteButton2.Click += DeleteButton2_Click;
|
||||
Delete += defaultDeleteHandler;
|
||||
|
||||
// [ClientDependency(ClientDependencyType.Javascript, "js/UmbracoCasingRules.aspx", "UmbracoRoot")]
|
||||
var loader = ClientDependency.Core.Controls.ClientDependencyLoader.GetInstance(new HttpContextWrapper(Context));
|
||||
var helper = new UrlHelper(new RequestContext(new HttpContextWrapper(Context), new RouteData()));
|
||||
loader.RegisterDependency(helper.GetCoreStringsControllerPath() + "ServicesJavaScript", ClientDependencyType.Javascript);
|
||||
}
|
||||
|
||||
void DeleteButton2_Click(object sender, EventArgs e)
|
||||
{
|
||||
Delete(this, new EventArgs());
|
||||
}
|
||||
|
||||
void DeleteButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
Delete(this, new EventArgs());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// DeleteButton2 control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.LinkButton DeleteButton2;
|
||||
|
||||
/// <summary>
|
||||
/// FullHeader control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Literal FullHeader;
|
||||
|
||||
/// <summary>
|
||||
/// DeleteButton control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.LinkButton DeleteButton;
|
||||
|
||||
/// <summary>
|
||||
/// Header control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Literal Header;
|
||||
|
||||
/// <summary>
|
||||
/// tbName control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox tbName;
|
||||
|
||||
/// <summary>
|
||||
/// PropertyPanel1 control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::umbraco.uicontrols.PropertyPanel PropertyPanel1;
|
||||
|
||||
/// <summary>
|
||||
/// tbAlias control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox tbAlias;
|
||||
|
||||
/// <summary>
|
||||
/// PropertyPanel2 control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::umbraco.uicontrols.PropertyPanel PropertyPanel2;
|
||||
|
||||
/// <summary>
|
||||
/// ddlTypes control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.DropDownList ddlTypes;
|
||||
|
||||
/// <summary>
|
||||
/// PropertyPanel3 control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::umbraco.uicontrols.PropertyPanel PropertyPanel3;
|
||||
|
||||
/// <summary>
|
||||
/// ddlTab control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.DropDownList ddlTab;
|
||||
|
||||
/// <summary>
|
||||
/// PropertyPanel4 control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::umbraco.uicontrols.PropertyPanel PropertyPanel4;
|
||||
|
||||
/// <summary>
|
||||
/// checkMandatory control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox checkMandatory;
|
||||
|
||||
/// <summary>
|
||||
/// PropertyPanel5 control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::umbraco.uicontrols.PropertyPanel PropertyPanel5;
|
||||
|
||||
/// <summary>
|
||||
/// tbValidation control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox tbValidation;
|
||||
|
||||
/// <summary>
|
||||
/// validationLink control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.HyperLink validationLink;
|
||||
|
||||
/// <summary>
|
||||
/// PropertyPanel6 control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::umbraco.uicontrols.PropertyPanel PropertyPanel6;
|
||||
|
||||
/// <summary>
|
||||
/// tbDescription control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox tbDescription;
|
||||
|
||||
protected global::umbraco.uicontrols.PropertyPanel PropertyPanel7;
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,131 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Umbraco.Core.IO;
|
||||
using umbraco.cms.businesslogic.propertytype;
|
||||
|
||||
namespace umbraco.controls.GenericProperties
|
||||
{
|
||||
/// <summary>
|
||||
/// Summary description for GenericPropertyWrapper.
|
||||
/// </summary>
|
||||
public class GenericPropertyWrapper : System.Web.UI.WebControls.PlaceHolder
|
||||
{
|
||||
private readonly bool _allowNameEdit = true;
|
||||
private readonly bool _allowDataTypeEdit = true;
|
||||
private readonly bool _allowAliasEdit = true;
|
||||
private readonly bool _allowTabEdit = true;
|
||||
private readonly bool _allowValidationEdit = true;
|
||||
private readonly bool _allowDescEdit = true;
|
||||
private readonly bool _allowDelete = true;
|
||||
|
||||
private GenericProperty _gp;
|
||||
private cms.businesslogic.ContentType.TabI[] _tabs;
|
||||
private cms.businesslogic.datatype.DataTypeDefinition[] _dtds;
|
||||
private int _tabId;
|
||||
private string _fullId = "";
|
||||
|
||||
public event EventHandler Delete;
|
||||
|
||||
public PropertyType PropertyType { get; set; }
|
||||
|
||||
public int TabId
|
||||
{
|
||||
set { _tabId = value; }
|
||||
}
|
||||
|
||||
public cms.businesslogic.datatype.DataTypeDefinition[] DataTypeDefinitions
|
||||
{
|
||||
set { _dtds = value; }
|
||||
}
|
||||
|
||||
public cms.businesslogic.web.DocumentType.TabI[] Tabs
|
||||
{
|
||||
set { _tabs = value; }
|
||||
}
|
||||
|
||||
public string FullId
|
||||
{
|
||||
set { _fullId = value; }
|
||||
}
|
||||
|
||||
public GenericProperty GenricPropertyControl
|
||||
{
|
||||
get { return _gp; }
|
||||
}
|
||||
|
||||
public GenericPropertyWrapper()
|
||||
: this(true)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public GenericPropertyWrapper(bool allowModification)
|
||||
{
|
||||
if (allowModification == false)
|
||||
{
|
||||
_allowAliasEdit = false;
|
||||
_allowValidationEdit = false;
|
||||
_allowDelete = false;
|
||||
_allowDataTypeEdit = false;
|
||||
}
|
||||
}
|
||||
|
||||
public GenericPropertyWrapper(bool allowNameEdit, bool allowDataTypeEdit, bool allowAliasEdit, bool allowTabEdit, bool allowValidationEdit, bool allowDescEdit, bool allowDelete)
|
||||
{
|
||||
_allowNameEdit = allowNameEdit;
|
||||
_allowDataTypeEdit = allowDataTypeEdit;
|
||||
_allowAliasEdit = allowAliasEdit;
|
||||
_allowTabEdit = allowTabEdit;
|
||||
_allowValidationEdit = allowValidationEdit;
|
||||
_allowDescEdit = allowDescEdit;
|
||||
_allowDelete = allowDelete;
|
||||
}
|
||||
|
||||
public void UpdateEditControl()
|
||||
{
|
||||
if (Controls.Count == 1)
|
||||
{
|
||||
var u = Controls[0];
|
||||
u.ID = ID + "_control";
|
||||
_gp = (GenericProperty)u;
|
||||
_gp.PropertyType = PropertyType;
|
||||
_gp.DataTypeDefinitions = _dtds;
|
||||
_gp.Tabs = _tabs;
|
||||
_gp.TabId = _tabId;
|
||||
_gp.FullId = _fullId;
|
||||
}
|
||||
}
|
||||
|
||||
protected void GenericPropertyWrapper_Delete(object sender, EventArgs e)
|
||||
{
|
||||
Delete(this, new EventArgs());
|
||||
}
|
||||
|
||||
protected override void OnInit(EventArgs e)
|
||||
{
|
||||
base.OnInit(e);
|
||||
var u = (GenericProperty)Page.LoadControl(SystemDirectories.Umbraco + "/controls/genericProperties/GenericProperty.ascx");
|
||||
|
||||
u.AllowAliasEdit = _allowAliasEdit;
|
||||
u.AllowDataTypeEdit = _allowDataTypeEdit;
|
||||
u.AllowDelete = _allowDelete;
|
||||
u.AllowDescriptionEdit = _allowDescEdit;
|
||||
u.AllowNameEdit = _allowNameEdit;
|
||||
u.AllowTabEdit = _allowTabEdit;
|
||||
u.AllowValidationEdit = _allowValidationEdit;
|
||||
|
||||
u.ID = ID + "_control";
|
||||
|
||||
if (_allowDelete)
|
||||
{
|
||||
u.Delete += GenericPropertyWrapper_Delete;
|
||||
}
|
||||
|
||||
u.FullId = _fullId;
|
||||
Controls.Add(u);
|
||||
UpdateEditControl();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -110,7 +110,7 @@ namespace umbraco.controls.Images
|
||||
}
|
||||
|
||||
string ext = MediaItemPath.Substring(MediaItemPath.LastIndexOf(".") + 1, MediaItemPath.Length - MediaItemPath.LastIndexOf(".") - 1);
|
||||
MediaItemThumbnailPath = MediaItemPath.Replace("." + ext, "_thumb.jpg");
|
||||
MediaItemThumbnailPath = MediaItemPath.Replace("." + ext, "_thumb." + ext);
|
||||
|
||||
ImageFound = true;
|
||||
}
|
||||
|
||||
@@ -81,7 +81,7 @@ namespace umbraco.controls.Images
|
||||
//this seems real ugly since we apparently already have the properties above (props)... but this data layer is insane and undecipherable:)
|
||||
string mainImage = media.getProperty(Constants.Conventions.Media.File).Value.ToString();
|
||||
string extension = mainImage.Substring(mainImage.LastIndexOf(".") + 1, mainImage.Length - mainImage.LastIndexOf(".") - 1);
|
||||
var thumbnail = mainImage.Remove(mainImage.Length - extension.Length - 1, extension.Length + 1) + "_thumb.jpg";
|
||||
var thumbnail = mainImage.Remove(mainImage.Length - extension.Length - 1, extension.Length + 1) + "_thumb." + extension;
|
||||
string width = media.getProperty(Constants.Conventions.Media.Width).Value.ToString();
|
||||
string height = media.getProperty(Constants.Conventions.Media.Height).Value.ToString();
|
||||
int id = media.Id;
|
||||
|
||||
@@ -76,7 +76,7 @@ namespace umbraco.dialogs
|
||||
}
|
||||
var fileNameOrg = fileName;
|
||||
var ext = fileNameOrg.Substring(fileNameOrg.LastIndexOf(".") + 1, fileNameOrg.Length - fileNameOrg.LastIndexOf(".") - 1);
|
||||
var fileNameThumb = SystemDirectories.Root + fileNameOrg.Replace("." + ext, "_thumb.jpg");
|
||||
var fileNameThumb = SystemDirectories.Root + fileNameOrg.Replace("." + ext, "_thumb." + ext);
|
||||
image.Controls.Add(new LiteralControl("<a href=\"" + SystemDirectories.Root + fileNameOrg + "\" title=\"Zoom\"><img src=\"" + fileNameThumb + "\" border=\"0\"/></a>"));
|
||||
}
|
||||
catch
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
|
||||
<%@ Page language="c#" MasterPageFile="../masterpages/umbracoPage.Master" Codebehind="EditMemberType.aspx.cs" AutoEventWireup="True" Inherits="umbraco.cms.presentation.members.EditMemberType" %>
|
||||
<%@ Register TagPrefix="cc1" Namespace="umbraco.uicontrols" Assembly="controls" %>
|
||||
<%@ Register TagPrefix="uc1" TagName="ContentTypeControlNew" Src="../controls/ContentTypeControlNew.ascx" %>
|
||||
<%@ Register Namespace="umbraco" TagPrefix="umb" Assembly="umbraco" %>
|
||||
|
||||
<asp:Content ContentPlaceHolderID="head" runat="server">
|
||||
<style type="text/css">
|
||||
.gridHeader{border-bottom:2px solid #D9D7D7;}
|
||||
.gridItem{border-color: #D9D7D7;}
|
||||
</style>
|
||||
</asp:Content>
|
||||
<asp:Content ContentPlaceHolderID="body" runat="server">
|
||||
<uc1:ContentTypeControlNew id="ContentTypeControlNew1" HideStructure="true" runat="server"></uc1:ContentTypeControlNew>
|
||||
<cc1:Pane id="Pane1andmore" runat="server">
|
||||
|
||||
<asp:DataGrid id="dgEditExtras" runat="server" AutoGenerateColumns="False" Width="100%" BorderStyle="None" HeaderStyle-CssClass="gridHeader" ItemStyle-CssClass="gridItem" GridLines="Horizontal" HeaderStyle-Font-Bold=True OnItemDataBound="dgEditExtras_itemdatabound">
|
||||
<Columns>
|
||||
<asp:BoundColumn DataField="id" HeaderText="" Visible="False"></asp:BoundColumn>
|
||||
<asp:BoundColumn DataField="name" HeaderText="Property name"></asp:BoundColumn>
|
||||
<asp:TemplateColumn HeaderText="Member can edit">
|
||||
<ItemTemplate>
|
||||
<asp:CheckBox ID="ckbMemberCanEdit" Runat="server"></asp:CheckBox>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateColumn>
|
||||
<asp:TemplateColumn HeaderText="Show on profile">
|
||||
<ItemTemplate>
|
||||
<asp:CheckBox ID="ckbMemberCanView" Runat="server"></asp:CheckBox>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateColumn>
|
||||
</Columns>
|
||||
</asp:DataGrid>
|
||||
|
||||
</cc1:Pane>
|
||||
</asp:Content>
|
||||
@@ -1,142 +0,0 @@
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.SessionState;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
using System.Web.UI.HtmlControls;
|
||||
using ClientDependency.Core;
|
||||
using umbraco.cms.businesslogic.member;
|
||||
using umbraco.cms.presentation.Trees;
|
||||
using umbraco.controls;
|
||||
|
||||
namespace umbraco.cms.presentation.members
|
||||
{
|
||||
public partial class EditMemberType : BasePages.UmbracoEnsuredPage
|
||||
{
|
||||
|
||||
public EditMemberType()
|
||||
{
|
||||
CurrentApp = BusinessLogic.DefaultApps.member.ToString();
|
||||
|
||||
}
|
||||
protected PlaceHolder plc;
|
||||
private businesslogic.member.MemberType _memberType;
|
||||
|
||||
protected ContentTypeControlNew ContentTypeControlNew1;
|
||||
|
||||
protected override void OnInit(EventArgs e)
|
||||
{
|
||||
base.OnInit(e);
|
||||
|
||||
ContentTypeControlNew1.SavingContentType += ContentTypeControlNew1_SavingContentType;
|
||||
}
|
||||
|
||||
protected override void OnLoad(EventArgs e)
|
||||
{
|
||||
base.OnLoad(e);
|
||||
|
||||
_memberType = new businesslogic.member.MemberType(int.Parse(Request.QueryString["id"]));
|
||||
|
||||
ContentTypeControlNew1.InfoTabPage.Controls.Add(Pane1andmore);
|
||||
|
||||
if (!IsPostBack)
|
||||
{
|
||||
SetupExtraEditorControls();
|
||||
|
||||
ClientTools
|
||||
.SetActiveTreeType(TreeDefinitionCollection.Instance.FindTree<loadMemberTypes>().Tree.Alias)
|
||||
.SyncTree(_memberType.Id.ToString(CultureInfo.InvariantCulture), false);
|
||||
}
|
||||
}
|
||||
|
||||
protected override bool OnBubbleEvent(object source, EventArgs args)
|
||||
{
|
||||
var handled = false;
|
||||
var eventArgs = args as SaveClickEventArgs;
|
||||
if (eventArgs != null)
|
||||
{
|
||||
var e = eventArgs;
|
||||
if (e.Message == "Saved")
|
||||
{
|
||||
SetupExtraEditorControls();
|
||||
|
||||
ClientTools
|
||||
.ShowSpeechBubble(speechBubbleIcon.save, "Membertype saved", "")
|
||||
.SyncTree(_memberType.Id.ToString(CultureInfo.InvariantCulture), true);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
ClientTools
|
||||
.ShowSpeechBubble(e.IconType, e.Message, "")
|
||||
.SyncTree(_memberType.Id.ToString(CultureInfo.InvariantCulture), true);
|
||||
|
||||
}
|
||||
handled = true;
|
||||
}
|
||||
|
||||
return handled;
|
||||
}
|
||||
|
||||
private void SetupExtraEditorControls()
|
||||
{
|
||||
var dt1 = new DataTable();
|
||||
dt1.Columns.Add("id");
|
||||
dt1.Columns.Add("name");
|
||||
dt1.Columns.Add("canedit");
|
||||
dt1.Columns.Add("canview");
|
||||
|
||||
//filter out the 'built-in' property types as we don't want to display these options for them
|
||||
var builtIns = Umbraco.Core.Constants.Conventions.Member.GetStandardPropertyTypeStubs().Select(x => x.Key).ToArray();
|
||||
var propTypes = _memberType.PropertyTypes.Where(x => builtIns.Contains(x.Alias) == false);
|
||||
|
||||
foreach (var pt in propTypes)
|
||||
{
|
||||
var dr = dt1.NewRow();
|
||||
dr["name"] = pt.Name;
|
||||
dr["id"] = pt.Id;
|
||||
dt1.Rows.Add(dr);
|
||||
}
|
||||
dgEditExtras.DataSource = dt1;
|
||||
dgEditExtras.DataBind();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Executes some code before the member type is saved, this allows us to save the member can edit/member can view information
|
||||
/// before the Save() command is executed.
|
||||
/// </summary>
|
||||
/// <param name="e"></param>
|
||||
void ContentTypeControlNew1_SavingContentType(businesslogic.ContentType e)
|
||||
{
|
||||
var mt = e as MemberType;
|
||||
if (mt == null) return; //This should not happen!
|
||||
foreach (DataGridItem dgi in dgEditExtras.Items)
|
||||
{
|
||||
if (dgi.ItemType == ListItemType.Item || dgi.ItemType == ListItemType.AlternatingItem)
|
||||
{
|
||||
var pt = cms.businesslogic.propertytype.PropertyType.GetPropertyType(int.Parse(dgi.Cells[0].Text));
|
||||
mt.setMemberCanEdit(pt, ((CheckBox)dgi.FindControl("ckbMemberCanEdit")).Checked);
|
||||
mt.setMemberViewOnProfile(pt, ((CheckBox)dgi.FindControl("ckbMemberCanView")).Checked);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected void dgEditExtras_itemdatabound(object sender,DataGridItemEventArgs e)
|
||||
{
|
||||
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
|
||||
{
|
||||
var pt = cms.businesslogic.propertytype.PropertyType.GetPropertyType(int.Parse(((DataRowView)e.Item.DataItem).Row["id"].ToString()));
|
||||
((CheckBox)e.Item.FindControl("ckbMemberCanEdit")).Checked = _memberType.MemberCanEdit(pt);
|
||||
((CheckBox)e.Item.FindControl("ckbMemberCanView")).Checked = _memberType.ViewOnProfile(pt);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:2.0.50727.3074
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace umbraco.cms.presentation.members {
|
||||
|
||||
|
||||
public partial class EditMemberType {
|
||||
|
||||
/// <summary>
|
||||
/// Pane1andmore control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::umbraco.uicontrols.Pane Pane1andmore;
|
||||
|
||||
/// <summary>
|
||||
/// dgEditExtras control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.DataGrid dgEditExtras;
|
||||
}
|
||||
}
|
||||
@@ -133,7 +133,7 @@
|
||||
//get the thumb of the image
|
||||
var src = document.forms[0].src.value;
|
||||
var ext = src.split('.').pop();
|
||||
var thumb = src.replace("." + ext, "_thumb.jpg");
|
||||
var thumb = src.replace("." + ext, "_thumb." + ext);
|
||||
if (src != "") jQuery("#<%=ImageViewer.ClientID%>").UmbracoImageViewerAPI().showImage(thumb);
|
||||
}
|
||||
}, 500);
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
<%@ Register TagPrefix="cc2" Namespace="umbraco.uicontrols" Assembly="controls" %>
|
||||
|
||||
<%@ Page Language="c#" CodeBehind="EditMediaType.aspx.cs" MasterPageFile="../masterpages/umbracoPage.Master"
|
||||
Async="true" AsyncTimeOut="300"
|
||||
AutoEventWireup="True" Inherits="umbraco.cms.presentation.settings.EditMediaType" %>
|
||||
|
||||
<%@ Register TagPrefix="uc1" TagName="ContentTypeControlNew" Src="../controls/ContentTypeControlNew.ascx" %>
|
||||
<asp:Content ContentPlaceHolderID="body" runat="server">
|
||||
<uc1:ContentTypeControlNew ID="ContentTypeControlNew1" runat="server"></uc1:ContentTypeControlNew>
|
||||
<script type="text/javascript">
|
||||
jQuery(document).ready(function () {
|
||||
UmbClientMgr.appActions().bindSaveShortCut();
|
||||
});
|
||||
</script>
|
||||
</asp:Content>
|
||||
@@ -1,52 +0,0 @@
|
||||
using System;
|
||||
using umbraco.cms.presentation.Trees;
|
||||
|
||||
namespace umbraco.cms.presentation.settings
|
||||
{
|
||||
/// <summary>
|
||||
/// Summary description for EditMediaType.
|
||||
/// </summary>
|
||||
public partial class EditMediaType : BasePages.UmbracoEnsuredPage
|
||||
{
|
||||
public EditMediaType()
|
||||
{
|
||||
CurrentApp = BusinessLogic.DefaultApps.settings.ToString();
|
||||
}
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
if (!IsPostBack)
|
||||
{
|
||||
ClientTools
|
||||
.SetActiveTreeType(TreeDefinitionCollection.Instance.FindTree<loadMediaTypes>().Tree.Alias)
|
||||
.SyncTree("-1,init," + helper.Request("id"), false);
|
||||
}
|
||||
}
|
||||
|
||||
protected override bool OnBubbleEvent(object source, EventArgs e)
|
||||
{
|
||||
if (e is controls.SaveClickEventArgs)
|
||||
{
|
||||
var sce = (controls.SaveClickEventArgs)e;
|
||||
|
||||
if (sce.Message == "Saved")
|
||||
{
|
||||
ClientTools.ShowSpeechBubble(speechBubbleIcon.save, "Mediatype saved", "Mediatype was successfully saved");
|
||||
}
|
||||
else if (sce.Message.Contains("Tab"))
|
||||
{
|
||||
ClientTools.ShowSpeechBubble(sce.IconType, sce.Message, "");
|
||||
}
|
||||
else
|
||||
{
|
||||
ClientTools.ShowSpeechBubble(sce.IconType, sce.Message, "");
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace umbraco.cms.presentation.settings {
|
||||
|
||||
|
||||
public partial class EditMediaType {
|
||||
|
||||
/// <summary>
|
||||
/// ContentTypeControlNew1 control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.UserControl ContentTypeControlNew1;
|
||||
}
|
||||
}
|
||||
@@ -1,167 +0,0 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Web.UI.WebControls;
|
||||
using umbraco.cms.presentation.Trees;
|
||||
using umbraco.cms.businesslogic.web;
|
||||
using System.Linq;
|
||||
using umbraco.controls;
|
||||
using Umbraco.Core;
|
||||
|
||||
namespace umbraco.settings
|
||||
{
|
||||
public partial class EditContentTypeNew : BasePages.UmbracoEnsuredPage
|
||||
{
|
||||
public EditContentTypeNew()
|
||||
{
|
||||
CurrentApp = BusinessLogic.DefaultApps.settings.ToString();
|
||||
}
|
||||
|
||||
protected controls.ContentTypeControlNew ContentTypeControlNew1;
|
||||
private DocumentType _dt;
|
||||
|
||||
override protected void OnInit(EventArgs e)
|
||||
{
|
||||
ContentTypeControlNew1.DocumentTypeCallback = new Func<DocumentType, DocumentType>(UpdateAllowedTemplates);
|
||||
ContentTypeControlNew1.InfoTabPage.Controls.Add(tmpPane);
|
||||
base.OnInit(e);
|
||||
}
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
_dt = new DocumentType(int.Parse(Request.QueryString["id"]));
|
||||
if (!Page.IsPostBack)
|
||||
{
|
||||
BindTemplates();
|
||||
|
||||
ClientTools
|
||||
.SetActiveTreeType(TreeDefinitionCollection.Instance.FindTree<loadNodeTypes>().Tree.Alias)
|
||||
.SyncTree("-1,init," + _dt.Path.Replace("-1,", ""), false);
|
||||
}
|
||||
}
|
||||
|
||||
protected override bool OnBubbleEvent(object source, EventArgs args)
|
||||
{
|
||||
bool handled = false;
|
||||
var eventArgs = args as SaveClickEventArgs;
|
||||
if (eventArgs != null)
|
||||
{
|
||||
var e = eventArgs;
|
||||
if (e.Message == "Saved")
|
||||
{
|
||||
ClientTools.ShowSpeechBubble(e.IconType, ui.Text("contentTypeSavedHeader"), "");
|
||||
|
||||
BindTemplates();
|
||||
}
|
||||
else
|
||||
{
|
||||
ClientTools.ShowSpeechBubble(e.IconType, e.Message, "");
|
||||
}
|
||||
handled = true;
|
||||
}
|
||||
return handled;
|
||||
}
|
||||
|
||||
protected void dgTemplate_itemdatabound(object sender, DataGridItemEventArgs e)
|
||||
{
|
||||
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
|
||||
{
|
||||
((CheckBox)e.Item.FindControl("ckbAllowTemplate")).Checked = true;
|
||||
}
|
||||
}
|
||||
|
||||
private DocumentType UpdateAllowedTemplates(DocumentType documentType)
|
||||
{
|
||||
var tmp = new ArrayList();
|
||||
|
||||
foreach (ListItem li in templateList.Items)
|
||||
{
|
||||
if (li.Selected)
|
||||
tmp.Add(new cms.businesslogic.template.Template(int.Parse(li.Value)));
|
||||
}
|
||||
|
||||
var tt = new cms.businesslogic.template.Template[tmp.Count];
|
||||
for (int i = 0; i < tt.Length; i++)
|
||||
{
|
||||
tt[i] = (cms.businesslogic.template.Template)tmp[i];
|
||||
}
|
||||
|
||||
documentType.allowedTemplates = tt;
|
||||
|
||||
if (documentType.allowedTemplates.Length > 0 && ddlTemplates.SelectedIndex >= 0)
|
||||
{
|
||||
documentType.DefaultTemplate = int.Parse(ddlTemplates.SelectedValue);
|
||||
}
|
||||
else
|
||||
{
|
||||
documentType.RemoveDefaultTemplate();
|
||||
}
|
||||
|
||||
_dt = documentType;
|
||||
|
||||
return documentType;
|
||||
}
|
||||
|
||||
private void BindTemplates()
|
||||
{
|
||||
var templates = (from t in cms.businesslogic.template.Template.GetAllAsList()
|
||||
join at in _dt.allowedTemplates on t.Id equals at.Id into at_l
|
||||
from at in at_l.DefaultIfEmpty()
|
||||
select new
|
||||
{
|
||||
Id = t.Id,
|
||||
Name = t.Text,
|
||||
Selected = at != null
|
||||
}).ToList();
|
||||
|
||||
templateList.Items.Clear();
|
||||
templateList.Items.AddRange(templates.ConvertAll(item =>
|
||||
{
|
||||
var li = new ListItem { Text = Server.HtmlEncode(item.Name), Value = item.Id.ToString(CultureInfo.InvariantCulture), Selected = item.Selected };
|
||||
return li;
|
||||
}).ToArray());
|
||||
|
||||
|
||||
ddlTemplates.Enabled = templates.Any();
|
||||
ddlTemplates.Items.Clear();
|
||||
ddlTemplates.Items.Insert(0, new ListItem(ui.Text("choose") + "...", "0"));
|
||||
ddlTemplates.Items.AddRange(templates.ConvertAll(item =>
|
||||
{
|
||||
var li = new ListItem { Text = Server.HtmlEncode(item.Name), Value = item.Id.ToString(CultureInfo.InvariantCulture) };
|
||||
return li;
|
||||
}).ToArray());
|
||||
|
||||
var ddlTemplatesSelect = ddlTemplates.Items.FindByValue(_dt.DefaultTemplate.ToString(CultureInfo.InvariantCulture));
|
||||
if (ddlTemplatesSelect != null)
|
||||
ddlTemplatesSelect.Selected = true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// tmpPane control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::umbraco.uicontrols.Pane tmpPane;
|
||||
|
||||
/// <summary>
|
||||
/// templateList control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBoxList templateList;
|
||||
|
||||
/// <summary>
|
||||
/// ddlTemplates control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.DropDownList ddlTemplates;
|
||||
}
|
||||
}
|
||||
@@ -216,7 +216,7 @@ namespace umbraco
|
||||
if (!string.IsNullOrEmpty(url))
|
||||
{
|
||||
var extension = media.GetProperty<string>(Constants.Conventions.Media.Extension);
|
||||
return url.Replace(string.Concat(".", extension), "_thumb.jpg", StringComparison.InvariantCultureIgnoreCase);
|
||||
return url.Replace(string.Concat(".", extension), "_thumb." + extension, StringComparison.InvariantCultureIgnoreCase);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -20,16 +20,16 @@ namespace umbraco.editorControls
|
||||
public class uploadField : HtmlInputFile, IDataEditor
|
||||
{
|
||||
private const string Thumbnailext = ".jpg";
|
||||
private readonly cms.businesslogic.datatype.FileHandlerData _data;
|
||||
private readonly cms.businesslogic.datatype.FileHandlerData _data;
|
||||
private readonly string _thumbnails;
|
||||
private string _text;
|
||||
private readonly MediaFileSystem _fs;
|
||||
private readonly MediaFileSystem _fs;
|
||||
private CustomValidator _customValidator;
|
||||
|
||||
public uploadField(IData Data, string ThumbnailSizes)
|
||||
{
|
||||
_fs = FileSystemProviderManager.Current.GetFileSystemProvider<MediaFileSystem>();
|
||||
_data = (cms.businesslogic.datatype.FileHandlerData) Data; //this is always FileHandlerData
|
||||
_data = (cms.businesslogic.datatype.FileHandlerData)Data; //this is always FileHandlerData
|
||||
_thumbnails = ThumbnailSizes;
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ namespace umbraco.editorControls
|
||||
|
||||
_customValidator = new CustomValidator
|
||||
{
|
||||
EnableClientScript = false,
|
||||
EnableClientScript = false,
|
||||
Display = ValidatorDisplay.Dynamic,
|
||||
ErrorMessage = ui.Text("errors", "dissallowedMediaType")
|
||||
};
|
||||
@@ -71,8 +71,8 @@ namespace umbraco.editorControls
|
||||
return "";
|
||||
if (isEmpty == false)
|
||||
return PostedFile.FileName;
|
||||
return string.IsNullOrEmpty(tempText) == false
|
||||
? tempText
|
||||
return string.IsNullOrEmpty(tempText) == false
|
||||
? tempText
|
||||
: "";
|
||||
}
|
||||
}
|
||||
@@ -87,7 +87,7 @@ namespace umbraco.editorControls
|
||||
//return true if there is no file
|
||||
if (postedFile == null) return true;
|
||||
if (postedFile.FileName.IsNullOrWhiteSpace()) return true;
|
||||
|
||||
|
||||
//now check the file type
|
||||
var extension = Path.GetExtension(postedFile.FileName).TrimStart(".");
|
||||
|
||||
@@ -169,12 +169,12 @@ namespace umbraco.editorControls
|
||||
{
|
||||
var content = _data.LoadedContentItem;
|
||||
|
||||
// update extension in UI
|
||||
UpdateLabelValue(Constants.Conventions.Media.Extension, "prop_umbracoExtension", Page, content);
|
||||
// update extension in UI
|
||||
UpdateLabelValue(Constants.Conventions.Media.Extension, "prop_umbracoExtension", Page, content);
|
||||
// update file size in UI
|
||||
UpdateLabelValue(Constants.Conventions.Media.Bytes, "prop_umbracoBytes", Page, content);
|
||||
UpdateLabelValue(Constants.Conventions.Media.Width, "prop_umbracoWidth", Page, content);
|
||||
UpdateLabelValue(Constants.Conventions.Media.Height, "prop_umbracoHeight", Page, content);
|
||||
UpdateLabelValue(Constants.Conventions.Media.Bytes, "prop_umbracoBytes", Page, content);
|
||||
UpdateLabelValue(Constants.Conventions.Media.Width, "prop_umbracoWidth", Page, content);
|
||||
UpdateLabelValue(Constants.Conventions.Media.Height, "prop_umbracoHeight", Page, content);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -199,8 +199,8 @@ namespace umbraco.editorControls
|
||||
[Obsolete("This method is now obsolete due to a change in the way that files are handled. If you need to check if a URL for an uploaded file is safe you should implement your own as this method will be removed in a future version", false)]
|
||||
public string SafeUrl(string url)
|
||||
{
|
||||
return string.IsNullOrEmpty(url) == false
|
||||
? Regex.Replace(url, @"[^a-zA-Z0-9\-\.\/\:]{1}", "_")
|
||||
return string.IsNullOrEmpty(url) == false
|
||||
? Regex.Replace(url, @"[^a-zA-Z0-9\-\.\/\:]{1}", "_")
|
||||
: String.Empty;
|
||||
}
|
||||
|
||||
@@ -263,7 +263,7 @@ namespace umbraco.editorControls
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Render this control to the output parameter specified.
|
||||
/// </summary>
|
||||
@@ -283,17 +283,24 @@ namespace umbraco.editorControls
|
||||
{
|
||||
var relativeFilePath = _fs.GetRelativePath(_text);
|
||||
var ext = relativeFilePath.Substring(relativeFilePath.LastIndexOf(".") + 1, relativeFilePath.Length - relativeFilePath.LastIndexOf(".") - 1);
|
||||
var relativeThumbFilePath = relativeFilePath.Replace("." + ext, "_thumb.jpg");
|
||||
var hasThumb = false;
|
||||
var relativeThumbFilePath = relativeFilePath.Replace("." + ext, "_thumb." + ext);
|
||||
var hasThumb = false;
|
||||
try
|
||||
{
|
||||
hasThumb = _fs.FileExists(relativeThumbFilePath);
|
||||
// 4.8.0 added support for png thumbnails (but for legacy it might have been jpg - hence the check before)
|
||||
if (hasThumb == false && (ext == "gif" || ext == "png"))
|
||||
|
||||
// 7.4.0 generates thumbs with the correct file extension, but check for old possible extensions as well
|
||||
if (hasThumb == false)
|
||||
{
|
||||
relativeThumbFilePath = relativeFilePath.Replace("." + ext, "_thumb.png");
|
||||
hasThumb = _fs.FileExists(relativeThumbFilePath);
|
||||
}
|
||||
|
||||
if (hasThumb == false)
|
||||
{
|
||||
relativeThumbFilePath = relativeFilePath.Replace("." + ext, "_thumb.jpg");
|
||||
hasThumb = _fs.FileExists(relativeThumbFilePath);
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
@@ -302,7 +309,7 @@ namespace umbraco.editorControls
|
||||
{
|
||||
var thumb = new Image
|
||||
{
|
||||
ImageUrl = _fs.GetUrl(relativeThumbFilePath),
|
||||
ImageUrl = _fs.GetUrl(relativeThumbFilePath),
|
||||
BorderStyle = BorderStyle.None
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user