U4-7537 File cleanup for old content type editor
This commit is contained in:
@@ -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.
|
||||
@@ -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>
|
||||
|
||||
@@ -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" />
|
||||
|
||||
@@ -1,240 +0,0 @@
|
||||
<%@ Control Language="c#" AutoEventWireup="True" Codebehind="ContentTypeControlNew.ascx.cs"
|
||||
Inherits="Umbraco.Web.UI.Umbraco.Controls.ContentTypeControlNew" TargetSchema="http://schemas.microsoft.com/intellisense/ie5" %>
|
||||
<%@ Import Namespace="umbraco" %>
|
||||
<%@ Register TagPrefix="cc1" Namespace="umbraco.uicontrols" Assembly="controls" %>
|
||||
<%@ Register TagPrefix="cc2" Namespace="umbraco.uicontrols" Assembly="controls" %>
|
||||
<%@ Register TagPrefix="cdf" Namespace="ClientDependency.Core.Controls" Assembly="ClientDependency.Core" %>
|
||||
|
||||
<cdf:JsInclude ID="JsInclude" runat="server" FilePath="Editors/EditContentType.js" PathNameAlias="UmbracoClient" />
|
||||
|
||||
<cc1:TabView ID="TabView1" Height="392px" Width="552px" runat="server"></cc1:TabView>
|
||||
|
||||
<asp:Panel ID="pnlGeneral" runat="server"></asp:Panel>
|
||||
|
||||
<asp:Panel ID="pnlTab" Style="text-align: left" runat="server">
|
||||
|
||||
<cc2:Pane ID="PaneTabsInherited" runat="server" Visible="false">
|
||||
<p><strong><%=ui.GetText("settings", "contentTypeEnabled")%></strong><br /><%=umbraco.ui.GetText("settings", "contentTypeUses")%> <em><asp:Literal ID="tabsMasterContentTypeName" runat="server"></asp:Literal></em> <%=umbraco.ui.GetText("settings", "asAContentMasterType")%></p>
|
||||
</cc2:Pane>
|
||||
|
||||
<cc2:Pane ID="Pane2" runat="server">
|
||||
<cc2:PropertyPanel runat="server" id="pp_newTab" Text="New tab">
|
||||
<asp:TextBox ID="txtNewTab" runat="server"/> <asp:Button ID="btnNewTab" CssClass="btn" runat="server" Text="New tab" OnClick="btnNewTab_Click"/>
|
||||
</cc2:PropertyPanel>
|
||||
</cc2:Pane>
|
||||
|
||||
<cc2:Pane ID="Pane1" runat="server" Width="216" Height="80">
|
||||
<asp:DataGrid ID="dgTabs" Width="100%" runat="server" CellPadding="2" HeaderStyle-CssClass="propertyHeader"
|
||||
ItemStyle-CssClass="propertyContent" GridLines="None" OnItemCommand="dgTabs_ItemCommand" OnItemDataBound="dgTabs_ItemDataBound" OnPreRender="dgTabs_PreRender"
|
||||
HeaderStyle-Font-Bold="True" AutoGenerateColumns="False" CssClass="tabs-table">
|
||||
<Columns>
|
||||
<asp:BoundColumn DataField="id" Visible="False"></asp:BoundColumn>
|
||||
<asp:TemplateColumn HeaderText="Name & sort order">
|
||||
<ItemTemplate>
|
||||
<i class="icon-navigation handle" style="display:inline-block; margin-top:5px;"></i>
|
||||
<asp:TextBox ID="txtTab" runat="server" Value='<%#DataBinder.Eval(Container.DataItem,"name")%>'></asp:TextBox>
|
||||
<asp:TextBox ID="txtSortOrder" runat="server" CssClass="sort-order" style="width:40px;background-color:#f2f2f2;" Value='<%#DataBinder.Eval(Container.DataItem,"order") %>'></asp:TextBox>
|
||||
<asp:Button ID="btnDelete" runat="server" Text="Delete" CommandName="Delete" CssClass="btn btn-small btn-danger" />
|
||||
</ItemTemplate>
|
||||
</asp:TemplateColumn>
|
||||
</Columns>
|
||||
</asp:DataGrid>
|
||||
<p style="text-align: center;">
|
||||
<asp:Literal ID="lttNoTabs" runat="server"></asp:Literal></p>
|
||||
</cc2:Pane>
|
||||
</asp:Panel>
|
||||
|
||||
<asp:Panel ID="pnlInfo" runat="server">
|
||||
|
||||
<cc2:Pane ID="Pane3" runat="server">
|
||||
<cc2:PropertyPanel ID="pp_name" runat="server" Text="Name">
|
||||
<asp:TextBox ID="txtName" CssClass="guiInputText guiInputStandardSize" runat="server"></asp:TextBox>
|
||||
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" ControlToValidate="txtName" runat="server" ErrorMessage="Name cannot be empty!"></asp:RequiredFieldValidator>
|
||||
</cc2:PropertyPanel>
|
||||
|
||||
<cc2:PropertyPanel ID="pp_alias" runat="server" Text="Alias">
|
||||
<asp:TextBox ID="txtAlias" CssClass="guiInputText guiInputStandardSize" runat="server"></asp:TextBox>
|
||||
<asp:RequiredFieldValidator Display="Dynamic" ControlToValidate="txtAlias" runat="server" ErrorMessage="Alias cannot be empty!"></asp:RequiredFieldValidator>
|
||||
<asp:CustomValidator Display="Dynamic" runat="server" ID="DuplicateAliasValidator" ErrorMessage="A type with this alias already exists"></asp:CustomValidator>
|
||||
</cc2:PropertyPanel>
|
||||
</cc2:Pane>
|
||||
|
||||
<cc2:Pane runat="server">
|
||||
<cc2:PropertyPanel ID="pp_icon" runat="server" Text="Icon">
|
||||
<div class="umbIconDropdownList">
|
||||
<a href="#" class="btn btn-link picker-icons"> <i class="<asp:Literal runat="server" ID="lt_icon" />"></i> Choose...</a>
|
||||
<asp:HiddenField ID="tb_icon" runat="server" />
|
||||
</div>
|
||||
</cc2:PropertyPanel>
|
||||
<cc2:PropertyPanel ID="pp_description" runat="server" Text="Description">
|
||||
<asp:TextBox ID="description" runat="server" CssClass="guiInputText guiInputStandardSize" TextMode="MultiLine" Rows="3"/>
|
||||
</cc2:PropertyPanel>
|
||||
</cc2:Pane>
|
||||
</asp:Panel>
|
||||
|
||||
|
||||
<asp:Panel ID="pnlStructure" runat="server">
|
||||
<cc2:Pane ID="Pane6" runat="server">
|
||||
<cc2:PropertyPanel ID="pp_Root" runat="server">
|
||||
<asp:CheckBox runat="server" ID="allowAtRoot" Text="Yes" /><br />
|
||||
</cc2:PropertyPanel>
|
||||
|
||||
<cc2:PropertyPanel ID="pp_isContainer" runat="server">
|
||||
<asp:CheckBox runat="server" ID="cb_isContainer" Text="Yes" />
|
||||
|
||||
<%if (cb_isContainer.Checked) { %>
|
||||
|
||||
<div id="containerConfigPanel">
|
||||
|
||||
<div class="umb-pane">
|
||||
<div class="umb-property">
|
||||
<div class="control-group umb-control-group">
|
||||
<div class="umb-el-wrap">
|
||||
<label class="control-label">
|
||||
<%=ui.Text("editcontenttype", "currentListView", Security.CurrentUser) %>
|
||||
<small><%=ui.Text("editcontenttype", "currentListViewDesc", Security.CurrentUser) %></small>
|
||||
</label>
|
||||
|
||||
<div class="controls controls-row">
|
||||
<strong></strong>
|
||||
|
||||
<em style="display:none;"> (<%=ui.Text("general", "default", Security.CurrentUser) %>)</em>
|
||||
|
||||
<br/>
|
||||
<a href="#" class="text-info">
|
||||
<%=ui.Text("general", "edit", Security.CurrentUser) %>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="controls controls-row">
|
||||
<button id="createListView" class="btn" type="button" style="display: none;">
|
||||
<%=ui.Text("editcontenttype", "createListView", Security.CurrentUser) %>
|
||||
</button>
|
||||
<button id="removeListView" class="btn btn-warning" type="button" style="display: none;">
|
||||
<%=ui.Text("editcontenttype", "removeListView", Security.CurrentUser) %>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<%--Scripting to for configuring a list view--%>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function () {
|
||||
|
||||
var editor = new Umbraco.Editors.EditContentType({
|
||||
configPanel: $("#containerConfigPanel"),
|
||||
createListViewButton: $("#createListView"),
|
||||
removeListViewButton: $("#removeListView"),
|
||||
isContainerChk: $("#<%= cb_isContainer.ClientID %>"),
|
||||
contentTypeAlias: "<%=ContentTypeAlias%>",
|
||||
contentTypeId: <%=ContentTypeId%>,
|
||||
dataTypeServiceBaseUrl: "<%=DataTypeControllerUrl %>",
|
||||
contentTypeServiceBaseUrl: "<%=ContentTypeControllerUrl %>",
|
||||
});
|
||||
|
||||
editor.init();
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
<%} %>
|
||||
|
||||
</cc2:PropertyPanel>
|
||||
|
||||
</cc2:Pane>
|
||||
|
||||
<cc2:Pane ID="Pane5" runat="server">
|
||||
<cc2:PropertyPanel ID="pp_allowedChildren" runat="server" Text="Allowed Child nodetypes">
|
||||
<asp:CheckBoxList ID="lstAllowedContentTypes" runat="server" EnableViewState="True"/>
|
||||
<asp:PlaceHolder ID="PlaceHolderAllowedContentTypes" runat="server"/>
|
||||
</cc2:PropertyPanel>
|
||||
</cc2:Pane>
|
||||
|
||||
<cc2:Pane ID="Pane9" runat="server">
|
||||
<cc2:PropertyPanel ID="pp_compositions" runat="server" Text="ContentType Compositions">
|
||||
<asp:CheckBoxList ID="lstContentTypeCompositions" runat="server" EnableViewState="True"/>
|
||||
<asp:PlaceHolder ID="PlaceHolderContentTypeCompositions" runat="server"/>
|
||||
</cc2:PropertyPanel>
|
||||
</cc2:Pane>
|
||||
</asp:Panel>
|
||||
|
||||
|
||||
<asp:Panel ID="pnlProperties" runat="server">
|
||||
<cc2:Pane ID="PanePropertiesInherited" runat="server" Visible="false">
|
||||
<p><strong>Master Content Type enabled</strong><br />This Content Type uses <em><asp:Literal ID="propertiesMasterContentTypeName" runat="server"></asp:Literal></em> as a Master Content Type. Properties from Master Content Types are not shown and can only be edited on the Master Content Type itself</p>
|
||||
</cc2:Pane>
|
||||
|
||||
<cc2:Pane ID="Pane4" runat="server" Width="216" Height="80">
|
||||
<div class="genericPropertyForm">
|
||||
<asp:PlaceHolder ID="PropertyTypeNew" runat="server"></asp:PlaceHolder>
|
||||
<asp:PlaceHolder ID="PropertyTypes" runat="server"></asp:PlaceHolder>
|
||||
</div>
|
||||
</cc2:Pane>
|
||||
</asp:Panel>
|
||||
<%-- cannot put a <%= block here 'cos it prevents the Controls collection from being modified = use a literal --%>
|
||||
<script type="text/javascript">
|
||||
$(function () {
|
||||
<asp:Literal runat="server" ID="checkTxtAliasJs" />
|
||||
});
|
||||
|
||||
|
||||
jQuery(document).ready(function () {
|
||||
|
||||
checkAlias('.prop-alias');
|
||||
|
||||
duplicatePropertyNameAsSafeAlias('ul.addNewProperty');
|
||||
|
||||
jQuery(".picker-icons").click(function(){
|
||||
var that = this;
|
||||
UmbClientMgr.openAngularModalWindow({
|
||||
template: 'views/common/dialogs/iconpicker.html',
|
||||
callback: function(data){
|
||||
jQuery(that).next().val(data);
|
||||
jQuery(that).find("i").attr("class", data);
|
||||
}});
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
$("table.tabs-table tr.propertyContent input.sort-order").keydown(function(e) {
|
||||
// Allow: backspace, delete, tab, escape, enter and .
|
||||
if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 190]) !== -1 ||
|
||||
// Allow: Ctrl+A
|
||||
(e.keyCode == 65 && e.ctrlKey === true) ||
|
||||
// Allow: home, end, left, right
|
||||
(e.keyCode >= 35 && e.keyCode <= 39)) {
|
||||
// let it happen, don't do anything
|
||||
return;
|
||||
}
|
||||
// Ensure that it is a number and stop the keypress
|
||||
if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
|
||||
e.preventDefault();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// Make each tr of the tabs table sortable (prevent dragging of header row, and set up a callback for when row dragged)
|
||||
$("table.tabs-table tbody").sortable({
|
||||
containment: 'parent',
|
||||
cancel: '.propertyHeader, input',
|
||||
tolerance: 'pointer',
|
||||
update: function (event, ui) {
|
||||
saveOrder();
|
||||
}
|
||||
});
|
||||
|
||||
// Fired after row dragged; go through each tr and save position to the hidden sort order field
|
||||
function saveOrder() {
|
||||
$("table.tabs-table tbody tr.propertyContent").each(function (index) {
|
||||
$("input.sort-order", this).val(index + 1);
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
</script>
|
||||
@@ -1,59 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.UI.WebControls;
|
||||
using AutoMapper;
|
||||
using Umbraco.Core;
|
||||
using Umbraco.Core.Models;
|
||||
using Umbraco.Web.Editors;
|
||||
using Umbraco.Web.Models.ContentEditing;
|
||||
|
||||
namespace Umbraco.Web.UI.Umbraco.Controls
|
||||
{
|
||||
public partial class ContentTypeControlNew : global::umbraco.controls.ContentTypeControlNew
|
||||
{
|
||||
protected string DataTypeControllerUrl { get; private set; }
|
||||
protected string ContentTypeControllerUrl { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Raises the <see cref="E:System.Web.UI.Control.Load"/> event.
|
||||
/// </summary>
|
||||
/// <param name="e">The <see cref="T:System.EventArgs"/> object that contains the event data. </param>
|
||||
protected override void OnLoad(EventArgs e)
|
||||
{
|
||||
base.OnLoad(e);
|
||||
|
||||
DataTypeControllerUrl = Url.GetUmbracoApiServiceBaseUrl<DataTypeController>(x => x.GetById(0));
|
||||
ContentTypeControllerUrl = Url.GetUmbracoApiServiceBaseUrl<ContentTypeController>(x => x.GetAssignedListViewDataType(0));
|
||||
}
|
||||
|
||||
protected void dgTabs_PreRender(object sender, EventArgs e)
|
||||
{
|
||||
dgTabs.UseAccessibleHeader = true; //to make sure we render th, not td
|
||||
|
||||
Table table = dgTabs.Controls[0] as Table;
|
||||
if (table != null && table.Rows.Count > 0)
|
||||
{
|
||||
// here we render <thead> and <tfoot>
|
||||
if (dgTabs.ShowHeader)
|
||||
table.Rows[0].TableSection = TableRowSection.TableHeader;
|
||||
if (dgTabs.ShowFooter)
|
||||
table.Rows[table.Rows.Count - 1].TableSection = TableRowSection.TableFooter;
|
||||
}
|
||||
}
|
||||
|
||||
protected void dgTabs_ItemDataBound(object sender, DataGridItemEventArgs e)
|
||||
{
|
||||
Table table = dgTabs.Controls[0] as Table;
|
||||
if (table != null && table.Rows.Count > 0)
|
||||
{
|
||||
if (dgTabs.ShowHeader)
|
||||
table.Rows[0].TableSection = TableRowSection.TableHeader;
|
||||
if (dgTabs.ShowFooter)
|
||||
table.Rows[table.Rows.Count - 1].TableSection = TableRowSection.TableFooter;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Umbraco.Web.UI.Umbraco.Controls {
|
||||
|
||||
|
||||
public partial class ContentTypeControlNew {
|
||||
|
||||
/// <summary>
|
||||
/// JsInclude control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::ClientDependency.Core.Controls.JsInclude JsInclude;
|
||||
}
|
||||
}
|
||||
@@ -1,80 +0,0 @@
|
||||
<%@ Control Language="c#" AutoEventWireup="True" Inherits="umbraco.controls.GenericProperties.GenericProperty" TargetSchema="http://schemas.microsoft.com/intellisense/ie5" %>
|
||||
<%@ Register TagPrefix="cc1" Namespace="umbraco.uicontrols" Assembly="controls" %>
|
||||
|
||||
<li id="<%=this.FullId%>" onmousedown="activeDragId = this.id;">
|
||||
<div class="propertyForm" id="<%=this.FullId%>_form">
|
||||
<div id="desc<%=this.ClientID%>" ondblclick="expandCollapse('<%=this.ClientID%>'); document.getElementById('<%=this.ClientID%>_tbName').focus();">
|
||||
<div class="header">
|
||||
<i class="icon-navigation handle"></i>
|
||||
|
||||
<asp:LinkButton ID="DeleteButton2" runat="server">
|
||||
<i class="btn btn-mini icon-delete"></i>
|
||||
</asp:LinkButton>
|
||||
|
||||
<a href="javascript:expandCollapse('<%=this.ClientID%>');">
|
||||
|
||||
|
||||
<i class="toggle-button btn btn-mini icon-navigation-down"></i>
|
||||
<asp:Literal ID="FullHeader" runat="server"></asp:Literal>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="edit<%=this.ClientID%>" style="DISPLAY: none;">
|
||||
<div class="header">
|
||||
<i class="icon-navigation handle"></i>
|
||||
<asp:LinkButton ID="DeleteButton" runat="server">
|
||||
<i class="btn btn-mini icon-delete"></i>
|
||||
</asp:LinkButton>
|
||||
<a href="javascript:expandCollapse('<%=this.ClientID%>');">
|
||||
<i class="toggle-button btn btn-mini icon-navigation-up"></i>
|
||||
Edit "<asp:Literal ID="Header" runat="server"></asp:Literal>"
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<cc1:Pane ID="Pane1" runat="server">
|
||||
<cc1:PropertyPanel ID="PropertyPanel1" runat="server" Text="Name">
|
||||
<asp:TextBox ID="tbName" runat="server" CssClass="propertyFormInput prop-name"></asp:TextBox>
|
||||
</cc1:PropertyPanel>
|
||||
|
||||
<cc1:PropertyPanel ID="PropertyPanel2" runat="server" Text="Alias">
|
||||
<asp:TextBox ID="tbAlias" runat="server" CssClass="propertyFormInput prop-alias"></asp:TextBox>
|
||||
</cc1:PropertyPanel>
|
||||
|
||||
<cc1:PropertyPanel ID="PropertyPanel3" runat="server" Text="Type">
|
||||
<asp:DropDownList ID="ddlTypes" runat="server" CssClass="propertyFormInput"></asp:DropDownList>
|
||||
</cc1:PropertyPanel>
|
||||
|
||||
<cc1:PropertyPanel ID="PropertyPanel4" runat="server" Text="Tab">
|
||||
<asp:DropDownList ID="ddlTab" runat="server" CssClass="propertyFormInput"></asp:DropDownList>
|
||||
</cc1:PropertyPanel>
|
||||
|
||||
<cc1:PropertyPanel ID="PropertyPanel5" runat="server" Text="Mandatory" >
|
||||
<asp:CheckBox ID="checkMandatory" runat="server"></asp:CheckBox>
|
||||
</cc1:PropertyPanel>
|
||||
|
||||
<cc1:PropertyPanel ID="PropertyPanel6" runat="server" Text="Validation">
|
||||
<asp:TextBox ID="tbValidation" runat="server" TextMode="MultiLine" CssClass="propertyFormInput"></asp:TextBox><br />
|
||||
<asp:CustomValidator runat="server" ID="cvValidation" ControlToValidate="tbValidation" ErrorMessage="Invalid expression" ClientValidationFunction="ValidateValidation" /><br />
|
||||
<small>
|
||||
<asp:HyperLink ID="validationLink" runat="server">Search for a regular expression</asp:HyperLink></small>
|
||||
</cc1:PropertyPanel>
|
||||
|
||||
<cc1:PropertyPanel ID="PropertyPanel7" runat="server" Text="Description">
|
||||
<asp:TextBox ID="tbDescription" runat="server" CssClass="propertyFormInput" TextMode="MultiLine"></asp:TextBox>
|
||||
</cc1:PropertyPanel>
|
||||
</cc1:Pane>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<script type="text/javascript">
|
||||
function ValidateValidation(sender, args) {
|
||||
try {
|
||||
var patt = new RegExp(args.Value);
|
||||
args.IsValid = true;
|
||||
|
||||
} catch (e) {
|
||||
args.IsValid = false;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -1,37 +0,0 @@
|
||||
<%@ Page Async="true" language="c#" MasterPageFile="../masterpages/umbracoPage.Master" AutoEventWireup="True" Inherits="umbraco.cms.presentation.members.EditMemberType" %>
|
||||
<%@ Register TagPrefix="cc1" Namespace="umbraco.uicontrols" Assembly="controls" %>
|
||||
<%@ Register TagPrefix="uc1" TagName="ContentTypeControlNew" Src="../controls/ContentTypeControlNew.ascx" %>
|
||||
<%@ Register Namespace="umbraco" TagPrefix="umb" Assembly="umbraco" %>
|
||||
|
||||
<asp:Content ContentPlaceHolderID="head" runat="server">
|
||||
<style type="text/css">
|
||||
.gridHeader{border-bottom:2px solid #D9D7D7;}
|
||||
.gridItem{border-color: #D9D7D7;}
|
||||
</style>
|
||||
</asp:Content>
|
||||
<asp:Content ContentPlaceHolderID="body" runat="server">
|
||||
<uc1:ContentTypeControlNew id="ContentTypeControlNew1" HideStructure="true" runat="server"></uc1:ContentTypeControlNew>
|
||||
<cc1:Pane id="Pane1andmore" runat="server">
|
||||
|
||||
<asp:DataGrid id="dgEditExtras" runat="server" ItemStyle-BorderStyle="NotSet" HeaderStyle-BorderStyle="NotSet" BorderStyle="NotSet" AutoGenerateColumns="False" CssClass="table" OnItemDataBound="dgEditExtras_itemdatabound">
|
||||
<Columns>
|
||||
<asp:BoundColumn DataField="id" HeaderText="" Visible="False"></asp:BoundColumn>
|
||||
<asp:BoundColumn DataField="name" HeaderText="Property name"></asp:BoundColumn>
|
||||
|
||||
<asp:TemplateColumn HeaderText="Member can edit">
|
||||
<ItemTemplate>
|
||||
<asp:CheckBox ID="ckbMemberCanEdit" Runat="server"></asp:CheckBox>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateColumn>
|
||||
|
||||
<asp:TemplateColumn HeaderText="Show on profile">
|
||||
<ItemTemplate>
|
||||
<asp:CheckBox ID="ckbMemberCanView" Runat="server"></asp:CheckBox>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateColumn>
|
||||
|
||||
</Columns>
|
||||
</asp:DataGrid>
|
||||
|
||||
</cc1:Pane>
|
||||
</asp:Content>
|
||||
@@ -1,15 +0,0 @@
|
||||
<%@ Register TagPrefix="cc2" Namespace="umbraco.uicontrols" Assembly="controls" %>
|
||||
|
||||
<%@ Page Language="c#" CodeBehind="EditMediaType.aspx.cs" MasterPageFile="../masterpages/umbracoPage.Master"
|
||||
Async="true" AsyncTimeOut="300"
|
||||
AutoEventWireup="True" Inherits="umbraco.cms.presentation.settings.EditMediaType" %>
|
||||
|
||||
<%@ Register TagPrefix="uc1" TagName="ContentTypeControlNew" Src="../controls/ContentTypeControlNew.ascx" %>
|
||||
<asp:Content ContentPlaceHolderID="body" runat="server">
|
||||
<uc1:ContentTypeControlNew ID="ContentTypeControlNew1" runat="server"></uc1:ContentTypeControlNew>
|
||||
<script type="text/javascript">
|
||||
jQuery(document).ready(function () {
|
||||
UmbClientMgr.appActions().bindSaveShortCut();
|
||||
});
|
||||
</script>
|
||||
</asp:Content>
|
||||
@@ -1,57 +0,0 @@
|
||||
<%@ Page Language="c#" CodeBehind="EditNodeTypeNew.aspx.cs" AutoEventWireup="True" ValidateRequest="false"
|
||||
Async="true" AsyncTimeOut="300" Trace="false" Inherits="Umbraco.Web.UI.Umbraco.Settings.EditNodeTypeNew" MasterPageFile="../masterpages/umbracoPage.Master" %>
|
||||
|
||||
<%@ Register TagPrefix="cc1" Namespace="umbraco.uicontrols" Assembly="controls" %>
|
||||
<%@ Register TagPrefix="uc1" TagName="ContentTypeControlNew" Src="../controls/ContentTypeControlNew.ascx" %>
|
||||
|
||||
<asp:Content ContentPlaceHolderID="head" runat="server">
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function () {
|
||||
|
||||
UmbClientMgr.appActions().bindSaveShortCut();
|
||||
|
||||
// Auto selection/de-selection of default template based on allow templates
|
||||
$("#<%= templateList.ClientID %> input[type='checkbox']").on("change", function() {
|
||||
var checkbox = $(this);
|
||||
var ddl = $("#<%= ddlTemplates.ClientID %>");
|
||||
// If default template is not set, and an allowed template is selected, auto-select the default template
|
||||
if (checkbox.is(":checked")) {
|
||||
if (ddl.val() == "0") {
|
||||
ddl.val(checkbox.val());
|
||||
}
|
||||
}
|
||||
else {
|
||||
// If allowed template has been de-selected, and it's selected as the default, then de-select the default template
|
||||
if (ddl.val() == checkbox.val()) {
|
||||
ddl.val("0");
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Auto selection allowed template based on default template
|
||||
$("#<%= ddlTemplates.ClientID %>").on("change", function () {
|
||||
var ddl = $(this);
|
||||
if (ddl.val() != "0") {
|
||||
$("#<%= templateList.ClientID %> input[type='checkbox'][value='" + ddl.val() + "']").prop("checked", true);
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</asp:Content>
|
||||
|
||||
<asp:Content ContentPlaceHolderID="body" runat="server">
|
||||
<uc1:ContentTypeControlNew ID="ContentTypeControlNew1" runat="server"></uc1:ContentTypeControlNew>
|
||||
|
||||
<cc1:Pane ID="tmpPane" runat="server">
|
||||
<cc1:PropertyPanel Text="Allowed templates" runat="server">
|
||||
<div class="guiInputStandardSize" style="border: #ccc 1px solid; background: #fff;
|
||||
overflow: auto; height: 170px;">
|
||||
<asp:CheckBoxList ID="templateList" runat="server" />
|
||||
</div>
|
||||
</cc1:PropertyPanel>
|
||||
<cc1:PropertyPanel Text="Default template" runat="server">
|
||||
<asp:DropDownList ID="ddlTemplates" CssClass="guiInputText guiInputStandardSize"
|
||||
runat="server" />
|
||||
</cc1:PropertyPanel>
|
||||
</cc1:Pane>
|
||||
</asp:Content>
|
||||
@@ -1,11 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
|
||||
namespace Umbraco.Web.UI.Umbraco.Settings
|
||||
{
|
||||
public partial class EditNodeTypeNew : global::umbraco.settings.EditContentTypeNew
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Umbraco.Web.UI.Umbraco.Settings {
|
||||
|
||||
|
||||
public partial class EditNodeTypeNew {
|
||||
|
||||
/// <summary>
|
||||
/// allowedTemplates control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::umbraco.uicontrols.PropertyPanel allowedTemplates;
|
||||
|
||||
/// <summary>
|
||||
/// defaultTemplate control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::umbraco.uicontrols.PropertyPanel defaultTemplate;
|
||||
}
|
||||
}
|
||||
@@ -1,108 +0,0 @@
|
||||
Umbraco.Sys.registerNamespace("Umbraco.Editors");
|
||||
|
||||
(function ($) {
|
||||
|
||||
var _model = {};
|
||||
var _opts = null;
|
||||
|
||||
//updates the UI elements
|
||||
function updateElements() {
|
||||
_opts.configPanel.find("strong").html(_model.listViewName);
|
||||
if (_model.isSystem) {
|
||||
_opts.createListViewButton.show();
|
||||
_opts.removeListViewButton.hide();
|
||||
_opts.configPanel.find("em").show();
|
||||
}
|
||||
else {
|
||||
_opts.createListViewButton.hide();
|
||||
_opts.removeListViewButton.show();
|
||||
_opts.configPanel.find("em").hide();
|
||||
}
|
||||
}
|
||||
|
||||
function populateData() {
|
||||
//get init data
|
||||
|
||||
$.get(_opts.contentTypeServiceBaseUrl + "GetAssignedListViewDataType?contentTypeId=" + _opts.contentTypeId, function (result) {
|
||||
_model.isSystem = result.isSystem;
|
||||
_model.listViewName = result.name;
|
||||
_model.listViewId = result.id;
|
||||
updateElements();
|
||||
});
|
||||
}
|
||||
|
||||
$.ajaxSetup({
|
||||
beforeSend: function (xhr) {
|
||||
xhr.setRequestHeader("X-XSRF-TOKEN", $.cookie("XSRF-TOKEN"));
|
||||
},
|
||||
contentType: 'application/json;charset=utf-8',
|
||||
dataType: "json",
|
||||
dataFilter: function (data, dataType) {
|
||||
if ((typeof data) === "string") {
|
||||
//trim the csrf bits off
|
||||
data = data.replace(/^\)\]\}\'\,\n/, "");
|
||||
}
|
||||
return data;
|
||||
}
|
||||
});
|
||||
|
||||
Umbraco.Editors.EditContentType = base2.Base.extend({
|
||||
|
||||
// Constructor
|
||||
constructor: function(opts) {
|
||||
// Merge options with default
|
||||
_opts = $.extend({
|
||||
// Default options go here
|
||||
}, opts);
|
||||
},
|
||||
|
||||
init: function () {
|
||||
//wire up handlers
|
||||
|
||||
_opts.configPanel.find("a").click(function() {
|
||||
UmbClientMgr.contentFrame('#/developer/datatype/edit/' + _model.listViewId);
|
||||
});
|
||||
|
||||
_opts.isContainerChk.on("change", function () {
|
||||
if ($(this).is(":checked")) {
|
||||
_opts.configPanel.slideDown();
|
||||
}
|
||||
else {
|
||||
_opts.configPanel.slideUp();
|
||||
}
|
||||
});
|
||||
|
||||
_opts.createListViewButton.click(function (event) {
|
||||
event.preventDefault();
|
||||
|
||||
var data = {
|
||||
parentId: -1,
|
||||
id: 0,
|
||||
preValues: [],
|
||||
action: "SaveNew",
|
||||
name: "List View - " + _opts.contentTypeAlias,
|
||||
selectedEditor: "Umbraco.ListView"
|
||||
};
|
||||
|
||||
$.post(_opts.dataTypeServiceBaseUrl + "PostSave", JSON.stringify(data), function (result) {
|
||||
_model.isSystem = result.isSystem;
|
||||
_model.listViewName = result.name;
|
||||
_model.listViewId = result.id;
|
||||
updateElements();
|
||||
});
|
||||
});
|
||||
|
||||
_opts.removeListViewButton.click(function (event) {
|
||||
event.preventDefault();
|
||||
|
||||
$.post(_opts.dataTypeServiceBaseUrl + "DeleteById?id=" + _model.listViewId, function (result) {
|
||||
//re-get the data
|
||||
populateData();
|
||||
});
|
||||
});
|
||||
|
||||
populateData();
|
||||
|
||||
}
|
||||
});
|
||||
})(jQuery);
|
||||
@@ -1,53 +0,0 @@
|
||||
var activeDragId = "";
|
||||
function expandCollapse(theId) {
|
||||
|
||||
var edit = document.getElementById("edit" + theId);
|
||||
|
||||
if (edit.style.display == 'none') {
|
||||
edit.style.display = 'block';
|
||||
document.getElementById("desc" + theId).style.display = 'none';
|
||||
}
|
||||
else {
|
||||
edit.style.display = 'none';
|
||||
document.getElementById("desc" + theId).style.display = 'block';
|
||||
}
|
||||
}
|
||||
function duplicatePropertyNameAsSafeAlias(propertySelector) {
|
||||
$(propertySelector).each(function() {
|
||||
var prop = $(this);
|
||||
var inputName = prop.find('.prop-name');
|
||||
var inputAlias = prop.find('.prop-alias');
|
||||
inputName.on('input blur', function (event) {
|
||||
getSafeAlias(inputAlias, inputName.val(), false, function (alias) {
|
||||
if (!inputAlias.data('dirty'))
|
||||
inputAlias.val(alias);
|
||||
});
|
||||
});
|
||||
inputAlias.on('input', function(event) {
|
||||
inputName.off('input blur');
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function checkAlias(aliasSelector) {
|
||||
$(aliasSelector).on('input', function (event) {
|
||||
var input = $(this);
|
||||
input.data('dirty', true);
|
||||
var value = input.val();
|
||||
validateSafeAlias(input, value, false, function (isSafe) {
|
||||
input.toggleClass('highlight-error', !isSafe);
|
||||
});
|
||||
}).on('blur', function(event) {
|
||||
var input = $(this);
|
||||
if (!input.data('dirty')) return;
|
||||
input.removeData('dirty');
|
||||
var value = input.val();
|
||||
getSafeAlias(input, value, true, function (alias) {
|
||||
if (value.toLowerCase() != alias.toLowerCase())
|
||||
input.val(alias);
|
||||
input.removeClass('highlight-error');
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// validateSafeAlias and getSafeAlias are defined by UmbracoCasingRules.aspx
|
||||
@@ -1,107 +0,0 @@
|
||||
|
||||
.genericPropertyForm {
|
||||
|
||||
}
|
||||
.genericPropertyForm h2 {
|
||||
font-size: 16px;
|
||||
line-height: 20px;
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
|
||||
.genericPropertyList .header{
|
||||
padding: 4px;
|
||||
}
|
||||
.genericPropertyList .umb-pane{
|
||||
margin: 10px;
|
||||
}
|
||||
|
||||
.genericPropertyList {
|
||||
margin: 0px 0px 30px 0px;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.genericPropertyList .delete-button, .genericPropertyList .toggle-button{
|
||||
float: right;
|
||||
margin-left: 3px;
|
||||
border: none;
|
||||
background: none;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.genericPropertyList .delete-button i {
|
||||
background: none;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.handle{
|
||||
color: #ccc;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.addNewProperty .handle {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.genericPropertyList li {
|
||||
display: block;
|
||||
position: relative;
|
||||
border-bottom: 1px solid #eee;
|
||||
margin-bottom: 3px;
|
||||
cursor: move;
|
||||
}
|
||||
|
||||
.genericPropertyList li .delete-button i {
|
||||
color: #b94a48;
|
||||
}
|
||||
|
||||
.addNewProperty li {
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.genericPropertyList li table {
|
||||
display: block;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.genericPropertyList li table th {
|
||||
width: 140px;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
.propertyFormInput {
|
||||
width: 300px;
|
||||
z-index: 9999;
|
||||
}
|
||||
|
||||
.propertyForm SELECT {
|
||||
width: 300px;
|
||||
}
|
||||
|
||||
.propertyForm h3 a {
|
||||
color: #000;
|
||||
text-decoration: none;
|
||||
font-size: 14px;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.genericPropertyList li img {
|
||||
background: red;
|
||||
z-index: 9999;
|
||||
position: relative;
|
||||
border-right: medium none;
|
||||
border-top: medium none;
|
||||
border-left: medium none;
|
||||
margin-right: 5px;
|
||||
border-bottom: medium none;
|
||||
}
|
||||
.genericPropertyList li h3 input {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.aliasValidationError
|
||||
{
|
||||
background-color: #ff9999;
|
||||
border: 1px solid: red;
|
||||
}
|
||||
@@ -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>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,456 +0,0 @@
|
||||
using System;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.Mvc;
|
||||
using System.Web.Routing;
|
||||
using System.Web.UI.WebControls;
|
||||
using ClientDependency.Core;
|
||||
using umbraco.BasePages;
|
||||
using umbraco.BusinessLogic;
|
||||
using umbraco.cms.businesslogic;
|
||||
using umbraco.cms.businesslogic.propertytype;
|
||||
using Umbraco.Core;
|
||||
using Umbraco.Core.Configuration;
|
||||
|
||||
namespace umbraco.controls.GenericProperties
|
||||
{
|
||||
/// <summary>
|
||||
/// Summary description for GenericProperty.
|
||||
/// </summary>
|
||||
[ClientDependency(ClientDependencyType.Css, "GenericProperty/genericproperty.css", "UmbracoClient")]
|
||||
[ClientDependency(ClientDependencyType.Javascript, "GenericProperty/genericproperty.js", "UmbracoClient")]
|
||||
public partial class GenericProperty : System.Web.UI.UserControl
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Constructor
|
||||
/// </summary>
|
||||
public GenericProperty()
|
||||
{
|
||||
FullId = "";
|
||||
AllowPropertyEdit = true;
|
||||
}
|
||||
|
||||
private cms.businesslogic.datatype.DataTypeDefinition[] _dataTypeDefinitions;
|
||||
private int _tabId = 0;
|
||||
|
||||
public event EventHandler Delete;
|
||||
|
||||
/// <summary>
|
||||
/// Defines whether the property can be edited in the UI
|
||||
/// </summary>
|
||||
[Obsolete("Use the combination of AllowAliasEdit,AllowValidationEdit,AllowDelete,AllowDataTypeEdit instead")]
|
||||
public bool AllowPropertyEdit
|
||||
{
|
||||
get { return AllowAliasEdit && AllowValidationEdit && AllowDelete && AllowDataTypeEdit; }
|
||||
set { AllowAliasEdit = AllowValidationEdit = AllowDelete = AllowDataTypeEdit = true; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Defines whether the property's name can be edited in the UI
|
||||
/// </summary>
|
||||
public bool AllowNameEdit { get; set; }
|
||||
public bool AllowAliasEdit { get; set; }
|
||||
public bool AllowDataTypeEdit { get; set; }
|
||||
public bool AllowTabEdit { get; set; }
|
||||
public bool AllowValidationEdit { get; set; }
|
||||
public bool AllowDescriptionEdit { get; set; }
|
||||
public bool AllowDelete { get; set; }
|
||||
|
||||
public cms.businesslogic.datatype.DataTypeDefinition[] DataTypeDefinitions
|
||||
{
|
||||
set { _dataTypeDefinitions = value; }
|
||||
}
|
||||
|
||||
public int TabId
|
||||
{
|
||||
set { _tabId = value; }
|
||||
}
|
||||
|
||||
public PropertyType PropertyType { get; set; }
|
||||
|
||||
public ContentType.TabI[] Tabs { get; set; }
|
||||
|
||||
public string Name
|
||||
{
|
||||
get { return tbName.Text; }
|
||||
}
|
||||
|
||||
public string Alias
|
||||
{
|
||||
get { return tbAlias.Text; } // FIXME so we blindly trust the UI for safe aliases?!
|
||||
}
|
||||
|
||||
public string Description
|
||||
{
|
||||
get { return tbDescription.Text; }
|
||||
}
|
||||
public string Validation
|
||||
{
|
||||
get { return tbValidation.Text; }
|
||||
}
|
||||
public bool Mandatory
|
||||
{
|
||||
get { return checkMandatory.Checked; }
|
||||
}
|
||||
public int Tab
|
||||
{
|
||||
get { return int.Parse(ddlTab.SelectedValue); }
|
||||
}
|
||||
|
||||
public string FullId { get; set; }
|
||||
|
||||
public int Id { get; set; }
|
||||
|
||||
public int Type
|
||||
{
|
||||
get { return int.Parse(ddlTypes.SelectedValue); }
|
||||
}
|
||||
|
||||
public void Clear()
|
||||
{
|
||||
tbName.Text = "";
|
||||
tbAlias.Text = "";
|
||||
tbValidation.Text = "";
|
||||
tbDescription.Text = "";
|
||||
ddlTab.SelectedIndex = 0;
|
||||
SetDefaultDocumentTypeProperty();
|
||||
checkMandatory.Checked = false;
|
||||
}
|
||||
|
||||
protected void Page_Load(object sender, System.EventArgs e)
|
||||
{
|
||||
if (!IsPostBack)
|
||||
{
|
||||
UpdateInterface();
|
||||
}
|
||||
}
|
||||
|
||||
//SD: this is temporary in v4, in v6 we have a proper user control hierarchy
|
||||
//containing this property.
|
||||
//this is required due to this issue: http://issues.umbraco.org/issue/u4-493
|
||||
//because we need to execute some code in async but due to the localization
|
||||
//framework requiring an httpcontext.current, it will not work.
|
||||
//http://issues.umbraco.org/issue/u4-2143
|
||||
//so, we are going to make a property here and ensure that the basepage has
|
||||
//resolved the user before we execute the async task so that in this method
|
||||
//our calls to ui.text will include the current user and not rely on the
|
||||
//httpcontext.current. This also makes it perform better:
|
||||
// http://issues.umbraco.org/issue/U4-2142
|
||||
private User CurrentUser
|
||||
{
|
||||
get { return ((BasePage)Page).getUser(); }
|
||||
}
|
||||
|
||||
public void UpdateInterface()
|
||||
{
|
||||
// Name and alias
|
||||
if (PropertyType != null)
|
||||
{
|
||||
Id = PropertyType.Id;
|
||||
//form.Attributes.Add("style", "display: none;");
|
||||
tbName.Text = PropertyType.GetRawName();
|
||||
tbAlias.Text = PropertyType.Alias;
|
||||
FullHeader.Text = PropertyType.GetRawName() + " (" + PropertyType.Alias + "), Type: " + PropertyType.DataTypeDefinition.Text; ;
|
||||
Header.Text = PropertyType.GetRawName();
|
||||
|
||||
DeleteButton.CssClass = "delete-button";
|
||||
DeleteButton.Attributes.Add("onclick", "return confirm('" + ui.Text("areyousure", CurrentUser) + "');");
|
||||
|
||||
DeleteButton2.CssClass = "delete-button";
|
||||
DeleteButton2.Attributes.Add("onclick", "return confirm('" + ui.Text("areyousure", CurrentUser) + "');");
|
||||
|
||||
DeleteButton.Visible = AllowDelete;
|
||||
DeleteButton2.Visible = AllowDelete;
|
||||
|
||||
//alias visibility
|
||||
PropertyPanel2.Visible = AllowAliasEdit;
|
||||
//chk mandatory visibility
|
||||
PropertyPanel5.Visible = AllowValidationEdit;
|
||||
// validation visibility
|
||||
PropertyPanel6.Visible = AllowValidationEdit;
|
||||
// drop down data types visibility
|
||||
PropertyPanel3.Visible = AllowDataTypeEdit;
|
||||
// name visibility
|
||||
PropertyPanel1.Visible = AllowNameEdit;
|
||||
// desc visibility
|
||||
PropertyPanel7.Visible = AllowDescriptionEdit;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Add new header
|
||||
FullHeader.Text = "Click here to add a new property";
|
||||
Header.Text = "Create new property";
|
||||
|
||||
// Hide image button
|
||||
DeleteButton.Visible = false;
|
||||
DeleteButton2.Visible = false;
|
||||
}
|
||||
validationLink.NavigateUrl = "#";
|
||||
validationLink.Attributes["onclick"] = ClientTools.Scripts.OpenModalWindow("dialogs/regexWs.aspx?target=" + tbValidation.ClientID, "Search for regular expression", 600, 500) + ";return false;";
|
||||
|
||||
// Data type definitions
|
||||
if (_dataTypeDefinitions != null)
|
||||
{
|
||||
ddlTypes.Items.Clear();
|
||||
var itemSelected = false;
|
||||
foreach (cms.businesslogic.datatype.DataTypeDefinition dt in _dataTypeDefinitions)
|
||||
{
|
||||
var li = new ListItem(dt.Text, dt.Id.ToString(CultureInfo.InvariantCulture));
|
||||
if ((PropertyType != null && PropertyType.DataTypeDefinition.Id == dt.Id))
|
||||
{
|
||||
li.Selected = true;
|
||||
itemSelected = true;
|
||||
}
|
||||
|
||||
ddlTypes.Items.Add(li);
|
||||
}
|
||||
|
||||
// If item not selected from previous edit or load, set to default according to settings
|
||||
if (!itemSelected)
|
||||
{
|
||||
SetDefaultDocumentTypeProperty();
|
||||
}
|
||||
}
|
||||
|
||||
// tabs
|
||||
if (Tabs != null)
|
||||
{
|
||||
ddlTab.Items.Clear();
|
||||
for (int i = 0; i < Tabs.Length; i++)
|
||||
{
|
||||
ListItem li = new ListItem(Tabs[i].Caption, Tabs[i].Id.ToString());
|
||||
if (Tabs[i].Id == _tabId)
|
||||
li.Selected = true;
|
||||
ddlTab.Items.Add(li);
|
||||
}
|
||||
}
|
||||
ListItem liGeneral = new ListItem("Generic Properties", "0");
|
||||
if (_tabId == 0)
|
||||
liGeneral.Selected = true;
|
||||
ddlTab.Items.Add(liGeneral);
|
||||
|
||||
// mandatory
|
||||
if (PropertyType != null && PropertyType.Mandatory)
|
||||
checkMandatory.Checked = true;
|
||||
|
||||
// validation
|
||||
if (PropertyType != null && string.IsNullOrEmpty(PropertyType.ValidationRegExp) == false)
|
||||
tbValidation.Text = PropertyType.ValidationRegExp;
|
||||
|
||||
// description
|
||||
if (PropertyType != null && PropertyType.Description != "")
|
||||
tbDescription.Text = PropertyType.GetRawDescription();
|
||||
}
|
||||
|
||||
private void SetDefaultDocumentTypeProperty()
|
||||
{
|
||||
var itemToSelect = ddlTypes.Items.Cast<ListItem>()
|
||||
.FirstOrDefault(item => item.Text.ToLowerInvariant() == UmbracoConfig.For.UmbracoSettings().Content.DefaultDocumentTypeProperty.ToLowerInvariant());
|
||||
|
||||
if (itemToSelect != null)
|
||||
{
|
||||
itemToSelect.Selected = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
ddlTypes.SelectedIndex = -1;
|
||||
}
|
||||
}
|
||||
|
||||
protected void defaultDeleteHandler(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
override protected void OnInit(EventArgs e)
|
||||
{
|
||||
base.OnInit(e);
|
||||
|
||||
DeleteButton.Click += DeleteButton_Click;
|
||||
DeleteButton2.Click += DeleteButton2_Click;
|
||||
Delete += defaultDeleteHandler;
|
||||
|
||||
// [ClientDependency(ClientDependencyType.Javascript, "js/UmbracoCasingRules.aspx", "UmbracoRoot")]
|
||||
var loader = ClientDependency.Core.Controls.ClientDependencyLoader.GetInstance(new HttpContextWrapper(Context));
|
||||
var helper = new UrlHelper(new RequestContext(new HttpContextWrapper(Context), new RouteData()));
|
||||
loader.RegisterDependency(helper.GetCoreStringsControllerPath() + "ServicesJavaScript", ClientDependencyType.Javascript);
|
||||
}
|
||||
|
||||
void DeleteButton2_Click(object sender, EventArgs e)
|
||||
{
|
||||
Delete(this, new EventArgs());
|
||||
}
|
||||
|
||||
void DeleteButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
Delete(this, new EventArgs());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// DeleteButton2 control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.LinkButton DeleteButton2;
|
||||
|
||||
/// <summary>
|
||||
/// FullHeader control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Literal FullHeader;
|
||||
|
||||
/// <summary>
|
||||
/// DeleteButton control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.LinkButton DeleteButton;
|
||||
|
||||
/// <summary>
|
||||
/// Header control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Literal Header;
|
||||
|
||||
/// <summary>
|
||||
/// tbName control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox tbName;
|
||||
|
||||
/// <summary>
|
||||
/// PropertyPanel1 control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::umbraco.uicontrols.PropertyPanel PropertyPanel1;
|
||||
|
||||
/// <summary>
|
||||
/// tbAlias control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox tbAlias;
|
||||
|
||||
/// <summary>
|
||||
/// PropertyPanel2 control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::umbraco.uicontrols.PropertyPanel PropertyPanel2;
|
||||
|
||||
/// <summary>
|
||||
/// ddlTypes control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.DropDownList ddlTypes;
|
||||
|
||||
/// <summary>
|
||||
/// PropertyPanel3 control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::umbraco.uicontrols.PropertyPanel PropertyPanel3;
|
||||
|
||||
/// <summary>
|
||||
/// ddlTab control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.DropDownList ddlTab;
|
||||
|
||||
/// <summary>
|
||||
/// PropertyPanel4 control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::umbraco.uicontrols.PropertyPanel PropertyPanel4;
|
||||
|
||||
/// <summary>
|
||||
/// checkMandatory control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox checkMandatory;
|
||||
|
||||
/// <summary>
|
||||
/// PropertyPanel5 control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::umbraco.uicontrols.PropertyPanel PropertyPanel5;
|
||||
|
||||
/// <summary>
|
||||
/// tbValidation control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox tbValidation;
|
||||
|
||||
/// <summary>
|
||||
/// validationLink control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.HyperLink validationLink;
|
||||
|
||||
/// <summary>
|
||||
/// PropertyPanel6 control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::umbraco.uicontrols.PropertyPanel PropertyPanel6;
|
||||
|
||||
/// <summary>
|
||||
/// tbDescription control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox tbDescription;
|
||||
|
||||
protected global::umbraco.uicontrols.PropertyPanel PropertyPanel7;
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,131 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Umbraco.Core.IO;
|
||||
using umbraco.cms.businesslogic.propertytype;
|
||||
|
||||
namespace umbraco.controls.GenericProperties
|
||||
{
|
||||
/// <summary>
|
||||
/// Summary description for GenericPropertyWrapper.
|
||||
/// </summary>
|
||||
public class GenericPropertyWrapper : System.Web.UI.WebControls.PlaceHolder
|
||||
{
|
||||
private readonly bool _allowNameEdit = true;
|
||||
private readonly bool _allowDataTypeEdit = true;
|
||||
private readonly bool _allowAliasEdit = true;
|
||||
private readonly bool _allowTabEdit = true;
|
||||
private readonly bool _allowValidationEdit = true;
|
||||
private readonly bool _allowDescEdit = true;
|
||||
private readonly bool _allowDelete = true;
|
||||
|
||||
private GenericProperty _gp;
|
||||
private cms.businesslogic.ContentType.TabI[] _tabs;
|
||||
private cms.businesslogic.datatype.DataTypeDefinition[] _dtds;
|
||||
private int _tabId;
|
||||
private string _fullId = "";
|
||||
|
||||
public event EventHandler Delete;
|
||||
|
||||
public PropertyType PropertyType { get; set; }
|
||||
|
||||
public int TabId
|
||||
{
|
||||
set { _tabId = value; }
|
||||
}
|
||||
|
||||
public cms.businesslogic.datatype.DataTypeDefinition[] DataTypeDefinitions
|
||||
{
|
||||
set { _dtds = value; }
|
||||
}
|
||||
|
||||
public cms.businesslogic.web.DocumentType.TabI[] Tabs
|
||||
{
|
||||
set { _tabs = value; }
|
||||
}
|
||||
|
||||
public string FullId
|
||||
{
|
||||
set { _fullId = value; }
|
||||
}
|
||||
|
||||
public GenericProperty GenricPropertyControl
|
||||
{
|
||||
get { return _gp; }
|
||||
}
|
||||
|
||||
public GenericPropertyWrapper()
|
||||
: this(true)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public GenericPropertyWrapper(bool allowModification)
|
||||
{
|
||||
if (allowModification == false)
|
||||
{
|
||||
_allowAliasEdit = false;
|
||||
_allowValidationEdit = false;
|
||||
_allowDelete = false;
|
||||
_allowDataTypeEdit = false;
|
||||
}
|
||||
}
|
||||
|
||||
public GenericPropertyWrapper(bool allowNameEdit, bool allowDataTypeEdit, bool allowAliasEdit, bool allowTabEdit, bool allowValidationEdit, bool allowDescEdit, bool allowDelete)
|
||||
{
|
||||
_allowNameEdit = allowNameEdit;
|
||||
_allowDataTypeEdit = allowDataTypeEdit;
|
||||
_allowAliasEdit = allowAliasEdit;
|
||||
_allowTabEdit = allowTabEdit;
|
||||
_allowValidationEdit = allowValidationEdit;
|
||||
_allowDescEdit = allowDescEdit;
|
||||
_allowDelete = allowDelete;
|
||||
}
|
||||
|
||||
public void UpdateEditControl()
|
||||
{
|
||||
if (Controls.Count == 1)
|
||||
{
|
||||
var u = Controls[0];
|
||||
u.ID = ID + "_control";
|
||||
_gp = (GenericProperty)u;
|
||||
_gp.PropertyType = PropertyType;
|
||||
_gp.DataTypeDefinitions = _dtds;
|
||||
_gp.Tabs = _tabs;
|
||||
_gp.TabId = _tabId;
|
||||
_gp.FullId = _fullId;
|
||||
}
|
||||
}
|
||||
|
||||
protected void GenericPropertyWrapper_Delete(object sender, EventArgs e)
|
||||
{
|
||||
Delete(this, new EventArgs());
|
||||
}
|
||||
|
||||
protected override void OnInit(EventArgs e)
|
||||
{
|
||||
base.OnInit(e);
|
||||
var u = (GenericProperty)Page.LoadControl(SystemDirectories.Umbraco + "/controls/genericProperties/GenericProperty.ascx");
|
||||
|
||||
u.AllowAliasEdit = _allowAliasEdit;
|
||||
u.AllowDataTypeEdit = _allowDataTypeEdit;
|
||||
u.AllowDelete = _allowDelete;
|
||||
u.AllowDescriptionEdit = _allowDescEdit;
|
||||
u.AllowNameEdit = _allowNameEdit;
|
||||
u.AllowTabEdit = _allowTabEdit;
|
||||
u.AllowValidationEdit = _allowValidationEdit;
|
||||
|
||||
u.ID = ID + "_control";
|
||||
|
||||
if (_allowDelete)
|
||||
{
|
||||
u.Delete += GenericPropertyWrapper_Delete;
|
||||
}
|
||||
|
||||
u.FullId = _fullId;
|
||||
Controls.Add(u);
|
||||
UpdateEditControl();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
|
||||
<%@ Page language="c#" MasterPageFile="../masterpages/umbracoPage.Master" Codebehind="EditMemberType.aspx.cs" AutoEventWireup="True" Inherits="umbraco.cms.presentation.members.EditMemberType" %>
|
||||
<%@ Register TagPrefix="cc1" Namespace="umbraco.uicontrols" Assembly="controls" %>
|
||||
<%@ Register TagPrefix="uc1" TagName="ContentTypeControlNew" Src="../controls/ContentTypeControlNew.ascx" %>
|
||||
<%@ Register Namespace="umbraco" TagPrefix="umb" Assembly="umbraco" %>
|
||||
|
||||
<asp:Content ContentPlaceHolderID="head" runat="server">
|
||||
<style type="text/css">
|
||||
.gridHeader{border-bottom:2px solid #D9D7D7;}
|
||||
.gridItem{border-color: #D9D7D7;}
|
||||
</style>
|
||||
</asp:Content>
|
||||
<asp:Content ContentPlaceHolderID="body" runat="server">
|
||||
<uc1:ContentTypeControlNew id="ContentTypeControlNew1" HideStructure="true" runat="server"></uc1:ContentTypeControlNew>
|
||||
<cc1:Pane id="Pane1andmore" runat="server">
|
||||
|
||||
<asp:DataGrid id="dgEditExtras" runat="server" AutoGenerateColumns="False" Width="100%" BorderStyle="None" HeaderStyle-CssClass="gridHeader" ItemStyle-CssClass="gridItem" GridLines="Horizontal" HeaderStyle-Font-Bold=True OnItemDataBound="dgEditExtras_itemdatabound">
|
||||
<Columns>
|
||||
<asp:BoundColumn DataField="id" HeaderText="" Visible="False"></asp:BoundColumn>
|
||||
<asp:BoundColumn DataField="name" HeaderText="Property name"></asp:BoundColumn>
|
||||
<asp:TemplateColumn HeaderText="Member can edit">
|
||||
<ItemTemplate>
|
||||
<asp:CheckBox ID="ckbMemberCanEdit" Runat="server"></asp:CheckBox>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateColumn>
|
||||
<asp:TemplateColumn HeaderText="Show on profile">
|
||||
<ItemTemplate>
|
||||
<asp:CheckBox ID="ckbMemberCanView" Runat="server"></asp:CheckBox>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateColumn>
|
||||
</Columns>
|
||||
</asp:DataGrid>
|
||||
|
||||
</cc1:Pane>
|
||||
</asp:Content>
|
||||
@@ -1,142 +0,0 @@
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.SessionState;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
using System.Web.UI.HtmlControls;
|
||||
using ClientDependency.Core;
|
||||
using umbraco.cms.businesslogic.member;
|
||||
using umbraco.cms.presentation.Trees;
|
||||
using umbraco.controls;
|
||||
|
||||
namespace umbraco.cms.presentation.members
|
||||
{
|
||||
public partial class EditMemberType : BasePages.UmbracoEnsuredPage
|
||||
{
|
||||
|
||||
public EditMemberType()
|
||||
{
|
||||
CurrentApp = BusinessLogic.DefaultApps.member.ToString();
|
||||
|
||||
}
|
||||
protected PlaceHolder plc;
|
||||
private businesslogic.member.MemberType _memberType;
|
||||
|
||||
protected ContentTypeControlNew ContentTypeControlNew1;
|
||||
|
||||
protected override void OnInit(EventArgs e)
|
||||
{
|
||||
base.OnInit(e);
|
||||
|
||||
ContentTypeControlNew1.SavingContentType += ContentTypeControlNew1_SavingContentType;
|
||||
}
|
||||
|
||||
protected override void OnLoad(EventArgs e)
|
||||
{
|
||||
base.OnLoad(e);
|
||||
|
||||
_memberType = new businesslogic.member.MemberType(int.Parse(Request.QueryString["id"]));
|
||||
|
||||
ContentTypeControlNew1.InfoTabPage.Controls.Add(Pane1andmore);
|
||||
|
||||
if (!IsPostBack)
|
||||
{
|
||||
SetupExtraEditorControls();
|
||||
|
||||
ClientTools
|
||||
.SetActiveTreeType(TreeDefinitionCollection.Instance.FindTree<loadMemberTypes>().Tree.Alias)
|
||||
.SyncTree(_memberType.Id.ToString(CultureInfo.InvariantCulture), false);
|
||||
}
|
||||
}
|
||||
|
||||
protected override bool OnBubbleEvent(object source, EventArgs args)
|
||||
{
|
||||
var handled = false;
|
||||
var eventArgs = args as SaveClickEventArgs;
|
||||
if (eventArgs != null)
|
||||
{
|
||||
var e = eventArgs;
|
||||
if (e.Message == "Saved")
|
||||
{
|
||||
SetupExtraEditorControls();
|
||||
|
||||
ClientTools
|
||||
.ShowSpeechBubble(speechBubbleIcon.save, "Membertype saved", "")
|
||||
.SyncTree(_memberType.Id.ToString(CultureInfo.InvariantCulture), true);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
ClientTools
|
||||
.ShowSpeechBubble(e.IconType, e.Message, "")
|
||||
.SyncTree(_memberType.Id.ToString(CultureInfo.InvariantCulture), true);
|
||||
|
||||
}
|
||||
handled = true;
|
||||
}
|
||||
|
||||
return handled;
|
||||
}
|
||||
|
||||
private void SetupExtraEditorControls()
|
||||
{
|
||||
var dt1 = new DataTable();
|
||||
dt1.Columns.Add("id");
|
||||
dt1.Columns.Add("name");
|
||||
dt1.Columns.Add("canedit");
|
||||
dt1.Columns.Add("canview");
|
||||
|
||||
//filter out the 'built-in' property types as we don't want to display these options for them
|
||||
var builtIns = Umbraco.Core.Constants.Conventions.Member.GetStandardPropertyTypeStubs().Select(x => x.Key).ToArray();
|
||||
var propTypes = _memberType.PropertyTypes.Where(x => builtIns.Contains(x.Alias) == false);
|
||||
|
||||
foreach (var pt in propTypes)
|
||||
{
|
||||
var dr = dt1.NewRow();
|
||||
dr["name"] = pt.Name;
|
||||
dr["id"] = pt.Id;
|
||||
dt1.Rows.Add(dr);
|
||||
}
|
||||
dgEditExtras.DataSource = dt1;
|
||||
dgEditExtras.DataBind();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Executes some code before the member type is saved, this allows us to save the member can edit/member can view information
|
||||
/// before the Save() command is executed.
|
||||
/// </summary>
|
||||
/// <param name="e"></param>
|
||||
void ContentTypeControlNew1_SavingContentType(businesslogic.ContentType e)
|
||||
{
|
||||
var mt = e as MemberType;
|
||||
if (mt == null) return; //This should not happen!
|
||||
foreach (DataGridItem dgi in dgEditExtras.Items)
|
||||
{
|
||||
if (dgi.ItemType == ListItemType.Item || dgi.ItemType == ListItemType.AlternatingItem)
|
||||
{
|
||||
var pt = cms.businesslogic.propertytype.PropertyType.GetPropertyType(int.Parse(dgi.Cells[0].Text));
|
||||
mt.setMemberCanEdit(pt, ((CheckBox)dgi.FindControl("ckbMemberCanEdit")).Checked);
|
||||
mt.setMemberViewOnProfile(pt, ((CheckBox)dgi.FindControl("ckbMemberCanView")).Checked);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected void dgEditExtras_itemdatabound(object sender,DataGridItemEventArgs e)
|
||||
{
|
||||
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
|
||||
{
|
||||
var pt = cms.businesslogic.propertytype.PropertyType.GetPropertyType(int.Parse(((DataRowView)e.Item.DataItem).Row["id"].ToString()));
|
||||
((CheckBox)e.Item.FindControl("ckbMemberCanEdit")).Checked = _memberType.MemberCanEdit(pt);
|
||||
((CheckBox)e.Item.FindControl("ckbMemberCanView")).Checked = _memberType.ViewOnProfile(pt);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:2.0.50727.3074
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace umbraco.cms.presentation.members {
|
||||
|
||||
|
||||
public partial class EditMemberType {
|
||||
|
||||
/// <summary>
|
||||
/// Pane1andmore control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::umbraco.uicontrols.Pane Pane1andmore;
|
||||
|
||||
/// <summary>
|
||||
/// dgEditExtras control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.DataGrid dgEditExtras;
|
||||
}
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
<%@ Register TagPrefix="cc2" Namespace="umbraco.uicontrols" Assembly="controls" %>
|
||||
|
||||
<%@ Page Language="c#" CodeBehind="EditMediaType.aspx.cs" MasterPageFile="../masterpages/umbracoPage.Master"
|
||||
Async="true" AsyncTimeOut="300"
|
||||
AutoEventWireup="True" Inherits="umbraco.cms.presentation.settings.EditMediaType" %>
|
||||
|
||||
<%@ Register TagPrefix="uc1" TagName="ContentTypeControlNew" Src="../controls/ContentTypeControlNew.ascx" %>
|
||||
<asp:Content ContentPlaceHolderID="body" runat="server">
|
||||
<uc1:ContentTypeControlNew ID="ContentTypeControlNew1" runat="server"></uc1:ContentTypeControlNew>
|
||||
<script type="text/javascript">
|
||||
jQuery(document).ready(function () {
|
||||
UmbClientMgr.appActions().bindSaveShortCut();
|
||||
});
|
||||
</script>
|
||||
</asp:Content>
|
||||
@@ -1,52 +0,0 @@
|
||||
using System;
|
||||
using umbraco.cms.presentation.Trees;
|
||||
|
||||
namespace umbraco.cms.presentation.settings
|
||||
{
|
||||
/// <summary>
|
||||
/// Summary description for EditMediaType.
|
||||
/// </summary>
|
||||
public partial class EditMediaType : BasePages.UmbracoEnsuredPage
|
||||
{
|
||||
public EditMediaType()
|
||||
{
|
||||
CurrentApp = BusinessLogic.DefaultApps.settings.ToString();
|
||||
}
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
if (!IsPostBack)
|
||||
{
|
||||
ClientTools
|
||||
.SetActiveTreeType(TreeDefinitionCollection.Instance.FindTree<loadMediaTypes>().Tree.Alias)
|
||||
.SyncTree("-1,init," + helper.Request("id"), false);
|
||||
}
|
||||
}
|
||||
|
||||
protected override bool OnBubbleEvent(object source, EventArgs e)
|
||||
{
|
||||
if (e is controls.SaveClickEventArgs)
|
||||
{
|
||||
var sce = (controls.SaveClickEventArgs)e;
|
||||
|
||||
if (sce.Message == "Saved")
|
||||
{
|
||||
ClientTools.ShowSpeechBubble(speechBubbleIcon.save, "Mediatype saved", "Mediatype was successfully saved");
|
||||
}
|
||||
else if (sce.Message.Contains("Tab"))
|
||||
{
|
||||
ClientTools.ShowSpeechBubble(sce.IconType, sce.Message, "");
|
||||
}
|
||||
else
|
||||
{
|
||||
ClientTools.ShowSpeechBubble(sce.IconType, sce.Message, "");
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace umbraco.cms.presentation.settings {
|
||||
|
||||
|
||||
public partial class EditMediaType {
|
||||
|
||||
/// <summary>
|
||||
/// ContentTypeControlNew1 control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.UserControl ContentTypeControlNew1;
|
||||
}
|
||||
}
|
||||
@@ -1,167 +0,0 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Web.UI.WebControls;
|
||||
using umbraco.cms.presentation.Trees;
|
||||
using umbraco.cms.businesslogic.web;
|
||||
using System.Linq;
|
||||
using umbraco.controls;
|
||||
using Umbraco.Core;
|
||||
|
||||
namespace umbraco.settings
|
||||
{
|
||||
public partial class EditContentTypeNew : BasePages.UmbracoEnsuredPage
|
||||
{
|
||||
public EditContentTypeNew()
|
||||
{
|
||||
CurrentApp = BusinessLogic.DefaultApps.settings.ToString();
|
||||
}
|
||||
|
||||
protected controls.ContentTypeControlNew ContentTypeControlNew1;
|
||||
private DocumentType _dt;
|
||||
|
||||
override protected void OnInit(EventArgs e)
|
||||
{
|
||||
ContentTypeControlNew1.DocumentTypeCallback = new Func<DocumentType, DocumentType>(UpdateAllowedTemplates);
|
||||
ContentTypeControlNew1.InfoTabPage.Controls.Add(tmpPane);
|
||||
base.OnInit(e);
|
||||
}
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
_dt = new DocumentType(int.Parse(Request.QueryString["id"]));
|
||||
if (!Page.IsPostBack)
|
||||
{
|
||||
BindTemplates();
|
||||
|
||||
ClientTools
|
||||
.SetActiveTreeType(TreeDefinitionCollection.Instance.FindTree<loadNodeTypes>().Tree.Alias)
|
||||
.SyncTree("-1,init," + _dt.Path.Replace("-1,", ""), false);
|
||||
}
|
||||
}
|
||||
|
||||
protected override bool OnBubbleEvent(object source, EventArgs args)
|
||||
{
|
||||
bool handled = false;
|
||||
var eventArgs = args as SaveClickEventArgs;
|
||||
if (eventArgs != null)
|
||||
{
|
||||
var e = eventArgs;
|
||||
if (e.Message == "Saved")
|
||||
{
|
||||
ClientTools.ShowSpeechBubble(e.IconType, ui.Text("contentTypeSavedHeader"), "");
|
||||
|
||||
BindTemplates();
|
||||
}
|
||||
else
|
||||
{
|
||||
ClientTools.ShowSpeechBubble(e.IconType, e.Message, "");
|
||||
}
|
||||
handled = true;
|
||||
}
|
||||
return handled;
|
||||
}
|
||||
|
||||
protected void dgTemplate_itemdatabound(object sender, DataGridItemEventArgs e)
|
||||
{
|
||||
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
|
||||
{
|
||||
((CheckBox)e.Item.FindControl("ckbAllowTemplate")).Checked = true;
|
||||
}
|
||||
}
|
||||
|
||||
private DocumentType UpdateAllowedTemplates(DocumentType documentType)
|
||||
{
|
||||
var tmp = new ArrayList();
|
||||
|
||||
foreach (ListItem li in templateList.Items)
|
||||
{
|
||||
if (li.Selected)
|
||||
tmp.Add(new cms.businesslogic.template.Template(int.Parse(li.Value)));
|
||||
}
|
||||
|
||||
var tt = new cms.businesslogic.template.Template[tmp.Count];
|
||||
for (int i = 0; i < tt.Length; i++)
|
||||
{
|
||||
tt[i] = (cms.businesslogic.template.Template)tmp[i];
|
||||
}
|
||||
|
||||
documentType.allowedTemplates = tt;
|
||||
|
||||
if (documentType.allowedTemplates.Length > 0 && ddlTemplates.SelectedIndex >= 0)
|
||||
{
|
||||
documentType.DefaultTemplate = int.Parse(ddlTemplates.SelectedValue);
|
||||
}
|
||||
else
|
||||
{
|
||||
documentType.RemoveDefaultTemplate();
|
||||
}
|
||||
|
||||
_dt = documentType;
|
||||
|
||||
return documentType;
|
||||
}
|
||||
|
||||
private void BindTemplates()
|
||||
{
|
||||
var templates = (from t in cms.businesslogic.template.Template.GetAllAsList()
|
||||
join at in _dt.allowedTemplates on t.Id equals at.Id into at_l
|
||||
from at in at_l.DefaultIfEmpty()
|
||||
select new
|
||||
{
|
||||
Id = t.Id,
|
||||
Name = t.Text,
|
||||
Selected = at != null
|
||||
}).ToList();
|
||||
|
||||
templateList.Items.Clear();
|
||||
templateList.Items.AddRange(templates.ConvertAll(item =>
|
||||
{
|
||||
var li = new ListItem { Text = Server.HtmlEncode(item.Name), Value = item.Id.ToString(CultureInfo.InvariantCulture), Selected = item.Selected };
|
||||
return li;
|
||||
}).ToArray());
|
||||
|
||||
|
||||
ddlTemplates.Enabled = templates.Any();
|
||||
ddlTemplates.Items.Clear();
|
||||
ddlTemplates.Items.Insert(0, new ListItem(ui.Text("choose") + "...", "0"));
|
||||
ddlTemplates.Items.AddRange(templates.ConvertAll(item =>
|
||||
{
|
||||
var li = new ListItem { Text = Server.HtmlEncode(item.Name), Value = item.Id.ToString(CultureInfo.InvariantCulture) };
|
||||
return li;
|
||||
}).ToArray());
|
||||
|
||||
var ddlTemplatesSelect = ddlTemplates.Items.FindByValue(_dt.DefaultTemplate.ToString(CultureInfo.InvariantCulture));
|
||||
if (ddlTemplatesSelect != null)
|
||||
ddlTemplatesSelect.Selected = true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// tmpPane control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::umbraco.uicontrols.Pane tmpPane;
|
||||
|
||||
/// <summary>
|
||||
/// templateList control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBoxList templateList;
|
||||
|
||||
/// <summary>
|
||||
/// ddlTemplates control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.DropDownList ddlTemplates;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user