mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-04-24 19:08:18 +08:00
- Obsoleting Futures.Widgets in favor of Orchard.Widgets.
--HG-- branch : dev
This commit is contained in:
parent
420baa7289
commit
19313b887f
@ -1,3 +1,3 @@
|
||||
setup /SiteName:Profiling /AdminUsername:admin /AdminPassword:profiling-secret /DatabaseProvider:SqlCe /EnabledFeatures:Profiling,Orchard.Framework,Routable,Common,Dashboard,Feeds,PublishLater,HomePage,Contents,ContentsLocation,Navigation,Reports,Scheduling,Indexing,Settings,Localization,XmlRpc,Orchard.Users,Orchard.Roles,TinyMce,Orchard.Themes,Orchard.MultiTenancy,Orchard.Blogs,Orchard.Comments,Orchard.Modules,Futures.Widgets,Orchard.Media,Orchard.Tags,Orchard.DevTools
|
||||
setup /SiteName:Profiling /AdminUsername:admin /AdminPassword:profiling-secret /DatabaseProvider:SqlCe /EnabledFeatures:Profiling,Orchard.Framework,Routable,Common,Dashboard,Feeds,PublishLater,HomePage,Contents,ContentsLocation,Navigation,Reports,Scheduling,Indexing,Settings,Localization,XmlRpc,Orchard.Users,Orchard.Roles,TinyMce,Orchard.Themes,Orchard.MultiTenancy,Orchard.Blogs,Orchard.Comments,Orchard.Modules,Orchard.Widgets,Orchard.Media,Orchard.Tags,Orchard.DevTools
|
||||
add profiling data
|
||||
feature disable Orchard.DevTools
|
||||
|
@ -93,16 +93,6 @@ msgstr "Invalid serial number for shell descriptor"
|
||||
msgid "Manage Settings"
|
||||
msgstr "Manage Settings"
|
||||
|
||||
#: ~/Modules/Futures.Widgets/Controllers/AdminController.cs
|
||||
#| msgid : "Designer notes not found."
|
||||
msgid "Designer notes not found."
|
||||
msgstr "Designer notes not found."
|
||||
|
||||
#: ~/Modules/Futures.Widgets/Views/Admin/Edit.ascx
|
||||
#| msgid : "Edit Widget"
|
||||
msgid "Edit Widget"
|
||||
msgstr "Edit Widget"
|
||||
|
||||
#: ~/Modules/Orchard.Blogs/Controllers/BlogAdminController.cs
|
||||
#| msgid : "Not allowed to create blogs"
|
||||
msgid "Not allowed to create blogs"
|
||||
@ -1953,6 +1943,26 @@ msgstr "Edit"
|
||||
msgid "Remove"
|
||||
msgstr "Remove"
|
||||
|
||||
#: ~/Modules/Orchard.Widgets/Views/Admin/Index.cshtml
|
||||
#| msgid : "Manage Layers"
|
||||
msgid "Manage Layers"
|
||||
msgstr "Manage Layers"
|
||||
|
||||
#: ~/Modules/Orchard.Widgets/Views/Admin/Index.cshtml
|
||||
#| msgid : "Add a new layer"
|
||||
msgid "Add a new layer"
|
||||
msgstr "Add a new layer"
|
||||
|
||||
#: ~/Modules/Orchard.Widgets/AdminMenu.cs
|
||||
#| msgid : "Manage Widgets"
|
||||
msgid "Manage Widgets"
|
||||
msgstr "Manage Widgets"
|
||||
|
||||
#: ~/Modules/Orchard.Widgets/AdminMenu.cs
|
||||
#| msgid : "Widgets"
|
||||
msgid "Widgets"
|
||||
msgstr "Widgets"
|
||||
|
||||
#: ~/Themes/Classic/Views/DisplayTemplates/Parts/Pages.Page.Metadata.ascx
|
||||
#| msgid : "nobody(?)"
|
||||
msgid "nobody(?)"
|
||||
|
@ -1,87 +0,0 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web.Mvc;
|
||||
using Futures.Widgets.Models;
|
||||
using Futures.Widgets.ViewModels;
|
||||
using Orchard;
|
||||
using Orchard.ContentManagement;
|
||||
using Orchard.Core.Common.Models;
|
||||
using Orchard.Localization;
|
||||
using Orchard.Services;
|
||||
using Orchard.Settings;
|
||||
using Orchard.UI.Notify;
|
||||
|
||||
namespace Futures.Widgets.Controllers {
|
||||
[ValidateInput(false)]
|
||||
public class AdminController : Controller, IUpdateModel {
|
||||
private readonly IEnumerable<IHtmlFilter> _htmlFilters;
|
||||
|
||||
public AdminController(IOrchardServices services, IEnumerable<IHtmlFilter> htmlFilters) {
|
||||
_htmlFilters = htmlFilters;
|
||||
Services = services;
|
||||
T = NullLocalizer.Instance;
|
||||
}
|
||||
|
||||
private IOrchardServices Services { get; set; }
|
||||
protected virtual ISite CurrentSite { get; set; }
|
||||
public Localizer T{ get; set;}
|
||||
|
||||
public ActionResult AddWidget(string zoneName, string themeName, string returnUrl) {
|
||||
var hasWidgetsRecord = CurrentSite.As<WidgetsPart>().Record;
|
||||
|
||||
var virtualPath = "~/Themes/" + themeName + "/Zones/" + zoneName + ".html";
|
||||
var physicalPath = Server.MapPath(virtualPath);
|
||||
|
||||
if (!System.IO.File.Exists(physicalPath)) {
|
||||
Services.Notifier.Error(T("Designer notes not found."));
|
||||
return Redirect(returnUrl);
|
||||
}
|
||||
|
||||
var fileText = _htmlFilters
|
||||
.Aggregate(System.IO.File.ReadAllText(physicalPath), (text, filter) => filter.ProcessContent(text));
|
||||
|
||||
var widget = Services.ContentManager.Create<WidgetPart>("HtmlWidget", init => {
|
||||
init.Record.Scope = hasWidgetsRecord;
|
||||
init.Record.Zone = zoneName;
|
||||
init.Record.Position = "1";
|
||||
init.As<BodyPart>().Text = fileText;
|
||||
});
|
||||
|
||||
return RedirectToAction("Edit", new { widget.ContentItem.Id, returnUrl });
|
||||
}
|
||||
|
||||
public ActionResult Edit(int id, string returnUrl) {
|
||||
var widget = Services.ContentManager.Get(id);
|
||||
var viewModel = new WidgetEditViewModel {
|
||||
Widget = Services.ContentManager.BuildEditorModel(widget),
|
||||
ReturnUrl = returnUrl,
|
||||
};
|
||||
return View(viewModel);
|
||||
}
|
||||
|
||||
[HttpPost, ActionName("Edit")]
|
||||
public ActionResult EditPOST(int id, string returnUrl) {
|
||||
var widget = Services.ContentManager.Get(id);
|
||||
var viewModel = new WidgetEditViewModel {
|
||||
Widget = Services.ContentManager.UpdateEditorModel(widget, this),
|
||||
ReturnUrl = returnUrl,
|
||||
};
|
||||
if (ModelState.IsValid == false) {
|
||||
return View(viewModel);
|
||||
}
|
||||
if (string.IsNullOrEmpty(returnUrl)) {
|
||||
return RedirectToAction("Edit", new { id });
|
||||
}
|
||||
return Redirect(returnUrl);
|
||||
}
|
||||
|
||||
|
||||
bool IUpdateModel.TryUpdateModel<TModel>(TModel model, string prefix, string[] includeProperties, string[] excludeProperties) {
|
||||
return TryUpdateModel(model, prefix, includeProperties, excludeProperties);
|
||||
}
|
||||
|
||||
void IUpdateModel.AddModelError(string key, LocalizedString errorMessage) {
|
||||
ModelState.AddModelError(key, errorMessage.ToString());
|
||||
}
|
||||
}
|
||||
}
|
@ -1,20 +0,0 @@
|
||||
using System.Web.Routing;
|
||||
using Futures.Widgets.Models;
|
||||
using Orchard.ContentManagement.Drivers;
|
||||
|
||||
namespace Futures.Widgets.Controllers {
|
||||
public class WidgetDriver : ContentItemDriver<Widget> {
|
||||
protected override RouteValueDictionary GetEditorRouteValues(Widget item) {
|
||||
return new RouteValueDictionary {
|
||||
{"Area", "Futures.Widgets"},
|
||||
{"Controller", "Admin"},
|
||||
{"Action", "Edit"},
|
||||
{"Id", item.ContentItem.Id}
|
||||
};
|
||||
}
|
||||
|
||||
protected override bool UseDefaultTemplate {
|
||||
get { return true; }
|
||||
}
|
||||
}
|
||||
}
|
@ -1,34 +0,0 @@
|
||||
using Orchard.ContentManagement.MetaData;
|
||||
using Orchard.Data.Migration;
|
||||
|
||||
namespace Futures.Widgets.DataMigrations {
|
||||
public class WidgetsDataMigration : DataMigrationImpl {
|
||||
|
||||
public int Create() {
|
||||
//CREATE TABLE Futures_Widgets_HasWidgetsRecord (Id INTEGER not null, primary key (Id));
|
||||
SchemaBuilder.CreateTable("WidgetsPartRecord", table => table
|
||||
.Column<int>("Id", column => column.PrimaryKey())
|
||||
);
|
||||
|
||||
//CREATE TABLE Futures_Widgets_WidgetRecord (Id INTEGER not null, Zone TEXT, Position TEXT, Scope_id INTEGER, primary key (Id));
|
||||
SchemaBuilder.CreateTable("WidgetPartRecord", table => table
|
||||
.ContentPartRecord()
|
||||
.Column<string>("Zone")
|
||||
.Column<string>("Position")
|
||||
.Column<int>("Scope_id")
|
||||
);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
public int UpdateFrom1() {
|
||||
ContentDefinitionManager.AlterTypeDefinition("HtmlWidget",
|
||||
cfg => cfg
|
||||
.WithPart("WidgetPart")
|
||||
.WithPart("BodyPart")
|
||||
);
|
||||
|
||||
return 2;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
using System.Linq;
|
||||
using Futures.Widgets.Models;
|
||||
using Orchard.ContentManagement;
|
||||
using Orchard.ContentManagement.Handlers;
|
||||
using Orchard.Data;
|
||||
|
||||
namespace Futures.Widgets.Handlers {
|
||||
public class WidgetsPartHandler : ContentHandler {
|
||||
public WidgetsPartHandler(
|
||||
IRepository<WidgetsPartRecord> widgetsRepository,
|
||||
IRepository<WidgetPartRecord> widgetRepository) {
|
||||
|
||||
Filters.Add(new ActivatingFilter<WidgetsPart>("Site"));
|
||||
|
||||
// providing standard storage support for widget records
|
||||
Filters.Add(StorageFilter.For(widgetsRepository));
|
||||
Filters.Add(StorageFilter.For(widgetRepository));
|
||||
|
||||
OnLoaded<WidgetsPart>(
|
||||
(ctx, part) => part.WidgetField.Loader(
|
||||
() => ctx.ContentManager
|
||||
.Query<WidgetPart, WidgetPartRecord>()
|
||||
.Where(x => x.Scope == part.Record)
|
||||
.List().ToList()));
|
||||
}
|
||||
}
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
using Orchard.ContentManagement;
|
||||
|
||||
namespace Futures.Widgets.Models {
|
||||
public class WidgetPart : ContentPart<WidgetPartRecord> {
|
||||
}
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
using Orchard.ContentManagement.Records;
|
||||
|
||||
namespace Futures.Widgets.Models {
|
||||
public class WidgetPartRecord : ContentPartRecord {
|
||||
public virtual WidgetsPartRecord Scope { get; set; }
|
||||
public virtual string Zone { get; set; }
|
||||
public virtual string Position { get; set; }
|
||||
}
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
using System.Collections.Generic;
|
||||
using Orchard.ContentManagement;
|
||||
using Orchard.Core.Common.Utilities;
|
||||
|
||||
namespace Futures.Widgets.Models {
|
||||
public class WidgetsPart : ContentPart<WidgetsPartRecord> {
|
||||
public LazyField<IList<WidgetPart>> WidgetField = new LazyField<IList<WidgetPart>>();
|
||||
public IList<WidgetPart> Widgets { get { return WidgetField.Value; } set { WidgetField.Value = value; } }
|
||||
}
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
using Orchard.ContentManagement.Records;
|
||||
|
||||
namespace Futures.Widgets.Models {
|
||||
public class WidgetsPartRecord : ContentPartRecord {
|
||||
}
|
||||
}
|
@ -1,11 +0,0 @@
|
||||
name: Widgets
|
||||
antiforgery: enabled
|
||||
author: The Orchard Team
|
||||
website: http://orchardproject.net
|
||||
version: 0.5.0
|
||||
orchardversion: 0.5.0
|
||||
description: A prototype implementation of Orchard widgets that only allows for editable global text regions.
|
||||
features:
|
||||
Futures.Widgets:
|
||||
Description: Widgets container with simple inline content editing widget.
|
||||
Category: Widget
|
@ -1,7 +0,0 @@
|
||||
|
||||
namespace Futures.Widgets.ViewModels {
|
||||
public class WidgetEditViewModel {
|
||||
public dynamic Widget { get; set; }
|
||||
public string ReturnUrl { get; set;}
|
||||
}
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
@model Futures.Widgets.ViewModels.WidgetEditViewModel
|
||||
|
||||
<h1>@Html.TitleForPage(T("Edit Widget").ToString())</h1>
|
||||
|
||||
@using (Html.BeginFormAntiForgeryPost()) {
|
||||
@Html.ValidationSummary()
|
||||
@Display(Model.Widget)
|
||||
@Html.HiddenFor(m => m.ReturnUrl)
|
||||
}
|
@ -1,45 +0,0 @@
|
||||
using System.Web.Mvc;
|
||||
using Futures.Widgets.Models;
|
||||
using Orchard;
|
||||
using Orchard.ContentManagement;
|
||||
using Orchard.Mvc.Filters;
|
||||
using Orchard.Settings;
|
||||
using Orchard.UI.Admin;
|
||||
|
||||
namespace Futures.Widgets {
|
||||
public class WidgetFilter : FilterProvider, IActionFilter {
|
||||
private readonly IContentManager _contentManager;
|
||||
private readonly IWorkContextAccessor _workContextAccessor;
|
||||
|
||||
public WidgetFilter(IContentManager contentManager, IWorkContextAccessor workContextAccessor) {
|
||||
_contentManager = contentManager;
|
||||
_workContextAccessor = workContextAccessor;
|
||||
}
|
||||
|
||||
public void OnActionExecuting(ActionExecutingContext filterContext) {
|
||||
}
|
||||
|
||||
public void OnActionExecuted(ActionExecutedContext filterContext) {
|
||||
var workContext = _workContextAccessor.GetContext(filterContext);
|
||||
|
||||
if (workContext == null ||
|
||||
workContext.Page == null ||
|
||||
workContext.CurrentSite == null ||
|
||||
AdminFilter.IsApplied(filterContext.RequestContext)) {
|
||||
return;
|
||||
}
|
||||
|
||||
var siteWidgets = workContext.CurrentSite.As<WidgetsPart>();
|
||||
if (siteWidgets == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
var zones = workContext.Page.Zones;
|
||||
foreach (var widget in siteWidgets.Widgets) {
|
||||
var widgetShape = _contentManager.BuildDisplayModel(widget);
|
||||
|
||||
zones[widget.Record.Zone].Add(widgetShape, widget.Record.Position);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -91,8 +91,7 @@ namespace Orchard.Setup.Services {
|
||||
"Orchard.Comments",
|
||||
"Orchard.Tags",
|
||||
"Orchard.Media",
|
||||
"Futures.Widgets",
|
||||
|
||||
"Orchard.Widgets",
|
||||
"Orchard.DevTools",
|
||||
"Orchard.jQuery"
|
||||
};
|
||||
|
@ -45,18 +45,18 @@ namespace Orchard.Themes.DesignerNotes {
|
||||
var accessAdminPanel = _authorizationService.TryCheckAccess(
|
||||
StandardPermissions.AccessAdminPanel, CurrentUser, null);
|
||||
if (accessAdminPanel) {
|
||||
//Temporary: Don't show "edit" button if "Futures.Widgets" is not enabled.
|
||||
//Temporary: Don't show "edit" button if "Orchard.Widgets" is not enabled.
|
||||
accessAdminPanel = _shellDescriptorManager
|
||||
.GetShellDescriptor()
|
||||
.Features
|
||||
.Any(f => f.Name == "Futures.Widgets");
|
||||
.Any(f => f.Name == "Orchard.Widgets");
|
||||
}
|
||||
|
||||
var writer = context.Html.ViewContext.Writer;
|
||||
if (accessAdminPanel) {
|
||||
writer.Write("<div class=\"managewrapper\"><div class=\"manage\">");
|
||||
writer.Write(context.Html.ActionLink(T("Edit").ToString(), "AddWidget", new {
|
||||
Area = "Futures.Widgets",
|
||||
Area = "Orchard.Widgets",
|
||||
Controller = "Admin",
|
||||
context.ZoneName,
|
||||
theme.ThemeName,
|
||||
|
15
src/Orchard.Web/Modules/Orchard.Widgets/AdminMenu.cs
Normal file
15
src/Orchard.Web/Modules/Orchard.Widgets/AdminMenu.cs
Normal file
@ -0,0 +1,15 @@
|
||||
using Orchard.Localization;
|
||||
using Orchard.UI.Navigation;
|
||||
|
||||
namespace Orchard.Widgets {
|
||||
public class AdminMenu : INavigationProvider {
|
||||
public Localizer T { get; set; }
|
||||
public string MenuName { get { return "admin"; } }
|
||||
|
||||
public void GetNavigation(NavigationBuilder builder) {
|
||||
builder.Add(T("Widgets"), "10",
|
||||
menu => menu
|
||||
.Add(T("Manage Widgets"), "1.0", item => item.Action("Index", "Admin", new { area = "Orchard.Widgets" }).Permission(Permissions.ManageWidgets)));
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
using System.Web.Mvc;
|
||||
using Orchard.Localization;
|
||||
using Orchard.Settings;
|
||||
|
||||
namespace Orchard.Widgets.Controllers {
|
||||
[ValidateInput(false)]
|
||||
public class AdminController : Controller {
|
||||
public AdminController(IOrchardServices services) {
|
||||
Services = services;
|
||||
T = NullLocalizer.Instance;
|
||||
}
|
||||
|
||||
private IOrchardServices Services { get; set; }
|
||||
protected virtual ISite CurrentSite { get; set; }
|
||||
public Localizer T { get; set; }
|
||||
|
||||
public ActionResult Index() {
|
||||
return View();
|
||||
}
|
||||
}
|
||||
}
|
11
src/Orchard.Web/Modules/Orchard.Widgets/Module.txt
Normal file
11
src/Orchard.Web/Modules/Orchard.Widgets/Module.txt
Normal file
@ -0,0 +1,11 @@
|
||||
name: Widgets
|
||||
antiforgery: enabled
|
||||
author: The Orchard Team
|
||||
website: http://orchardproject.net
|
||||
version: 0.5.0
|
||||
orchardversion: 0.5.0
|
||||
description: An implementation of widgets for Orchard.
|
||||
features:
|
||||
Orchard.Widgets:
|
||||
Description: An implementation of widgets.
|
||||
Category: Widget
|
@ -3,21 +3,17 @@
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>9.0.30729</ProductVersion>
|
||||
<ProductVersion>
|
||||
</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{E65E5633-C0FF-453C-A906-481C14F969D6}</ProjectGuid>
|
||||
<ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
|
||||
<ProjectGuid>{194D3CCC-1153-474D-8176-FDE8D7D0D0BD}</ProjectGuid>
|
||||
<ProjectTypeGuids>{F85E285D-A4E0-4152-9332-AB1D724D3325};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>Futures.Widgets</RootNamespace>
|
||||
<AssemblyName>Futures.Widgets</AssemblyName>
|
||||
<RootNamespace>Orchard.Widgets</RootNamespace>
|
||||
<AssemblyName>Orchard.Widgets</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<MvcBuildViews>false</MvcBuildViews>
|
||||
<FileUpgradeFlags>
|
||||
</FileUpgradeFlags>
|
||||
<OldToolsVersion>3.5</OldToolsVersion>
|
||||
<UpgradeBackupLocation />
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@ -27,7 +23,6 @@
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
@ -36,57 +31,57 @@
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="System.Web.ApplicationServices" />
|
||||
<Reference Include="System.Web.DynamicData" />
|
||||
<Reference Include="System.Web.Entity" />
|
||||
<Reference Include="System.Web.Extensions" />
|
||||
<Reference Include="System.Web" />
|
||||
<Reference Include="System.Web.Abstractions" />
|
||||
<Reference Include="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\..\lib\aspnetmvc\System.Web.Mvc.dll</HintPath>
|
||||
<Reference Include="System.Web.ApplicationServices" />
|
||||
<Reference Include="System.Data.DataSetExtensions">
|
||||
<RequiredTargetFramework>3.5</RequiredTargetFramework>
|
||||
</Reference>
|
||||
<Reference Include="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\lib\aspnetmvc\System.Web.Mvc.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Xml.Linq">
|
||||
<RequiredTargetFramework>3.5</RequiredTargetFramework>
|
||||
</Reference>
|
||||
<Reference Include="System.Web" />
|
||||
<Reference Include="System.Web.Extensions">
|
||||
<RequiredTargetFramework>3.5</RequiredTargetFramework>
|
||||
</Reference>
|
||||
<Reference Include="System.Web.Abstractions" />
|
||||
<Reference Include="System.Web.Routing" />
|
||||
<Reference Include="System.Configuration" />
|
||||
<Reference Include="System.Web.Mobile" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="AdminMenu.cs" />
|
||||
<Compile Include="Controllers\AdminController.cs" />
|
||||
<Compile Include="Handlers\WidgetsPartHandler.cs" />
|
||||
<Compile Include="DataMigrations\WidgetsDataMigration.cs" />
|
||||
<Compile Include="Models\WidgetsPartRecord.cs" />
|
||||
<Compile Include="Models\WidgetsPart.cs" />
|
||||
<Compile Include="Models\WidgetPart.cs" />
|
||||
<Compile Include="Models\WidgetPartRecord.cs" />
|
||||
<Compile Include="Permissions.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="ViewModels\WidgetEditViewModel.cs" />
|
||||
<Compile Include="WidgetFilter.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Module.txt" />
|
||||
<Content Include="Views\Admin\Edit.cshtml" />
|
||||
<Content Include="Web.config" />
|
||||
<Content Include="Views\Web.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\..\Orchard\Orchard.Framework.csproj">
|
||||
<Project>{2D1D92BB-4555-4CBE-8D0E-63563D6CE4C6}</Project>
|
||||
<Name>Orchard.Framework</Name>
|
||||
</ProjectReference>
|
||||
<Folder Include="App_Data\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\Core\Orchard.Core.csproj">
|
||||
<Project>{9916839C-39FC-4CEB-A5AF-89CA7E87119F}</Project>
|
||||
<Name>Orchard.Core</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\..\Orchard\Orchard.Framework.csproj">
|
||||
<Project>{2D1D92BB-4555-4CBE-8D0E-63563D6CE4C6}</Project>
|
||||
<Name>Orchard.Framework</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="App_Data\" />
|
||||
<None Include="Views\Admin\Index.cshtml" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
|
||||
@ -103,13 +98,14 @@
|
||||
<WebProjectProperties>
|
||||
<UseIIS>False</UseIIS>
|
||||
<AutoAssignPort>True</AutoAssignPort>
|
||||
<DevelopmentServerPort>17593</DevelopmentServerPort>
|
||||
<DevelopmentServerPort>48009</DevelopmentServerPort>
|
||||
<DevelopmentServerVPath>/</DevelopmentServerVPath>
|
||||
<IISUrl>
|
||||
</IISUrl>
|
||||
<NTLMAuthentication>False</NTLMAuthentication>
|
||||
<UseCustomServer>True</UseCustomServer>
|
||||
<CustomServerUrl>http://orchard.codeplex.com</CustomServerUrl>
|
||||
<UseCustomServer>False</UseCustomServer>
|
||||
<CustomServerUrl>
|
||||
</CustomServerUrl>
|
||||
<SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
|
||||
</WebProjectProperties>
|
||||
</FlavorProperties>
|
27
src/Orchard.Web/Modules/Orchard.Widgets/Permissions.cs
Normal file
27
src/Orchard.Web/Modules/Orchard.Widgets/Permissions.cs
Normal file
@ -0,0 +1,27 @@
|
||||
using System.Collections.Generic;
|
||||
using Orchard.Environment.Extensions.Models;
|
||||
using Orchard.Security.Permissions;
|
||||
|
||||
namespace Orchard.Widgets {
|
||||
public class Permissions : IPermissionProvider {
|
||||
public static readonly Permission ManageWidgets = new Permission { Description = "Managing Widgets", Name = "ManageWidgets" };
|
||||
|
||||
public virtual Feature Feature { get; set; }
|
||||
|
||||
public IEnumerable<Permission> GetPermissions() {
|
||||
return new Permission[] {
|
||||
ManageWidgets,
|
||||
};
|
||||
}
|
||||
|
||||
public IEnumerable<PermissionStereotype> GetDefaultStereotypes() {
|
||||
return new[] {
|
||||
new PermissionStereotype {
|
||||
Name = "Administrator",
|
||||
Permissions = new[] {ManageWidgets}
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -1,15 +1,16 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("Futures.Widgets")]
|
||||
[assembly: AssemblyTitle("Orchard.Widgets")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("Futures.Widgets")]
|
||||
[assembly: AssemblyCopyright("Copyright © CodePlex Foundation 2009")]
|
||||
[assembly: AssemblyCompany("MSIT")]
|
||||
[assembly: AssemblyProduct("Orchard.Widgets")]
|
||||
[assembly: AssemblyCopyright("Copyright © MSIT 2010")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
@ -19,7 +20,7 @@ using System.Runtime.InteropServices;
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("8c179868-e814-4277-a0af-b71707c3bff4")]
|
||||
[assembly: Guid("c326e210-8edd-45ba-a686-02c1370c3ad1")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
@ -30,5 +31,5 @@ using System.Runtime.InteropServices;
|
||||
//
|
||||
// You can specify all the values or you can default the Revision and Build Numbers
|
||||
// by using the '*' as shown below:
|
||||
[assembly: AssemblyVersion("0.5.0")]
|
||||
[assembly: AssemblyFileVersion("0.5.0")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
@ -0,0 +1,6 @@
|
||||
<h1>@Html.TitleForPage(T("Manage Layers").ToString()) </h1>
|
||||
@using (Html.BeginFormAntiForgeryPost()) {
|
||||
@Html.ValidationSummary()
|
||||
<div class="manage">@Html.ActionLink(T("Add a new layer").ToString(), "Create", new { }, new { @class = "button primaryAction" })</div>
|
||||
<p>Layers ...</p>
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
<?xml version="1.0"?>
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<configuration>
|
||||
<system.web>
|
||||
@ -21,12 +21,12 @@
|
||||
</pages>
|
||||
</system.web>
|
||||
<system.web.extensions/>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
|
||||
<bindingRedirect oldVersion="2.0.0.0" newVersion="3.0.0.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
|
||||
<bindingRedirect oldVersion="2.0.0.0" newVersion="3.0.0.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
</configuration>
|
@ -7,8 +7,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{74E681ED
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tools", "Tools", "{383DBA32-4A3E-48D1-AAC3-75377A694452}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Futures", "Futures", "{E75A4CE4-CAA6-41E4-B951-33ACC60DC77C}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Orchard.Web", "Orchard.Web\Orchard.Web.csproj", "{50B779EA-EC00-4699-84C0-03B395C365D2}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Orchard.Framework", "Orchard\Orchard.Framework.csproj", "{2D1D92BB-4555-4CBE-8D0E-63563D6CE4C6}"
|
||||
@ -80,10 +78,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Orchard.Indexing", "Orchard
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Orchard.Search", "Orchard.Web\Modules\Orchard.Search\Orchard.Search.csproj", "{4BE4EB01-AC56-4048-924E-2CA77F509ABA}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Futures.Widgets", "Orchard.Web\Modules\Futures.Widgets\Futures.Widgets.csproj", "{E65E5633-C0FF-453C-A906-481C14F969D6}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lucene", "Orchard.Web\Modules\Lucene\Lucene.csproj", "{D5D447D7-EF8E-43A6-B9A4-3B025DD9F45D}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Orchard.Widgets", "Orchard.Web\Modules\Orchard.Widgets\Orchard.Widgets.csproj", "{194D3CCC-1153-474D-8176-FDE8D7D0D0BD}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
CodeCoverage|Any CPU = CodeCoverage|Any CPU
|
||||
@ -423,16 +421,6 @@ Global
|
||||
{4BE4EB01-AC56-4048-924E-2CA77F509ABA}.FxCop|Any CPU.Build.0 = Release|Any CPU
|
||||
{4BE4EB01-AC56-4048-924E-2CA77F509ABA}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{4BE4EB01-AC56-4048-924E-2CA77F509ABA}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{E65E5633-C0FF-453C-A906-481C14F969D6}.CodeCoverage|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{E65E5633-C0FF-453C-A906-481C14F969D6}.CodeCoverage|Any CPU.Build.0 = Release|Any CPU
|
||||
{E65E5633-C0FF-453C-A906-481C14F969D6}.Coverage|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{E65E5633-C0FF-453C-A906-481C14F969D6}.Coverage|Any CPU.Build.0 = Release|Any CPU
|
||||
{E65E5633-C0FF-453C-A906-481C14F969D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{E65E5633-C0FF-453C-A906-481C14F969D6}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{E65E5633-C0FF-453C-A906-481C14F969D6}.FxCop|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{E65E5633-C0FF-453C-A906-481C14F969D6}.FxCop|Any CPU.Build.0 = Release|Any CPU
|
||||
{E65E5633-C0FF-453C-A906-481C14F969D6}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{E65E5633-C0FF-453C-A906-481C14F969D6}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{D5D447D7-EF8E-43A6-B9A4-3B025DD9F45D}.CodeCoverage|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{D5D447D7-EF8E-43A6-B9A4-3B025DD9F45D}.CodeCoverage|Any CPU.Build.0 = Release|Any CPU
|
||||
{D5D447D7-EF8E-43A6-B9A4-3B025DD9F45D}.Coverage|Any CPU.ActiveCfg = Release|Any CPU
|
||||
@ -443,6 +431,16 @@ Global
|
||||
{D5D447D7-EF8E-43A6-B9A4-3B025DD9F45D}.FxCop|Any CPU.Build.0 = Release|Any CPU
|
||||
{D5D447D7-EF8E-43A6-B9A4-3B025DD9F45D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{D5D447D7-EF8E-43A6-B9A4-3B025DD9F45D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{194D3CCC-1153-474D-8176-FDE8D7D0D0BD}.CodeCoverage|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{194D3CCC-1153-474D-8176-FDE8D7D0D0BD}.CodeCoverage|Any CPU.Build.0 = Release|Any CPU
|
||||
{194D3CCC-1153-474D-8176-FDE8D7D0D0BD}.Coverage|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{194D3CCC-1153-474D-8176-FDE8D7D0D0BD}.Coverage|Any CPU.Build.0 = Release|Any CPU
|
||||
{194D3CCC-1153-474D-8176-FDE8D7D0D0BD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{194D3CCC-1153-474D-8176-FDE8D7D0D0BD}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{194D3CCC-1153-474D-8176-FDE8D7D0D0BD}.FxCop|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{194D3CCC-1153-474D-8176-FDE8D7D0D0BD}.FxCop|Any CPU.Build.0 = Release|Any CPU
|
||||
{194D3CCC-1153-474D-8176-FDE8D7D0D0BD}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{194D3CCC-1153-474D-8176-FDE8D7D0D0BD}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
@ -468,6 +466,7 @@ Global
|
||||
{EA2B9121-EF54-40A6-A53E-6593C86EE696} = {E9C9F120-07BA-4DFB-B9C3-3AFB9D44C9D5}
|
||||
{4BE4EB01-AC56-4048-924E-2CA77F509ABA} = {E9C9F120-07BA-4DFB-B9C3-3AFB9D44C9D5}
|
||||
{D5D447D7-EF8E-43A6-B9A4-3B025DD9F45D} = {E9C9F120-07BA-4DFB-B9C3-3AFB9D44C9D5}
|
||||
{194D3CCC-1153-474D-8176-FDE8D7D0D0BD} = {E9C9F120-07BA-4DFB-B9C3-3AFB9D44C9D5}
|
||||
{ABC826D4-2FA1-4F2F-87DE-E6095F653810} = {74E681ED-FECC-4034-B9BD-01B0BB1BDECA}
|
||||
{F112851D-B023-4746-B6B1-8D2E5AD8F7AA} = {74E681ED-FECC-4034-B9BD-01B0BB1BDECA}
|
||||
{6CB3EB30-F725-45C0-9742-42599BA8E8D2} = {74E681ED-FECC-4034-B9BD-01B0BB1BDECA}
|
||||
@ -479,6 +478,5 @@ Global
|
||||
{33B1BC8D-E292-4972-A363-22056B207156} = {383DBA32-4A3E-48D1-AAC3-75377A694452}
|
||||
{8A4E42CE-79F8-4BE2-8B1E-A6B83432123B} = {383DBA32-4A3E-48D1-AAC3-75377A694452}
|
||||
{0DFA2E10-96C8-4E05-BC10-B710B97ECCDE} = {383DBA32-4A3E-48D1-AAC3-75377A694452}
|
||||
{E65E5633-C0FF-453C-A906-481C14F969D6} = {E75A4CE4-CAA6-41E4-B951-33ACC60DC77C}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
|
Loading…
Reference in New Issue
Block a user