Gets search searching on the member picker - but the member picker doesn't really work, not sure what the UI is supposed to be doing. FIxing some closure issues with the other pickers.
This commit is contained in:
@@ -1,56 +1,88 @@
|
||||
//used for the member picker dialog
|
||||
angular.module("umbraco").controller("Umbraco.Dialogs.MemberPickerController",
|
||||
function ($scope, eventsService, searchService, $log) {
|
||||
var dialogOptions = $scope.$parent.dialogOptions;
|
||||
$scope.dialogTreeEventHandler = $({});
|
||||
$scope.results = [];
|
||||
function($scope, eventsService, searchService, $log) {
|
||||
var dialogOptions = $scope.$parent.dialogOptions;
|
||||
$scope.dialogTreeEventHandler = $({});
|
||||
$scope.results = [];
|
||||
|
||||
$scope.performSearch = function(){
|
||||
if($scope.term){
|
||||
if($scope.oldTerm !== $scope.term){
|
||||
$scope.results = [];
|
||||
searchService.searchMembers({ term: $scope.term }).then(function(data) {
|
||||
$scope.results = data;
|
||||
});
|
||||
$scope.showSearch = true;
|
||||
$scope.oldTerm = $scope.term;
|
||||
}
|
||||
}else{
|
||||
$scope.oldTerm = "";
|
||||
$scope.showSearch = false;
|
||||
$scope.results = [];
|
||||
}
|
||||
};
|
||||
/** Method used for selecting a node */
|
||||
function select(text, id, entity) {
|
||||
|
||||
$scope.showSearch = false;
|
||||
$scope.results = [];
|
||||
$scope.term = "";
|
||||
$scope.oldTerm = undefined;
|
||||
|
||||
$scope.dialogTreeEventHandler.bind("treeNodeSelect", function(ev, args){
|
||||
args.event.preventDefault();
|
||||
args.event.stopPropagation();
|
||||
if (dialogOptions.multiPicker) {
|
||||
$scope.select(id);
|
||||
}
|
||||
else {
|
||||
//if an entity has been passed in, use it
|
||||
if (entity) {
|
||||
$scope.submit(entity);
|
||||
}
|
||||
else {
|
||||
//otherwise we have to get it from the server
|
||||
entityResource.getById(id, "Member").then(function (ent) {
|
||||
$scope.submit(ent);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (args.node.nodeType === "member-folder") {
|
||||
return;
|
||||
}
|
||||
|
||||
eventsService.publish("Umbraco.Dialogs.MemberPickerController.Select", args).then(function(args){
|
||||
if(dialogOptions && dialogOptions.multipicker){
|
||||
|
||||
var c = $(args.event.target.parentElement);
|
||||
if(!args.node.selected){
|
||||
args.node.selected = true;
|
||||
c.find("i.umb-tree-icon").hide()
|
||||
.after("<i class='icon umb-tree-icon sprTree icon-check blue temporary'></i>");
|
||||
}else{
|
||||
args.node.selected = false;
|
||||
c.find(".temporary").remove();
|
||||
c.find("i.umb-tree-icon").show();
|
||||
}
|
||||
$scope.select(args.node);
|
||||
$scope.performSearch = function() {
|
||||
if ($scope.term) {
|
||||
if ($scope.oldTerm !== $scope.term) {
|
||||
$scope.results = [];
|
||||
searchService.searchMembers({ term: $scope.term }).then(function(data) {
|
||||
$scope.results = data;
|
||||
});
|
||||
$scope.showSearch = true;
|
||||
$scope.oldTerm = $scope.term;
|
||||
}
|
||||
}
|
||||
else {
|
||||
$scope.oldTerm = "";
|
||||
$scope.showSearch = false;
|
||||
$scope.results = [];
|
||||
}
|
||||
};
|
||||
|
||||
}else{
|
||||
$scope.submit(args.node);
|
||||
}
|
||||
|
||||
});
|
||||
/** method to select a search result */
|
||||
$scope.selectResult = function(result) {
|
||||
//since result = an entity, we'll pass it in so we don't have to go back to the server
|
||||
select(result.name, result.id, result);
|
||||
};
|
||||
|
||||
});
|
||||
});
|
||||
$scope.dialogTreeEventHandler.bind("treeNodeSelect", function(ev, args) {
|
||||
args.event.preventDefault();
|
||||
args.event.stopPropagation();
|
||||
|
||||
if (args.node.nodeType === "member-folder") {
|
||||
return;
|
||||
}
|
||||
|
||||
eventsService.publish("Umbraco.Dialogs.MemberPickerController.Select", args).then(function(a) {
|
||||
|
||||
//This is a tree node, so we don't have an entity to pass in, it will need to be looked up
|
||||
//from the server in this method.
|
||||
select(a.node.name, a.node.id);
|
||||
|
||||
if (dialogOptions && dialogOptions.multipicker) {
|
||||
|
||||
var c = $(a.event.target.parentElement);
|
||||
if (!a.node.selected) {
|
||||
a.node.selected = true;
|
||||
c.find("i.umb-tree-icon").hide()
|
||||
.after("<i class='icon umb-tree-icon sprTree icon-check blue temporary'></i>");
|
||||
}
|
||||
else {
|
||||
a.node.selected = false;
|
||||
c.find(".temporary").remove();
|
||||
c.find("i.umb-tree-icon").show();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
});
|
||||
@@ -19,7 +19,7 @@
|
||||
<ul class="umb-search-group" >
|
||||
<li ng-repeat="result in results">
|
||||
<div style="padding-left: 20px">
|
||||
<a ng-class="{first:$first}" ng-href="#/{{result.editorPath}}">
|
||||
<a ng-class="{first:$first}" ng-click="selectResult(result)">
|
||||
<i
|
||||
class="icon umb-tree-icon sprTree {{result.icon}}"></i>
|
||||
{{result.name}}
|
||||
|
||||
@@ -12,21 +12,11 @@ angular.module("umbraco").controller("Umbraco.Dialogs.TreePickerController",
|
||||
$scope.entityType = "Document";
|
||||
$scope.results = [];
|
||||
|
||||
|
||||
if (dialogOptions.section === "member") {
|
||||
$scope.searcher = searchService.searchMembers;
|
||||
$scope.entityType = "Member";
|
||||
}
|
||||
else if (dialogOptions.section === "media") {
|
||||
$scope.searcher = searchService.searchMedia;
|
||||
$scope.entityType = "Media";
|
||||
}
|
||||
|
||||
/** Method used for selecting a node */
|
||||
/** Method used for selecting a node */
|
||||
function select(text, id, entity) {
|
||||
|
||||
//if we get the root, we just return a constructed entity, no need for server data
|
||||
if (id < 0) {
|
||||
if (id < 0) {
|
||||
if ($scope.multiPicker) {
|
||||
$scope.select(id);
|
||||
}
|
||||
@@ -45,7 +35,7 @@ angular.module("umbraco").controller("Umbraco.Dialogs.TreePickerController",
|
||||
$scope.results = [];
|
||||
$scope.term = "";
|
||||
$scope.oldTerm = undefined;
|
||||
|
||||
|
||||
if ($scope.multiPicker) {
|
||||
$scope.select(id);
|
||||
}
|
||||
@@ -59,11 +49,20 @@ angular.module("umbraco").controller("Umbraco.Dialogs.TreePickerController",
|
||||
entityResource.getById(id, $scope.entityType).then(function (ent) {
|
||||
$scope.submit(ent);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (dialogOptions.section === "member") {
|
||||
$scope.searcher = searchService.searchMembers;
|
||||
$scope.entityType = "Member";
|
||||
}
|
||||
else if (dialogOptions.section === "media") {
|
||||
$scope.searcher = searchService.searchMedia;
|
||||
$scope.entityType = "Media";
|
||||
}
|
||||
|
||||
$scope.multiSubmit = function (result) {
|
||||
entityResource.getByIds(result, $scope.entityType).then(function (ents) {
|
||||
$scope.submit(ents);
|
||||
|
||||
Reference in New Issue
Block a user