diff --git a/src/Orchard.Web/Modules/Orchard.ContentPicker/Orchard.ContentPicker.csproj b/src/Orchard.Web/Modules/Orchard.ContentPicker/Orchard.ContentPicker.csproj index 49094ddf4..03390c22e 100644 --- a/src/Orchard.Web/Modules/Orchard.ContentPicker/Orchard.ContentPicker.csproj +++ b/src/Orchard.Web/Modules/Orchard.ContentPicker/Orchard.ContentPicker.csproj @@ -72,6 +72,7 @@ + diff --git a/src/Orchard.Web/Modules/Orchard.ContentPicker/ResourceManifest.cs b/src/Orchard.Web/Modules/Orchard.ContentPicker/ResourceManifest.cs index 9e3346f47..85639aaf4 100644 --- a/src/Orchard.Web/Modules/Orchard.ContentPicker/ResourceManifest.cs +++ b/src/Orchard.Web/Modules/Orchard.ContentPicker/ResourceManifest.cs @@ -5,6 +5,7 @@ namespace Orchard.ContentPicker { public void BuildManifests(ResourceManifestBuilder builder) { var manifest = builder.Add(); manifest.DefineScript("ContentPicker").SetUrl("ContentPicker.js", "ContentPicker.js").SetDependencies("jQuery"); + manifest.DefineScript("SelectableContentTab").SetUrl("SelectableContentTab.js", "SelectableContentTab.js").SetDependencies("jQuery"); } } } diff --git a/src/Orchard.Web/Modules/Orchard.ContentPicker/Scripts/ContentPicker.js b/src/Orchard.Web/Modules/Orchard.ContentPicker/Scripts/ContentPicker.js index c60c6f6c3..609978b65 100644 --- a/src/Orchard.Web/Modules/Orchard.ContentPicker/Scripts/ContentPicker.js +++ b/src/Orchard.Web/Modules/Orchard.ContentPicker/Scripts/ContentPicker.js @@ -80,14 +80,26 @@ addButton.click(function() { addButton.trigger("orchard-admin-contentpicker-open", { callback: function(data) { - var tmpl = template.replace( /\{contentItemId\}/g , data.id) - .replace( /\{edit-link\}/g , data.editLink) - .replace( /\{status-text}/g , data.published? "" : " - " + notPublishedText); - var content = $(tmpl); - $(self).find('table.content-picker tbody').append(content); + if (Array.isArray && Array.isArray(data)) { + data.forEach(function (d) { + var tmpl = template.replace(/\{contentItemId\}/g, d.id) + .replace(/\{edit-link\}/g, d.editLink) + .replace(/\{status-text}/g, d.published ? "" : " - " + notPublishedText); + var content = $(tmpl); + $(self).find('table.content-picker tbody').append(content); + }); + refreshIds(); + $(self).find('.content-picker-message').show(); + } else { + var tmpl = template.replace(/\{contentItemId\}/g, data.id) + .replace(/\{edit-link\}/g, data.editLink) + .replace(/\{status-text}/g, data.published ? "" : " - " + notPublishedText); + var content = $(tmpl); + $(self).find('table.content-picker tbody').append(content); - refreshIds(); - $(self).find('.content-picker-message').show(); + refreshIds(); + $(self).find('.content-picker-message').show(); + } }, baseUrl: baseUrl, part: partName, diff --git a/src/Orchard.Web/Modules/Orchard.ContentPicker/Scripts/SelectableContentTab.js b/src/Orchard.Web/Modules/Orchard.ContentPicker/Scripts/SelectableContentTab.js new file mode 100644 index 000000000..2bc82e196 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.ContentPicker/Scripts/SelectableContentTab.js @@ -0,0 +1,32 @@ +jQuery(function ($) { + + Initialize = function () { + + $('.button.addSelected').on('click', function () { + var selectedItems = $('.content-picker-itemCheck:checked'); + var itemsToAdd = new Array(); + $.each(selectedItems, function (index, item) { + var related = $(item).siblings('.content-picker-item').children('.related'); + var data = { + id: related.data("id"), + displayText: related.data("display-text"), + editLink: related.data("edit-link"), + editUrl: related.data("edit-url"), + adminUrl: related.data("admin-url"), + displayLink: related.data("display-link"), + published: related.data("published") + }; + return itemsToAdd.push(data); + }); + window.opener.jQuery[query("callback")](itemsToAdd); + window.close(); + }); + $('.content-picker-SelectAll').on('click', function () { + $('.content-picker-itemCheck').prop('checked', $(this).prop("checked")); + }); + }; + + $(document).ready(function () { + return Initialize(); + }); +}); \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.ContentPicker/Styles/ContentPicker.css b/src/Orchard.Web/Modules/Orchard.ContentPicker/Styles/ContentPicker.css index 0b501787a..4b452248c 100644 --- a/src/Orchard.Web/Modules/Orchard.ContentPicker/Styles/ContentPicker.css +++ b/src/Orchard.Web/Modules/Orchard.ContentPicker/Styles/ContentPicker.css @@ -19,4 +19,37 @@ body { padding: 18px; background: white; border: 1px solid #E4E5E6; +} + +.content-picker-item +{ + margin-left: 20px; +} + +.content-picker-itemCheck +{ + position:absolute; + +} + +label[for="selectAll"]:before +{ + content:''; + display:block; + margin-top:20px; +} + +label[for="selectAll"] +{ + display:inline; +} + +.addSelected +{ + margin-bottom: 10px; +} + +.page-size-options > div:first-child +{ + display:inline-block; } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.ContentPicker/Views/ContentPicker.SummaryAdmin.cshtml b/src/Orchard.Web/Modules/Orchard.ContentPicker/Views/ContentPicker.SummaryAdmin.cshtml index cca2889ac..168b4afde 100644 --- a/src/Orchard.Web/Modules/Orchard.ContentPicker/Views/ContentPicker.SummaryAdmin.cshtml +++ b/src/Orchard.Web/Modules/Orchard.ContentPicker/Views/ContentPicker.SummaryAdmin.cshtml @@ -3,27 +3,30 @@ ContentItem contentItem = Model.ContentItem; }
-
- @**@ -

@Html.ItemDisplayText(contentItem)

-
@contentItem.TypeDefinition.DisplayName
- @if (Model.Header != null) { -
@Display(Model.Header)
- } - @if (Model.Meta != null) { - + +
+
+ @**@ +

@Html.ItemDisplayText(contentItem)

-
@contentItem.TypeDefinition.DisplayName
+ @if (Model.Header != null) { +
@Display(Model.Header)
+ } + @if (Model.Meta != null) { + + } +
+ + @if (Model.Content != null) { +
@Display(Model.Content)
}
- - @if (Model.Content != null) { -
@Display(Model.Content)
- }
diff --git a/src/Orchard.Web/Modules/Orchard.ContentPicker/Views/RecentContentTab.cshtml b/src/Orchard.Web/Modules/Orchard.ContentPicker/Views/RecentContentTab.cshtml index 382ad3a5b..f880bef25 100644 --- a/src/Orchard.Web/Modules/Orchard.ContentPicker/Views/RecentContentTab.cshtml +++ b/src/Orchard.Web/Modules/Orchard.ContentPicker/Views/RecentContentTab.cshtml @@ -1,5 +1,7 @@ @using Orchard.Core.Contents.ViewModels; @{ + Script.Require("SelectableContentTab"); + var typeDisplayName = Model.TypeDisplayName; var pageTitle = T("Recent Content"); @@ -8,6 +10,7 @@ } Layout.Title = pageTitle; + }
@@ -33,6 +36,7 @@
@Display(Model.ContentItems)
+ @Html.Link(T("Add Selected").Text, "#", new { @class = "button addSelected"}) @Display(Model.Pager) } diff --git a/src/Orchard.Web/Modules/Orchard.Search/Views/SearchContentTab.cshtml b/src/Orchard.Web/Modules/Orchard.Search/Views/SearchContentTab.cshtml index 56256144f..32426f58b 100644 --- a/src/Orchard.Web/Modules/Orchard.Search/Views/SearchContentTab.cshtml +++ b/src/Orchard.Web/Modules/Orchard.Search/Views/SearchContentTab.cshtml @@ -1,4 +1,6 @@ @{ + Script.Require("SelectableContentTab"); + var pageTitle = T("Search Content"); Layout.Title = pageTitle; } @@ -11,10 +13,18 @@ + if (Model.ContentItems.Items.Count > 0) + { + + + }
- @Display(Model.ContentItems) + @Display(Model.ContentItems)
- + if (Model.ContentItems.Items.Count > 0) + { + @Html.Link(T("Add Selected").Text, "#", new { @class = "button addSelected"}) + } @Display(Model.Pager) }