frio: fix some contact list issues
This commit is contained in:
parent
afbfbde112
commit
85f558d8fb
6 changed files with 98 additions and 107 deletions
60
view/theme/frio/js/mod_contacts.js
Normal file
60
view/theme/frio/js/mod_contacts.js
Normal file
|
@ -0,0 +1,60 @@
|
|||
|
||||
var batchConfirmed = false;
|
||||
|
||||
$(document).ready(function() {
|
||||
// Add contact_filter autocompletion to the search field.
|
||||
$("#contacts-search").contact_filter(baseurl + '/acl', 'r', true);
|
||||
|
||||
// Hide the viewcontact_wrapper if there is an input in the search field
|
||||
// We are doing this to let the the contact_filter replace the original
|
||||
// shown contacts.
|
||||
$("#contacts-search").keyup(function(){
|
||||
var elText = $(this).val();
|
||||
if (elText.length !== 0) {
|
||||
$("#viewcontact_wrapper").hide();
|
||||
$("ul.textcomplete-dropdown").addClass("show media-list");
|
||||
} else {
|
||||
$("#viewcontact_wrapper").show();
|
||||
$("ul.textcomplete-dropdown").removeClass("show");
|
||||
}
|
||||
});
|
||||
// Initiale autosize for the textareas.
|
||||
autosize($("textarea.text-autosize"));
|
||||
|
||||
|
||||
// Replace the drop contact link of the photo menu
|
||||
// with a confirmation modal.
|
||||
$("body").on("click", ".contact-photo-menu a", function(e) {
|
||||
var photoMenuLink = $(this).attr('href');
|
||||
if (typeof photoMenuLink !== "undefined" && photoMenuLink.indexOf("/drop?confirm=1") !== -1) {
|
||||
e.preventDefault();
|
||||
addToModal(photoMenuLink);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
/**
|
||||
* @brief This function submits the form with the batch action values.
|
||||
*
|
||||
* @param {string} name The name of the batch action.
|
||||
* @param {string} value If it isn't empty the action will be posted.
|
||||
*
|
||||
* @return {void}
|
||||
*/
|
||||
function batch_submit_handler(name, value) {
|
||||
if (confirm(value + " ?")) {
|
||||
// Set the value of the hidden input element with the name batch_submit.
|
||||
document.batch_actions_submit.batch_submit.value = value;
|
||||
// Change the name of the input element from batch_submit according to the
|
||||
// name which is transmitted to this function.
|
||||
document.batch_actions_submit.batch_submit.name = name;
|
||||
// Transmit the form.
|
||||
document.batch_actions_submit.submit();
|
||||
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -520,24 +520,31 @@ function filter_replace(item) {
|
|||
return item.name;
|
||||
}
|
||||
|
||||
(function( $ ) {
|
||||
(function($) {
|
||||
$.fn.contact_filter = function(backend_url, typ, autosubmit, onselect) {
|
||||
if(typeof typ === 'undefined') typ = '';
|
||||
if(typeof autosubmit === 'undefined') autosubmit = false;
|
||||
if (typeof typ === 'undefined') {
|
||||
typ = '';
|
||||
}
|
||||
|
||||
if (typeof autosubmit === 'undefined') {
|
||||
autosubmit = false;
|
||||
}
|
||||
|
||||
// Autocomplete contacts
|
||||
contacts = {
|
||||
match: /(^)([^\n]+)$/,
|
||||
index: 2,
|
||||
search: function(term, callback) { contact_search(term, callback, backend_url, typ); },
|
||||
search: function(term, callback) {contact_search(term, callback, backend_url, typ);},
|
||||
replace: filter_replace,
|
||||
template: contact_filter,
|
||||
template: contact_filter
|
||||
};
|
||||
|
||||
this.attr('autocomplete','off');
|
||||
var a = this.textcomplete([contacts], {className:'accontacts', appendTo: '#contact-list'});
|
||||
|
||||
a.on('textComplete:select', function(e, value, strategy) { $(".dropdown-menu.textcomplete-dropdown.media-list").show(); });
|
||||
a.on('textComplete:select', function(e, value, strategy) {
|
||||
$(".dropdown-menu.textcomplete-dropdown.media-list").show();
|
||||
});
|
||||
};
|
||||
})( jQuery );
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue