Made folder browser filtering client side

This commit is contained in:
Matt@MBP13-PC
2012-08-20 09:41:28 -01:00
parent bd5182792e
commit 847b3523a8
3 changed files with 6 additions and 10 deletions

View File

@@ -41,7 +41,7 @@ Umbraco.Sys.registerNamespace("Umbraco.Controls");
{
var self = this;
$.getJSON(self._opts.basePath + "/FolderBrowserService/GetChildren/" + self._parentId + "/" + self._viewModel.filterTerm(), function (data) {
$.getJSON(self._opts.basePath + "/FolderBrowserService/GetChildren/" + self._parentId, function (data) {
if (data != undefined && data.length > 0) {
ko.mapping.fromJS(data, itemMappingOptions, self._viewModel.items);
} else {
@@ -121,7 +121,6 @@ Umbraco.Sys.registerNamespace("Umbraco.Controls");
});
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;
@@ -150,9 +149,6 @@ Umbraco.Sys.registerNamespace("Umbraco.Controls");
return ids;
}, self._viewModel);
self._viewModel.filterTerm.subscribe(function (newValue) {
self._getChildNodes();
});
},
_initToolbar: function ()

View File

@@ -1830,7 +1830,9 @@
<Content Include="umbraco.presentation\umbraco\members\search.aspx" />
<Content Include="umbraco.presentation\umbraco\translation\details.aspx" />
<Content Include="umbraco.presentation\umbraco\developer\Packages\BrowseRepository.aspx" />
<Content Include="umbraco.presentation\umbraco\developer\Packages\directoryBrowser.aspx" />
<Content Include="umbraco.presentation\umbraco\developer\Packages\directoryBrowser.aspx">
<SubType>ASPXCodeBehind</SubType>
</Content>
<Content Include="umbraco.presentation\umbraco\developer\Packages\editPackage.aspx" />
<Content Include="umbraco.presentation\umbraco\developer\Packages\installedPackage.aspx" />
<Content Include="umbraco.presentation\umbraco\developer\Packages\LoadNitros.ascx" />

View File

@@ -18,7 +18,7 @@ namespace Umbraco.Web.WebServices
public class FolderBrowserService
{
[RestExtensionMethod(returnXml = false)]
public static string GetChildren(int parentId, string filterTerm)
public static string GetChildren(int parentId)
{
var parentMedia = new global::umbraco.cms.businesslogic.media.Media(parentId);
var currentUser = User.GetCurrent();
@@ -35,9 +35,7 @@ namespace Umbraco.Web.WebServices
// Get children and filter
//TODO: Only fetch files, not containers
//TODO: Cache responses to speed up susequent searches
foreach (var child in parentMedia.Children.Where(x => string.IsNullOrEmpty(filterTerm) ||
x.Text.InvariantContains(filterTerm) ||
Tag.GetTags(x.Id).Any(y => y.TagCaption.InvariantContains(filterTerm))))
foreach (var child in parentMedia.Children)
{
var fileProp = child.getProperty("umbracoFile") ??
child.GenericProperties.FirstOrDefault(x =>