From 8ca0c7ce6a1c7f8eb60cddc5955db51afd2cd107 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Thu, 11 Jun 2009 11:15:28 -0400
Subject: [PATCH] - fix folder ID generation (for example two folders 'aaa' and 'aaa "')

---
 program/include/main.inc |    8 ++++----
 program/js/app.js        |    3 +--
 2 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/program/include/main.inc b/program/include/main.inc
index dbed2ba..c870b49 100644
--- a/program/include/main.inc
+++ b/program/include/main.inc
@@ -590,12 +590,12 @@
 
 /**
  * Remove all non-ascii and non-word chars
- * except . and -
+ * except ., -, _
  */
-function asciiwords($str, $css_id = false)
+function asciiwords($str, $css_id = false, $replace_with = '')
 {
   $allowed = 'a-z0-9\_\-' . (!$css_id ? '\.' : '');
-  return preg_replace("/[^$allowed]/i", '', $str);
+  return preg_replace("/[^$allowed]/i", $replace_with, $str);
 }
 
 /**
@@ -1201,7 +1201,7 @@
     }
 
     // make folder name safe for ids and class names
-    $folder_id = asciiwords($folder['id'], true);
+    $folder_id = asciiwords($folder['id'], true, '_');
     $classes = array('mailbox');
 
     // set special class for Sent, Drafts, Trash and Junk
diff --git a/program/js/app.js b/program/js/app.js
index 0933ca6..2831e3d 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -3496,7 +3496,6 @@
       if ((current_li = this.get_folder_li(old))) {
         $(current_li).removeClass('selected').removeClass('unfocused');
       }
-
       if ((target_li = this.get_folder_li(name))) {
         $(target_li).removeClass('unfocused').addClass('selected');
       }
@@ -3511,7 +3510,7 @@
   {
     if (this.gui_objects.folderlist)
     {
-      name = String(name).replace(this.identifier_expr, '');
+      name = String(name).replace(this.identifier_expr, '_');
       return document.getElementById('rcmli'+name);
     }
 

--
Gitblit v1.9.1