From 87d96f389d4ac10334be08f5ff436b3ab8a7c8f1 Mon Sep 17 00:00:00 2001
From: hartvig
Date: Mon, 27 Dec 2010 09:27:07 -0100
Subject: [PATCH] Fixes #29784 and #29788 + updates jQuery to v1.4.4
---
.../datatype/DataTypeDefinition.cs | 21 +-
umbraco/cms/businesslogic/datatype/factory.cs | 6 +-
.../install/steps/defaultUser.ascx.cs | 5 +-
.../presentation/umbraco/config/lang/da.xml | 2 +-
.../presentation/umbraco/config/lang/en.xml | 2 +-
.../presentation/umbraco/config/lang/nl.xml | 8 +-
.../developer/DataTypes/editDatatype.aspx.cs | 8 +-
.../presentation/umbraco_client/ui/jquery.js | 295 +++++++++---------
8 files changed, 183 insertions(+), 164 deletions(-)
diff --git a/umbraco/cms/businesslogic/datatype/DataTypeDefinition.cs b/umbraco/cms/businesslogic/datatype/DataTypeDefinition.cs
index 3c2e311e0b..0748e06443 100644
--- a/umbraco/cms/businesslogic/datatype/DataTypeDefinition.cs
+++ b/umbraco/cms/businesslogic/datatype/DataTypeDefinition.cs
@@ -49,11 +49,18 @@ namespace umbraco.cms.businesslogic.datatype
{
get
{
- cms.businesslogic.datatype.controls.Factory f = new cms.businesslogic.datatype.controls.Factory();
- interfaces.IDataType dt = f.DataType(_controlId);
- dt.DataTypeDefinitionId = Id;
+ if (_controlId != Guid.Empty)
+ {
+ cms.businesslogic.datatype.controls.Factory f = new cms.businesslogic.datatype.controls.Factory();
+ interfaces.IDataType dt = f.DataType(_controlId);
+ dt.DataTypeDefinitionId = Id;
- return dt;
+ return dt;
+ }
+ else
+ {
+ return null;
+ }
}
set
{
@@ -233,7 +240,11 @@ namespace umbraco.cms.businesslogic.datatype
int newId = CMSNode.MakeNew(-1, _objectType, u.Id, 1, Text, UniqueId).Id;
cms.businesslogic.datatype.controls.Factory f = new cms.businesslogic.datatype.controls.Factory();
- Guid FirstcontrolId = f.GetAll()[0].Id;
+
+ // initial control id changed to empty to ensure that it'll always work no matter if 3rd party configurators fail
+ // ref: http://umbraco.codeplex.com/workitem/29788
+ Guid FirstcontrolId = Guid.Empty;
+
SqlHelper.ExecuteNonQuery("Insert into cmsDataType (nodeId, controlId, dbType) values (" + newId.ToString() + ",@controlId,'Ntext')",
SqlHelper.CreateParameter("@controlId", FirstcontrolId));
diff --git a/umbraco/cms/businesslogic/datatype/factory.cs b/umbraco/cms/businesslogic/datatype/factory.cs
index 9637b2d40a..4c0dfb0234 100644
--- a/umbraco/cms/businesslogic/datatype/factory.cs
+++ b/umbraco/cms/businesslogic/datatype/factory.cs
@@ -47,8 +47,12 @@ namespace umbraco.cms.businesslogic.datatype.controls
///
public IDataType GetNewObject(Guid DataEditorId)
{
+ if (DataEditorId == Guid.Empty)
+ {
+ throw new ArgumentException("DataEditorId is empty. This usually means that no data editor was defined for the data type. To correct this update the entry in the cmsDataType table to ensure it matches a Guid from an installed data editor.");
+ }
IDataType newObject = Activator.CreateInstance(_controls[DataEditorId]) as IDataType;
- return newObject;
+ return newObject;
}
///
diff --git a/umbraco/presentation/install/steps/defaultUser.ascx.cs b/umbraco/presentation/install/steps/defaultUser.ascx.cs
index fcca7790cd..4ba30e2212 100644
--- a/umbraco/presentation/install/steps/defaultUser.ascx.cs
+++ b/umbraco/presentation/install/steps/defaultUser.ascx.cs
@@ -54,8 +54,6 @@ namespace umbraco.presentation.install.steps
MembershipUser user = Membership.Providers[UmbracoSettings.DefaultBackofficeProvider].GetUser(0, true);
user.ChangePassword(u.GetPassword(), tb_password.Text.Trim());
- u.LoginName = tb_login.Text;
-
// Is it using the default membership provider
if (Membership.Providers[UmbracoSettings.DefaultBackofficeProvider] is UsersMembershipProvider)
{
@@ -73,6 +71,9 @@ namespace umbraco.presentation.install.steps
if (!(Membership.Providers[UmbracoSettings.DefaultBackofficeProvider] is ActiveDirectoryMembershipProvider)) Membership.Providers[UmbracoSettings.DefaultBackofficeProvider].UpdateUser(user);
}
+ // we need to update the login name here as it's set to the old name when saving the user via the membership provider!
+ u.LoginName = tb_login.Text;
+
u.Save();
if (cb_newsletter.Checked)
diff --git a/umbraco/presentation/umbraco/config/lang/da.xml b/umbraco/presentation/umbraco/config/lang/da.xml
index ee3a19cdbd..904b5cad91 100644
--- a/umbraco/presentation/umbraco/config/lang/da.xml
+++ b/umbraco/presentation/umbraco/config/lang/da.xml
@@ -484,7 +484,7 @@
-
+
diff --git a/umbraco/presentation/umbraco/config/lang/en.xml b/umbraco/presentation/umbraco/config/lang/en.xml
index e02f317c30..f572e08bda 100644
--- a/umbraco/presentation/umbraco/config/lang/en.xml
+++ b/umbraco/presentation/umbraco/config/lang/en.xml
@@ -528,7 +528,7 @@
Render control
- Data Type GUID
+ Data Editor GUIDDatabase datatypeAdd prevalueButtons
diff --git a/umbraco/presentation/umbraco/config/lang/nl.xml b/umbraco/presentation/umbraco/config/lang/nl.xml
index 5f14e321bd..f195468cc7 100644
--- a/umbraco/presentation/umbraco/config/lang/nl.xml
+++ b/umbraco/presentation/umbraco/config/lang/nl.xml
@@ -1,4 +1,4 @@
-
+
The umbraco communityhttp://umbraco.org/documentation/language-filesPlaats een placeholder id door een ID op uw placeholder te zetten kunt u content plaatsen in deze template vanuit onderliggende templates,
door te referreren naar deze ID door gebruik te maken van een <asp:content /> element.]]>Selecteer een placeholder id uit onderstaande lijst. U kunt alleen
Id's kiezen van de master van de huidige template..]]>regexlib.com ondervindt momenteel prolemen waarover we geen controle hebben. Onze excuses voor het ongemak.]]>Je ziet een bevestigingspagina voordat de import start. Als het documenttype al bestaat dan wordt het bijgewerkt.]]> Data type: %1%]]>Rode tekst wordt niet getoond in de geselecteerde versie , groen betekent toegevoegd]]> Sluit dit venster niet tijdens het sorteren]]>ok om %0% te publiceren en de wijzigingen zichtbaar te maken voor bezoekers.
]]>
-
+ gebruik makend van umbraco's member groups.]]>role-based authentication.]]>umbraco %0% voor een nieuwe installatie of een upgrade van versie 3.0.
Druk op "volgende" om de wizard te starten.]]>installeer om de Umbraco %0% database te installeren]]>Volgende om door te gaan.]]>De database kon niet gevonden worden! Gelieve na te kijken of de informatie in de "connection string" van het "web.config" bestand correct is.
Om door te gaan, gelieve het "web.config" bestand aan te passen (met behulp van Visual Studio of je favoriete tekstverwerker), scroll in het bestand naar beneden, voeg de connection string voor je database toe in de key met naam "umbracoDbDSN" en sla het bestand op.
]]> Gelieve contact op te nemen met je ISP indien nodig. Wanneer je installeert op een lokale computer of server, dan heb je waarschijnlijk informatie nodig van je systeembeheerder.]]> Klik de upgrade knop om je database te upgraden naar Umbraco %0%
Maak je geen zorgen - er zal geen inhoud worden gewist en alles blijft gewoon werken!
]]>Klik Volgende om verder te gaan. ]]>volgende om door te gaan]]>/web.config bestand aanpassen, en de Appsetting key umbracoConfigurationStatus onder in het bestand veranderen naar '%0%'.]]>Het wachtwoord van de default gebruiker dient veranderd te worden!]]>De default gebruiker is geblokkeerd of heeft geen toegang tot Umbraco!
Geen verdere actie noodzakelijk. Klik Volgende om verder te gaan.]]>
Het wachtwoord van de default gebruiker is sinds installatie met succes veranderd.
Geen verdere actie noodzakelijk. Klik Volgende om verder te gaan.]]>
umbraco maakt een default gebruiker aan met login ('admin') and wachtwoord ('default'). Het is belangrijk dat dit wachtwoord wordt veranderd in iets unieks.
Deze stap controleert het password van de default gebruiker en adviseert of het veranderd dient te worden.
]]>Je machtigingen zijn bijna perfect!
Je kunt umbraco zonder problemen starten, maar je kunt nog geen packages installeren om volledig van umbraco te profiteren.]]>video tutorial over het instellen van machtigingen voor umbraco, of lees de tekst versie.]]>Je machtigingen zijn misschien incorrect!
Je kunt umbraco probleemloos starten, maar je kunt nog geen mappen aanmaken of packages installeren om zo volledig van umbraco te profiteren.]]>Je machtigingen zijn nog niet gereed gemaakt voor umbraco!
Om umbraco te starten zul je je machtigingen moeten aanpassen.]]>Je machtigingen zijn perfect!
Je bent nu klaar om umbraco te starten en om packages te installeren!]]>leer hoe). Je kunt er later alsnog voor kiezen om Runway te installeren. Ga dan naar de Ontwikkelaar sectie en kies Packages.]]> Dit is onze lijst van aanbevolen modules. Vink de modules die je wilt installeren, of bekijk de volledige lijst modules ]]> "Runway" is een eenvoudige website die je van enkele elementaire documenttypes en templates voorziet. De installer kan Runway automatisch voor je opzetten, maar je kunt het gemakkelijk aanpassen, uitbreiden of verwijderen. Het is niet vereist en je kunt Umbraco prima zonder Runway gebruiken.
-Echter, Runway biedt een gemakkelijke basis om je snel op weg te helpen. Als je er voor kiest om Runway te installeren, dan kun je optioneel de bouwstenen (genaamd Runway Modules) kiezen om je Runway pagina's te verbeteren. Runway omvat: Home pagina, Getting Started pagina, Module installatie pagina. Optionele Modules: Top Navigatie, Sitemap, Contact, Gallery. ]]>Browse je nieuwe site Je hebt Runway geinstalleerd, dus kijk eens hoe je nieuwe site eruit ziet.]]>Meer hulp en informatie Vind hulp in onze bekroonde community, blader door de documentatie of bekijk enkele gratis videos over het bouwen van een eenvoudige site, het gebruiken van packages en een overzicht van umbraco terminologie]]>meteen beginnen door de "Launch Umbraco" knop hieronder te klikken. Als je een beginnende umbraco gebruiker bent, dan kun je you can find veel informatie op onze "getting started" pagina's vinden.]]>Launch Umbraco Om je website te beheren open je simpelweg de umbraco back office en begin je content toe te voegen, templates en stylesheets aan te passen of nieuwe functionaliteit toe te voegen]]>
-
+Echter, Runway biedt een gemakkelijke basis om je snel op weg te helpen. Als je er voor kiest om Runway te installeren, dan kun je optioneel de bouwstenen (genaamd Runway Modules) kiezen om je Runway pagina's te verbeteren. Runway omvat: Home pagina, Getting Started pagina, Module installatie pagina. Optionele Modules: Top Navigatie, Sitemap, Contact, Gallery. ]]>Browse je nieuwe site Je hebt Runway geinstalleerd, dus kijk eens hoe je nieuwe site eruit ziet.]]>Meer hulp en informatie Vind hulp in onze bekroonde community, blader door de documentatie of bekijk enkele gratis videos over het bouwen van een eenvoudige site, het gebruiken van packages en een overzicht van umbraco terminologie]]>meteen beginnen door de "Launch Umbraco" knop hieronder te klikken. Als je een beginnende umbraco gebruiker bent, dan kun je you can find veel informatie op onze "getting started" pagina's vinden.]]>Launch Umbraco Om je website te beheren open je simpelweg de umbraco back office en begin je content toe te voegen, templates en stylesheets aan te passen of nieuwe functionaliteit toe te voegen]]>
+
diff --git a/umbraco/presentation/umbraco/developer/DataTypes/editDatatype.aspx.cs b/umbraco/presentation/umbraco/developer/DataTypes/editDatatype.aspx.cs
index 0beccd9af2..1533c15dfa 100644
--- a/umbraco/presentation/umbraco/developer/DataTypes/editDatatype.aspx.cs
+++ b/umbraco/presentation/umbraco/developer/DataTypes/editDatatype.aspx.cs
@@ -44,13 +44,14 @@ namespace umbraco.cms.presentation.developer
datatypes.Add(df.DataTypeName + "|" + Guid.NewGuid().ToString(), df.Id);
IDictionaryEnumerator ide = datatypes.GetEnumerator();
-
+
+ string datatTypeId = dt.DataType != null ? dt.DataType.Id.ToString() : String.Empty;
while (ide.MoveNext()) {
ListItem li = new ListItem();
li.Text = ide.Key.ToString().Substring(0, ide.Key.ToString().IndexOf("|"));
li.Value = ide.Value.ToString();
- if (li.Value.ToString() == dt.DataType.Id.ToString()) li.Selected = true;
+ if (!String.IsNullOrEmpty(datatTypeId) && li.Value.ToString() == datatTypeId) li.Selected = true;
ddlRenderControl.Items.Add(li);
}
@@ -60,7 +61,8 @@ namespace umbraco.cms.presentation.developer
}
- litGuid.Text = dt.DataType.Id.ToString();
+ if (dt.DataType != null)
+ litGuid.Text = dt.DataType.Id.ToString();
Panel1.Text = umbraco.ui.Text("edit") + " datatype: " + dt.Text;
insertPrevalueEditor();
}
diff --git a/umbraco/presentation/umbraco_client/ui/jquery.js b/umbraco/presentation/umbraco_client/ui/jquery.js
index c941a5f7a9..8f3ca2e2da 100644
--- a/umbraco/presentation/umbraco_client/ui/jquery.js
+++ b/umbraco/presentation/umbraco_client/ui/jquery.js
@@ -1,5 +1,5 @@
/*!
- * jQuery JavaScript Library v1.4.3
+ * jQuery JavaScript Library v1.4.4
* http://jquery.com/
*
* Copyright 2010, John Resig
@@ -11,156 +11,157 @@
* Copyright 2010, The Dojo Foundation
* Released under the MIT, BSD, and GPL Licenses.
*
- * Date: Thu Oct 14 23:10:06 2010 -0400
+ * Date: Thu Nov 11 19:04:53 2010 -0500
*/
-(function(E,A){function U(){return false}function ba(){return true}function ja(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function Ga(a){var b,d,e=[],f=[],h,k,l,n,s,v,B,D;k=c.data(this,this.nodeType?"events":"__events__");if(typeof k==="function")k=k.events;if(!(a.liveFired===this||!k||!k.live||a.button&&a.type==="click")){if(a.namespace)D=RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)");a.liveFired=this;var H=k.live.slice(0);for(n=0;nd)break;a.currentTarget=f.elem;a.data=f.handleObj.data;
-a.handleObj=f.handleObj;D=f.handleObj.origHandler.apply(f.elem,arguments);if(D===false||a.isPropagationStopped()){d=f.level;if(D===false)b=false}}return b}}function Y(a,b){return(a&&a!=="*"?a+".":"")+b.replace(Ha,"`").replace(Ia,"&")}function ka(a,b,d){if(c.isFunction(b))return c.grep(a,function(f,h){return!!b.call(f,h,f)===d});else if(b.nodeType)return c.grep(a,function(f){return f===b===d});else if(typeof b==="string"){var e=c.grep(a,function(f){return f.nodeType===1});if(Ja.test(b))return c.filter(b,
-e,!d);else b=c.filter(b,e)}return c.grep(a,function(f){return c.inArray(f,b)>=0===d})}function la(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var e=c.data(a[d++]),f=c.data(this,e);if(e=e&&e.events){delete f.handle;f.events={};for(var h in e)for(var k in e[h])c.event.add(this,h,e[h][k],e[h][k].data)}}})}function Ka(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}
-function ma(a,b,d){var e=b==="width"?a.offsetWidth:a.offsetHeight;if(d==="border")return e;c.each(b==="width"?La:Ma,function(){d||(e-=parseFloat(c.css(a,"padding"+this))||0);if(d==="margin")e+=parseFloat(c.css(a,"margin"+this))||0;else e-=parseFloat(c.css(a,"border"+this+"Width"))||0});return e}function ca(a,b,d,e){if(c.isArray(b)&&b.length)c.each(b,function(f,h){d||Na.test(a)?e(a,h):ca(a+"["+(typeof h==="object"||c.isArray(h)?f:"")+"]",h,d,e)});else if(!d&&b!=null&&typeof b==="object")c.isEmptyObject(b)?
-e(a,""):c.each(b,function(f,h){ca(a+"["+f+"]",h,d,e)});else e(a,b)}function S(a,b){var d={};c.each(na.concat.apply([],na.slice(0,b)),function(){d[this]=a});return d}function oa(a){if(!da[a]){var b=c("<"+a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d==="")d="block";da[a]=d}return da[a]}function ea(a){return c.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var u=E.document,c=function(){function a(){if(!b.isReady){try{u.documentElement.doScroll("left")}catch(i){setTimeout(a,
-1);return}b.ready()}}var b=function(i,r){return new b.fn.init(i,r)},d=E.jQuery,e=E.$,f,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,k=/\S/,l=/^\s+/,n=/\s+$/,s=/\W/,v=/\d/,B=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,D=/^[\],:{}\s]*$/,H=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,w=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,G=/(?:^|:|,)(?:\s*\[)+/g,M=/(webkit)[ \/]([\w.]+)/,g=/(opera)(?:.*version)?[ \/]([\w.]+)/,j=/(msie) ([\w.]+)/,o=/(mozilla)(?:.*? rv:([\w.]+))?/,m=navigator.userAgent,p=false,
-q=[],t,x=Object.prototype.toString,C=Object.prototype.hasOwnProperty,P=Array.prototype.push,N=Array.prototype.slice,R=String.prototype.trim,Q=Array.prototype.indexOf,L={};b.fn=b.prototype={init:function(i,r){var y,z,F;if(!i)return this;if(i.nodeType){this.context=this[0]=i;this.length=1;return this}if(i==="body"&&!r&&u.body){this.context=u;this[0]=u.body;this.selector="body";this.length=1;return this}if(typeof i==="string")if((y=h.exec(i))&&(y[1]||!r))if(y[1]){F=r?r.ownerDocument||r:u;if(z=B.exec(i))if(b.isPlainObject(r)){i=
-[u.createElement(z[1])];b.fn.attr.call(i,r,true)}else i=[F.createElement(z[1])];else{z=b.buildFragment([y[1]],[F]);i=(z.cacheable?z.fragment.cloneNode(true):z.fragment).childNodes}return b.merge(this,i)}else{if((z=u.getElementById(y[2]))&&z.parentNode){if(z.id!==y[2])return f.find(i);this.length=1;this[0]=z}this.context=u;this.selector=i;return this}else if(!r&&!s.test(i)){this.selector=i;this.context=u;i=u.getElementsByTagName(i);return b.merge(this,i)}else return!r||r.jquery?(r||f).find(i):b(r).find(i);
-else if(b.isFunction(i))return f.ready(i);if(i.selector!==A){this.selector=i.selector;this.context=i.context}return b.makeArray(i,this)},selector:"",jquery:"1.4.3",length:0,size:function(){return this.length},toArray:function(){return N.call(this,0)},get:function(i){return i==null?this.toArray():i<0?this.slice(i)[0]:this[i]},pushStack:function(i,r,y){var z=b();b.isArray(i)?P.apply(z,i):b.merge(z,i);z.prevObject=this;z.context=this.context;if(r==="find")z.selector=this.selector+(this.selector?" ":
-"")+y;else if(r)z.selector=this.selector+"."+r+"("+y+")";return z},each:function(i,r){return b.each(this,i,r)},ready:function(i){b.bindReady();if(b.isReady)i.call(u,b);else q&&q.push(i);return this},eq:function(i){return i===-1?this.slice(i):this.slice(i,+i+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(N.apply(this,arguments),"slice",N.call(arguments).join(","))},map:function(i){return this.pushStack(b.map(this,function(r,y){return i.call(r,
-y,r)}))},end:function(){return this.prevObject||b(null)},push:P,sort:[].sort,splice:[].splice};b.fn.init.prototype=b.fn;b.extend=b.fn.extend=function(){var i=arguments[0]||{},r=1,y=arguments.length,z=false,F,I,K,J,fa;if(typeof i==="boolean"){z=i;i=arguments[1]||{};r=2}if(typeof i!=="object"&&!b.isFunction(i))i={};if(y===r){i=this;--r}for(;r0)){if(q){for(var r=0;i=q[r++];)i.call(u,b);q=null}b.fn.triggerHandler&&b(u).triggerHandler("ready")}}},bindReady:function(){if(!p){p=true;if(u.readyState==="complete")return setTimeout(b.ready,
-1);if(u.addEventListener){u.addEventListener("DOMContentLoaded",t,false);E.addEventListener("load",b.ready,false)}else if(u.attachEvent){u.attachEvent("onreadystatechange",t);E.attachEvent("onload",b.ready);var i=false;try{i=E.frameElement==null}catch(r){}u.documentElement.doScroll&&i&&a()}}},isFunction:function(i){return b.type(i)==="function"},isArray:Array.isArray||function(i){return b.type(i)==="array"},isWindow:function(i){return i&&typeof i==="object"&&"setInterval"in i},isNaN:function(i){return i==
-null||!v.test(i)||isNaN(i)},type:function(i){return i==null?String(i):L[x.call(i)]||"object"},isPlainObject:function(i){if(!i||b.type(i)!=="object"||i.nodeType||b.isWindow(i))return false;if(i.constructor&&!C.call(i,"constructor")&&!C.call(i.constructor.prototype,"isPrototypeOf"))return false;for(var r in i);return r===A||C.call(i,r)},isEmptyObject:function(i){for(var r in i)return false;return true},error:function(i){throw i;},parseJSON:function(i){if(typeof i!=="string"||!i)return null;i=b.trim(i);
-if(D.test(i.replace(H,"@").replace(w,"]").replace(G,"")))return E.JSON&&E.JSON.parse?E.JSON.parse(i):(new Function("return "+i))();else b.error("Invalid JSON: "+i)},noop:function(){},globalEval:function(i){if(i&&k.test(i)){var r=u.getElementsByTagName("head")[0]||u.documentElement,y=u.createElement("script");y.type="text/javascript";if(b.support.scriptEval)y.appendChild(u.createTextNode(i));else y.text=i;r.insertBefore(y,r.firstChild);r.removeChild(y)}},nodeName:function(i,r){return i.nodeName&&i.nodeName.toUpperCase()===
-r.toUpperCase()},each:function(i,r,y){var z,F=0,I=i.length,K=I===A||b.isFunction(i);if(y)if(K)for(z in i){if(r.apply(i[z],y)===false)break}else for(;F