Merge branch 'MDL-64134-master' of git://github.com/ryanwyllie/moodle

This commit is contained in:
Sara Arjona
2019-01-16 13:06:57 +01:00
5 changed files with 183 additions and 63 deletions
-3
View File
@@ -203,9 +203,6 @@ $string['requiresconfiguration'] = 'Requires configuration';
$string['searchforuser'] = 'Search for a user';
$string['searchforuserorcourse'] = 'Search for a user or course';
$string['searchmessages'] = 'Search messages';
$string['searchnocontactsfound'] = 'No contacts found';
$string['searchnomessagesfound'] = 'No messages found';
$string['searchnononcontactsfound'] = 'No non contacts found';
$string['searchcombined'] = 'Search people and messages';
$string['seeall'] = 'See all';
$string['selectmessagestodelete'] = 'Select messages to delete';
File diff suppressed because one or more lines are too long
+176 -43
View File
@@ -67,6 +67,7 @@ function(
LOAD_MORE_MESSAGES: '[data-action="load-more-messages"]',
BUTTON_TEXT: '[data-region="button-text"]',
NO_RESULTS_CONTAINTER: '[data-region="no-results-container"]',
ALL_CONTACTS_CONTAINER: '[data-region="all-contacts-container"]'
};
var TEMPLATES = {
@@ -267,6 +268,110 @@ function(
getSearchResultsContainer(body).addClass('hidden');
};
/**
* Show the no search results message.
*
* @param {Object} body Search body container element.
*/
var showNoSearchResults = function(body) {
var container = getSearchResultsContainer(body);
container.find(SELECTORS.ALL_CONTACTS_CONTAINER).addClass('hidden');
container.find(SELECTORS.MESSAGES_CONTAINER).addClass('hidden');
container.find(SELECTORS.NO_RESULTS_CONTAINTER).removeClass('hidden');
};
/**
* Hide the no search results message.
*
* @param {Object} body Search body container element.
*/
var hideNoSearchResults = function(body) {
var container = getSearchResultsContainer(body);
container.find(SELECTORS.ALL_CONTACTS_CONTAINER).removeClass('hidden');
container.find(SELECTORS.MESSAGES_CONTAINER).removeClass('hidden');
container.find(SELECTORS.NO_RESULTS_CONTAINTER).addClass('hidden');
};
/**
* Show the whole contacts results area.
*
* @param {Object} body Search body container element.
*/
var showAllContactsSearchResults = function(body) {
var container = getSearchResultsContainer(body);
container.find(SELECTORS.ALL_CONTACTS_CONTAINER).removeClass('hidden');
};
/**
* Hide the whole contacts results area.
*
* @param {Object} body Search body container element.
*/
var hideAllContactsSearchResults = function(body) {
var container = getSearchResultsContainer(body);
container.find(SELECTORS.ALL_CONTACTS_CONTAINER).addClass('hidden');
};
/**
* Show the contacts results.
*
* @param {Object} body Search body container element.
*/
var showContactsSearchResults = function(body) {
var container = getSearchResultsContainer(body);
container.find(SELECTORS.CONTACTS_CONTAINER).removeClass('hidden');
};
/**
* Hide the contacts results.
*
* @param {Object} body Search body container element.
*/
var hideContactsSearchResults = function(body) {
var container = getSearchResultsContainer(body);
container.find(SELECTORS.CONTACTS_CONTAINER).addClass('hidden');
};
/**
* Show the non contacts results.
*
* @param {Object} body Search body container element.
*/
var showNonContactsSearchResults = function(body) {
var container = getSearchResultsContainer(body);
container.find(SELECTORS.NON_CONTACTS_CONTAINER).removeClass('hidden');
};
/**
* Hide the non contacts results.
*
* @param {Object} body Search body container element.
*/
var hideNonContactsSearchResults = function(body) {
var container = getSearchResultsContainer(body);
container.find(SELECTORS.NON_CONTACTS_CONTAINER).addClass('hidden');
};
/**
* Show the messages results.
*
* @param {Object} body Search body container element.
*/
var showMessagesSearchResults = function(body) {
var container = getSearchResultsContainer(body);
container.find(SELECTORS.MESSAGES_CONTAINER).removeClass('hidden');
};
/**
* Hide the messages results.
*
* @param {Object} body Search body container element.
*/
var hideMessagesSearchResults = function(body) {
var container = getSearchResultsContainer(body);
container.find(SELECTORS.MESSAGES_CONTAINER).addClass('hidden');
};
/**
* Disable the search input.
*
@@ -303,7 +408,11 @@ function(
body.find(SELECTORS.CONTACTS_LIST).empty();
body.find(SELECTORS.NON_CONTACTS_LIST).empty();
body.find(SELECTORS.MESSAGES_LIST).empty();
body.find(SELECTORS.NO_RESULTS_CONTAINTER).addClass('hidden');
hideNoSearchResults(body);
showAllContactsSearchResults(body);
showContactsSearchResults(body);
showNonContactsSearchResults(body);
showMessagesSearchResults(body);
showLoadMoreUsersButton(body);
showLoadMoreMessagesButton(body);
};
@@ -514,17 +623,11 @@ function(
var container = getContactsContainer(root);
var list = container.find(SELECTORS.LIST);
if (!contacts.length && !list.children().length) {
var noResultsContainer = container.find(SELECTORS.NO_RESULTS_CONTAINTER);
noResultsContainer.removeClass('hidden');
return $.Deferred().resolve('').promise();
} else {
return Templates.render(TEMPLATES.CONTACTS_LIST, {contacts: contacts})
.then(function(html) {
list.append(html);
return html;
});
}
return Templates.render(TEMPLATES.CONTACTS_LIST, {contacts: contacts})
.then(function(html) {
list.append(html);
return html;
});
};
/**
@@ -538,17 +641,11 @@ function(
var container = getNonContactsContainer(root);
var list = container.find(SELECTORS.LIST);
if (!nonContacts.length && !list.children().length) {
var noResultsContainer = container.find(SELECTORS.NO_RESULTS_CONTAINTER);
noResultsContainer.removeClass('hidden');
return $.Deferred().resolve('').promise();
} else {
return Templates.render(TEMPLATES.NON_CONTACTS_LIST, {noncontacts: nonContacts})
.then(function(html) {
list.append(html);
return html;
});
}
return Templates.render(TEMPLATES.NON_CONTACTS_LIST, {noncontacts: nonContacts})
.then(function(html) {
list.append(html);
return html;
});
};
/**
@@ -562,17 +659,11 @@ function(
var container = getMessagesContainer(root);
var list = container.find(SELECTORS.LIST);
if (!messages.length && !list.children().length) {
var noResultsContainer = container.find(SELECTORS.NO_RESULTS_CONTAINTER);
noResultsContainer.removeClass('hidden');
return $.Deferred().resolve('').promise();
} else {
return Templates.render(TEMPLATES.MESSAGES_LIST, {messages: messages})
.then(function(html) {
list.append(html);
return html;
});
}
return Templates.render(TEMPLATES.MESSAGES_LIST, {messages: messages})
.then(function(html) {
list.append(html);
return html;
});
};
/**
@@ -588,6 +679,7 @@ function(
var loadMoreUsers = function(root, loggedInUserId, text, limit, offset) {
var loadedAll = false;
showUsersLoadingIcon(root);
return Repository.searchUsers(loggedInUserId, text, limit + 1, offset)
.then(function(results) {
var contacts = results.contacts;
@@ -607,19 +699,28 @@ function(
}
})
.then(function(results) {
var contactsCount = results.contacts.length;
var nonContactsCount = results.noncontacts.length;
return $.when(
renderContacts(root, results.contacts),
renderNonContacts(root, results.noncontacts)
);
contactsCount ? renderContacts(root, results.contacts) : true,
nonContactsCount ? renderNonContacts(root, results.noncontacts) : true
)
.then(function() {
return {
contactsCount: contactsCount,
nonContactsCount: nonContactsCount
};
});
})
.then(function() {
.then(function(counts) {
hideUsersLoadingIcon(root);
if (loadedAll) {
hideLoadMoreUsersButton(root);
}
return;
return counts;
})
.catch(function(error) {
hideUsersLoadingIcon(root);
@@ -641,6 +742,7 @@ function(
var loadMoreMessages = function(root, loggedInUserId, text, limit, offset) {
var loadedAll = false;
showMessagesLoadingIcon(root);
return Repository.searchMessages(loggedInUserId, text, limit + 1, offset)
.then(function(results) {
var messages = results.contacts;
@@ -653,16 +755,23 @@ function(
}
})
.then(function(messages) {
return renderMessages(root, messages);
if (messages.length) {
return renderMessages(root, messages)
.then(function() {
return messages.length;
});
} else {
return messages.length;
}
})
.then(function() {
.then(function(count) {
hideMessagesLoadingIcon(root);
if (loadedAll) {
hideLoadMoreMessagesButton(root);
}
return;
return count;
})
.catch(function(error) {
hideMessagesLoadingIcon(root);
@@ -692,8 +801,32 @@ function(
loadMoreUsers(body, loggedInUserId, searchText, usersLimit, usersOffset),
loadMoreMessages(body, loggedInUserId, searchText, messagesLimit, messagesOffset)
)
.then(function() {
.then(function(userCounts, messagesCount) {
var contactsCount = userCounts.contactsCount;
var nonContactsCount = userCounts.nonContactsCount;
stopLoading(header, body);
if (!contactsCount && !nonContactsCount && !messagesCount) {
showNoSearchResults(body);
} else {
if (!contactsCount && !nonContactsCount) {
hideAllContactsSearchResults(body);
} else {
if (!contactsCount) {
hideContactsSearchResults(body);
}
if (!nonContactsCount) {
hideNonContactsSearchResults(body);
}
}
if (!messagesCount) {
hideMessagesSearchResults(body);
}
}
return;
});
};
@@ -49,7 +49,7 @@
<div class="hidden" data-region="loading-placeholder">
{{> core_message/message_drawer_view_search_results_content_placeholder }}
</div>
<div class="p-2" data-region="empty-message-container">
<div class="p-3 text-center" data-region="empty-message-container">
<p>{{#str}} searchcombined, core_message {{/str}}</p>
</div>
</div>
@@ -36,20 +36,14 @@
}}
<div class="d-flex flex-column">
<div class="mb-3 bg-white">
<div class="mb-3 bg-white" data-region="all-contacts-container">
<div data-region="contacts-container" class="pt-2">
<h4 class="h6 px-2">{{#str}} contacts, core_message {{/str}}</h4>
<div class="list-group" data-region="list"></div>
<p class="hidden px-2" data-region="no-results-container">
{{#str}} searchnocontactsfound, core_message {{/str}}
</p>
</div>
<div data-region="non-contacts-container" class="pt-2 border-top">
<h4 class="h6 px-2">{{#str}} noncontacts, core_message {{/str}}</h4>
<div class="list-group" data-region="list"></div>
<p class="hidden px-2" data-region="no-results-container">
{{#str}} searchnononcontactsfound, core_message {{/str}}
</p>
</div>
<div class="text-right">
<button class="btn btn-link text-primary" data-action="load-more-users">
@@ -58,14 +52,9 @@
</button>
</div>
</div>
<div class="bg-white">
<div data-region="messages-container">
<h4 class="h6 px-2 pt-2">{{#str}} messages, core_message {{/str}}</h4>
<div class="list-group" data-region="list"></div>
<p class="hidden px-2" data-region="no-results-container">
{{#str}} searchnomessagesfound, core_message {{/str}}
</p>
</div>
<div class="bg-white" data-region="messages-container">
<h4 class="h6 px-2 pt-2">{{#str}} messages, core_message {{/str}}</h4>
<div class="list-group" data-region="list"></div>
<div class="text-right">
<button class="btn btn-link text-primary" data-action="load-more-messages">
<span data-region="button-text">{{#str}} loadmore, core_message {{/str}}</span>
@@ -73,4 +62,5 @@
</button>
</div>
</div>
<p class="hidden p-3 text-center" data-region="no-results-container">{{#str}} noresults, core {{/str}}</p>
</div>