mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-10-15 19:54:57 +08:00
Refactoring Media files
- Moving Media Fields to Media Picker - Enabling Media Library in default recipe - Integrating TinyMce module only if features are enabled - Disabling Media Picker in new installs --HG-- branch : 1.x
This commit is contained in:
@@ -1 +1 @@
|
||||
setup /SiteName:Profiling /AdminUsername:admin /AdminPassword:profiling-secret /DatabaseProvider:SQLServer /DatabaseConnectionString:"Data Source=.;Initial Catalog=Orchard;Integrated Security=True" /EnabledFeatures:Profiling,Orchard.Framework,Common,Containers,Contents,Dashboard,Feeds,Navigation,Reports,Scheduling,Settings,Shapes,Title,PackagingServices,Gallery,Orchard.PublishLater,Orchard.Blogs,Orchard.Comments,Orchard.ContentTypes,Orchard.jQuery,Orchard.Lists,Orchard.Media,Orchard.ContentPicker,Orchard.MediaPicker,Orchard.Modules,Orchard.Packaging,Orchard.Pages,Orchard.Recipes,Orchard.Roles,Orchard.Tags,Orchard.Themes,Orchard.Users,Orchard.Scripting,Orchard.Scripting.Lightweight,Orchard.Widgets,TinyMce,TheThemeMachine,Orchard.Tokens,Orchard.Alias,Orchard.Autoroute
|
||||
setup /SiteName:Profiling /AdminUsername:admin /AdminPassword:profiling-secret /DatabaseProvider:SQLServer /DatabaseConnectionString:"Data Source=.;Initial Catalog=Orchard;Integrated Security=True" /EnabledFeatures:Profiling,Orchard.Framework,Common,Containers,Contents,Dashboard,Feeds,Navigation,Reports,Scheduling,Settings,Shapes,Title,PackagingServices,Gallery,Orchard.PublishLater,Orchard.Blogs,Orchard.Comments,Orchard.ContentTypes,Orchard.jQuery,Orchard.Lists,Orchard.MediaLibrary,Orchard.ContentPicker,Orchard.MediaPicker,Orchard.Modules,Orchard.Packaging,Orchard.Pages,Orchard.Recipes,Orchard.Roles,Orchard.Tags,Orchard.Themes,Orchard.Users,Orchard.Scripting,Orchard.Scripting.Lightweight,Orchard.Widgets,TinyMce,TheThemeMachine,Orchard.Tokens,Orchard.Alias,Orchard.Autoroute
|
||||
|
@@ -23,7 +23,7 @@ namespace Orchard.Specs.Bindings {
|
||||
webApp.GivenIHaveACleanSiteWith(
|
||||
virtualDirectory,
|
||||
TableData(
|
||||
new { extension = "Module", names = "Orchard.Setup, Orchard.Pages, Orchard.ContentPicker, Orchard.Blogs, Orchard.Messaging, Orchard.Media, Orchard.MediaPicker, Orchard.ContentPicker, Orchard.Modules, Orchard.Packaging, Orchard.PublishLater, Orchard.Themes, Orchard.Scripting, Orchard.Widgets, Orchard.Users, Orchard.ContentTypes, Orchard.Roles, Orchard.Comments, Orchard.jQuery, Orchard.Tags, TinyMce, Orchard.Packaging, Orchard.Recipes, Orchard.Warmup, Orchard.Alias, Orchard.Forms, Orchard.Tokens, Orchard.Autoroute, Orchard.Projections, Orchard.Fields" },
|
||||
new { extension = "Module", names = "Orchard.Setup, Orchard.Pages, Orchard.ContentPicker, Orchard.Blogs, Orchard.Messaging, Orchard.MediaLibrary, Orchard.ContentPicker, Orchard.Modules, Orchard.Packaging, Orchard.PublishLater, Orchard.Themes, Orchard.Scripting, Orchard.Widgets, Orchard.Users, Orchard.ContentTypes, Orchard.Roles, Orchard.Comments, Orchard.jQuery, Orchard.Tags, TinyMce, Orchard.Packaging, Orchard.Recipes, Orchard.Warmup, Orchard.Alias, Orchard.Forms, Orchard.Tokens, Orchard.Autoroute, Orchard.Projections, Orchard.Fields" },
|
||||
new { extension = "Core", names = "Common, Containers, Dashboard, Feeds, Navigation, Contents, Scheduling, Settings, Shapes, XmlRpc, Title, Reports" },
|
||||
new { extension = "Theme", names = "SafeMode, TheAdmin, TheThemeMachine" }));
|
||||
|
||||
|
@@ -39,7 +39,7 @@ Scenario: Some of the initial form values are required
|
||||
Scenario: Calling setup on a brand new install
|
||||
Given I have a clean site with
|
||||
| extension | names |
|
||||
| Module | Orchard.Setup, Orchard.Pages, Orchard.ContentPicker, Orchard.Blogs, Orchard.Messaging, Orchard.Media, Orchard.MediaPicker, Orchard.ContentPicker, Orchard.Modules, Orchard.Packaging, Orchard.PublishLater, Orchard.Themes, Orchard.Scripting, Orchard.Widgets, Orchard.Users, Orchard.ContentTypes, Orchard.Roles, Orchard.Comments, Orchard.jQuery, Orchard.Tags, TinyMce, Orchard.Packaging, Orchard.Recipes, Orchard.Warmup, Orchard.Alias, Orchard.Forms, Orchard.Tokens, Orchard.Autoroute, Orchard.Projections, Orchard.Fields |
|
||||
| Module | Orchard.Setup, Orchard.Pages, Orchard.ContentPicker, Orchard.Blogs, Orchard.Messaging, Orchard.MediaLibrary, Orchard.ContentPicker, Orchard.Modules, Orchard.Packaging, Orchard.PublishLater, Orchard.Themes, Orchard.Scripting, Orchard.Widgets, Orchard.Users, Orchard.ContentTypes, Orchard.Roles, Orchard.Comments, Orchard.jQuery, Orchard.Tags, TinyMce, Orchard.Packaging, Orchard.Recipes, Orchard.Warmup, Orchard.Alias, Orchard.Forms, Orchard.Tokens, Orchard.Autoroute, Orchard.Projections, Orchard.Fields |
|
||||
| Core | Common, Containers, Dashboard, Feeds, Navigation, Contents, Scheduling, Settings, Shapes, XmlRpc, Title |
|
||||
| Theme | SafeMode, TheAdmin, TheThemeMachine |
|
||||
And I am on "/Setup"
|
||||
|
4
src/Orchard.Specs/Setup.feature.cs
generated
4
src/Orchard.Specs/Setup.feature.cs
generated
@@ -3,7 +3,7 @@
|
||||
// This code was generated by SpecFlow (http://www.specflow.org/).
|
||||
// SpecFlow Version:1.9.0.77
|
||||
// SpecFlow Generator Version:1.9.0.0
|
||||
// Runtime Version:4.0.30319.18010
|
||||
// Runtime Version:4.0.30319.18046
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
@@ -191,7 +191,7 @@ this.ScenarioSetup(scenarioInfo);
|
||||
"names"});
|
||||
table4.AddRow(new string[] {
|
||||
"Module",
|
||||
@"Orchard.Setup, Orchard.Pages, Orchard.ContentPicker, Orchard.Blogs, Orchard.Messaging, Orchard.Media, Orchard.MediaPicker, Orchard.ContentPicker, Orchard.Modules, Orchard.Packaging, Orchard.PublishLater, Orchard.Themes, Orchard.Scripting, Orchard.Widgets, Orchard.Users, Orchard.ContentTypes, Orchard.Roles, Orchard.Comments, Orchard.jQuery, Orchard.Tags, TinyMce, Orchard.Packaging, Orchard.Recipes, Orchard.Warmup, Orchard.Alias, Orchard.Forms, Orchard.Tokens, Orchard.Autoroute, Orchard.Projections, Orchard.Fields"});
|
||||
@"Orchard.Setup, Orchard.Pages, Orchard.ContentPicker, Orchard.Blogs, Orchard.Messaging, Orchard.MediaLibrary, Orchard.ContentPicker, Orchard.Modules, Orchard.Packaging, Orchard.PublishLater, Orchard.Themes, Orchard.Scripting, Orchard.Widgets, Orchard.Users, Orchard.ContentTypes, Orchard.Roles, Orchard.Comments, Orchard.jQuery, Orchard.Tags, TinyMce, Orchard.Packaging, Orchard.Recipes, Orchard.Warmup, Orchard.Alias, Orchard.Forms, Orchard.Tokens, Orchard.Autoroute, Orchard.Projections, Orchard.Fields"});
|
||||
table4.AddRow(new string[] {
|
||||
"Core",
|
||||
"Common, Containers, Dashboard, Feeds, Navigation, Contents, Scheduling, Settings," +
|
||||
|
@@ -7,6 +7,6 @@ OrchardVersion: 1.4
|
||||
Description: Some content fields
|
||||
Features:
|
||||
Orchard.Fields:
|
||||
Description: Contains the following fields: Input, Boolean, DateTime, Numeric, Link, Enumeration, Media Picker
|
||||
Description: Contains the following fields: Input, Boolean, DateTime, Numeric, Link, Enumeration
|
||||
Category: Fields
|
||||
Dependencies: Orchard.jQuery, Orchard.Media, Orchard.MediaPicker
|
||||
Dependencies: Orchard.jQuery
|
||||
|
@@ -73,10 +73,6 @@
|
||||
<Content Include="Views\Web.config" />
|
||||
<Content Include="Scripts\Web.config" />
|
||||
<Content Include="Styles\Web.config" />
|
||||
<Compile Include="Drivers\MediaGalleryFieldDriver.cs" />
|
||||
<Compile Include="Drivers\MediaPickerFieldDriver.cs" />
|
||||
<Compile Include="Fields\MediaGalleryField.cs" />
|
||||
<Compile Include="Handlers\MediaGalleryFieldHandler.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Content Include="Module.txt" />
|
||||
</ItemGroup>
|
||||
@@ -125,19 +121,14 @@
|
||||
<Compile Include="Drivers\LinkFieldDriver.cs" />
|
||||
<Compile Include="Fields\BooleanField.cs" />
|
||||
<Compile Include="Fields\InputField.cs" />
|
||||
<Compile Include="Fields\MediaPickerField.cs" />
|
||||
<Compile Include="Fields\NumericField.cs" />
|
||||
<Compile Include="Fields\DateTimeField.cs" />
|
||||
<Compile Include="Fields\EnumerationField.cs" />
|
||||
<Compile Include="Fields\LinkField.cs" />
|
||||
<Compile Include="Settings\BooleanFieldEditorEvents.cs" />
|
||||
<Compile Include="Settings\BooleanFieldSettings.cs" />
|
||||
<Compile Include="Settings\MediaGalleryFieldEditorEvents.cs" />
|
||||
<Compile Include="Settings\MediaGalleryFieldSettings.cs" />
|
||||
<Compile Include="Settings\InputFieldEditorEvents.cs" />
|
||||
<Compile Include="Settings\InputFieldSettings.cs" />
|
||||
<Compile Include="Settings\MediaPickerFieldEditorEvents.cs" />
|
||||
<Compile Include="Settings\MediaPickerFieldSettings.cs" />
|
||||
<Compile Include="Settings\NumericFieldEditorEvents.cs" />
|
||||
<Compile Include="Settings\NumericFieldSettings.cs" />
|
||||
<Compile Include="Settings\LinkFieldEditorEvents.cs" />
|
||||
@@ -147,7 +138,6 @@
|
||||
<Compile Include="Settings\EnumerationFieldEditorEvents.cs" />
|
||||
<Compile Include="Settings\EnumerationFieldSettings.cs" />
|
||||
<Compile Include="Tokens\FieldTokens.cs" />
|
||||
<Compile Include="ViewModels\MediaGalleryFieldViewModel.cs" />
|
||||
<Compile Include="ViewModels\NumericFieldViewModel.cs" />
|
||||
<Compile Include="ViewModels\DateTimeFieldViewModel.cs" />
|
||||
</ItemGroup>
|
||||
@@ -155,30 +145,9 @@
|
||||
<Folder Include="Controllers\" />
|
||||
<Folder Include="Models\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Views\DefinitionTemplates\MediaPickerFieldSettings.cshtml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Views\EditorTemplates\Fields\MediaPicker.Edit.cshtml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Views\Fields\MediaPicker.cshtml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Views\Fields\Input.cshtml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Views\DefinitionTemplates\MediaGalleryFieldSettings.cshtml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Views\EditorTemplates\Fields\MediaGallery.Edit.cshtml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Views\Fields\MediaGallery.cshtml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Views\Fields\MediaGallery.SummaryAdmin.cshtml" />
|
||||
</ItemGroup>
|
||||
<PropertyGroup>
|
||||
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
|
||||
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
|
||||
|
@@ -23,24 +23,8 @@
|
||||
<Place Fields_DateTime_Edit="Content:2.5"/>
|
||||
<Place Fields_DateTime="Content:after"/>
|
||||
|
||||
<!-- MediaPicker -->
|
||||
<Place Fields_MediaPicker_Edit="Content:2.3"/>
|
||||
<Place Fields_MediaPicker="Content:after"/>
|
||||
|
||||
<!-- MediaGallery -->
|
||||
<Place Fields_MediaGallery_Edit="Content:2.3"/>
|
||||
<Place Fields_MediaGallery="Content:after"/>
|
||||
|
||||
<Match DisplayType="SummaryAdmin">
|
||||
<Place Fields_DateTime="Content"/>
|
||||
<Place Fields_MediaPicker="-"/>
|
||||
<Place Fields_MediaGallery="-"/>
|
||||
<Place Fields_MediaGallery_SummaryAdmin="Content:after"/>
|
||||
</Match>
|
||||
|
||||
<Match DisplayType="Summary">
|
||||
<Place Fields_MediaPicker="-"/>
|
||||
<Place Fields_MediaGallery="-"/>
|
||||
</Match>
|
||||
|
||||
</Placement>
|
||||
|
@@ -44,16 +44,6 @@ namespace Orchard.Fields.Tokens {
|
||||
.Token("Time", T("Time"), T("The time only."))
|
||||
.Token("DateTime", T("Date Time"), T("The date and time."))
|
||||
;
|
||||
|
||||
context.For("MediaPickerField", T("Media Picker Field"), T("Tokens for Media Picker Fields"))
|
||||
.Token("Url", T("Url"), T("The url of the media."))
|
||||
.Token("AlternateText", T("Alternate Text"), T("The alternate text of the media."))
|
||||
.Token("Class", T("Class"), T("The class of the media."))
|
||||
.Token("Style", T("Style"), T("The style of the media."))
|
||||
.Token("Alignment", T("Alignment"), T("The alignment of the media."))
|
||||
.Token("Width", T("Width"), T("The width of the media."))
|
||||
.Token("Height", T("Height"), T("The height of the media."))
|
||||
;
|
||||
}
|
||||
|
||||
public void Evaluate(dynamic context) {
|
||||
@@ -71,17 +61,6 @@ namespace Orchard.Fields.Tokens {
|
||||
.Token("DateTime", (Func<DateTimeField, object>)(d => d.DateTime.ToString(_dateTimeLocalization.ShortDateFormat.Text + " " + _dateTimeLocalization.ShortTimeFormat.Text, _cultureInfo.Value)))
|
||||
.Chain("DateTime", "Date", (Func<DateTimeField, object>)(field => field.DateTime))
|
||||
;
|
||||
|
||||
context.For<MediaPickerField>("MediaPickerField")
|
||||
.Token("Url", (Func<MediaPickerField, object>)(field => field.Url))
|
||||
.Chain("Url", "Url", (Func<MediaPickerField, object>)(field => field.Url))
|
||||
.Token("AlternateText", (Func<MediaPickerField, object>)(field => field.AlternateText))
|
||||
.Token("Class", (Func<MediaPickerField, object>)(field => field.Class))
|
||||
.Token("Style", (Func<MediaPickerField, object>)(field => field.Style))
|
||||
.Token("Alignment", (Func<MediaPickerField, object>)(field => field.Alignment))
|
||||
.Token("Width", (Func<MediaPickerField, object>)(field => field.Width))
|
||||
.Token("Height", (Func<MediaPickerField, object>)(field => field.Height))
|
||||
;
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,15 +1,15 @@
|
||||
using System;
|
||||
using Orchard.Fields.Settings;
|
||||
using Orchard.ContentManagement;
|
||||
using Orchard.ContentManagement.Drivers;
|
||||
using Orchard.ContentManagement.Handlers;
|
||||
using Orchard.Fields.Fields;
|
||||
using Orchard.Fields.ViewModels;
|
||||
using Orchard.Localization;
|
||||
using Orchard.MediaPicker.Fields;
|
||||
using Orchard.MediaPicker.Settings;
|
||||
using Orchard.MediaPicker.ViewModels;
|
||||
using Orchard.Services;
|
||||
using Orchard.Utility.Extensions;
|
||||
|
||||
namespace Orchard.Fields.Drivers {
|
||||
namespace Orchard.MediaPicker.Drivers {
|
||||
public class MediaGalleryFieldDriver : ContentFieldDriver<MediaGalleryField> {
|
||||
private readonly IJsonConverter _jsonConverter;
|
||||
|
@@ -1,15 +1,16 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using Orchard.Fields.Settings;
|
||||
using Orchard.FileSystems.WebSite;
|
||||
using Orchard.ContentManagement;
|
||||
using Orchard.ContentManagement.Drivers;
|
||||
using Orchard.ContentManagement.Handlers;
|
||||
using Orchard.Localization;
|
||||
using Orchard.MediaPicker.Fields;
|
||||
using Orchard.MediaPicker.Settings;
|
||||
using Orchard.Utility.Extensions;
|
||||
|
||||
namespace Orchard.Fields.Drivers {
|
||||
public class MediaPickerFieldDriver : ContentFieldDriver<Fields.MediaPickerField> {
|
||||
namespace Orchard.MediaPicker.Drivers {
|
||||
public class MediaPickerFieldDriver : ContentFieldDriver<MediaPickerField> {
|
||||
private readonly IWebSiteFolder _webSiteFolder;
|
||||
|
||||
public MediaPickerFieldDriver(IWebSiteFolder webSiteFolder) {
|
||||
@@ -19,25 +20,25 @@ namespace Orchard.Fields.Drivers {
|
||||
|
||||
public Localizer T { get; set; }
|
||||
|
||||
private static string GetPrefix(Fields.MediaPickerField field, ContentPart part) {
|
||||
private static string GetPrefix(MediaPickerField field, ContentPart part) {
|
||||
return part.PartDefinition.Name + "." + field.Name;
|
||||
}
|
||||
|
||||
private static string GetDifferentiator(Fields.MediaPickerField field, ContentPart part) {
|
||||
private static string GetDifferentiator(MediaPickerField field, ContentPart part) {
|
||||
return field.Name;
|
||||
}
|
||||
|
||||
protected override DriverResult Display(ContentPart part, Fields.MediaPickerField field, string displayType, dynamic shapeHelper) {
|
||||
protected override DriverResult Display(ContentPart part, MediaPickerField field, string displayType, dynamic shapeHelper) {
|
||||
return ContentShape("Fields_MediaPicker", GetDifferentiator(field, part),
|
||||
() => shapeHelper.Fields_MediaPicker());
|
||||
}
|
||||
|
||||
protected override DriverResult Editor(ContentPart part, Fields.MediaPickerField field, dynamic shapeHelper) {
|
||||
protected override DriverResult Editor(ContentPart part, MediaPickerField field, dynamic shapeHelper) {
|
||||
return ContentShape("Fields_MediaPicker_Edit", GetDifferentiator(field, part),
|
||||
() => shapeHelper.EditorTemplate(TemplateName: "Fields/MediaPicker.Edit", Model: field, Prefix: GetPrefix(field, part)));
|
||||
}
|
||||
|
||||
protected override DriverResult Editor(ContentPart part, Fields.MediaPickerField field, IUpdateModel updater, dynamic shapeHelper) {
|
||||
protected override DriverResult Editor(ContentPart part, MediaPickerField field, IUpdateModel updater, dynamic shapeHelper) {
|
||||
// if the model could not be bound, don't try to validate its properties
|
||||
if (updater.TryUpdateModel(field, GetPrefix(field, part), null, null)) {
|
||||
var settings = field.PartFieldDefinition.Settings.GetModel<MediaPickerFieldSettings>();
|
||||
@@ -58,7 +59,7 @@ namespace Orchard.Fields.Drivers {
|
||||
return Editor(part, field, shapeHelper);
|
||||
}
|
||||
|
||||
protected override void Importing(ContentPart part, Fields.MediaPickerField field, ImportContentContext context) {
|
||||
protected override void Importing(ContentPart part, MediaPickerField field, ImportContentContext context) {
|
||||
context.ImportAttribute(field.FieldDefinition.Name + "." + field.Name, "Url", value => field.Url = value);
|
||||
context.ImportAttribute(field.FieldDefinition.Name + "." + field.Name, "AlternateText", value => field.AlternateText = value);
|
||||
context.ImportAttribute(field.FieldDefinition.Name + "." + field.Name, "Class", value => field.Class = value);
|
||||
@@ -68,7 +69,7 @@ namespace Orchard.Fields.Drivers {
|
||||
context.ImportAttribute(field.FieldDefinition.Name + "." + field.Name, "Height", value => field.Height = Int32.Parse(value));
|
||||
}
|
||||
|
||||
protected override void Exporting(ContentPart part, Fields.MediaPickerField field, ExportContentContext context) {
|
||||
protected override void Exporting(ContentPart part, MediaPickerField field, ExportContentContext context) {
|
||||
context.Element(field.FieldDefinition.Name + "." + field.Name).SetAttributeValue("Url", field.Url);
|
||||
context.Element(field.FieldDefinition.Name + "." + field.Name).SetAttributeValue("AlternateText", field.AlternateText);
|
||||
context.Element(field.FieldDefinition.Name + "." + field.Name).SetAttributeValue("Class", field.Class);
|
@@ -3,7 +3,7 @@ using Orchard.ContentManagement;
|
||||
using Orchard.ContentManagement.Utilities;
|
||||
using Orchard.ContentManagement.FieldStorage;
|
||||
|
||||
namespace Orchard.Fields.Fields {
|
||||
namespace Orchard.MediaPicker.Fields {
|
||||
public class MediaGalleryField : ContentField {
|
||||
internal LazyField<ICollection<MediaGalleryItem>> _mediaGalleryItems = new LazyField<ICollection<MediaGalleryItem>>();
|
||||
|
@@ -1,7 +1,7 @@
|
||||
using Orchard.ContentManagement;
|
||||
using Orchard.ContentManagement.FieldStorage;
|
||||
|
||||
namespace Orchard.Fields.Fields {
|
||||
namespace Orchard.MediaPicker.Fields {
|
||||
public class MediaPickerField : ContentField {
|
||||
public string Url {
|
||||
get { return Storage.Get<string>(); }
|
@@ -1,10 +1,10 @@
|
||||
using System.Linq;
|
||||
using Orchard.ContentManagement.Handlers;
|
||||
using Orchard.ContentManagement.MetaData;
|
||||
using Orchard.Fields.Fields;
|
||||
using Orchard.MediaPicker.Fields;
|
||||
using Orchard.Services;
|
||||
|
||||
namespace Orchard.Fields.Handlers {
|
||||
namespace Orchard.MediaPicker.Handlers {
|
||||
public class MediaGalleryFieldHandler : ContentHandler {
|
||||
private readonly IJsonConverter _jsonConverter;
|
||||
private readonly IContentDefinitionManager _contentDefinitionManager;
|
@@ -21,6 +21,10 @@
|
||||
</UpgradeBackupLocation>
|
||||
<TargetFrameworkProfile />
|
||||
<UseIISExpress>false</UseIISExpress>
|
||||
<IISExpressSSLPort />
|
||||
<IISExpressAnonymousAuthentication />
|
||||
<IISExpressWindowsAuthentication />
|
||||
<IISExpressUseClassicPipelineMode />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@@ -61,14 +65,27 @@
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Settings\MediaGalleryFieldEditorEvents.cs" />
|
||||
<Compile Include="Settings\MediaGalleryFieldSettings.cs" />
|
||||
<Compile Include="Settings\MediaPickerFieldEditorEvents.cs" />
|
||||
<Compile Include="Settings\MediaPickerFieldSettings.cs" />
|
||||
<Compile Include="Tokens\FieldTokens.cs" />
|
||||
<Compile Include="ViewModels\MediaGalleryFieldViewModel.cs" />
|
||||
<Content Include="Scripts\MediaBrowser.js" />
|
||||
<Content Include="Scripts\MediaPicker.js" />
|
||||
<Content Include="Styles\images\imagepreview.png" />
|
||||
<Content Include="Styles\images\move.gif" />
|
||||
<Content Include="Styles\images\synchronizing.gif" />
|
||||
<Content Include="Styles\media-gallery-admin.css" />
|
||||
<Content Include="Styles\mediapicker.css" />
|
||||
<Content Include="Views\Web.config" />
|
||||
<Content Include="Scripts\Web.config" />
|
||||
<Content Include="Styles\Web.config" />
|
||||
<Compile Include="Drivers\MediaGalleryFieldDriver.cs" />
|
||||
<Compile Include="Drivers\MediaPickerFieldDriver.cs" />
|
||||
<Compile Include="Fields\MediaGalleryField.cs" />
|
||||
<Compile Include="Fields\MediaPickerField.cs" />
|
||||
<Compile Include="Handlers\MediaGalleryFieldHandler.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Content Include="Module.txt" />
|
||||
</ItemGroup>
|
||||
@@ -108,6 +125,32 @@
|
||||
<ItemGroup>
|
||||
<Content Include="web.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Views\DefinitionTemplates\MediaGalleryFieldSettings.cshtml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Views\DefinitionTemplates\MediaPickerFieldSettings.cshtml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Views\EditorTemplates\Fields\MediaGallery.Edit.cshtml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Views\EditorTemplates\Fields\MediaPicker.Edit.cshtml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Views\Fields\MediaGallery.cshtml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Views\Fields\MediaGallery.SummaryAdmin.cshtml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Views\Fields\MediaPicker.cshtml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Placement.info">
|
||||
<SubType>Designer</SubType>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
<PropertyGroup>
|
||||
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
|
||||
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
|
||||
|
21
src/Orchard.Web/Modules/Orchard.MediaPicker/Placement.info
Normal file
21
src/Orchard.Web/Modules/Orchard.MediaPicker/Placement.info
Normal file
@@ -0,0 +1,21 @@
|
||||
<Placement>
|
||||
<!-- MediaPicker -->
|
||||
<Place Fields_MediaPicker_Edit="Content:2.3"/>
|
||||
<Place Fields_MediaPicker="Content:after"/>
|
||||
|
||||
<!-- MediaGallery -->
|
||||
<Place Fields_MediaGallery_Edit="Content:2.3"/>
|
||||
<Place Fields_MediaGallery="Content:after"/>
|
||||
|
||||
<Match DisplayType="SummaryAdmin">
|
||||
<Place Fields_MediaPicker="-"/>
|
||||
<Place Fields_MediaGallery="-"/>
|
||||
<Place Fields_MediaGallery_SummaryAdmin="Content:after"/>
|
||||
</Match>
|
||||
|
||||
<Match DisplayType="Summary">
|
||||
<Place Fields_MediaPicker="-"/>
|
||||
<Place Fields_MediaGallery="-"/>
|
||||
</Match>
|
||||
|
||||
</Placement>
|
@@ -1,5 +1,5 @@
|
||||
jQuery(function ($) {
|
||||
$("form").bind("orchard-admin-pickimage-open", function (ev, data) {
|
||||
$("form").on("orchard-admin-pickimage-open", function (ev, data) {
|
||||
data = data || {};
|
||||
// the popup will be doing full page reloads, so will not be able to retain
|
||||
// a pointer to the callback. We will generate a temporary callback
|
||||
|
@@ -6,7 +6,7 @@ using Orchard.ContentManagement.MetaData.Builders;
|
||||
using Orchard.ContentManagement.MetaData.Models;
|
||||
using Orchard.ContentManagement.ViewModels;
|
||||
|
||||
namespace Orchard.Fields.Settings {
|
||||
namespace Orchard.MediaPicker.Settings {
|
||||
public class MediaGalleryFieldEditorEvents : ContentDefinitionEditorEventsBase {
|
||||
|
||||
public override IEnumerable<TemplateViewModel> PartFieldEditor(ContentPartFieldDefinition definition) {
|
@@ -1,4 +1,4 @@
|
||||
namespace Orchard.Fields.Settings {
|
||||
namespace Orchard.MediaPicker.Settings {
|
||||
public class MediaGalleryFieldSettings {
|
||||
public string Hint { get; set; }
|
||||
public string AllowedExtensions { get; set; }
|
@@ -5,7 +5,7 @@ using Orchard.ContentManagement.MetaData.Builders;
|
||||
using Orchard.ContentManagement.MetaData.Models;
|
||||
using Orchard.ContentManagement.ViewModels;
|
||||
|
||||
namespace Orchard.Fields.Settings {
|
||||
namespace Orchard.MediaPicker.Settings {
|
||||
public class MediaPickerFieldEditorEvents : ContentDefinitionEditorEventsBase {
|
||||
|
||||
public override IEnumerable<TemplateViewModel> PartFieldEditor(ContentPartFieldDefinition definition) {
|
@@ -1,4 +1,4 @@
|
||||
namespace Orchard.Fields.Settings {
|
||||
namespace Orchard.MediaPicker.Settings {
|
||||
public class MediaPickerFieldSettings {
|
||||
public string Hint { get; set; }
|
||||
public string AllowedExtensions { get; set; }
|
@@ -10,10 +10,6 @@
|
||||
</httpHandlers>
|
||||
</system.web>
|
||||
<system.webServer>
|
||||
<staticContent>
|
||||
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="7.00:00:00" />
|
||||
</staticContent>
|
||||
|
||||
<handlers accessPolicy="Script,Read">
|
||||
<!--
|
||||
iis7 - for any request to a file exists on disk, return it via native http module.
|
||||
|
Binary file not shown.
After Width: | Height: | Size: 897 B |
@@ -0,0 +1,12 @@
|
||||
table.media-gallery tr td:nth-child(1) {
|
||||
background: url(images/move.gif) no-repeat 12px 14px;
|
||||
cursor: move;
|
||||
}
|
||||
|
||||
.media-gallery-message {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.ui-sortable-helper .media-gallery-remove {
|
||||
display: none;
|
||||
}
|
@@ -0,0 +1,46 @@
|
||||
using System;
|
||||
using Orchard.Events;
|
||||
using Orchard.Localization;
|
||||
using Orchard.MediaPicker.Fields;
|
||||
|
||||
namespace Orchard.MediaPicker.Tokens {
|
||||
public interface ITokenProvider : IEventHandler {
|
||||
void Describe(dynamic context);
|
||||
void Evaluate(dynamic context);
|
||||
}
|
||||
|
||||
public class FieldTokens : ITokenProvider {
|
||||
|
||||
|
||||
public FieldTokens() {
|
||||
T = NullLocalizer.Instance;
|
||||
}
|
||||
|
||||
public Localizer T { get; set; }
|
||||
|
||||
public void Describe(dynamic context) {
|
||||
context.For("MediaPickerField", T("Media Picker Field"), T("Tokens for Media Picker Fields"))
|
||||
.Token("Url", T("Url"), T("The url of the media."))
|
||||
.Token("AlternateText", T("Alternate Text"), T("The alternate text of the media."))
|
||||
.Token("Class", T("Class"), T("The class of the media."))
|
||||
.Token("Style", T("Style"), T("The style of the media."))
|
||||
.Token("Alignment", T("Alignment"), T("The alignment of the media."))
|
||||
.Token("Width", T("Width"), T("The width of the media."))
|
||||
.Token("Height", T("Height"), T("The height of the media."))
|
||||
;
|
||||
}
|
||||
|
||||
public void Evaluate(dynamic context) {
|
||||
context.For<MediaPickerField>("MediaPickerField")
|
||||
.Token("Url", (Func<MediaPickerField, object>)(field => field.Url))
|
||||
.Chain("Url", "Url", (Func<MediaPickerField, object>)(field => field.Url))
|
||||
.Token("AlternateText", (Func<MediaPickerField, object>)(field => field.AlternateText))
|
||||
.Token("Class", (Func<MediaPickerField, object>)(field => field.Class))
|
||||
.Token("Style", (Func<MediaPickerField, object>)(field => field.Style))
|
||||
.Token("Alignment", (Func<MediaPickerField, object>)(field => field.Alignment))
|
||||
.Token("Width", (Func<MediaPickerField, object>)(field => field.Width))
|
||||
.Token("Height", (Func<MediaPickerField, object>)(field => field.Height))
|
||||
;
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,7 +1,7 @@
|
||||
using System.Collections.Generic;
|
||||
using Orchard.Fields.Fields;
|
||||
using Orchard.MediaPicker.Fields;
|
||||
|
||||
namespace Orchard.Fields.ViewModels {
|
||||
namespace Orchard.MediaPicker.ViewModels {
|
||||
|
||||
public class MediaGalleryFieldViewModel {
|
||||
|
@@ -1,4 +1,4 @@
|
||||
@model Orchard.Fields.Settings.MediaGalleryFieldSettings
|
||||
@model Orchard.MediaPicker.Settings.MediaGalleryFieldSettings
|
||||
|
||||
<fieldset>
|
||||
<div>
|
@@ -1,4 +1,4 @@
|
||||
@model Orchard.Fields.Settings.MediaPickerFieldSettings
|
||||
@model Orchard.MediaPicker.Settings.MediaPickerFieldSettings
|
||||
|
||||
<fieldset>
|
||||
<div>
|
@@ -1,6 +1,6 @@
|
||||
@model MediaGalleryFieldViewModel
|
||||
@model Orchard.MediaPicker.ViewModels.MediaGalleryFieldViewModel
|
||||
@using Orchard.Environment.Configuration
|
||||
@using Orchard.Fields.Settings;
|
||||
@using Orchard.MediaPicker.Settings;
|
||||
|
||||
@{
|
||||
Style.Include("media-gallery-admin");
|
@@ -1,6 +1,5 @@
|
||||
@model Orchard.Fields.Fields.MediaPickerField
|
||||
@using Orchard.Utility.Extensions;
|
||||
@using Orchard.Fields.Settings;
|
||||
@model Orchard.MediaPicker.Fields.MediaPickerField
|
||||
@using Orchard.MediaPicker.Settings
|
||||
|
||||
@{
|
||||
Script.Require("jQuery").AtFoot();
|
@@ -1,4 +1,5 @@
|
||||
@using Orchard.Utility.Extensions;
|
||||
@using Orchard.MediaPicker.Fields
|
||||
@using Orchard.Utility.Extensions;
|
||||
|
||||
@{
|
||||
var field = (MediaGalleryField) Model.ContentField;
|
@@ -1,4 +1,5 @@
|
||||
@using Orchard.Utility.Extensions;
|
||||
@using Orchard.MediaPicker.Fields
|
||||
@using Orchard.Utility.Extensions;
|
||||
|
||||
@{
|
||||
var field = (MediaGalleryField) Model.ContentField;
|
@@ -11,7 +11,7 @@
|
||||
|
||||
<Feature enable="Orchard.Blogs,Orchard.Comments,Orchard.Tags,Orchard.Alias,Orchard.Autoroute,
|
||||
XmlRpc,Orchard.Blogs.RemotePublishing,Orchard.ContentPicker,
|
||||
TinyMce,Orchard.Media,Orchard.MediaPicker,Orchard.PublishLater,
|
||||
TinyMce,Orchard.MediaLibrary,Orchard.PublishLater,
|
||||
Orchard.jQuery,Orchard.Widgets,Orchard.Widgets.PageLayerHinting,
|
||||
Orchard.Scripting,Orchard.Scripting.Lightweight,
|
||||
PackagingServices,Orchard.Packaging,Orchard.Warmup,
|
||||
|
@@ -10,7 +10,7 @@
|
||||
</Recipe>
|
||||
|
||||
<Feature enable="Orchard.Blogs,Orchard.Comments,Orchard.Tags,Orchard.Alias,Orchard.Autoroute,
|
||||
TinyMce,Orchard.Media,Orchard.MediaPicker,Orchard.ContentPicker,Orchard.PublishLater,
|
||||
TinyMce,Orchard.MediaLibrary,Orchard.ContentPicker,Orchard.PublishLater,
|
||||
Orchard.jQuery,Orchard.Widgets,Orchard.Widgets.PageLayerHinting,Orchard.ContentTypes,
|
||||
Orchard.Scripting,Orchard.Scripting.Lightweight,
|
||||
PackagingServices,Orchard.Packaging,Orchard.Warmup,Orchard.Projections,Orchard.Fields,
|
||||
|
@@ -1,12 +1,22 @@
|
||||
tinyMCE.init({
|
||||
var mediaPlugins = ",|";
|
||||
|
||||
if (mediaPickerEnabled) {
|
||||
mediaPlugins += ",mediapicker";
|
||||
}
|
||||
|
||||
if (mediaLibraryEnabled) {
|
||||
mediaPlugins += ",medialibrary";
|
||||
}
|
||||
|
||||
tinyMCE.init({
|
||||
theme: "advanced",
|
||||
schema: "html5",
|
||||
mode: "specific_textareas",
|
||||
editor_selector: "tinymce",
|
||||
plugins: "fullscreen,autoresize,searchreplace,mediapicker,inlinepopups,medialibrary",
|
||||
plugins: "fullscreen,autoresize,searchreplace,inlinepopups" + mediaPlugins.substr(2),
|
||||
theme_advanced_toolbar_location: "top",
|
||||
theme_advanced_toolbar_align: "left",
|
||||
theme_advanced_buttons1: "search,replace,|,cut,copy,paste,|,undo,redo,|,mediapicker,medialibrary,|,link,unlink,charmap,emoticon,codeblock,|,bold,italic,|,numlist,bullist,formatselect,|,code,fullscreen,",
|
||||
theme_advanced_buttons1: "search,replace,|,cut,copy,paste,|,undo,redo" + mediaPlugins + ",|,link,unlink,charmap,emoticon,codeblock,|,bold,italic,|,numlist,bullist,formatselect,|,code,fullscreen,",
|
||||
theme_advanced_buttons2: "",
|
||||
theme_advanced_buttons3: "",
|
||||
convert_urls: false,
|
||||
|
@@ -1,4 +1,15 @@
|
||||
@{
|
||||
@using Orchard.Environment.Descriptor.Models
|
||||
|
||||
@{
|
||||
var shellDescriptor = WorkContext.Resolve<ShellDescriptor>();
|
||||
}
|
||||
|
||||
<script type="text/javascript">
|
||||
var mediaPickerEnabled = @(shellDescriptor.Features.Any(x => x.Name == "Orchard.MediaPicker") ? "true" : "false");
|
||||
var mediaLibraryEnabled = @(shellDescriptor.Features.Any(x => x.Name == "Orchard.MediaLibrary") ? "true" : "false");
|
||||
</script>
|
||||
|
||||
@{
|
||||
Script.Require("OrchardTinyMce");
|
||||
Script.Require("jQueryColorBox");
|
||||
Style.Require("jQueryColorBox");
|
||||
|
Reference in New Issue
Block a user