From b0689bd500ccc347b6ecda63cd39269696e5a157 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Tue, 21 Jun 2011 03:56:40 -0400
Subject: [PATCH] - Set css class name on directory list row according to readonly flag and 'class' data provided by plugins

---
 program/steps/addressbook/func.inc |   15 +++++++++++++--
 1 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/program/steps/addressbook/func.inc b/program/steps/addressbook/func.inc
index 08f2a32..0f2d757 100644
--- a/program/steps/addressbook/func.inc
+++ b/program/steps/addressbook/func.inc
@@ -81,6 +81,7 @@
     $OUTPUT->set_env('address_sources', $js_list);
 
     $OUTPUT->set_pagetitle(rcube_label('addressbook'));
+    $_SESSION['addressbooks_count'] = count($js_list);
 
     $CONTACTS = rcmail_contact_source($source, true);
 }
@@ -160,7 +161,7 @@
     $jsdata = array();
 
     $line_templ = html::tag('li', array(
-        'id' => 'rcmli%s', 'class' => 'addressbook %s'),
+        'id' => 'rcmli%s', 'class' => '%s'),
         html::a(array('href' => '%s',
             'rel' => '%s',
             'onclick' => "return ".JS_OBJECT_NAME.".command('list','%s',this)"), '%s'));
@@ -176,9 +177,19 @@
     foreach ($sources as $j => $source) {
         $id = strval($source['id'] ? $source['id'] : $j);
         $js_id = JQ($id);
+
+        // set class name(s)
+        $class_name = 'addressbook';
+        if ($current === $id)
+            $class_name .= ' selected';
+        if ($source['readonly'])
+            $class_name .= ' readonly';
+        if ($source['class'])
+            $class_name .= ' ' . $source['class'];
+
         $out .= sprintf($line_templ,
             html_identifier($id),
-            ($current === $id ? 'selected' : ''),
+            $class_name,
             Q(rcmail_url(null, array('_source' => $id))),
             $source['id'],
             $js_id, (!empty($source['name']) ? Q($source['name']) : Q($id)));

--
Gitblit v1.9.1