From 3ad2b1b4b0ac0fc7a6c7a5adaad9a0616b890daf Mon Sep 17 00:00:00 2001 From: alecpl Date: Thu, 24 Nov 2011 07:53:00 +0000 Subject: - Applied fixes from trunk up to r5479 --- CHANGELOG | 7 + SQL/mssql.initial.sql | 2 +- SQL/mssql.upgrade.sql | 5 + SQL/mysql.initial.sql | 2 +- SQL/mysql.update.sql | 4 + SQL/postgres.initial.sql | 2 +- SQL/postgres.update.sql | 4 + SQL/sqlite.initial.sql | 2 +- SQL/sqlite.update.sql | 13 + plugins/archive/archive.js | 4 +- plugins/archive/package.xml | 14 +- plugins/managesieve/Changelog | 1 + plugins/managesieve/localization/es_ES.inc | 26 ++ plugins/managesieve/managesieve.js | 13 +- plugins/managesieve/skins/default/managesieve.css | 7 +- plugins/password/drivers/ldap.php | 1 + plugins/password/drivers/ldap_simple.php | 1 + plugins/password/package.xml | 12 +- program/include/main.inc | 12 +- program/include/rcube_string_replacer.php | 2 +- program/include/rcube_template.php | 2 + program/js/app.js | 278 +++++++++++----------- program/js/common.js | 79 ++++++ program/steps/mail/get.inc | 2 +- program/steps/settings/func.inc | 5 +- skins/default/common.css | 18 +- tests/mailfunc.php | 1 - 27 files changed, 345 insertions(+), 174 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 328865dfb..71be8a90f 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,7 +1,14 @@ CHANGELOG Roundcube Webmail =========================== +- Fix possible infinite redirect on attachment preview (#1488199) +- Improved clickjacking protection for browsers which don't support X-Frame-Options headers +- Fixed bug where similiar folder names were highlighted wrong (#1487860) +- Fixed bug in handling link with '!' character in it (#1488195) +- Fixed bug where session ID's length was limited to 40 characters (#1488196) +RELEASE 0.7-beta +---------------- - Fix handling of HTML form elements in messages (#1485137) - Fix regression in setting recipient to self when replying to a Sent message (#1487074) - Fix listing of folders in hidden namespaces (#1486796) diff --git a/SQL/mssql.initial.sql b/SQL/mssql.initial.sql index a8d1a0b89..c14114100 100644 --- a/SQL/mssql.initial.sql +++ b/SQL/mssql.initial.sql @@ -81,7 +81,7 @@ CREATE TABLE [dbo].[identities] ( GO CREATE TABLE [dbo].[session] ( - [sess_id] [varchar] (32) COLLATE Latin1_General_CI_AI NOT NULL , + [sess_id] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL , [created] [datetime] NOT NULL , [changed] [datetime] NULL , [ip] [varchar] (40) COLLATE Latin1_General_CI_AI NOT NULL , diff --git a/SQL/mssql.upgrade.sql b/SQL/mssql.upgrade.sql index 70cf34d36..eee5ae560 100644 --- a/SQL/mssql.upgrade.sql +++ b/SQL/mssql.upgrade.sql @@ -239,3 +239,8 @@ ALTER TABLE [dbo].[cache_messages] ADD CONSTRAINT [FK_cache_messages_user_id] ON DELETE CASCADE ON UPDATE CASCADE GO +-- Updates from version 0.7-beta + +ALTER TABLE [dbo].[session] ALTER COLUMN [sess_id] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL +GO + diff --git a/SQL/mysql.initial.sql b/SQL/mysql.initial.sql index 28a90f531..94679f202 100644 --- a/SQL/mysql.initial.sql +++ b/SQL/mysql.initial.sql @@ -6,7 +6,7 @@ -- Table structure for table `session` CREATE TABLE `session` ( - `sess_id` varchar(40) NOT NULL, + `sess_id` varchar(128) NOT NULL, `created` datetime NOT NULL DEFAULT '1000-01-01 00:00:00', `changed` datetime NOT NULL DEFAULT '1000-01-01 00:00:00', `ip` varchar(40) NOT NULL, diff --git a/SQL/mysql.update.sql b/SQL/mysql.update.sql index 66045392d..07617316b 100644 --- a/SQL/mysql.update.sql +++ b/SQL/mysql.update.sql @@ -208,3 +208,7 @@ CREATE TABLE `cache_messages` ( INDEX `changed_index` (`changed`), PRIMARY KEY (`user_id`, `mailbox`, `uid`) ) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */; + +-- Updates from version 0.7-beta + +ALTER TABLE `session` CHANGE `sess_id` `sess_id` varchar(128) NOT NULL; diff --git a/SQL/postgres.initial.sql b/SQL/postgres.initial.sql index 06ecad4eb..3710dac4a 100644 --- a/SQL/postgres.initial.sql +++ b/SQL/postgres.initial.sql @@ -37,7 +37,7 @@ CREATE INDEX users_alias_id_idx ON users (alias); -- CREATE TABLE "session" ( - sess_id varchar(40) DEFAULT '' PRIMARY KEY, + sess_id varchar(128) DEFAULT '' PRIMARY KEY, created timestamp with time zone DEFAULT now() NOT NULL, changed timestamp with time zone DEFAULT now() NOT NULL, ip varchar(41) NOT NULL, diff --git a/SQL/postgres.update.sql b/SQL/postgres.update.sql index 2935cd483..c96669dc8 100644 --- a/SQL/postgres.update.sql +++ b/SQL/postgres.update.sql @@ -165,3 +165,7 @@ CREATE TABLE cache_messages ( ); CREATE INDEX cache_messages_changed_idx ON cache_messages (changed); + +-- Updates from version 0.7-beta + +ALTER TABLE "session" ALTER sess_id TYPE varchar(128); diff --git a/SQL/sqlite.initial.sql b/SQL/sqlite.initial.sql index 80c82a1a1..8c8da5c0f 100644 --- a/SQL/sqlite.initial.sql +++ b/SQL/sqlite.initial.sql @@ -110,7 +110,7 @@ CREATE INDEX ix_users_alias ON users(alias); -- CREATE TABLE session ( - sess_id varchar(40) NOT NULL PRIMARY KEY, + sess_id varchar(128) NOT NULL PRIMARY KEY, created datetime NOT NULL default '0000-00-00 00:00:00', changed datetime NOT NULL default '0000-00-00 00:00:00', ip varchar(40) NOT NULL default '', diff --git a/SQL/sqlite.update.sql b/SQL/sqlite.update.sql index 0193c7c39..92f6da142 100644 --- a/SQL/sqlite.update.sql +++ b/SQL/sqlite.update.sql @@ -282,3 +282,16 @@ CREATE TABLE cache_messages ( ); CREATE INDEX ix_cache_messages_changed ON cache_messages (changed); + +-- Updates from version 0.7-beta + +DROP TABLE session; +CREATE TABLE session ( + sess_id varchar(128) NOT NULL PRIMARY KEY, + created datetime NOT NULL default '0000-00-00 00:00:00', + changed datetime NOT NULL default '0000-00-00 00:00:00', + ip varchar(40) NOT NULL default '', + vars text NOT NULL +); + +CREATE INDEX ix_session_changed ON session (changed); diff --git a/plugins/archive/archive.js b/plugins/archive/archive.js index a83750819..5c576e100 100644 --- a/plugins/archive/archive.js +++ b/plugins/archive/archive.js @@ -27,7 +27,9 @@ if (window.rcmail) { // set css style for archive folder var li; - if (rcmail.env.archive_folder && rcmail.env.archive_folder_icon && (li = rcmail.get_folder_li(rcmail.env.archive_folder))) + if (rcmail.env.archive_folder && rcmail.env.archive_folder_icon + && (li = rcmail.get_folder_li(rcmail.env.archive_folder, '', true)) + ) $(li).css('background-image', 'url(' + rcmail.env.archive_folder_icon + ')'); }) } diff --git a/plugins/archive/package.xml b/plugins/archive/package.xml index c442a5c4d..c549fc9b7 100644 --- a/plugins/archive/package.xml +++ b/plugins/archive/package.xml @@ -13,10 +13,9 @@ roundcube@gmail.com yes - 2010-02-06 - + 2011-11-23 - 1.4 + 1.5 1.4 @@ -35,14 +34,21 @@ - + + + + + + + + diff --git a/plugins/managesieve/Changelog b/plugins/managesieve/Changelog index d7ef8e561..05506120e 100644 --- a/plugins/managesieve/Changelog +++ b/plugins/managesieve/Changelog @@ -1,4 +1,5 @@ - Fixed setting test type to :is when none is specified +- Fixed javascript error in IE8 * version 5.0-rc1 [2011-11-17] ----------------------------------------------------------- diff --git a/plugins/managesieve/localization/es_ES.inc b/plugins/managesieve/localization/es_ES.inc index 1dad18d99..df9d3a79d 100644 --- a/plugins/managesieve/localization/es_ES.inc +++ b/plugins/managesieve/localization/es_ES.inc @@ -53,6 +53,31 @@ $labels['none'] = 'ninguno'; $labels['fromset'] = 'de conjunto '; $labels['fromfile'] = 'de archivo'; $labels['filterdisabled'] = 'Filtro desactivado'; +$labels['filtermatches'] = 'coincide con la expresión'; +$labels['filternotmatches'] = 'no coincide con la expresión'; +$labels['filterregex'] = 'coincide con la expresión regular'; +$labels['filternotregex'] = 'no coincide con la expresión regular'; +$labels['vacationsubject'] = 'Asunto del Mensaje:'; +$labels['countisgreaterthan'] = 'contiene más que'; +$labels['countisgreaterthanequal'] = 'contiene más o igual que'; +$labels['countislessthan'] = 'contiene menos que'; +$labels['countislessthanequal'] = 'contiene menos o igual que'; +$labels['countequals'] = 'contiene igual que'; +$labels['countnotequals'] = 'contiene distinto que'; +$labels['valueisgreaterthan'] = 'el valor es mayor que'; +$labels['valueisgreaterthanequal'] = 'el valor es mayor o igual que'; +$labels['valueislessthan'] = 'el valor es menor que'; +$labels['valueislessthanequal'] = 'el valor es menor o igual que'; +$labels['valueequals'] = 'el valor es igual que'; +$labels['valuenotequals'] = 'el valor es distinto que'; +$labels['setflags'] = 'Etiquetar el mensaje'; +$labels['addflags'] = 'Agregar etiqueta al mensaje'; +$labels['removeflags'] = 'Eliminar etiquetas al mensaje'; +$labels['flagread'] = 'Leido'; +$labels['flagdeleted'] = 'Eliminado'; +$labels['flaganswered'] = 'Respondido'; +$labels['flagflagged'] = 'Marcado'; +$labels['flagdraft'] = 'Borrador'; $messages = array(); $messages['filterunknownerror'] = 'Error desconocido de servidor'; @@ -77,5 +102,6 @@ $messages['setcreateerror'] = 'Imposible crear el conjunto de filtros. Ha ocurri $messages['setcreated'] = 'Conjunto de filtros creado satisfactoriamente'; $messages['emptyname'] = 'Imposible crear el conjunto de filtros. Sin nombre'; $messages['nametoolong'] = 'Imposible crear el conjunto de filtros. Nombre demasiado largo' +$messages['setdeactivateerror'] = 'Imposible desactivar el conjunto de filtros seleccionado. Ha ocurrido un error en el servidor'; ?> diff --git a/plugins/managesieve/managesieve.js b/plugins/managesieve/managesieve.js index a7b15f7b5..a8bfaf203 100644 --- a/plugins/managesieve/managesieve.js +++ b/plugins/managesieve/managesieve.js @@ -290,8 +290,8 @@ rcube_webmail.prototype.managesieve_updatelist = function(action, o) td.innerHTML = el.name; td.className = 'name'; tr.id = 'rcmrow' + el.id; - if (el.class) - tr.className = el.class + if (el['class']) + tr.className = el['class']; tr.appendChild(td); list.insert_row(tr); @@ -721,13 +721,11 @@ rcube_webmail.prototype.managesieve_create = function() // load form in the iframe var frame = $('