diff --git a/src/Umbraco.Web.UI.Client/src/common/services/search.service.js b/src/Umbraco.Web.UI.Client/src/common/services/search.service.js
index 741ce6bac5..336dc6bedf 100644
--- a/src/Umbraco.Web.UI.Client/src/common/services/search.service.js
+++ b/src/Umbraco.Web.UI.Client/src/common/services/search.service.js
@@ -1,5 +1,5 @@
angular.module('umbraco.services')
-.factory('searchService', function ($q, $log, entityResource) {
+.factory('searchService', function ($q, $log, entityResource, contentResource) {
var m = {results: []};
var service = {
results: m,
@@ -10,6 +10,8 @@ angular.module('umbraco.services')
_.each(data, function(el){
el.menuUrl = "UmbracoTrees/MemberTree/GetMenu?id=" + el.id + "&application=member";
el.metaData = {treeAlias: "member"};
+ el.title = el.Fields.nodeName;
+ el.subTitle = el.Fields.email;
});
args.results.push({
@@ -25,6 +27,11 @@ angular.module('umbraco.services')
_.each(data, function(el){
el.menuUrl = "UmbracoTrees/ContentTree/GetMenu?id=" + el.id + "&application=content";
el.metaData = {treeAlias: "content"};
+ el.title = el.Fields.nodeName;
+
+ contentResource.getNiceUrl(el.Id).then(function(url){
+ el.subTitle = url;
+ });
});
args.results.push({
@@ -40,6 +47,7 @@ angular.module('umbraco.services')
_.each(data, function(el){
el.menuUrl = "UmbracoTrees/MediaTree/GetMenu?id=" + el.id + "&application=media";
el.metaData = {treeAlias: "media"};
+ el.title = el.Fields.nodeName;
});
args.results.push({
diff --git a/src/Umbraco.Web.UI.Client/src/less/tree.less b/src/Umbraco.Web.UI.Client/src/less/tree.less
index f19cd2fc46..2aa2256860 100644
--- a/src/Umbraco.Web.UI.Client/src/less/tree.less
+++ b/src/Umbraco.Web.UI.Client/src/less/tree.less
@@ -138,6 +138,12 @@
background: @grayLighter
}
+.umb-tree small.search-subtitle{
+ color: @grayLight;
+ display: block;
+ padding-left: 35px;
+}
+
a.umb-options {
visibility: hidden;
cursor: pointer;
diff --git a/src/Umbraco.Web.UI.Client/src/views/common/dialogs/memberpicker.controller.js b/src/Umbraco.Web.UI.Client/src/views/common/dialogs/memberpicker.controller.js
index 3d62f97e16..fa3b5212e4 100644
--- a/src/Umbraco.Web.UI.Client/src/views/common/dialogs/memberpicker.controller.js
+++ b/src/Umbraco.Web.UI.Client/src/views/common/dialogs/memberpicker.controller.js
@@ -7,12 +7,17 @@ angular.module("umbraco").controller("Umbraco.Dialogs.MemberPickerController",
$scope.performSearch = function(){
if($scope.term){
- searchService.searchMembers({term: $scope.term, results: $scope.results});
- $scope.showSearch = true;
+ if($scope.oldTerm !== $scope.term){
+ $scope.results = [];
+ searchService.searchMembers({term: $scope.term, results: $scope.results});
+ $scope.showSearch = true;
+ $scope.oldTerm = $scope.term;
+ }
}else{
+ $scope.oldTerm = "";
$scope.showSearch = false;
+ $scope.results = [];
}
-
};
diff --git a/src/Umbraco.Web.UI.Client/src/views/common/dialogs/memberpicker.html b/src/Umbraco.Web.UI.Client/src/views/common/dialogs/memberpicker.html
index b0f78bee1b..f2d5b794a3 100644
--- a/src/Umbraco.Web.UI.Client/src/views/common/dialogs/memberpicker.html
+++ b/src/Umbraco.Web.UI.Client/src/views/common/dialogs/memberpicker.html
@@ -13,7 +13,7 @@
\ No newline at end of file
diff --git a/src/Umbraco.Web/Editors/EntityController.cs b/src/Umbraco.Web/Editors/EntityController.cs
index 8ac97bdf08..bc5c52acf1 100644
--- a/src/Umbraco.Web/Editors/EntityController.cs
+++ b/src/Umbraco.Web/Editors/EntityController.cs
@@ -34,7 +34,7 @@ namespace Umbraco.Web.Editors
public class EntityController : UmbracoAuthorizedJsonController
{
[HttpGet]
- public IEnumerable Search([FromUri] string query, UmbracoEntityTypes type)
+ public ISearchResults Search([FromUri] string query, UmbracoEntityTypes type)
{
if (string.IsNullOrEmpty(query))
return null;
@@ -95,7 +95,7 @@ namespace Umbraco.Web.Editors
return GetResultForAll(type, postFilter, postFilterParams);
}
- private IEnumerable ExamineSearch(string query, UmbracoEntityTypes entityType)
+ private ISearchResults ExamineSearch(string query, UmbracoEntityTypes entityType)
{
var searcher = Constants.Examine.InternalSearcher;
var type = "content";
@@ -124,13 +124,16 @@ namespace Umbraco.Web.Editors
var term = new[] { query.ToLower().Escape() };
var operation = criteria.GroupedOr(fields, term).Compile();
+ return internalSearcher.Search(operation);
+
+ /*
var results = internalSearcher.Search(operation)
.Select(x => int.Parse(x["id"]));
//TODO: Just create a basic entity from the results!! why double handling and going to the database... this will be ultra slow.
return GetResultForIds(results.ToArray(), entityType)
- .WhereNotNull();
+ .WhereNotNull();*/
}
private IEnumerable GetResultForChildren(int id, UmbracoEntityTypes entityType)
diff --git a/src/Umbraco.Web/Trees/MemberTreeController.cs b/src/Umbraco.Web/Trees/MemberTreeController.cs
index 58aba7d3eb..d4cbb321af 100644
--- a/src/Umbraco.Web/Trees/MemberTreeController.cs
+++ b/src/Umbraco.Web/Trees/MemberTreeController.cs
@@ -30,12 +30,16 @@ namespace Umbraco.Web.Trees
for (var i = 97; i < 123; i++)
{
var charString = ((char) i).ToString(CultureInfo.InvariantCulture);
- nodes.Add(CreateTreeNode(charString, queryStrings, charString, "icon-folder-close", true));
+ var folder = CreateTreeNode(charString, queryStrings, charString, "icon-folder-close", true);
+ folder.NodeType = "member-folder";
+ nodes.Add(folder);
}
//list out 'Others' if the membership provider is umbraco
if (Member.InUmbracoMemberMode())
{
- nodes.Add(CreateTreeNode("others", queryStrings, "Others", "icon-folder-close", true));
+ var folder = CreateTreeNode("others", queryStrings, "Others", "icon-folder-close", true);
+ folder.NodeType = "member-folder";
+ nodes.Add(folder);
}
}
else
@@ -48,7 +52,7 @@ namespace Umbraco.Web.Trees
//get the members from our member data layer
nodes.AddRange(
Member.getMemberFromFirstLetter(id.ToCharArray()[0])
- .Select(m => CreateTreeNode(m.UniqueId.ToString("N"), queryStrings, m.Text, "icon-user")));
+ .Select(m => CreateTreeNode(m.UniqueId.ToString("N"), queryStrings, m.Text, "icon-user"));
}
else
{
diff --git a/src/Umbraco.Web/UI/JavaScript/JsInitialize.js b/src/Umbraco.Web/UI/JavaScript/JsInitialize.js
index 42ed1c270e..f27e6cd876 100644
--- a/src/Umbraco.Web/UI/JavaScript/JsInitialize.js
+++ b/src/Umbraco.Web/UI/JavaScript/JsInitialize.js
@@ -1,5 +1,5 @@
[
- 'lib/jquery/jquery-2.0.3.min.js',
+
/* the jquery ui elements we need */
/* NOTE: I've opted not to use the full lib, just the parts we need to save on DL */
@@ -12,7 +12,6 @@
'lib/jquery/jquery.ui.effect-highlight.min.js',*/
/* 1.1.5 */
- 'lib/angular/1.1.5/angular.min.js',
'lib/angular/1.1.5/angular-cookies.min.js',
'lib/angular/1.1.5/angular-mobile.min.js',
'lib/angular/1.1.5/angular-sanitize.min.js',
@@ -38,7 +37,6 @@
'lib/jquery/jquery.upload/js/jquery.fileupload-angular.js',
'lib/bootstrap/js/bootstrap.js',
- 'lib/underscore/underscore.js',
'lib/umbraco/Extensions.js',
'lib/umbraco/NamespaceManager.js',
diff --git a/src/Umbraco.Web/UI/JavaScript/Main.js b/src/Umbraco.Web/UI/JavaScript/Main.js
index 98aa9b88b7..c346fedb51 100644
--- a/src/Umbraco.Web/UI/JavaScript/Main.js
+++ b/src/Umbraco.Web/UI/JavaScript/Main.js
@@ -1,15 +1,21 @@
yepnope({
-
- load: "##JsInitialize##",
-
+ load: [
+ 'lib/jquery/jquery-2.0.3.min.js',
+ 'lib/angular/1.1.5/angular.min.js',
+ 'lib/underscore/underscore.js',
+ ],
complete: function () {
-
- //we need to set the legacy UmbClientMgr path
- UmbClientMgr.setUmbracoPath('"##UmbracoPath##"');
+ yepnope({
+ load: "##JsInitialize##",
+ complete: function () {
- jQuery(document).ready(function () {
- angular.bootstrap(document, ['umbraco']);
+ //we need to set the legacy UmbClientMgr path
+ UmbClientMgr.setUmbracoPath('"##UmbracoPath##"');
+
+ jQuery(document).ready(function () {
+ angular.bootstrap(document, ['umbraco']);
+ });
+ }
});
-
}
});
\ No newline at end of file