mirror of
https://github.com/roundcube/roundcubemail.git
synced 2026-03-05 15:54:03 +01:00
Add support for read-only address book records
This commit is contained in:
@@ -1346,21 +1346,21 @@ class rcube_imap extends rcube_storage
|
||||
*
|
||||
* @return rcube_result_index Search result (UIDs)
|
||||
*/
|
||||
public function search_once($mailbox = null, $str = 'ALL')
|
||||
public function search_once($folder = null, $str = 'ALL')
|
||||
{
|
||||
if (!$str) {
|
||||
return 'ALL';
|
||||
}
|
||||
|
||||
if (!strlen($mailbox)) {
|
||||
$mailbox = $this->mailbox;
|
||||
if (!strlen($folder)) {
|
||||
$folder = $this->folder;
|
||||
}
|
||||
|
||||
if (!$this->check_connection()) {
|
||||
return new rcube_result_index();
|
||||
}
|
||||
|
||||
$index = $this->conn->search($mailbox, $str, true);
|
||||
$index = $this->conn->search($folder, $str, true);
|
||||
|
||||
return $index;
|
||||
}
|
||||
|
||||
@@ -4229,7 +4229,7 @@ function rcube_webmail()
|
||||
};
|
||||
|
||||
// add row to contacts list
|
||||
this.add_contact_row = function(cid, cols, select)
|
||||
this.add_contact_row = function(cid, cols, classes)
|
||||
{
|
||||
if (!this.gui_objects.contactslist)
|
||||
return false;
|
||||
@@ -4238,7 +4238,7 @@ function rcube_webmail()
|
||||
row = document.createElement('tr');
|
||||
|
||||
row.id = 'rcmrow'+this.html_identifier(cid);
|
||||
row.className = 'contact';
|
||||
row.className = 'contact ' + (classes || '');
|
||||
|
||||
if (list.in_selection(cid))
|
||||
row.className += ' selected';
|
||||
|
||||
@@ -36,8 +36,8 @@ if ($RCMAIL->action == 'edit') {
|
||||
$OUTPUT->set_env('cid', $record['ID']);
|
||||
}
|
||||
|
||||
// adding not allowed here
|
||||
if ($CONTACTS->readonly) {
|
||||
// editing not allowed here
|
||||
if ($CONTACTS->readonly || $record['readonly']) {
|
||||
$OUTPUT->show_message('sourceisreadonly');
|
||||
rcmail_overwrite_action('show');
|
||||
return;
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
| program/steps/addressbook/func.inc |
|
||||
| |
|
||||
| This file is part of the Roundcube Webmail client |
|
||||
| Copyright (C) 2005-2007, The Roundcube Dev Team |
|
||||
| Copyright (C) 2005-2012, The Roundcube Dev Team |
|
||||
| |
|
||||
| Licensed under the GNU General Public License version 3 or |
|
||||
| any later version with exceptions for skins & plugins. |
|
||||
@@ -339,6 +339,7 @@ function rcmail_js_contacts_list($result, $prefix='')
|
||||
|
||||
while ($row = $result->next()) {
|
||||
$a_row_cols = array();
|
||||
$classes = array('person'); // org records will follow some day
|
||||
|
||||
// build contact ID with source ID
|
||||
if (isset($row['sourceid'])) {
|
||||
@@ -351,7 +352,10 @@ function rcmail_js_contacts_list($result, $prefix='')
|
||||
$a_row_cols[$col] = Q($val);
|
||||
}
|
||||
|
||||
$OUTPUT->command($prefix.'add_contact_row', $row['ID'], $a_row_cols);
|
||||
if ($row['readonly'])
|
||||
$classes[] = 'readonly';
|
||||
|
||||
$OUTPUT->command($prefix.'add_contact_row', $row['ID'], $a_row_cols, join(' ', $classes));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -33,6 +33,7 @@ $SOURCE_ID = $source;
|
||||
|
||||
// read contact record
|
||||
if ($cid && ($record = $CONTACTS->get_record($cid, true))) {
|
||||
$OUTPUT->set_env('readonly', $CONTACTS->readonly || $record['readonly']);
|
||||
$OUTPUT->set_env('cid', $record['ID']);
|
||||
}
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ if ($CONTACTS && $CONTACTS->ready) {
|
||||
$row_id = 'G'.$group['ID'];
|
||||
$jsresult[$row_id] = format_email_recipient($email, $group['name']);
|
||||
$OUTPUT->command('add_contact_row', $row_id, array(
|
||||
'contactgroup' => html::span(array('title' => $email), Q($group['name']))));
|
||||
'contactgroup' => html::span(array('title' => $email), Q($group['name']))), 'group');
|
||||
}
|
||||
}
|
||||
// show group with count
|
||||
@@ -53,7 +53,7 @@ if ($CONTACTS && $CONTACTS->ready) {
|
||||
$row_id = 'E'.$group['ID'];
|
||||
$jsresult[$row_id] = $group['name'];
|
||||
$OUTPUT->command('add_contact_row', $row_id, array(
|
||||
'contactgroup' => Q($group['name'] . ' (' . intval($result->count) . ')')));
|
||||
'contactgroup' => Q($group['name'] . ' (' . intval($result->count) . ')')), 'group');
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -75,7 +75,7 @@ if ($CONTACTS && $CONTACTS->ready) {
|
||||
$row_id = $row['ID'].$i;
|
||||
$jsresult[$row_id] = format_email_recipient($email, $name);
|
||||
$OUTPUT->command('add_contact_row', $row_id, array(
|
||||
'contact' => html::span(array('title' => $email), Q($name ? $name : $email))));
|
||||
'contact' => html::span(array('title' => $email), Q($name ? $name : $email))), 'person');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -73,6 +73,10 @@
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
#contacts-table .contact.readonly td {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
#directorylist li.addressbook a {
|
||||
background-position: 6px -766px;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user