Merge branch 'sniffdk-U4-205' into dev-v7

This commit is contained in:
Claus
2016-10-20 13:59:00 +02:00
5 changed files with 164 additions and 97 deletions

View File

@@ -304,8 +304,16 @@
<key alias="selectEditor">Vælg editor</key>
</area>
<area alias="dictionaryItem">
<key alias="description">Rediger de forskellige sprogversioner for ordbogselementet '%0%' herunder. Du tilføjer flere sprog under 'sprog' i menuen til venstre </key>
<key alias="description"><![CDATA[
Rediger de forskellige sprogversioner for ordbogselementet '%0%' herunder.<br />Du tilføjer flere sprog under 'sprog' i menuen til venstre </key>
]]></key>
<key alias="displayName">Kulturnavn</key>
<key alias="changeKey">Rediger navnet på ordbogselementet.</key>
<key alias="changeKeyError">
<![CDATA[
Navnet '%0%' eksisterer allerede.
]]>
</key>
</area>
<area alias="placeholders">
<key alias="username">Indtast dit brugernavn</key>

View File

@@ -327,6 +327,12 @@
Edit the different language versions for the dictionary item '<em>%0%</em>' below<br/>You can add additional languages under the 'languages' in the menu on the left
]]></key>
<key alias="displayName">Culture Name</key>
<key alias="changeKey">Edit the key of the dictionary item.</key>
<key alias="changeKeyError">
<![CDATA[
The key '%0%' already exists.
]]>
</key>
</area>
<area alias="placeholders">
<key alias="username">Enter your username</key>

View File

@@ -328,6 +328,12 @@
Edit the different language versions for the dictionary item '<em>%0%</em>' below<br/>You can add additional languages under the 'languages' in the menu on the left
]]></key>
<key alias="displayName">Culture Name</key>
<key alias="changeKey">Edit the key of the dictionary item.</key>
<key alias="changeKeyError">
<![CDATA[
The key '%0%' already exists.
]]>
</key>
</area>
<area alias="placeholders">
<key alias="username">Enter your username</key>

View File

@@ -1,55 +1,75 @@
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using umbraco.BusinessLogic;
using umbraco.cms.businesslogic;
using umbraco.cms.presentation.Trees;
using Umbraco.Core;
using Umbraco.Core.IO;
namespace umbraco.settings
{
/// <summary>
/// Summary description for EditDictionaryItem.
/// </summary>
/// <summary>
/// Summary description for EditDictionaryItem.
/// </summary>
[WebformsPageTreeAuthorize(Constants.Trees.Dictionary)]
public partial class EditDictionaryItem : BasePages.UmbracoEnsuredPage
{
protected LiteralControl keyTxt = new LiteralControl();
protected uicontrols.TabView tbv = new uicontrols.TabView();
private System.Collections.ArrayList languageFields = new System.Collections.ArrayList();
public partial class EditDictionaryItem : BasePages.UmbracoEnsuredPage
{
protected LiteralControl keyTxt = new LiteralControl();
protected uicontrols.TabView tbv = new uicontrols.TabView();
private System.Collections.ArrayList languageFields = new System.Collections.ArrayList();
private cms.businesslogic.Dictionary.DictionaryItem currentItem;
protected TextBox boxChangeKey;
protected Label labelChangeKey;
protected Literal txt;
protected User currentUser;
protected void Page_Load(object sender, System.EventArgs e)
{
currentItem = new cms.businesslogic.Dictionary.DictionaryItem(int.Parse(Request.QueryString["id"]));
protected void Page_Load(object sender, System.EventArgs e)
{
currentItem = new cms.businesslogic.Dictionary.DictionaryItem(int.Parse(Request.QueryString["id"]));
currentUser = getUser();
// Put user code to initialize the page here
Panel1.hasMenu = true;
Panel1.Text = ui.Text("editdictionary") + ": " + currentItem.key;
uicontrols.Pane p = new uicontrols.Pane();
// Put user code to initialize the page here
Panel1.hasMenu = true;
Panel1.Text = ui.Text("editdictionary") + ": " + currentItem.key;
var save = Panel1.Menu.NewButton();
var save = Panel1.Menu.NewButton();
save.Text = ui.Text("save");
save.Click += save_Click;
save.ToolTip = ui.Text("save");
save.ToolTip = ui.Text("save");
save.ID = "save";
save.ButtonType = uicontrols.MenuButtonType.Primary;
Literal txt = new Literal();
txt.Text = "<p>" + ui.Text("dictionaryItem", "description", currentItem.key, base.getUser()) + "</p><br/>";
uicontrols.Pane p = new uicontrols.Pane();
boxChangeKey = new TextBox
{
ID = "changeKey-" + currentItem.id,
CssClass = "umbEditorTextField",
Text = currentItem.key
};
labelChangeKey = new Label
{
ID = "changeKeyLabel",
CssClass = "text-error"
};
p.addProperty(new Literal
{
Text = "<p>" + ui.Text("dictionaryItem", "changeKey", currentUser) + "</p>"
});
p.addProperty(boxChangeKey);
p.addProperty(labelChangeKey);
txt = new Literal();
txt.Text = "<br/><p>" + ui.Text("dictionaryItem", "description", currentItem.key, currentUser) + "</p><br/>";
p.addProperty(txt);
foreach (cms.businesslogic.language.Language l in cms.businesslogic.language.Language.getAll)
{
foreach (cms.businesslogic.language.Language l in cms.businesslogic.language.Language.getAll)
{
TextBox languageBox = new TextBox();
languageBox.TextMode = TextBoxMode.MultiLine;
languageBox.ID = l.id.ToString();
@@ -61,83 +81,104 @@ namespace umbraco.settings
languageFields.Add(languageBox);
p.addProperty(l.FriendlyName, languageBox);
}
}
if (!IsPostBack)
{
var path = BuildPath(currentItem);
ClientTools
.SetActiveTreeType(TreeDefinitionCollection.Instance.FindTree<loadDictionary>().Tree.Alias)
.SyncTree(path, false);
}
if (!IsPostBack)
{
var path = BuildPath(currentItem);
ClientTools
.SetActiveTreeType(TreeDefinitionCollection.Instance.FindTree<loadDictionary>().Tree.Alias)
.SyncTree(path, false);
}
Panel1.Controls.Add(p);
}
}
private string BuildPath(cms.businesslogic.Dictionary.DictionaryItem current)
{
var parentPath = current.IsTopMostItem() ? "" : BuildPath(current.Parent) + ",";
return parentPath + current.id;
}
private string BuildPath(cms.businesslogic.Dictionary.DictionaryItem current)
{
var parentPath = current.IsTopMostItem() ? "" : BuildPath(current.Parent) + ",";
return parentPath + current.id;
}
void save_Click(object sender, EventArgs e)
{
foreach (TextBox t in languageFields)
foreach (TextBox t in languageFields)
{
//check for null but allow empty string!
// http://issues.umbraco.org/issue/U4-1931
if (t.Text != null)
if (t.Text != null)
{
currentItem.setValue(int.Parse(t.ID),t.Text);
}
}
ClientTools.ShowSpeechBubble(speechBubbleIcon.save, ui.Text("speechBubbles", "dictionaryItemSaved"), "");
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
/*
tbv.ID="tabview1";
tbv.Width = 400;
tbv.Height = 200;
*/
currentItem.setValue(int.Parse(t.ID), t.Text);
}
}
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
}
#endregion
labelChangeKey.Text = ""; // reset error text
var newKey = boxChangeKey.Text;
if (string.IsNullOrWhiteSpace(newKey) == false && newKey != currentItem.key)
{
// key already exists, save but inform
if (Dictionary.DictionaryItem.hasKey(newKey) == true)
{
labelChangeKey.Text = ui.Text("dictionaryItem", "changeKeyError", newKey, currentUser);
boxChangeKey.Text = currentItem.key; // reset key
}
else
{
// set the new key
currentItem.setKey(newKey);
// update the title with the new key
Panel1.title.InnerHtml = ui.Text("editdictionary") + ": " + newKey;
// sync the content tree
var path = BuildPath(currentItem);
ClientTools.SyncTree(path, true);
}
}
txt.Text = "<br/><p>" + ui.Text("dictionaryItem", "description", currentItem.key, currentUser) + "</p><br/>";
ClientTools.ShowSpeechBubble(speechBubbleIcon.save, ui.Text("speechBubbles", "dictionaryItemSaved"), "");
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
}
#endregion
private class languageTextbox : TextBox
{
private class languageTextbox : TextBox
{
private int _languageid;
public int languageid
{
set {_languageid = value;}
get {return _languageid;}
}
public languageTextbox(int languageId) : base() {
this.TextMode = TextBoxMode.MultiLine;
this.Rows = 10;
this.Columns = 40;
this.Attributes.Add("style", "margin: 3px; width: 98%;");
this.languageid = languageId;
}
}
}
private int _languageid;
public int languageid
{
set { _languageid = value; }
get { return _languageid; }
}
public languageTextbox(int languageId) : base()
{
this.TextMode = TextBoxMode.MultiLine;
this.Rows = 10;
this.Columns = 40;
this.Attributes.Add("style", "margin: 3px; width: 98%;");
this.languageid = languageId;
}
}
}
}

View File

@@ -169,6 +169,12 @@ namespace umbraco.cms.businesslogic
}
}
public void setKey(string value)
{
key = value;
Save();
}
public string Value(int languageId)
{
if (languageId == 0)