#20093 : Media library : Picker field, OEmbed, Import

Work Item: 20093
This commit is contained in:
agriffard
2013-09-09 13:29:55 +02:00
parent ad6abdc6a6
commit 8f20a745be
9 changed files with 90 additions and 22 deletions

View File

@@ -80,10 +80,14 @@ namespace Orchard.MediaLibrary.Controllers {
var part = Services.ContentManager.New<MediaPart>("OEmbed");
part.MimeType = "text/html";
part.FolderPath = folderPath;
if (oembed.Element("title") != null) {
part.Title = oembed.Element("title").Value;
}
else {
part.Title = oembed.Element("url").Value;
}
if (oembed.Element("description") != null) {
part.Caption = oembed.Element("description").Value;
}
@@ -95,7 +99,6 @@ namespace Orchard.MediaLibrary.Controllers {
oembedPart[element.Name.LocalName] = element.Value;
}
Services.ContentManager.Create(oembedPart);
var viewModel = new OEmbedViewModel {

View File

@@ -49,3 +49,17 @@
padding-right:5px;
font-size: 12px;
}
.media-thumbnail-document {
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAA5CAIAAAD/bz8YAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAASZJREFUaEPt2c8NgjAUx3F3cgFO3JmDEZiAGZiARdiCMxNwgRD8RaryR2j72lfBvO+NGl4/QiQk3saTJSBdpwcVRXF3qCxLNYjaAuSoeVdVlZpo3wfU932SJGqkc+RLxQVCNNN3UBRFbduqDwza+zIEEy8I2ZrYQcjK5B+Ec+u6juN4OpwyN7GAcG7TNDQTFwiLNBMjCBFMvCBka2IHIStTCBAyNwUCIUNTOBDamrbvBf5BVm03+jEIrW6cHxAiv9yladp1nZriEYRoptVePkHmHewloGf/BRqGIcuyad2l+a/JCTRfd2lv5vVBp7tlHAlI13+B5Dn06jIgeQ69EpCADhKQruuDQnYdEPL154tVeZ6r7Z8tQCiwaaVBa9DPE5AuAR03jg+0DsulZjOdQAAAAABJRU5ErkJggg==');
background-repeat: no-repeat;
background-position: center;
border: 1px solid #e0e0e0;
width: 120px;
height: 120px;
}
.media-thumbnail-o-embed {
width: 120px;
height: 120px;
overflow:hidden;
}

View File

@@ -206,19 +206,19 @@
float: left;
margin: 0 3px 3px 0;
padding: 0;
width: 60px;
height: 60px;
width: 120px;
height: 120px;
}
#media-library-main-selection .selection {
margin: 0;
padding: 0;
height: 60px;
height: 120px;
}
#media-library-main-selection .media-thumbnail > img {
width: 60px;
height: 60px;
width: 120px;
height: 120px;
}
#media-library-main-selection-actions:before {
@@ -256,11 +256,13 @@
#media-library-main-list .media-thumbnail {
width: 200px;
height: 200px;
overflow:hidden;
}
#media-library-main-selection .media-thumbnail {
width: 60px;
height: 60px;
width: 120px;
height: 120px;
overflow:hidden;
}
.media-thumbnail-o-embed {

View File

@@ -14,8 +14,7 @@
@if (mediaParts.Any()) {
foreach (var contentItem in mediaParts) {
<span>
@if (Authorizer.Authorize(Permissions.EditContent, contentItem)) {
if (Authorizer.Authorize(Permissions.EditContent, contentItem)) {
<a href="@Url.ItemEditUrl(contentItem, new {returnUrl})">
@Display(BuildDisplay(contentItem, "Thumbnail"))
</a>
@@ -23,7 +22,6 @@
else {
@Display(BuildDisplay(contentItem, "Thumbnail"))
}
</span>
}
}
else {

View File

@@ -10,5 +10,5 @@
}
<div class="media-thumbnail media-thumbnail-@contentItem.ContentType.HtmlClassify() mime-type-@media.MimeType.HtmlClassify()">
<img src="@Display.ResizeMediaUrl(Width: 200, Height: 200, Mode: "crop", Alignment: "middlecenter", Path: media.MediaUrl)" >
<img src="@Display.ResizeMediaUrl(Width: 200, Height: 200, Mode: "crop", Alignment: "middlecenter", Path: media.MediaUrl)" />
</div>

View File

@@ -1,16 +1,24 @@
@using Orchard.ContentManagement
@using Orchard.MediaLibrary.Models
@using Orchard.Utility.Extensions
@using System.Text.RegularExpressions;
@model dynamic
@{
ContentItem contentItem = Model.ContentItem;
var media = contentItem.As<MediaPart>();
var oembed = contentItem.As<OEmbedPart>();
string thumbnail = oembed["thumbnail_url"] ?? oembed["thumbnail"];
}
@if (!String.IsNullOrEmpty(oembed["thumbnail_url"])) {
@if (!string.IsNullOrEmpty(thumbnail)) {
<div class="media-thumbnail media-thumbnail-@contentItem.ContentType.HtmlClassify() mime-type-@media.MimeType.HtmlClassify()">
<img src="@Display.ResizeMediaUrl(Width: 200, Height: 200, Mode: "crop", Alignment: "middlecenter", Path: oembed["thumbnail_url"])" >
<img src="@thumbnail" style="width:200px"/>
@*<img src="@Display.ResizeMediaUrl(Width: 200, Height: 200, Mode: "crop", Alignment: "middlecenter", Path: thumbnail)" />*@
</div>
}
else if(!string.IsNullOrEmpty(oembed["html"])) {
<div class="media-thumbnail media-thumbnail-@contentItem.ContentType.HtmlClassify() mime-type-@media.MimeType.HtmlClassify()">
@Html.Raw(Regex.Replace(oembed["html"], "<script.*?>.*?</script>", "", RegexOptions.IgnoreCase))
</div>
}

View File

@@ -45,13 +45,32 @@
@Html.Raw(oembed.Element("html").Value)
break;
case "link":
<a href="@oembed.Element("url").Value">oembed.Element("title").Value</a>
if (oembed.Element("url") != null){
<a href="@oembed.Element("url").Value">@oembed.Element("title").Value</a>
}
else {
@oembed.Element("title").Value
}
break;
case "rich":
@Html.Raw(oembed.Element("html").Value)
break;
}
string thumbnail = string.Empty;
if (oembed.Element("thumbnail") != null) {
thumbnail = oembed.Element("thumbnail").Value;
}
else if (oembed.Element("thumbnail_url") != null) {
thumbnail = oembed.Element("thumbnail_url").Value;
}
if (oembed.Element("html") == null && !String.IsNullOrEmpty(thumbnail)) {
<div class="media-thumbnail">
<img src="@thumbnail" />
</div>
}
using (Html.BeginFormAntiForgeryPost(Url.Action("MediaPost"))) {
@Html.Hidden("url", Model.Url)
@Html.Hidden("folderPath", Model.FolderPath)

View File

@@ -1,4 +1,21 @@
@using Orchard.MediaLibrary.Models
@using Orchard.ContentManagement
@using Orchard.MediaLibrary.Models
@using Orchard.Utility.Extensions
@{
OEmbedPart oEmbedPart = Model.ContentPart;
ContentItem contentItem = Model.ContentItem;
var media = contentItem.As<MediaPart>();
var oembed = contentItem.As<OEmbedPart>();
string thumbnail = oembed["thumbnail_url"] ?? oembed["thumbnail"];
}
@if (!String.IsNullOrEmpty(thumbnail)) {
<div class="media-thumbnail media-thumbnail-@contentItem.ContentType.HtmlClassify() mime-type-@media.MimeType.HtmlClassify()">
<img src="@thumbnail" />
@*<img src="@Display.ResizeMediaUrl(Width: 200, Height: 200, Mode: "crop", Alignment: "middlecenter", Path: oembed["thumbnail_url"])" />*@
</div>
}
else {
<div class="media-thumbnail media-thumbnail-@contentItem.ContentType.HtmlClassify() mime-type-@media.MimeType.HtmlClassify()">
@Html.Raw(oembed["html"])
</div>
}

View File

@@ -3,6 +3,7 @@
@{
OEmbedPart oembedPart = Model.ContentPart;
var mediaPart = ((ContentItem)Model.ContentItem).As<MediaPart>();
string thumbnail = oembedPart["thumbnail_url"] ?? oembedPart["thumbnail"];
}
@switch (oembedPart["type"]) {
@@ -19,3 +20,9 @@
@Html.Raw(oembedPart["html"])
break;
}
@if (!String.IsNullOrEmpty(thumbnail)) {
<div class="media-thumbnail">
<img src="@thumbnail" />
</div>
}