diff --git a/src/Umbraco.Web.UI/umbraco/plugins/TheOutfield/DesktopMediaUploader/dmu.ashx b/src/Umbraco.Web.UI/umbraco/plugins/TheOutfield/DesktopMediaUploader/dmu.ashx new file mode 100644 index 0000000000..3dab7a3f91 --- /dev/null +++ b/src/Umbraco.Web.UI/umbraco/plugins/TheOutfield/DesktopMediaUploader/dmu.ashx @@ -0,0 +1 @@ +<%@ WebHandler Language="C#" CodeBehind="MediaUploader.ashx.cs" Class="umbraco.presentation.umbraco.webservices.MediaUploader" %> diff --git a/src/Umbraco.Web.UI/umbraco_client/FolderBrowser/Js/folderbrowser.js b/src/Umbraco.Web.UI/umbraco_client/FolderBrowser/Js/folderbrowser.js index cb380ba028..8d65f76e8f 100644 --- a/src/Umbraco.Web.UI/umbraco_client/FolderBrowser/Js/folderbrowser.js +++ b/src/Umbraco.Web.UI/umbraco_client/FolderBrowser/Js/folderbrowser.js @@ -4,7 +4,7 @@ Umbraco.Sys.registerNamespace("Umbraco.Controls"); (function ($, Base, window, document, undefined) { var itemMappingOptions = { - 'create': function(o) { + 'create': function (o) { var item = ko.mapping.fromJS(o.data); item.selected = ko.observable(false); item.toggleSelected = function (itm, e) { @@ -115,6 +115,14 @@ Umbraco.Sys.registerNamespace("Umbraco.Controls"); items: ko.observableArray([]), queued: ko.observableArray([]) }); + + self._viewModel.filtered = ko.computed(function () { + return self._viewModel.items(); + return ko.utils.arrayFilter(this.items(), function (item) { + return item.Name().toLowerCase().indexOf(self._viewModel.filterTerm()) > -1 || + item.Tags().toLowerCase().indexOf(self._viewModel.filterTerm()) > -1; + }); + }, self._viewModel); self._viewModel.selected = ko.computed(function() { return ko.utils.arrayFilter(this.items(), function(item) { @@ -301,15 +309,16 @@ Umbraco.Sys.registerNamespace("Umbraco.Controls"); start: function (e, ui) { // Add dragging class to container $(".umbFolderBrowser .items").addClass("ui-sortable-dragging"); - - $(".umbFolderBrowser .items .ui-sortable-helper span").removeAttr("data-bind").text("Moving 1 item"); }, - update: function (e, ui) { + update: function (e, ui) + { + // Can't sort when filtered so just return + if (self._viewModel.filterTerm().length > 0) + return; + //var oldIndex = self._viewModel.items.indexOf(self._viewModel.tempItem()); var newIndex = ui.item.index(); - //TODO: Don't allow sorting on a filtered view - $(".umbFolderBrowser .items .selected").sort(function (a,b) { return parseInt($(a).data("order")) > parseInt($(b).data("order")) ? 1 : -1; }).each(function(idx, itm) { @@ -327,7 +336,15 @@ Umbraco.Sys.registerNamespace("Umbraco.Controls"); stop: function (e, ui) { // Remove dragging class from container $(".umbFolderBrowser .items").removeClass("ui-sortable-dragging"); - //TODO: Update on server + + if (self._viewModel.filterTerm().length > 0) { + $(this).sortable("cancel"); + alert("Can't sort items which have been filtered"); + } + else + { + //TODO: Update on server + } } }); }, diff --git a/src/Umbraco.Web/UI/Controls/FolderBrowser.cs b/src/Umbraco.Web/UI/Controls/FolderBrowser.cs index 272d83c8bb..cc0c4467bd 100644 --- a/src/Umbraco.Web/UI/Controls/FolderBrowser.cs +++ b/src/Umbraco.Web/UI/Controls/FolderBrowser.cs @@ -1,10 +1,13 @@ using System; using System.Collections.Generic; using System.Text; +using System.Web; +using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using ClientDependency.Core; using umbraco.BasePages; +using umbraco.BusinessLogic; using umbraco.IO; using umbraco.cms.businesslogic.media; @@ -113,7 +116,7 @@ namespace Umbraco.Web.UI.Controls sb.Append("
Filter:
"); // Create thumbnails container - sb.Append("