U4-7537 File cleanup for old content type editor

This commit is contained in:
Shannon
2015-12-15 15:12:22 +01:00
parent c813eccb45
commit 727fd3aa17
26 changed files with 0 additions and 3854 deletions

View File

@@ -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.

View File

@@ -1402,9 +1402,6 @@
<Name>umbraco.interfaces</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Content Include="Strings\Notes.txt" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="FileResources\Files.resx">
<Generator>ResXFileCodeGenerator</Generator>

View File

@@ -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" />

View File

@@ -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"/> &nbsp; <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;">&nbsp;(<%=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>

View File

@@ -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;
}
}
}
}

View File

@@ -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;
}
}

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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
{
}
}

View File

@@ -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;
}
}

View File

@@ -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);

View File

@@ -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

View File

@@ -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;
}

View File

@@ -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>

View File

@@ -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;
}
}

View File

@@ -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();
}
}
}

View File

@@ -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>

View File

@@ -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);
}
}
}
}

View File

@@ -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;
}
}

View File

@@ -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>

View File

@@ -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;
}
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}