Skip to content

Commit

Permalink
Close #3981
Browse files Browse the repository at this point in the history
  • Loading branch information
aembler committed Jun 29, 2016
1 parent bd5b8ad commit 461f796
Show file tree
Hide file tree
Showing 6 changed files with 45 additions and 15 deletions.
2 changes: 1 addition & 1 deletion build/Gruntfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -306,7 +306,7 @@ module.exports = function(grunt) {
ccm_users: {
dest: '<%= DIR_BASE %>/concrete/js/users.js',
src: [
'<%= DIR_BASE %>/concrete/js/build/core/sitemap/selector.js'
'<%= DIR_BASE %>/concrete/js/build/core/user/selector.js'
]
},

Expand Down
1 change: 1 addition & 0 deletions concrete/config/app.php
Original file line number Diff line number Diff line change
Expand Up @@ -313,6 +313,7 @@
*/
"/ccm/system/user/add_group" => array('\Concrete\Controller\Backend\User::addGroup'),
"/ccm/system/user/remove_group" => array('\Concrete\Controller\Backend\User::removeGroup'),
"/ccm/system/user/get_json" => array('\Concrete\Controller\Backend\User::getJSON'),

/*
* Page actions - non UI
Expand Down
9 changes: 9 additions & 0 deletions concrete/css/build/core/app/components.less
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,15 @@ div.ccm-item-selector {
background-color: darken(#f2f2f2, 3%);
}

div.ccm-item-selector-item-selected-thumbnail {
margin-right: 10px; float: left;

img {
max-width: 20px;
max-height: 20px;
}
}

a {
color: #606060;
display: block;
Expand Down
43 changes: 31 additions & 12 deletions concrete/js/build/core/user/selector.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,7 @@
my.options = options;
my._chooseTemplate = _.template(my.chooseTemplate, {'options': my.options});
my._loadingTemplate = _.template(my.loadingTemplate, {'options': my.options});
my._pageLoadedTemplate = _.template(my.pageLoadedTemplate);
my._pageMenuTemplate = _.template(ConcretePageAjaxSearchMenu.get());
my._userLoadedTemplate = _.template(my.userLoadedTemplate);

my.$element.append(my._chooseTemplate);
my.$element.on('click', 'a[data-user-selector-link=choose]', function(e) {
Expand All @@ -33,6 +32,17 @@
if (my.options.uID) {
my.loadUser(my.options.uID);
}

ConcreteEvent.unsubscribe('UserSearchDialogSelectUser.core');
ConcreteEvent.unsubscribe('UserSearchDialogAfterSelectUser.core');
ConcreteEvent.subscribe('UserSearchDialogSelectUser.core', function(e, data) {
my.loadUser(data.uID);
});

ConcreteEvent.subscribe('UserSearchDialogAfterSelectUser.core', function(e) {
jQuery.fn.dialog.closeTop();
});

}

ConcreteUserSelector.prototype = {
Expand All @@ -43,23 +53,32 @@
loadingTemplate: '<div class="ccm-item-selector"><div class="ccm-item-selector-choose"><i class="fa fa-spin fa-spinner"></i> <%=options.loadingText%></div></div>',
userLoadedTemplate: '<div class="ccm-item-selector"><div class="ccm-item-selector-item-selected">' +
'<input type="hidden" name="<%=inputName%>" value="<%=user.uID%>" />' +
'<div class="ccm-item-selector-item-selected-thumbnail"><%=user.avatar%></div>' +
'<a data-user-selector-action="clear" href="#" class="ccm-item-selector-clear"><i class="fa fa-close"></i></a>' +
'<div class="ccm-item-selector-item-selected-title"><%=user.name%></div>' +
'<div class="ccm-item-selector-item-selected-title"><%=user.displayName%></div>' +
'</div></div>',

loadUser: function(uID) {
var my = this;
my.$element.html(my._loadingTemplate);
/*
ConcretePageAjaxSearch.getPageDetails(cID, function(r) {
var page = r.pages[0];
my.$element.html(my._pageLoadedTemplate({'inputName': my.options.inputName, 'page': page}));
my.$element.on('click', 'a[data-page-selector-action=clear]', function(e) {
e.preventDefault();
my.$element.html(my._chooseTemplate);
});

$.ajax({
type: 'post',
dataType: 'json',
url: CCM_DISPATCHER_FILENAME + '/ccm/system/user/get_json',
data: {'uID': uID},
error: function(r) {
ConcreteAlert.dialog('Error', r.responseText);
},
success: function(r) {
var user = r.users[0];
my.$element.html(my._userLoadedTemplate({'inputName': my.options.inputName, 'user': user}));
my.$element.on('click', 'a[data-user-selector-action=clear]', function(e) {
e.preventDefault();
my.$element.html(my._chooseTemplate);
});
}
});
*/
}
}

Expand Down
4 changes: 2 additions & 2 deletions concrete/src/Form/Service/Widget/UserSelector.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ class UserSelector
*
* @param int $uID
*/
public function selectPage($fieldName, $uID = false)
public function selectUser($fieldName, $uID = false)
{
$v = \View::getInstance();
$v->requireAsset('core/users');
Expand All @@ -30,7 +30,7 @@ public function selectPage($fieldName, $uID = false)
}

if ($selectedUID) {
$args = "{'inputName': '{$fieldName}', 'cID': {$selectedUID}}";
$args = "{'inputName': '{$fieldName}', 'uID': {$selectedUID}}";
} else {
$args = "{'inputName': '{$fieldName}'}";
}
Expand Down
1 change: 1 addition & 0 deletions concrete/src/User/EditResponse.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ public function getJSONObject()
$uo = new stdClass();
$uo->uID = $user->getUserID();
$uo->displayName = $user->getUserDisplayName();
$uo->avatar = $user->getUserAvatar()->output();
$o->users[] = $uo;
}

Expand Down

0 comments on commit 461f796

Please sign in to comment.