summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--3rdparty/Archive/Tar.php80
-rw-r--r--3rdparty/class.phpmailer.php123
-rw-r--r--3rdparty/class.smtp.php11
-rwxr-xr-x[-rw-r--r--]3rdparty/css/chosen-sprite.pngbin742 -> 559 bytes
-rwxr-xr-x[-rw-r--r--]3rdparty/css/chosen.css259
-rwxr-xr-x[-rw-r--r--]3rdparty/css/chosen/chosen.css206
-rw-r--r--3rdparty/fullcalendar/css/fullcalendar.css4
-rw-r--r--3rdparty/fullcalendar/css/fullcalendar.print.css4
-rw-r--r--3rdparty/fullcalendar/js/fullcalendar.js38
-rw-r--r--3rdparty/fullcalendar/js/fullcalendar.min.js14
-rw-r--r--3rdparty/fullcalendar/js/gcal.js4
-rw-r--r--3rdparty/js/chosen/VERSION2
-rwxr-xr-x[-rw-r--r--]3rdparty/js/chosen/chosen.jquery.js741
-rwxr-xr-x[-rw-r--r--]3rdparty/js/chosen/chosen.jquery.min.js4
-rwxr-xr-x3rdparty/miniColors/css/images/colors.pngbin12485 -> 12973 bytes
-rwxr-xr-x3rdparty/miniColors/css/images/trigger.pngbin1406 -> 706 bytes
-rwxr-xr-x3rdparty/miniColors/css/jquery.miniColors.css92
-rwxr-xr-x3rdparty/miniColors/js/jquery.miniColors.js314
-rwxr-xr-x3rdparty/miniColors/js/jquery.miniColors.min.js4
-rwxr-xr-x[-rw-r--r--]3rdparty/timepicker/GPL-LICENSE.txt0
-rwxr-xr-x[-rw-r--r--]3rdparty/timepicker/MIT-LICENSE.txt0
-rwxr-xr-x[-rw-r--r--]3rdparty/timepicker/css/include/images/ui-bg_diagonals-thick_18_b81900_40x40.pngbin260 -> 260 bytes
-rwxr-xr-x[-rw-r--r--]3rdparty/timepicker/css/include/images/ui-bg_diagonals-thick_20_666666_40x40.pngbin251 -> 251 bytes
-rwxr-xr-x[-rw-r--r--]3rdparty/timepicker/css/include/images/ui-bg_flat_10_000000_40x100.pngbin178 -> 178 bytes
-rwxr-xr-x[-rw-r--r--]3rdparty/timepicker/css/include/images/ui-bg_glass_100_f6f6f6_1x400.pngbin104 -> 104 bytes
-rwxr-xr-x[-rw-r--r--]3rdparty/timepicker/css/include/images/ui-bg_glass_100_fdf5ce_1x400.pngbin125 -> 125 bytes
-rwxr-xr-x[-rw-r--r--]3rdparty/timepicker/css/include/images/ui-bg_glass_65_ffffff_1x400.pngbin105 -> 105 bytes
-rwxr-xr-x[-rw-r--r--]3rdparty/timepicker/css/include/images/ui-bg_gloss-wave_35_f6a828_500x100.pngbin3762 -> 3762 bytes
-rwxr-xr-x[-rw-r--r--]3rdparty/timepicker/css/include/images/ui-bg_highlight-soft_100_eeeeee_1x100.pngbin90 -> 90 bytes
-rwxr-xr-x[-rw-r--r--]3rdparty/timepicker/css/include/images/ui-bg_highlight-soft_75_ffe45c_1x100.pngbin129 -> 129 bytes
-rwxr-xr-x[-rw-r--r--]3rdparty/timepicker/css/include/images/ui-icons_222222_256x240.pngbin4369 -> 4369 bytes
-rwxr-xr-x[-rw-r--r--]3rdparty/timepicker/css/include/images/ui-icons_228ef1_256x240.pngbin4369 -> 4369 bytes
-rwxr-xr-x[-rw-r--r--]3rdparty/timepicker/css/include/images/ui-icons_ef8c08_256x240.pngbin4369 -> 4369 bytes
-rwxr-xr-x[-rw-r--r--]3rdparty/timepicker/css/include/images/ui-icons_ffd27a_256x240.pngbin4369 -> 4369 bytes
-rwxr-xr-x[-rw-r--r--]3rdparty/timepicker/css/include/images/ui-icons_ffffff_256x240.pngbin4369 -> 4369 bytes
-rwxr-xr-x[-rw-r--r--]3rdparty/timepicker/css/include/jquery-1.5.1.min.js0
-rwxr-xr-x[-rw-r--r--]3rdparty/timepicker/css/include/jquery-ui-1.8.14.custom.css0
-rwxr-xr-x[-rw-r--r--]3rdparty/timepicker/css/include/jquery.ui.core.min.js0
-rwxr-xr-x[-rw-r--r--]3rdparty/timepicker/css/include/jquery.ui.position.min.js0
-rwxr-xr-x[-rw-r--r--]3rdparty/timepicker/css/include/jquery.ui.tabs.min.js0
-rwxr-xr-x[-rw-r--r--]3rdparty/timepicker/css/include/jquery.ui.widget.min.js0
-rwxr-xr-x[-rw-r--r--]3rdparty/timepicker/css/include/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.pngbin260 -> 260 bytes
-rwxr-xr-x[-rw-r--r--]3rdparty/timepicker/css/include/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.pngbin251 -> 251 bytes
-rwxr-xr-x[-rw-r--r--]3rdparty/timepicker/css/include/ui-lightness/images/ui-bg_flat_10_000000_40x100.pngbin178 -> 178 bytes
-rwxr-xr-x[-rw-r--r--]3rdparty/timepicker/css/include/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.pngbin104 -> 104 bytes
-rwxr-xr-x[-rw-r--r--]3rdparty/timepicker/css/include/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.pngbin125 -> 125 bytes
-rwxr-xr-x[-rw-r--r--]3rdparty/timepicker/css/include/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.pngbin105 -> 105 bytes
-rwxr-xr-x[-rw-r--r--]3rdparty/timepicker/css/include/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.pngbin3762 -> 3762 bytes
-rwxr-xr-x[-rw-r--r--]3rdparty/timepicker/css/include/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.pngbin90 -> 90 bytes
-rwxr-xr-x[-rw-r--r--]3rdparty/timepicker/css/include/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.pngbin129 -> 129 bytes
-rwxr-xr-x[-rw-r--r--]3rdparty/timepicker/css/include/ui-lightness/images/ui-icons_222222_256x240.pngbin4369 -> 4369 bytes
-rwxr-xr-x[-rw-r--r--]3rdparty/timepicker/css/include/ui-lightness/images/ui-icons_228ef1_256x240.pngbin4369 -> 4369 bytes
-rwxr-xr-x[-rw-r--r--]3rdparty/timepicker/css/include/ui-lightness/images/ui-icons_ef8c08_256x240.pngbin4369 -> 4369 bytes
-rwxr-xr-x[-rw-r--r--]3rdparty/timepicker/css/include/ui-lightness/images/ui-icons_ffd27a_256x240.pngbin4369 -> 4369 bytes
-rwxr-xr-x[-rw-r--r--]3rdparty/timepicker/css/include/ui-lightness/images/ui-icons_ffffff_256x240.pngbin4369 -> 4369 bytes
-rwxr-xr-x[-rw-r--r--]3rdparty/timepicker/css/jquery.ui.timepicker.css2
-rwxr-xr-x[-rw-r--r--]3rdparty/timepicker/js/i18n/i18n.html98
-rwxr-xr-x3rdparty/timepicker/js/i18n/jquery.ui.timepicker-cs.js12
-rwxr-xr-x[-rw-r--r--]3rdparty/timepicker/js/i18n/jquery.ui.timepicker-de.js11
-rwxr-xr-x3rdparty/timepicker/js/i18n/jquery.ui.timepicker-es.js12
-rwxr-xr-x[-rw-r--r--]3rdparty/timepicker/js/i18n/jquery.ui.timepicker-fr.js0
-rwxr-xr-x3rdparty/timepicker/js/i18n/jquery.ui.timepicker-hr.js13
-rwxr-xr-x3rdparty/timepicker/js/i18n/jquery.ui.timepicker-it.js12
-rwxr-xr-x[-rw-r--r--]3rdparty/timepicker/js/i18n/jquery.ui.timepicker-ja.js5
-rwxr-xr-x3rdparty/timepicker/js/i18n/jquery.ui.timepicker-nl.js12
-rwxr-xr-x3rdparty/timepicker/js/i18n/jquery.ui.timepicker-pl.js12
-rwxr-xr-x3rdparty/timepicker/js/i18n/jquery.ui.timepicker-pt-BR.js12
-rwxr-xr-x3rdparty/timepicker/js/i18n/jquery.ui.timepicker-sl.js12
-rwxr-xr-x3rdparty/timepicker/js/i18n/jquery.ui.timepicker-sv.js12
-rwxr-xr-x3rdparty/timepicker/js/i18n/jquery.ui.timepicker-tr.js12
-rwxr-xr-x[-rw-r--r--]3rdparty/timepicker/js/jquery.ui.timepicker.js115
-rwxr-xr-x[-rw-r--r--]3rdparty/timepicker/releases.txt10
-rw-r--r--apps/files/js/filelist.js12
-rw-r--r--apps/files/js/files.js4
-rw-r--r--apps/files/l10n/da.php12
-rw-r--r--apps/files/l10n/zh_CN.GB2312.php13
-rw-r--r--apps/files_external/l10n/da.php6
-rw-r--r--apps/files_external/l10n/de.php8
-rw-r--r--apps/files_external/l10n/fi_FI.php5
-rw-r--r--apps/files_external/l10n/nl.php6
-rw-r--r--apps/files_external/l10n/ru_RU.php2
-rw-r--r--apps/files_external/l10n/zh_CN.GB2312.php6
-rwxr-xr-xapps/files_external/lib/config.php3
-rw-r--r--apps/files_sharing/l10n/ru_RU.php2
-rw-r--r--apps/files_sharing/l10n/zh_CN.GB2312.php2
-rw-r--r--apps/files_versions/js/versions.js2
-rw-r--r--apps/files_versions/l10n/zh_CN.GB2312.php1
-rw-r--r--apps/user_ldap/l10n/ru_RU.php5
-rw-r--r--core/js/js.js9
-rw-r--r--core/l10n/da.php7
-rw-r--r--core/l10n/fi_FI.php10
-rw-r--r--core/l10n/nl.php7
-rw-r--r--core/l10n/pt_PT.php28
-rw-r--r--core/l10n/ru_RU.php2
-rw-r--r--core/l10n/zh_CN.GB2312.php27
-rw-r--r--l10n/da/core.po77
-rw-r--r--l10n/da/files.po103
-rw-r--r--l10n/da/files_external.po19
-rw-r--r--l10n/da/settings.po13
-rw-r--r--l10n/de/files_external.po15
-rw-r--r--l10n/de/settings.po12
-rw-r--r--l10n/fi_FI/core.po83
-rw-r--r--l10n/fi_FI/files_external.po17
-rw-r--r--l10n/nl/core.po76
-rw-r--r--l10n/nl/files_external.po18
-rw-r--r--l10n/nl/lib.po54
-rw-r--r--l10n/nl/settings.po12
-rw-r--r--l10n/pt_PT/core.po119
-rw-r--r--l10n/ru_RU/core.po8
-rw-r--r--l10n/ru_RU/files_external.po8
-rw-r--r--l10n/ru_RU/files_sharing.po12
-rw-r--r--l10n/ru_RU/lib.po20
-rw-r--r--l10n/ru_RU/settings.po6
-rw-r--r--l10n/ru_RU/user_ldap.po14
-rw-r--r--l10n/templates/core.pot28
-rw-r--r--l10n/templates/files.pot2
-rw-r--r--l10n/templates/files_encryption.pot2
-rw-r--r--l10n/templates/files_external.pot2
-rw-r--r--l10n/templates/files_sharing.pot2
-rw-r--r--l10n/templates/files_versions.pot2
-rw-r--r--l10n/templates/lib.pot2
-rw-r--r--l10n/templates/settings.pot2
-rw-r--r--l10n/templates/user_ldap.pot2
-rw-r--r--l10n/th_TH/settings.po12
-rw-r--r--l10n/zh_CN.GB2312/core.po116
-rw-r--r--l10n/zh_CN.GB2312/files.po104
-rw-r--r--l10n/zh_CN.GB2312/files_external.po18
-rw-r--r--l10n/zh_CN.GB2312/files_sharing.po12
-rw-r--r--l10n/zh_CN.GB2312/files_versions.po8
-rw-r--r--lib/archive/tar.php2
-rw-r--r--lib/base.php2
-rw-r--r--lib/db.php2
-rw-r--r--lib/fileproxy/fileoperations.php37
-rw-r--r--lib/files/filesystem.php8
-rw-r--r--lib/l10n/nl.php2
-rw-r--r--lib/l10n/ru_RU.php1
-rw-r--r--lib/log.php13
-rwxr-xr-xlib/util.php4
-rw-r--r--settings/l10n/da.php1
-rw-r--r--settings/l10n/de.php2
-rw-r--r--settings/l10n/nl.php1
-rw-r--r--settings/l10n/ru_RU.php1
-rw-r--r--settings/l10n/th_TH.php1
-rw-r--r--tests/bootstrap.php3
-rw-r--r--tests/data/db_structure.xml138
-rw-r--r--tests/data/db_structure2.xml77
-rw-r--r--tests/lib/cache/apc.php6
-rw-r--r--tests/lib/db.php70
-rw-r--r--tests/lib/dbschema.php118
-rw-r--r--tests/lib/share/share.php10
150 files changed, 2624 insertions, 1316 deletions
diff --git a/3rdparty/Archive/Tar.php b/3rdparty/Archive/Tar.php
index e9969501a07..33c7d395d09 100644
--- a/3rdparty/Archive/Tar.php
+++ b/3rdparty/Archive/Tar.php
@@ -35,7 +35,7 @@
* @author Vincent Blavet <vincent@phpconcept.net>
* @copyright 1997-2010 The Authors
* @license http://www.opensource.org/licenses/bsd-license.php New BSD License
- * @version CVS: $Id: Tar.php 323476 2012-02-24 15:27:26Z mrook $
+ * @version CVS: $Id: Tar.php 324840 2012-04-05 08:44:41Z mrook $
* @link http://pear.php.net/package/Archive_Tar
*/
@@ -50,7 +50,7 @@ define('ARCHIVE_TAR_END_BLOCK', pack("a512", ''));
* @package Archive_Tar
* @author Vincent Blavet <vincent@phpconcept.net>
* @license http://www.opensource.org/licenses/bsd-license.php New BSD License
-* @version $Revision: 323476 $
+* @version $Revision: 324840 $
*/
class Archive_Tar extends PEAR
{
@@ -577,7 +577,7 @@ class Archive_Tar extends PEAR
}
// ----- Get the arguments
- $v_att_list = func_get_args();
+ $v_att_list = &func_get_args();
// ----- Read the attributes
$i=0;
@@ -649,14 +649,14 @@ class Archive_Tar extends PEAR
// {{{ _error()
function _error($p_message)
{
- $this->error_object = $this->raiseError($p_message);
+ $this->error_object = &$this->raiseError($p_message);
}
// }}}
// {{{ _warning()
function _warning($p_message)
{
- $this->error_object = $this->raiseError($p_message);
+ $this->error_object = &$this->raiseError($p_message);
}
// }}}
@@ -981,7 +981,7 @@ class Archive_Tar extends PEAR
// }}}
// {{{ _addFile()
- function _addFile($p_filename, &$p_header, $p_add_dir, $p_remove_dir,$v_stored_filename=null)
+ function _addFile($p_filename, &$p_header, $p_add_dir, $p_remove_dir)
{
if (!$this->_file) {
$this->_error('Invalid file descriptor');
@@ -992,31 +992,29 @@ class Archive_Tar extends PEAR
$this->_error('Invalid file name');
return false;
}
- if(is_null($v_stored_filename)){
-
- // ----- Calculate the stored filename
- $p_filename = $this->_translateWinPath($p_filename, false);
- $v_stored_filename = $p_filename;
- if (strcmp($p_filename, $p_remove_dir) == 0) {
- return true;
- }
- if ($p_remove_dir != '') {
- if (substr($p_remove_dir, -1) != '/')
- $p_remove_dir .= '/';
-
- if (substr($p_filename, 0, strlen($p_remove_dir)) == $p_remove_dir)
- $v_stored_filename = substr($p_filename, strlen($p_remove_dir));
- }
- $v_stored_filename = $this->_translateWinPath($v_stored_filename);
- if ($p_add_dir != '') {
- if (substr($p_add_dir, -1) == '/')
- $v_stored_filename = $p_add_dir.$v_stored_filename;
- else
- $v_stored_filename = $p_add_dir.'/'.$v_stored_filename;
- }
-
- $v_stored_filename = $this->_pathReduction($v_stored_filename);
- }
+
+ // ----- Calculate the stored filename
+ $p_filename = $this->_translateWinPath($p_filename, false);;
+ $v_stored_filename = $p_filename;
+ if (strcmp($p_filename, $p_remove_dir) == 0) {
+ return true;
+ }
+ if ($p_remove_dir != '') {
+ if (substr($p_remove_dir, -1) != '/')
+ $p_remove_dir .= '/';
+
+ if (substr($p_filename, 0, strlen($p_remove_dir)) == $p_remove_dir)
+ $v_stored_filename = substr($p_filename, strlen($p_remove_dir));
+ }
+ $v_stored_filename = $this->_translateWinPath($v_stored_filename);
+ if ($p_add_dir != '') {
+ if (substr($p_add_dir, -1) == '/')
+ $v_stored_filename = $p_add_dir.$v_stored_filename;
+ else
+ $v_stored_filename = $p_add_dir.'/'.$v_stored_filename;
+ }
+
+ $v_stored_filename = $this->_pathReduction($v_stored_filename);
if ($this->_isArchive($p_filename)) {
if (($v_file = @fopen($p_filename, "rb")) == 0) {
@@ -1775,12 +1773,20 @@ class Archive_Tar extends PEAR
}
if ($this->_compress_type == 'gz') {
+ $end_blocks = 0;
+
while (!@gzeof($v_temp_tar)) {
$v_buffer = @gzread($v_temp_tar, 512);
if ($v_buffer == ARCHIVE_TAR_END_BLOCK || strlen($v_buffer) == 0) {
+ $end_blocks++;
// do not copy end blocks, we will re-make them
// after appending
continue;
+ } elseif ($end_blocks > 0) {
+ for ($i = 0; $i < $end_blocks; $i++) {
+ $this->_writeBlock(ARCHIVE_TAR_END_BLOCK);
+ }
+ $end_blocks = 0;
}
$v_binary_data = pack("a512", $v_buffer);
$this->_writeBlock($v_binary_data);
@@ -1789,9 +1795,19 @@ class Archive_Tar extends PEAR
@gzclose($v_temp_tar);
}
elseif ($this->_compress_type == 'bz2') {
+ $end_blocks = 0;
+
while (strlen($v_buffer = @bzread($v_temp_tar, 512)) > 0) {
- if ($v_buffer == ARCHIVE_TAR_END_BLOCK) {
+ if ($v_buffer == ARCHIVE_TAR_END_BLOCK || strlen($v_buffer) == 0) {
+ $end_blocks++;
+ // do not copy end blocks, we will re-make them
+ // after appending
continue;
+ } elseif ($end_blocks > 0) {
+ for ($i = 0; $i < $end_blocks; $i++) {
+ $this->_writeBlock(ARCHIVE_TAR_END_BLOCK);
+ }
+ $end_blocks = 0;
}
$v_binary_data = pack("a512", $v_buffer);
$this->_writeBlock($v_binary_data);
diff --git a/3rdparty/class.phpmailer.php b/3rdparty/class.phpmailer.php
index 4589cd791e9..af089d59789 100644
--- a/3rdparty/class.phpmailer.php
+++ b/3rdparty/class.phpmailer.php
@@ -2,7 +2,7 @@
/*~ class.phpmailer.php
.---------------------------------------------------------------------------.
| Software: PHPMailer - PHP email class |
-| Version: 5.2 |
+| Version: 5.2.1 |
| Site: https://code.google.com/a/apache-extras.org/p/phpmailer/ |
| ------------------------------------------------------------------------- |
| Admin: Jim Jagielski (project admininistrator) |
@@ -10,7 +10,7 @@
| : Marcus Bointon (coolbru) coolbru@users.sourceforge.net |
| : Jim Jagielski (jimjag) jimjag@gmail.com |
| Founder: Brent R. Matzelle (original founder) |
-| Copyright (c) 2010-2011, Jim Jagielski. All Rights Reserved. |
+| Copyright (c) 2010-2012, Jim Jagielski. All Rights Reserved. |
| Copyright (c) 2004-2009, Andy Prevost. All Rights Reserved. |
| Copyright (c) 2001-2003, Brent R. Matzelle |
| ------------------------------------------------------------------------- |
@@ -29,7 +29,7 @@
* @author Andy Prevost
* @author Marcus Bointon
* @author Jim Jagielski
- * @copyright 2010 - 2011 Jim Jagielski
+ * @copyright 2010 - 2012 Jim Jagielski
* @copyright 2004 - 2009 Andy Prevost
* @version $Id: class.phpmailer.php 450 2010-06-23 16:46:33Z coolbru $
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
@@ -130,6 +130,13 @@ class PHPMailer {
protected $MIMEHeader = '';
/**
+ * Stores the complete sent MIME message (Body and Headers)
+ * @var string
+ * @access protected
+ */
+ protected $SentMIMEMessage = '';
+
+ /**
* Sets word wrapping on the body of the message to a given number of
* characters.
* @var int
@@ -317,7 +324,7 @@ class PHPMailer {
* Sets the PHPMailer Version number
* @var string
*/
- public $Version = '5.2';
+ public $Version = '5.2.1';
/**
* What to use in the X-Mailer header
@@ -460,7 +467,7 @@ class PHPMailer {
* @return boolean
*/
public function AddReplyTo($address, $name = '') {
- return $this->AddAnAddress('ReplyTo', $address, $name);
+ return $this->AddAnAddress('Reply-To', $address, $name);
}
/**
@@ -473,12 +480,14 @@ class PHPMailer {
* @access protected
*/
protected function AddAnAddress($kind, $address, $name = '') {
- if (!preg_match('/^(to|cc|bcc|ReplyTo)$/', $kind)) {
+ if (!preg_match('/^(to|cc|bcc|Reply-To)$/', $kind)) {
$this->SetError($this->Lang('Invalid recipient array').': '.$kind);
if ($this->exceptions) {
throw new phpmailerException('Invalid recipient array: ' . $kind);
}
- echo $this->Lang('Invalid recipient array').': '.$kind;
+ if ($this->SMTPDebug) {
+ echo $this->Lang('Invalid recipient array').': '.$kind;
+ }
return false;
}
$address = trim($address);
@@ -488,10 +497,12 @@ class PHPMailer {
if ($this->exceptions) {
throw new phpmailerException($this->Lang('invalid_address').': '.$address);
}
- echo $this->Lang('invalid_address').': '.$address;
+ if ($this->SMTPDebug) {
+ echo $this->Lang('invalid_address').': '.$address;
+ }
return false;
}
- if ($kind != 'ReplyTo') {
+ if ($kind != 'Reply-To') {
if (!isset($this->all_recipients[strtolower($address)])) {
array_push($this->$kind, array($address, $name));
$this->all_recipients[strtolower($address)] = true;
@@ -520,14 +531,16 @@ class PHPMailer {
if ($this->exceptions) {
throw new phpmailerException($this->Lang('invalid_address').': '.$address);
}
- echo $this->Lang('invalid_address').': '.$address;
+ if ($this->SMTPDebug) {
+ echo $this->Lang('invalid_address').': '.$address;
+ }
return false;
}
$this->From = $address;
$this->FromName = $name;
if ($auto) {
if (empty($this->ReplyTo)) {
- $this->AddAnAddress('ReplyTo', $address, $name);
+ $this->AddAnAddress('Reply-To', $address, $name);
}
if (empty($this->Sender)) {
$this->Sender = $address;
@@ -574,6 +587,7 @@ class PHPMailer {
if(!$this->PreSend()) return false;
return $this->PostSend();
} catch (phpmailerException $e) {
+ $this->SentMIMEMessage = '';
$this->SetError($e->getMessage());
if ($this->exceptions) {
throw $e;
@@ -584,6 +598,7 @@ class PHPMailer {
protected function PreSend() {
try {
+ $mailHeader = "";
if ((count($this->to) + count($this->cc) + count($this->bcc)) < 1) {
throw new phpmailerException($this->Lang('provide_address'), self::STOP_CRITICAL);
}
@@ -603,6 +618,19 @@ class PHPMailer {
$this->MIMEHeader = $this->CreateHeader();
$this->MIMEBody = $this->CreateBody();
+ // To capture the complete message when using mail(), create
+ // an extra header list which CreateHeader() doesn't fold in
+ if ($this->Mailer == 'mail') {
+ if (count($this->to) > 0) {
+ $mailHeader .= $this->AddrAppend("To", $this->to);
+ } else {
+ $mailHeader .= $this->HeaderLine("To", "undisclosed-recipients:;");
+ }
+ $mailHeader .= $this->HeaderLine('Subject', $this->EncodeHeader($this->SecureHeader(trim($this->Subject))));
+ // if(count($this->cc) > 0) {
+ // $mailHeader .= $this->AddrAppend("Cc", $this->cc);
+ // }
+ }
// digitally sign with DKIM if enabled
if ($this->DKIM_domain && $this->DKIM_private) {
@@ -610,7 +638,9 @@ class PHPMailer {
$this->MIMEHeader = str_replace("\r\n", "\n", $header_dkim) . $this->MIMEHeader;
}
+ $this->SentMIMEMessage = sprintf("%s%s\r\n\r\n%s",$this->MIMEHeader,$mailHeader,$this->MIMEBody);
return true;
+
} catch (phpmailerException $e) {
$this->SetError($e->getMessage());
if ($this->exceptions) {
@@ -628,6 +658,8 @@ class PHPMailer {
return $this->SendmailSend($this->MIMEHeader, $this->MIMEBody);
case 'smtp':
return $this->SmtpSend($this->MIMEHeader, $this->MIMEBody);
+ case 'mail':
+ return $this->MailSend($this->MIMEHeader, $this->MIMEBody);
default:
return $this->MailSend($this->MIMEHeader, $this->MIMEBody);
}
@@ -637,7 +669,9 @@ class PHPMailer {
if ($this->exceptions) {
throw $e;
}
- echo $e->getMessage()."\n";
+ if ($this->SMTPDebug) {
+ echo $e->getMessage()."\n";
+ }
return false;
}
}
@@ -703,7 +737,7 @@ class PHPMailer {
$to = implode(', ', $toArr);
if (empty($this->Sender)) {
- $params = "-oi -f %s";
+ $params = "-oi ";
} else {
$params = sprintf("-oi -f %s", $this->Sender);
}
@@ -732,7 +766,7 @@ class PHPMailer {
$this->doCallback($isSent, $val, $this->cc, $this->bcc, $this->Subject, $body);
}
} else {
- $rt = @mail($to, $this->EncodeHeader($this->SecureHeader($this->Subject)), $body, $header);
+ $rt = @mail($to, $this->EncodeHeader($this->SecureHeader($this->Subject)), $body, $header, $params);
// implement call back function if it exists
$isSent = ($rt == 1) ? 1 : 0;
$this->doCallback($isSent, $to, $this->cc, $this->bcc, $this->Subject, $body);
@@ -880,7 +914,9 @@ class PHPMailer {
}
} catch (phpmailerException $e) {
$this->smtp->Reset();
- throw $e;
+ if ($this->exceptions) {
+ throw $e;
+ }
}
return true;
}
@@ -1159,7 +1195,7 @@ class PHPMailer {
$result .= $this->HeaderLine('To', 'undisclosed-recipients:;');
}
}
- }
+ }
$from = array();
$from[0][0] = trim($this->From);
@@ -1177,7 +1213,7 @@ class PHPMailer {
}
if(count($this->ReplyTo) > 0) {
- $result .= $this->AddrAppend('Reply-to', $this->ReplyTo);
+ $result .= $this->AddrAppend('Reply-To', $this->ReplyTo);
}
// mail() sets the subject itself
@@ -1251,6 +1287,16 @@ class PHPMailer {
}
/**
+ * Returns the MIME message (headers and body). Only really valid post PreSend().
+ * @access public
+ * @return string
+ */
+ public function GetSentMIMEMessage() {
+ return $this->SentMIMEMessage;
+ }
+
+
+ /**
* Assembles the message body. Returns an empty string on failure.
* @access public
* @return string The assembled message body
@@ -1363,8 +1409,8 @@ class PHPMailer {
$signed = tempnam("", "signed");
if (@openssl_pkcs7_sign($file, $signed, "file://".$this->sign_cert_file, array("file://".$this->sign_key_file, $this->sign_key_pass), NULL)) {
@unlink($file);
- @unlink($signed);
$body = file_get_contents($signed);
+ @unlink($signed);
} else {
@unlink($file);
@unlink($signed);
@@ -1487,7 +1533,9 @@ class PHPMailer {
if ($this->exceptions) {
throw $e;
}
- echo $e->getMessage()."\n";
+ if ($this->SMTPDebug) {
+ echo $e->getMessage()."\n";
+ }
if ( $e->getCode() == self::STOP_CRITICAL ) {
return false;
}
@@ -1590,15 +1638,23 @@ class PHPMailer {
return false;
}
}
- if (version_compare(PHP_VERSION, '5.3.0', '<')) {
- $magic_quotes = get_magic_quotes_runtime();
- set_magic_quotes_runtime(0);
- }
+ $magic_quotes = get_magic_quotes_runtime();
+ if ($magic_quotes) {
+ if (version_compare(PHP_VERSION, '5.3.0', '<')) {
+ set_magic_quotes_runtime(0);
+ } else {
+ ini_set('magic_quotes_runtime', 0);
+ }
+ }
$file_buffer = file_get_contents($path);
$file_buffer = $this->EncodeString($file_buffer, $encoding);
- if (version_compare(PHP_VERSION, '5.3.0', '<')) {
- set_magic_quotes_runtime($magic_quotes);
- }
+ if ($magic_quotes) {
+ if (version_compare(PHP_VERSION, '5.3.0', '<')) {
+ set_magic_quotes_runtime($magic_quotes);
+ } else {
+ ini_set('magic_quotes_runtime', $magic_quotes);
+ }
+ }
return $file_buffer;
} catch (Exception $e) {
$this->SetError($e->getMessage());
@@ -2154,7 +2210,7 @@ class PHPMailer {
* @return $message
*/
public function MsgHTML($message, $basedir = '') {
- preg_match_all("/(src|background)=\"(.*)\"/Ui", $message, $images);
+ preg_match_all("/(src|background)=[\"'](.*)[\"']/Ui", $message, $images);
if(isset($images[2])) {
foreach($images[2] as $i => $url) {
// do not change urls for absolute images (thanks to corvuscorax)
@@ -2168,20 +2224,23 @@ class PHPMailer {
if ( strlen($basedir) > 1 && substr($basedir, -1) != '/') { $basedir .= '/'; }
if ( strlen($directory) > 1 && substr($directory, -1) != '/') { $directory .= '/'; }
if ( $this->AddEmbeddedImage($basedir.$directory.$filename, md5($filename), $filename, 'base64', $mimeType) ) {
- $message = preg_replace("/".$images[1][$i]."=\"".preg_quote($url, '/')."\"/Ui", $images[1][$i]."=\"".$cid."\"", $message);
+ $message = preg_replace("/".$images[1][$i]."=[\"']".preg_quote($url, '/')."[\"']/Ui", $images[1][$i]."=\"".$cid."\"", $message);
}
}
}
}
$this->IsHTML(true);
$this->Body = $message;
- $textMsg = trim(strip_tags(preg_replace('/<(head|title|style|script)[^>]*>.*?<\/\\1>/s', '', $message)));
- if (!empty($textMsg) && empty($this->AltBody)) {
- $this->AltBody = html_entity_decode($textMsg);
- }
+ if (empty($this->AltBody)) {
+ $textMsg = trim(strip_tags(preg_replace('/<(head|title|style|script)[^>]*>.*?<\/\\1>/s', '', $message)));
+ if (!empty($textMsg)) {
+ $this->AltBody = html_entity_decode($textMsg, ENT_QUOTES, $this->CharSet);
+ }
+ }
if (empty($this->AltBody)) {
$this->AltBody = 'To view this email message, open it in a program that understands HTML!' . "\n\n";
}
+ return $message;
}
/**
diff --git a/3rdparty/class.smtp.php b/3rdparty/class.smtp.php
index 07c275936cf..6977bffad14 100644
--- a/3rdparty/class.smtp.php
+++ b/3rdparty/class.smtp.php
@@ -2,7 +2,7 @@
/*~ class.smtp.php
.---------------------------------------------------------------------------.
| Software: PHPMailer - PHP email class |
-| Version: 5.2 |
+| Version: 5.2.1 |
| Site: https://code.google.com/a/apache-extras.org/p/phpmailer/ |
| ------------------------------------------------------------------------- |
| Admin: Jim Jagielski (project admininistrator) |
@@ -10,7 +10,7 @@
| : Marcus Bointon (coolbru) coolbru@users.sourceforge.net |
| : Jim Jagielski (jimjag) jimjag@gmail.com |
| Founder: Brent R. Matzelle (original founder) |
-| Copyright (c) 2010-2011, Jim Jagielski. All Rights Reserved. |
+| Copyright (c) 2010-2012, Jim Jagielski. All Rights Reserved. |
| Copyright (c) 2004-2009, Andy Prevost. All Rights Reserved. |
| Copyright (c) 2001-2003, Brent R. Matzelle |
| ------------------------------------------------------------------------- |
@@ -30,7 +30,7 @@
* @author Marcus Bointon
* @copyright 2004 - 2008 Andy Prevost
* @author Jim Jagielski
- * @copyright 2010 - 2011 Jim Jagielski
+ * @copyright 2010 - 2012 Jim Jagielski
* @license http://www.gnu.org/copyleft/lesser.html Distributed under the Lesser General Public License (LGPL)
* @version $Id: class.smtp.php 450 2010-06-23 16:46:33Z coolbru $
*/
@@ -72,7 +72,7 @@ class SMTP {
* Sets the SMTP PHPMailer Version number
* @var string
*/
- public $Version = '5.2';
+ public $Version = '5.2.1';
/////////////////////////////////////////////////
// PROPERTIES, PRIVATE AND PROTECTED
@@ -797,7 +797,8 @@ class SMTP {
*/
private function get_lines() {
$data = "";
- while($str = @fgets($this->smtp_conn,515)) {
+ while(!feof($this->smtp_conn)) {
+ $str = @fgets($this->smtp_conn,515);
if($this->do_debug >= 4) {
echo "SMTP -> get_lines(): \$data was \"$data\"" . $this->CRLF . '<br />';
echo "SMTP -> get_lines(): \$str is \"$str\"" . $this->CRLF . '<br />';
diff --git a/3rdparty/css/chosen-sprite.png b/3rdparty/css/chosen-sprite.png
index f20db4439ea..113dc9885a6 100644..100755
--- a/3rdparty/css/chosen-sprite.png
+++ b/3rdparty/css/chosen-sprite.png
Binary files differ
diff --git a/3rdparty/css/chosen.css b/3rdparty/css/chosen.css
index 96bae0fe95a..89b5970e57c 100644..100755
--- a/3rdparty/css/chosen.css
+++ b/3rdparty/css/chosen.css
@@ -1,16 +1,10 @@
/* @group Base */
-select.chzn-select {
- visibility: hidden;
- height: 28px !important;
- min-height: 28px !important;
-}
.chzn-container {
font-size: 13px;
position: relative;
display: inline-block;
zoom: 1;
*display: inline;
- vertical-align: bottom;
}
.chzn-container .chzn-drop {
background: #fff;
@@ -29,31 +23,37 @@ select.chzn-select {
/* @group Single Chosen */
.chzn-container-single .chzn-single {
- background-color: #fff;
- background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eeeeee), color-stop(0.5, white));
- background-image: -webkit-linear-gradient(center bottom, #eeeeee 0%, white 50%);
- background-image: -moz-linear-gradient(center bottom, #eeeeee 0%, white 50%);
- background-image: -o-linear-gradient(top, #eeeeee 0%,#ffffff 50%);
- background-image: -ms-linear-gradient(top, #eeeeee 0%,#ffffff 50%);
- filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#eeeeee', endColorstr='#ffffff',GradientType=0 );
- background-image: linear-gradient(top, #eeeeee 0%,#ffffff 50%);
- -webkit-border-radius: 4px;
- -moz-border-radius : 4px;
- border-radius : 4px;
+ background-color: #ffffff;
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0 );
+ background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(20%, #ffffff), color-stop(50%, #f6f6f6), color-stop(52%, #eeeeee), color-stop(100%, #f4f4f4));
+ background-image: -webkit-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
+ background-image: -moz-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
+ background-image: -o-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
+ background-image: -ms-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
+ background-image: linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
+ -webkit-border-radius: 5px;
+ -moz-border-radius : 5px;
+ border-radius : 5px;
-moz-background-clip : padding;
-webkit-background-clip: padding-box;
background-clip : padding-box;
- border: 1px solid #aaa;
+ border: 1px solid #aaaaaa;
+ -webkit-box-shadow: 0 0 3px #ffffff inset, 0 1px 1px rgba(0,0,0,0.1);
+ -moz-box-shadow : 0 0 3px #ffffff inset, 0 1px 1px rgba(0,0,0,0.1);
+ box-shadow : 0 0 3px #ffffff inset, 0 1px 1px rgba(0,0,0,0.1);
display: block;
overflow: hidden;
white-space: nowrap;
position: relative;
- height: 26px;
- line-height: 26px;
+ height: 23px;
+ line-height: 24px;
padding: 0 0 0 8px;
- color: #444;
+ color: #444444;
text-decoration: none;
}
+.chzn-container-single .chzn-default {
+ color: #999;
+}
.chzn-container-single .chzn-single span {
margin-right: 26px;
display: block;
@@ -61,25 +61,22 @@ select.chzn-select {
white-space: nowrap;
-o-text-overflow: ellipsis;
-ms-text-overflow: ellipsis;
- -moz-binding: url('/xml/ellipsis.xml#ellipsis');
text-overflow: ellipsis;
}
+.chzn-container-single .chzn-single abbr {
+ display: block;
+ position: absolute;
+ right: 26px;
+ top: 6px;
+ width: 12px;
+ height: 13px;
+ font-size: 1px;
+ background: url(chosen-sprite.png) right top no-repeat;
+}
+.chzn-container-single .chzn-single abbr:hover {
+ background-position: right -11px;
+}
.chzn-container-single .chzn-single div {
- -webkit-border-radius: 0 4px 4px 0;
- -moz-border-radius : 0 4px 4px 0;
- border-radius : 0 4px 4px 0;
- -moz-background-clip : padding;
- -webkit-background-clip: padding-box;
- background-clip : padding-box;
- background: #ccc;
- background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #ccc), color-stop(0.6, #eee));
- background-image: -webkit-linear-gradient(center bottom, #ccc 0%, #eee 60%);
- background-image: -moz-linear-gradient(center bottom, #ccc 0%, #eee 60%);
- background-image: -o-linear-gradient(bottom, #ccc 0%, #eee 60%);
- background-image: -ms-linear-gradient(top, #cccccc 0%,#eeeeee 60%);
- filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#cccccc', endColorstr='#eeeeee',GradientType=0 );
- background-image: linear-gradient(top, #cccccc 0%,#eeeeee 60%);
- border-left: 1px solid #aaa;
position: absolute;
right: 0;
top: 0;
@@ -88,25 +85,26 @@ select.chzn-select {
width: 18px;
}
.chzn-container-single .chzn-single div b {
- background: url('chosen-sprite.png') no-repeat 0 1px;
+ background: url('chosen-sprite.png') no-repeat 0 0;
display: block;
width: 100%;
height: 100%;
}
.chzn-container-single .chzn-search {
padding: 3px 4px;
+ position: relative;
margin: 0;
white-space: nowrap;
+ z-index: 1010;
}
.chzn-container-single .chzn-search input {
- background: #fff url('chosen-sprite.png') no-repeat 100% -20px;
- background: url('chosen-sprite.png') no-repeat 100% -20px, -webkit-gradient(linear, left bottom, left top, color-stop(0.85, white), color-stop(0.99, #eeeeee));
- background: url('chosen-sprite.png') no-repeat 100% -20px, -webkit-linear-gradient(center bottom, white 85%, #eeeeee 99%);
- background: url('chosen-sprite.png') no-repeat 100% -20px, -moz-linear-gradient(center bottom, white 85%, #eeeeee 99%);
- background: url('chosen-sprite.png') no-repeat 100% -20px, -o-linear-gradient(bottom, white 85%, #eeeeee 99%);
- background: url('chosen-sprite.png') no-repeat 100% -20px, -ms-linear-gradient(top, #ffffff 85%,#eeeeee 99%);
- background: url('chosen-sprite.png') no-repeat 100% -20px, -ms-linear-gradient(top, #ffffff 85%,#eeeeee 99%);
- background: url('chosen-sprite.png') no-repeat 100% -20px, linear-gradient(top, #ffffff 85%,#eeeeee 99%);
+ background: #fff url('chosen-sprite.png') no-repeat 100% -22px;
+ background: url('chosen-sprite.png') no-repeat 100% -22px, -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(1%, #eeeeee), color-stop(15%, #ffffff));
+ background: url('chosen-sprite.png') no-repeat 100% -22px, -webkit-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
+ background: url('chosen-sprite.png') no-repeat 100% -22px, -moz-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
+ background: url('chosen-sprite.png') no-repeat 100% -22px, -o-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
+ background: url('chosen-sprite.png') no-repeat 100% -22px, -ms-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
+ background: url('chosen-sprite.png') no-repeat 100% -22px, linear-gradient(top, #eeeeee 1%, #ffffff 15%);
margin: 1px 0;
padding: 4px 20px 4px 5px;
outline: 0;
@@ -124,16 +122,20 @@ select.chzn-select {
}
/* @end */
+.chzn-container-single-nosearch .chzn-search input {
+ position: absolute;
+ left: -9000px;
+}
+
/* @group Multi Chosen */
.chzn-container-multi .chzn-choices {
background-color: #fff;
- background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0.85, white), color-stop(0.99, #eeeeee));
- background-image: -webkit-linear-gradient(center bottom, white 85%, #eeeeee 99%);
- background-image: -moz-linear-gradient(center bottom, white 85%, #eeeeee 99%);
- background-image: -o-linear-gradient(bottom, white 85%, #eeeeee 99%);
- background-image: -ms-linear-gradient(top, #ffffff 85%,#eeeeee 99%);
- filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#eeeeee',GradientType=0 );
- background-image: linear-gradient(top, #ffffff 85%,#eeeeee 99%);
+ background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(1%, #eeeeee), color-stop(15%, #ffffff));
+ background-image: -webkit-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
+ background-image: -moz-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
+ background-image: -o-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
+ background-image: -ms-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
+ background-image: linear-gradient(top, #eeeeee 1%, #ffffff 15%);
border: 1px solid #aaa;
margin: 0;
padding: 0;
@@ -156,6 +158,9 @@ select.chzn-select {
color: #666;
background: transparent !important;
border: 0 !important;
+ font-family: sans-serif;
+ font-size: 100%;
+ height: 15px;
padding: 5px;
margin: 1px 0;
outline: 0;
@@ -175,21 +180,22 @@ select.chzn-select {
-webkit-background-clip: padding-box;
background-clip : padding-box;
background-color: #e4e4e4;
- background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #e4e4e4), color-stop(0.7, #eeeeee));
- background-image: -webkit-linear-gradient(center bottom, #e4e4e4 0%, #eeeeee 70%);
- background-image: -moz-linear-gradient(center bottom, #e4e4e4 0%, #eeeeee 70%);
- background-image: -o-linear-gradient(bottom, #e4e4e4 0%, #eeeeee 70%);
- background-image: -ms-linear-gradient(top, #e4e4e4 0%,#eeeeee 70%);
- filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#e4e4e4', endColorstr='#eeeeee',GradientType=0 );
- background-image: linear-gradient(top, #e4e4e4 0%,#eeeeee 70%);
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f4f4f4', endColorstr='#eeeeee', GradientType=0 );
+ background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eeeeee));
+ background-image: -webkit-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
+ background-image: -moz-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
+ background-image: -o-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
+ background-image: -ms-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
+ background-image: linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
+ -webkit-box-shadow: 0 0 2px #ffffff inset, 0 1px 0 rgba(0,0,0,0.05);
+ -moz-box-shadow : 0 0 2px #ffffff inset, 0 1px 0 rgba(0,0,0,0.05);
+ box-shadow : 0 0 2px #ffffff inset, 0 1px 0 rgba(0,0,0,0.05);
color: #333;
- border: 1px solid #b4b4b4;
+ border: 1px solid #aaaaaa;
line-height: 13px;
- padding: 3px 19px 3px 6px;
+ padding: 3px 20px 3px 5px;
margin: 3px 0 3px 5px;
position: relative;
-}
-.chzn-container-multi .chzn-choices .search-choice span {
cursor: default;
}
.chzn-container-multi .chzn-choices .search-choice-focus {
@@ -198,25 +204,25 @@ select.chzn-select {
.chzn-container-multi .chzn-choices .search-choice .search-choice-close {
display: block;
position: absolute;
- right: 5px;
- top: 6px;
- width: 8px;
- height: 9px;
+ right: 3px;
+ top: 4px;
+ width: 12px;
+ height: 13px;
font-size: 1px;
background: url(chosen-sprite.png) right top no-repeat;
}
.chzn-container-multi .chzn-choices .search-choice .search-choice-close:hover {
- background-position: right -9px;
+ background-position: right -11px;
}
.chzn-container-multi .chzn-choices .search-choice-focus .search-choice-close {
- background-position: right -9px;
+ background-position: right -11px;
}
/* @end */
/* @group Results */
.chzn-container .chzn-results {
margin: 0 4px 4px 0;
- max-height: 190px;
+ max-height: 240px;
padding: 0 0 0 4px;
position: relative;
overflow-x: hidden;
@@ -227,16 +233,25 @@ select.chzn-select {
padding: 0;
}
.chzn-container .chzn-results li {
- line-height: 80%;
- padding: 7px 7px 8px;
+ display: none;
+ line-height: 15px;
+ padding: 5px 6px;
margin: 0;
list-style: none;
}
.chzn-container .chzn-results .active-result {
cursor: pointer;
+ display: list-item;
}
.chzn-container .chzn-results .highlighted {
- background: #3875d7;
+ background-color: #3875d7;
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#3875d7', endColorstr='#2a62bc', GradientType=0 );
+ background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(20%, #3875d7), color-stop(90%, #2a62bc));
+ background-image: -webkit-linear-gradient(top, #3875d7 20%, #2a62bc 90%);
+ background-image: -moz-linear-gradient(top, #3875d7 20%, #2a62bc 90%);
+ background-image: -o-linear-gradient(top, #3875d7 20%, #2a62bc 90%);
+ background-image: -ms-linear-gradient(top, #3875d7 20%, #2a62bc 90%);
+ background-image: linear-gradient(top, #3875d7 20%, #2a62bc 90%);
color: #fff;
}
.chzn-container .chzn-results li em {
@@ -248,6 +263,7 @@ select.chzn-select {
}
.chzn-container .chzn-results .no-results {
background: #f4f4f4;
+ display: list-item;
}
.chzn-container .chzn-results .group-result {
cursor: default;
@@ -255,11 +271,34 @@ select.chzn-select {
font-weight: bold;
}
.chzn-container .chzn-results .group-option {
- padding-left: 20px;
+ padding-left: 15px;
}
.chzn-container-multi .chzn-drop .result-selected {
display: none;
}
+.chzn-container .chzn-results-scroll {
+ background: white;
+ margin: 0 4px;
+ position: absolute;
+ text-align: center;
+ width: 321px; /* This should by dynamic with js */
+ z-index: 1;
+}
+.chzn-container .chzn-results-scroll span {
+ display: inline-block;
+ height: 17px;
+ text-indent: -5000px;
+ width: 9px;
+}
+.chzn-container .chzn-results-scroll-down {
+ bottom: 0;
+}
+.chzn-container .chzn-results-scroll-down span {
+ background: url('chosen-sprite.png') no-repeat -4px -3px;
+}
+.chzn-container .chzn-results-scroll-up span {
+ background: url('chosen-sprite.png') no-repeat -22px -3px;
+}
/* @end */
/* @group Active */
@@ -277,13 +316,13 @@ select.chzn-select {
-o-box-shadow : 0 1px 0 #fff inset;
box-shadow : 0 1px 0 #fff inset;
background-color: #eee;
- background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, white), color-stop(0.5, #eeeeee));
- background-image: -webkit-linear-gradient(center bottom, white 0%, #eeeeee 50%);
- background-image: -moz-linear-gradient(center bottom, white 0%, #eeeeee 50%);
- background-image: -o-linear-gradient(bottom, white 0%, #eeeeee 50%);
- background-image: -ms-linear-gradient(top, #ffffff 0%,#eeeeee 50%);
- filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#eeeeee',GradientType=0 );
- background-image: linear-gradient(top, #ffffff 0%,#eeeeee 50%);
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#eeeeee', endColorstr='#ffffff', GradientType=0 );
+ background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(20%, #eeeeee), color-stop(80%, #ffffff));
+ background-image: -webkit-linear-gradient(top, #eeeeee 20%, #ffffff 80%);
+ background-image: -moz-linear-gradient(top, #eeeeee 20%, #ffffff 80%);
+ background-image: -o-linear-gradient(top, #eeeeee 20%, #ffffff 80%);
+ background-image: -ms-linear-gradient(top, #eeeeee 20%, #ffffff 80%);
+ background-image: linear-gradient(top, #eeeeee 20%, #ffffff 80%);
-webkit-border-bottom-left-radius : 0;
-webkit-border-bottom-right-radius: 0;
-moz-border-radius-bottomleft : 0;
@@ -310,32 +349,44 @@ select.chzn-select {
}
/* @end */
+/* @group Disabled Support */
+.chzn-disabled {
+ cursor: default;
+ opacity:0.5 !important;
+}
+.chzn-disabled .chzn-single {
+ cursor: default;
+}
+.chzn-disabled .chzn-choices .search-choice .search-choice-close {
+ cursor: default;
+}
+
/* @group Right to Left */
-.chzn-rtl { direction:rtl;text-align: right; }
-.chzn-rtl .chzn-single { padding-left: 0; padding-right: 8px; }
-.chzn-rtl .chzn-single span { margin-left: 26px; margin-right: 0; }
-.chzn-rtl .chzn-single div {
- left: 0; right: auto;
- border-left: none; border-right: 1px solid #aaaaaa;
- -webkit-border-radius: 4px 0 0 4px;
- -moz-border-radius : 4px 0 0 4px;
- border-radius : 4px 0 0 4px;
+.chzn-rtl { text-align: right; }
+.chzn-rtl .chzn-single { padding: 0 8px 0 0; overflow: visible; }
+.chzn-rtl .chzn-single span { margin-left: 26px; margin-right: 0; direction: rtl; }
+
+.chzn-rtl .chzn-single div { left: 3px; right: auto; }
+.chzn-rtl .chzn-single abbr {
+ left: 26px;
+ right: auto;
}
+.chzn-rtl .chzn-choices .search-field input { direction: rtl; }
.chzn-rtl .chzn-choices li { float: right; }
-.chzn-rtl .chzn-choices .search-choice { padding: 3px 6px 3px 19px; margin: 3px 5px 3px 0; }
-.chzn-rtl .chzn-choices .search-choice .search-choice-close { left: 5px; right: auto; background-position: right top;}
-.chzn-rtl.chzn-container-single .chzn-results { margin-left: 4px; margin-right: 0; padding-left: 0; padding-right: 4px; }
-.chzn-rtl .chzn-results .group-option { padding-left: 0; padding-right: 20px; }
+.chzn-rtl .chzn-choices .search-choice { padding: 3px 5px 3px 19px; margin: 3px 5px 3px 0; }
+.chzn-rtl .chzn-choices .search-choice .search-choice-close { left: 4px; right: auto; background-position: right top;}
+.chzn-rtl.chzn-container-single .chzn-results { margin: 0 0 4px 4px; padding: 0 4px 0 0; }
+.chzn-rtl .chzn-results .group-option { padding-left: 0; padding-right: 15px; }
.chzn-rtl.chzn-container-active .chzn-single-with-drop div { border-right: none; }
.chzn-rtl .chzn-search input {
- background: url('chosen-sprite.png') no-repeat -38px -20px, #ffffff;
- background: url('chosen-sprite.png') no-repeat -38px -20px, -webkit-gradient(linear, left bottom, left top, color-stop(0.85, white), color-stop(0.99, #eeeeee));
- background: url('chosen-sprite.png') no-repeat -38px -20px, -webkit-linear-gradient(center bottom, white 85%, #eeeeee 99%);
- background: url('chosen-sprite.png') no-repeat -38px -20px, -moz-linear-gradient(center bottom, white 85%, #eeeeee 99%);
- background: url('chosen-sprite.png') no-repeat -38px -20px, -o-linear-gradient(bottom, white 85%, #eeeeee 99%);
- background: url('chosen-sprite.png') no-repeat -38px -20px, -ms-linear-gradient(top, #ffffff 85%,#eeeeee 99%);
- background: url('chosen-sprite.png') no-repeat -38px -20px, -ms-linear-gradient(top, #ffffff 85%,#eeeeee 99%);
- background: url('chosen-sprite.png') no-repeat -38px -20px, linear-gradient(top, #ffffff 85%,#eeeeee 99%);
+ background: #fff url('chosen-sprite.png') no-repeat -38px -22px;
+ background: url('chosen-sprite.png') no-repeat -38px -22px, -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(1%, #eeeeee), color-stop(15%, #ffffff));
+ background: url('chosen-sprite.png') no-repeat -38px -22px, -webkit-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
+ background: url('chosen-sprite.png') no-repeat -38px -22px, -moz-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
+ background: url('chosen-sprite.png') no-repeat -38px -22px, -o-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
+ background: url('chosen-sprite.png') no-repeat -38px -22px, -ms-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
+ background: url('chosen-sprite.png') no-repeat -38px -22px, linear-gradient(top, #eeeeee 1%, #ffffff 15%);
padding: 4px 5px 4px 20px;
+ direction: rtl;
}
-/* @end */ \ No newline at end of file
+/* @end */
diff --git a/3rdparty/css/chosen/chosen.css b/3rdparty/css/chosen/chosen.css
index b9c6d88028f..89b5970e57c 100644..100755
--- a/3rdparty/css/chosen/chosen.css
+++ b/3rdparty/css/chosen/chosen.css
@@ -23,31 +23,37 @@
/* @group Single Chosen */
.chzn-container-single .chzn-single {
- background-color: #fff;
- background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eeeeee), color-stop(0.5, white));
- background-image: -webkit-linear-gradient(center bottom, #eeeeee 0%, white 50%);
- background-image: -moz-linear-gradient(center bottom, #eeeeee 0%, white 50%);
- background-image: -o-linear-gradient(top, #eeeeee 0%,#ffffff 50%);
- background-image: -ms-linear-gradient(top, #eeeeee 0%,#ffffff 50%);
- filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#eeeeee', endColorstr='#ffffff',GradientType=0 );
- background-image: linear-gradient(top, #eeeeee 0%,#ffffff 50%);
- -webkit-border-radius: 4px;
- -moz-border-radius : 4px;
- border-radius : 4px;
+ background-color: #ffffff;
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0 );
+ background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(20%, #ffffff), color-stop(50%, #f6f6f6), color-stop(52%, #eeeeee), color-stop(100%, #f4f4f4));
+ background-image: -webkit-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
+ background-image: -moz-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
+ background-image: -o-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
+ background-image: -ms-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
+ background-image: linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
+ -webkit-border-radius: 5px;
+ -moz-border-radius : 5px;
+ border-radius : 5px;
-moz-background-clip : padding;
-webkit-background-clip: padding-box;
background-clip : padding-box;
- border: 1px solid #aaa;
+ border: 1px solid #aaaaaa;
+ -webkit-box-shadow: 0 0 3px #ffffff inset, 0 1px 1px rgba(0,0,0,0.1);
+ -moz-box-shadow : 0 0 3px #ffffff inset, 0 1px 1px rgba(0,0,0,0.1);
+ box-shadow : 0 0 3px #ffffff inset, 0 1px 1px rgba(0,0,0,0.1);
display: block;
overflow: hidden;
white-space: nowrap;
position: relative;
- height: 26px;
- line-height: 26px;
+ height: 23px;
+ line-height: 24px;
padding: 0 0 0 8px;
- color: #444;
+ color: #444444;
text-decoration: none;
}
+.chzn-container-single .chzn-default {
+ color: #999;
+}
.chzn-container-single .chzn-single span {
margin-right: 26px;
display: block;
@@ -61,7 +67,7 @@
display: block;
position: absolute;
right: 26px;
- top: 8px;
+ top: 6px;
width: 12px;
height: 13px;
font-size: 1px;
@@ -71,21 +77,6 @@
background-position: right -11px;
}
.chzn-container-single .chzn-single div {
- -webkit-border-radius: 0 4px 4px 0;
- -moz-border-radius : 0 4px 4px 0;
- border-radius : 0 4px 4px 0;
- -moz-background-clip : padding;
- -webkit-background-clip: padding-box;
- background-clip : padding-box;
- background: #ccc;
- background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #ccc), color-stop(0.6, #eee));
- background-image: -webkit-linear-gradient(center bottom, #ccc 0%, #eee 60%);
- background-image: -moz-linear-gradient(center bottom, #ccc 0%, #eee 60%);
- background-image: -o-linear-gradient(bottom, #ccc 0%, #eee 60%);
- background-image: -ms-linear-gradient(top, #cccccc 0%,#eeeeee 60%);
- filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#cccccc', endColorstr='#eeeeee',GradientType=0 );
- background-image: linear-gradient(top, #cccccc 0%,#eeeeee 60%);
- border-left: 1px solid #aaa;
position: absolute;
right: 0;
top: 0;
@@ -94,7 +85,7 @@
width: 18px;
}
.chzn-container-single .chzn-single div b {
- background: url('chosen-sprite.png') no-repeat 0 1px;
+ background: url('chosen-sprite.png') no-repeat 0 0;
display: block;
width: 100%;
height: 100%;
@@ -104,16 +95,16 @@
position: relative;
margin: 0;
white-space: nowrap;
+ z-index: 1010;
}
.chzn-container-single .chzn-search input {
background: #fff url('chosen-sprite.png') no-repeat 100% -22px;
- background: url('chosen-sprite.png') no-repeat 100% -22px, -webkit-gradient(linear, left bottom, left top, color-stop(0.85, white), color-stop(0.99, #eeeeee));
- background: url('chosen-sprite.png') no-repeat 100% -22px, -webkit-linear-gradient(center bottom, white 85%, #eeeeee 99%);
- background: url('chosen-sprite.png') no-repeat 100% -22px, -moz-linear-gradient(center bottom, white 85%, #eeeeee 99%);
- background: url('chosen-sprite.png') no-repeat 100% -22px, -o-linear-gradient(bottom, white 85%, #eeeeee 99%);
- background: url('chosen-sprite.png') no-repeat 100% -22px, -ms-linear-gradient(top, #ffffff 85%,#eeeeee 99%);
- background: url('chosen-sprite.png') no-repeat 100% -22px, -ms-linear-gradient(top, #ffffff 85%,#eeeeee 99%);
- background: url('chosen-sprite.png') no-repeat 100% -22px, linear-gradient(top, #ffffff 85%,#eeeeee 99%);
+ background: url('chosen-sprite.png') no-repeat 100% -22px, -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(1%, #eeeeee), color-stop(15%, #ffffff));
+ background: url('chosen-sprite.png') no-repeat 100% -22px, -webkit-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
+ background: url('chosen-sprite.png') no-repeat 100% -22px, -moz-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
+ background: url('chosen-sprite.png') no-repeat 100% -22px, -o-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
+ background: url('chosen-sprite.png') no-repeat 100% -22px, -ms-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
+ background: url('chosen-sprite.png') no-repeat 100% -22px, linear-gradient(top, #eeeeee 1%, #ffffff 15%);
margin: 1px 0;
padding: 4px 20px 4px 5px;
outline: 0;
@@ -139,13 +130,12 @@
/* @group Multi Chosen */
.chzn-container-multi .chzn-choices {
background-color: #fff;
- background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0.85, white), color-stop(0.99, #eeeeee));
- background-image: -webkit-linear-gradient(center bottom, white 85%, #eeeeee 99%);
- background-image: -moz-linear-gradient(center bottom, white 85%, #eeeeee 99%);
- background-image: -o-linear-gradient(bottom, white 85%, #eeeeee 99%);
- background-image: -ms-linear-gradient(top, #ffffff 85%,#eeeeee 99%);
- filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#eeeeee',GradientType=0 );
- background-image: linear-gradient(top, #ffffff 85%,#eeeeee 99%);
+ background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(1%, #eeeeee), color-stop(15%, #ffffff));
+ background-image: -webkit-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
+ background-image: -moz-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
+ background-image: -o-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
+ background-image: -ms-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
+ background-image: linear-gradient(top, #eeeeee 1%, #ffffff 15%);
border: 1px solid #aaa;
margin: 0;
padding: 0;
@@ -168,6 +158,9 @@
color: #666;
background: transparent !important;
border: 0 !important;
+ font-family: sans-serif;
+ font-size: 100%;
+ height: 15px;
padding: 5px;
margin: 1px 0;
outline: 0;
@@ -187,21 +180,22 @@
-webkit-background-clip: padding-box;
background-clip : padding-box;
background-color: #e4e4e4;
- background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #e4e4e4), color-stop(0.7, #eeeeee));
- background-image: -webkit-linear-gradient(center bottom, #e4e4e4 0%, #eeeeee 70%);
- background-image: -moz-linear-gradient(center bottom, #e4e4e4 0%, #eeeeee 70%);
- background-image: -o-linear-gradient(bottom, #e4e4e4 0%, #eeeeee 70%);
- background-image: -ms-linear-gradient(top, #e4e4e4 0%,#eeeeee 70%);
- filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#e4e4e4', endColorstr='#eeeeee',GradientType=0 );
- background-image: linear-gradient(top, #e4e4e4 0%,#eeeeee 70%);
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f4f4f4', endColorstr='#eeeeee', GradientType=0 );
+ background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eeeeee));
+ background-image: -webkit-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
+ background-image: -moz-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
+ background-image: -o-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
+ background-image: -ms-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
+ background-image: linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
+ -webkit-box-shadow: 0 0 2px #ffffff inset, 0 1px 0 rgba(0,0,0,0.05);
+ -moz-box-shadow : 0 0 2px #ffffff inset, 0 1px 0 rgba(0,0,0,0.05);
+ box-shadow : 0 0 2px #ffffff inset, 0 1px 0 rgba(0,0,0,0.05);
color: #333;
- border: 1px solid #b4b4b4;
+ border: 1px solid #aaaaaa;
line-height: 13px;
- padding: 3px 19px 3px 6px;
+ padding: 3px 20px 3px 5px;
margin: 3px 0 3px 5px;
position: relative;
-}
-.chzn-container-multi .chzn-choices .search-choice span {
cursor: default;
}
.chzn-container-multi .chzn-choices .search-choice-focus {
@@ -228,7 +222,7 @@
/* @group Results */
.chzn-container .chzn-results {
margin: 0 4px 4px 0;
- max-height: 190px;
+ max-height: 240px;
padding: 0 0 0 4px;
position: relative;
overflow-x: hidden;
@@ -240,8 +234,8 @@
}
.chzn-container .chzn-results li {
display: none;
- line-height: 80%;
- padding: 7px 7px 8px;
+ line-height: 15px;
+ padding: 5px 6px;
margin: 0;
list-style: none;
}
@@ -250,7 +244,14 @@
display: list-item;
}
.chzn-container .chzn-results .highlighted {
- background: #3875d7;
+ background-color: #3875d7;
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#3875d7', endColorstr='#2a62bc', GradientType=0 );
+ background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(20%, #3875d7), color-stop(90%, #2a62bc));
+ background-image: -webkit-linear-gradient(top, #3875d7 20%, #2a62bc 90%);
+ background-image: -moz-linear-gradient(top, #3875d7 20%, #2a62bc 90%);
+ background-image: -o-linear-gradient(top, #3875d7 20%, #2a62bc 90%);
+ background-image: -ms-linear-gradient(top, #3875d7 20%, #2a62bc 90%);
+ background-image: linear-gradient(top, #3875d7 20%, #2a62bc 90%);
color: #fff;
}
.chzn-container .chzn-results li em {
@@ -270,11 +271,34 @@
font-weight: bold;
}
.chzn-container .chzn-results .group-option {
- padding-left: 20px;
+ padding-left: 15px;
}
.chzn-container-multi .chzn-drop .result-selected {
display: none;
}
+.chzn-container .chzn-results-scroll {
+ background: white;
+ margin: 0 4px;
+ position: absolute;
+ text-align: center;
+ width: 321px; /* This should by dynamic with js */
+ z-index: 1;
+}
+.chzn-container .chzn-results-scroll span {
+ display: inline-block;
+ height: 17px;
+ text-indent: -5000px;
+ width: 9px;
+}
+.chzn-container .chzn-results-scroll-down {
+ bottom: 0;
+}
+.chzn-container .chzn-results-scroll-down span {
+ background: url('chosen-sprite.png') no-repeat -4px -3px;
+}
+.chzn-container .chzn-results-scroll-up span {
+ background: url('chosen-sprite.png') no-repeat -22px -3px;
+}
/* @end */
/* @group Active */
@@ -292,13 +316,13 @@
-o-box-shadow : 0 1px 0 #fff inset;
box-shadow : 0 1px 0 #fff inset;
background-color: #eee;
- background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, white), color-stop(0.5, #eeeeee));
- background-image: -webkit-linear-gradient(center bottom, white 0%, #eeeeee 50%);
- background-image: -moz-linear-gradient(center bottom, white 0%, #eeeeee 50%);
- background-image: -o-linear-gradient(bottom, white 0%, #eeeeee 50%);
- background-image: -ms-linear-gradient(top, #ffffff 0%,#eeeeee 50%);
- filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#eeeeee',GradientType=0 );
- background-image: linear-gradient(top, #ffffff 0%,#eeeeee 50%);
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#eeeeee', endColorstr='#ffffff', GradientType=0 );
+ background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(20%, #eeeeee), color-stop(80%, #ffffff));
+ background-image: -webkit-linear-gradient(top, #eeeeee 20%, #ffffff 80%);
+ background-image: -moz-linear-gradient(top, #eeeeee 20%, #ffffff 80%);
+ background-image: -o-linear-gradient(top, #eeeeee 20%, #ffffff 80%);
+ background-image: -ms-linear-gradient(top, #eeeeee 20%, #ffffff 80%);
+ background-image: linear-gradient(top, #eeeeee 20%, #ffffff 80%);
-webkit-border-bottom-left-radius : 0;
-webkit-border-bottom-right-radius: 0;
-moz-border-radius-bottomleft : 0;
@@ -338,31 +362,31 @@
}
/* @group Right to Left */
-.chzn-rtl { direction:rtl;text-align: right; }
-.chzn-rtl .chzn-single { padding-left: 0; padding-right: 8px; }
-.chzn-rtl .chzn-single span { margin-left: 26px; margin-right: 0; }
-.chzn-rtl .chzn-single div {
- left: 0; right: auto;
- border-left: none; border-right: 1px solid #aaaaaa;
- -webkit-border-radius: 4px 0 0 4px;
- -moz-border-radius : 4px 0 0 4px;
- border-radius : 4px 0 0 4px;
+.chzn-rtl { text-align: right; }
+.chzn-rtl .chzn-single { padding: 0 8px 0 0; overflow: visible; }
+.chzn-rtl .chzn-single span { margin-left: 26px; margin-right: 0; direction: rtl; }
+
+.chzn-rtl .chzn-single div { left: 3px; right: auto; }
+.chzn-rtl .chzn-single abbr {
+ left: 26px;
+ right: auto;
}
+.chzn-rtl .chzn-choices .search-field input { direction: rtl; }
.chzn-rtl .chzn-choices li { float: right; }
-.chzn-rtl .chzn-choices .search-choice { padding: 3px 6px 3px 19px; margin: 3px 5px 3px 0; }
-.chzn-rtl .chzn-choices .search-choice .search-choice-close { left: 5px; right: auto; background-position: right top;}
-.chzn-rtl.chzn-container-single .chzn-results { margin-left: 4px; margin-right: 0; padding-left: 0; padding-right: 4px; }
-.chzn-rtl .chzn-results .group-option { padding-left: 0; padding-right: 20px; }
+.chzn-rtl .chzn-choices .search-choice { padding: 3px 5px 3px 19px; margin: 3px 5px 3px 0; }
+.chzn-rtl .chzn-choices .search-choice .search-choice-close { left: 4px; right: auto; background-position: right top;}
+.chzn-rtl.chzn-container-single .chzn-results { margin: 0 0 4px 4px; padding: 0 4px 0 0; }
+.chzn-rtl .chzn-results .group-option { padding-left: 0; padding-right: 15px; }
.chzn-rtl.chzn-container-active .chzn-single-with-drop div { border-right: none; }
.chzn-rtl .chzn-search input {
- background: url('chosen-sprite.png') no-repeat -38px -22px, #ffffff;
- background: url('chosen-sprite.png') no-repeat -38px -22px, -webkit-gradient(linear, left bottom, left top, color-stop(0.85, white), color-stop(0.99, #eeeeee));
- background: url('chosen-sprite.png') no-repeat -38px -22px, -webkit-linear-gradient(center bottom, white 85%, #eeeeee 99%);
- background: url('chosen-sprite.png') no-repeat -38px -22px, -moz-linear-gradient(center bottom, white 85%, #eeeeee 99%);
- background: url('chosen-sprite.png') no-repeat -38px -22px, -o-linear-gradient(bottom, white 85%, #eeeeee 99%);
- background: url('chosen-sprite.png') no-repeat -38px -22px, -ms-linear-gradient(top, #ffffff 85%,#eeeeee 99%);
- background: url('chosen-sprite.png') no-repeat -38px -22px, -ms-linear-gradient(top, #ffffff 85%,#eeeeee 99%);
- background: url('chosen-sprite.png') no-repeat -38px -22px, linear-gradient(top, #ffffff 85%,#eeeeee 99%);
+ background: #fff url('chosen-sprite.png') no-repeat -38px -22px;
+ background: url('chosen-sprite.png') no-repeat -38px -22px, -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(1%, #eeeeee), color-stop(15%, #ffffff));
+ background: url('chosen-sprite.png') no-repeat -38px -22px, -webkit-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
+ background: url('chosen-sprite.png') no-repeat -38px -22px, -moz-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
+ background: url('chosen-sprite.png') no-repeat -38px -22px, -o-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
+ background: url('chosen-sprite.png') no-repeat -38px -22px, -ms-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
+ background: url('chosen-sprite.png') no-repeat -38px -22px, linear-gradient(top, #eeeeee 1%, #ffffff 15%);
padding: 4px 5px 4px 20px;
+ direction: rtl;
}
-/* @end */ \ No newline at end of file
+/* @end */
diff --git a/3rdparty/fullcalendar/css/fullcalendar.css b/3rdparty/fullcalendar/css/fullcalendar.css
index 04f118493a4..1f02ba428ea 100644
--- a/3rdparty/fullcalendar/css/fullcalendar.css
+++ b/3rdparty/fullcalendar/css/fullcalendar.css
@@ -1,11 +1,11 @@
/*
- * FullCalendar v1.5.3 Stylesheet
+ * FullCalendar v1.5.4 Stylesheet
*
* Copyright (c) 2011 Adam Shaw
* Dual licensed under the MIT and GPL licenses, located in
* MIT-LICENSE.txt and GPL-LICENSE.txt respectively.
*
- * Date: Mon Feb 6 22:40:40 2012 -0800
+ * Date: Tue Sep 4 23:38:33 2012 -0700
*
*/
diff --git a/3rdparty/fullcalendar/css/fullcalendar.print.css b/3rdparty/fullcalendar/css/fullcalendar.print.css
index e11c1816373..227b80e0bca 100644
--- a/3rdparty/fullcalendar/css/fullcalendar.print.css
+++ b/3rdparty/fullcalendar/css/fullcalendar.print.css
@@ -1,5 +1,5 @@
/*
- * FullCalendar v1.5.3 Print Stylesheet
+ * FullCalendar v1.5.4 Print Stylesheet
*
* Include this stylesheet on your page to get a more printer-friendly calendar.
* When including this stylesheet, use the media='print' attribute of the <link> tag.
@@ -9,7 +9,7 @@
* Dual licensed under the MIT and GPL licenses, located in
* MIT-LICENSE.txt and GPL-LICENSE.txt respectively.
*
- * Date: Mon Feb 6 22:40:40 2012 -0800
+ * Date: Tue Sep 4 23:38:33 2012 -0700
*
*/
diff --git a/3rdparty/fullcalendar/js/fullcalendar.js b/3rdparty/fullcalendar/js/fullcalendar.js
index 314f8c8a1a5..d59de77c844 100644
--- a/3rdparty/fullcalendar/js/fullcalendar.js
+++ b/3rdparty/fullcalendar/js/fullcalendar.js
@@ -1,6 +1,6 @@
/**
* @preserve
- * FullCalendar v1.5.3
+ * FullCalendar v1.5.4
* http://arshaw.com/fullcalendar/
*
* Use fullcalendar.css for basic styling.
@@ -11,7 +11,7 @@
* Dual licensed under the MIT and GPL licenses, located in
* MIT-LICENSE.txt and GPL-LICENSE.txt respectively.
*
- * Date: Mon Feb 6 22:40:40 2012 -0800
+ * Date: Tue Sep 4 23:38:33 2012 -0700
*
*/
@@ -111,7 +111,7 @@ var rtlDefaults = {
-var fc = $.fullCalendar = { version: "1.5.3" };
+var fc = $.fullCalendar = { version: "1.5.4" };
var fcViews = fc.views = {};
@@ -1658,7 +1658,7 @@ function sliceSegs(events, visEventEnds, start, end) {
msLength: segEnd - segStart
});
}
- }
+ }
return segs.sort(segCmp);
}
@@ -1742,29 +1742,26 @@ function setOuterHeight(element, height, includeMargins) {
}
-// TODO: curCSS has been deprecated (jQuery 1.4.3 - 10/16/2010)
-
-
function hsides(element, includeMargins) {
return hpadding(element) + hborders(element) + (includeMargins ? hmargins(element) : 0);
}
function hpadding(element) {
- return (parseFloat($.curCSS(element[0], 'paddingLeft', true)) || 0) +
- (parseFloat($.curCSS(element[0], 'paddingRight', true)) || 0);
+ return (parseFloat($.css(element[0], 'paddingLeft', true)) || 0) +
+ (parseFloat($.css(element[0], 'paddingRight', true)) || 0);
}
function hmargins(element) {
- return (parseFloat($.curCSS(element[0], 'marginLeft', true)) || 0) +
- (parseFloat($.curCSS(element[0], 'marginRight', true)) || 0);
+ return (parseFloat($.css(element[0], 'marginLeft', true)) || 0) +
+ (parseFloat($.css(element[0], 'marginRight', true)) || 0);
}
function hborders(element) {
- return (parseFloat($.curCSS(element[0], 'borderLeftWidth', true)) || 0) +
- (parseFloat($.curCSS(element[0], 'borderRightWidth', true)) || 0);
+ return (parseFloat($.css(element[0], 'borderLeftWidth', true)) || 0) +
+ (parseFloat($.css(element[0], 'borderRightWidth', true)) || 0);
}
@@ -1774,20 +1771,20 @@ function vsides(element, includeMargins) {
function vpadding(element) {
- return (parseFloat($.curCSS(element[0], 'paddingTop', true)) || 0) +
- (parseFloat($.curCSS(element[0], 'paddingBottom', true)) || 0);
+ return (parseFloat($.css(element[0], 'paddingTop', true)) || 0) +
+ (parseFloat($.css(element[0], 'paddingBottom', true)) || 0);
}
function vmargins(element) {
- return (parseFloat($.curCSS(element[0], 'marginTop', true)) || 0) +
- (parseFloat($.curCSS(element[0], 'marginBottom', true)) || 0);
+ return (parseFloat($.css(element[0], 'marginTop', true)) || 0) +
+ (parseFloat($.css(element[0], 'marginBottom', true)) || 0);
}
function vborders(element) {
- return (parseFloat($.curCSS(element[0], 'borderTopWidth', true)) || 0) +
- (parseFloat($.curCSS(element[0], 'borderBottomWidth', true)) || 0);
+ return (parseFloat($.css(element[0], 'borderTopWidth', true)) || 0) +
+ (parseFloat($.css(element[0], 'borderBottomWidth', true)) || 0);
}
@@ -1956,7 +1953,6 @@ function firstDefined() {
}
-
fcViews.month = MonthView;
function MonthView(element, calendar) {
@@ -4662,7 +4658,7 @@ function DayEventRenderer() {
"</span>";
}
html +=
- "<span class='fc-event-title'>" + event.title + "</span>" +
+ "<span class='fc-event-title'>" + htmlEscape(event.title) + "</span>" +
"</div>";
if (seg.isEnd && isEventResizable(event)) {
html +=
diff --git a/3rdparty/fullcalendar/js/fullcalendar.min.js b/3rdparty/fullcalendar/js/fullcalendar.min.js
index df37bdfd803..da6c7c09fda 100644
--- a/3rdparty/fullcalendar/js/fullcalendar.min.js
+++ b/3rdparty/fullcalendar/js/fullcalendar.min.js
@@ -1,6 +1,6 @@
/*
- FullCalendar v1.5.3
+ FullCalendar v1.5.4
http://arshaw.com/fullcalendar/
Use fullcalendar.css for basic styling.
@@ -11,7 +11,7 @@
Dual licensed under the MIT and GPL licenses, located in
MIT-LICENSE.txt and GPL-LICENSE.txt respectively.
- Date: Mon Feb 6 22:40:40 2012 -0800
+ Date: Tue Sep 4 23:38:33 2012 -0700
*/
(function(m,ma){function wb(a){m.extend(true,Ya,a)}function Yb(a,b,e){function d(k){if(E){u();q();na();S(k)}else f()}function f(){B=b.theme?"ui":"fc";a.addClass("fc");b.isRTL&&a.addClass("fc-rtl");b.theme&&a.addClass("ui-widget");E=m("<div class='fc-content' style='position:relative'/>").prependTo(a);C=new Zb(X,b);(P=C.render())&&a.prepend(P);y(b.defaultView);m(window).resize(oa);t()||g()}function g(){setTimeout(function(){!n.start&&t()&&S()},0)}function l(){m(window).unbind("resize",oa);C.destroy();
@@ -39,10 +39,10 @@ a[12])*1E3);lb(e,b)}else{e.setUTCFullYear(a[1],a[3]?a[3]-1:0,a[5]||1);e.setUTCHo
10):0)}}function Oa(a,b,e){return ib(a,null,b,e)}function ib(a,b,e,d){d=d||Ya;var f=a,g=b,l,j=e.length,t,y,S,Q="";for(l=0;l<j;l++){t=e.charAt(l);if(t=="'")for(y=l+1;y<j;y++){if(e.charAt(y)=="'"){if(f){Q+=y==l+1?"'":e.substring(l+1,y);l=y}break}}else if(t=="(")for(y=l+1;y<j;y++){if(e.charAt(y)==")"){l=Oa(f,e.substring(l+1,y),d);if(parseInt(l.replace(/\D/,""),10))Q+=l;l=y;break}}else if(t=="[")for(y=l+1;y<j;y++){if(e.charAt(y)=="]"){t=e.substring(l+1,y);l=Oa(f,t,d);if(l!=Oa(g,t,d))Q+=l;l=y;break}}else if(t==
"{"){f=b;g=a}else if(t=="}"){f=a;g=b}else{for(y=j;y>l;y--)if(S=dc[e.substring(l,y)]){if(f)Q+=S(f,d);l=y-1;break}if(y==l)if(f)Q+=t}}return Q}function Ua(a){return a.end?ec(a.end,a.allDay):ba(N(a.start),1)}function ec(a,b){a=N(a);return b||a.getHours()||a.getMinutes()?ba(a,1):Ka(a)}function fc(a,b){return(b.msLength-a.msLength)*100+(a.event.start-b.event.start)}function Cb(a,b){return a.end>b.start&&a.start<b.end}function nb(a,b,e,d){var f=[],g,l=a.length,j,t,y,S,Q;for(g=0;g<l;g++){j=a[g];t=j.start;
y=b[g];if(y>e&&t<d){if(t<e){t=N(e);S=false}else{t=t;S=true}if(y>d){y=N(d);Q=false}else{y=y;Q=true}f.push({event:j,start:t,end:y,isStart:S,isEnd:Q,msLength:y-t})}}return f.sort(fc)}function ob(a){var b=[],e,d=a.length,f,g,l,j;for(e=0;e<d;e++){f=a[e];for(g=0;;){l=false;if(b[g])for(j=0;j<b[g].length;j++)if(Cb(b[g][j],f)){l=true;break}if(l)g++;else break}if(b[g])b[g].push(f);else b[g]=[f]}return b}function Db(a,b,e){a.unbind("mouseover").mouseover(function(d){for(var f=d.target,g;f!=this;){g=f;f=f.parentNode}if((f=
-g._fci)!==ma){g._fci=ma;g=b[f];e(g.event,g.element,g);m(d.target).trigger(d)}d.stopPropagation()})}function Va(a,b,e){for(var d=0,f;d<a.length;d++){f=m(a[d]);f.width(Math.max(0,b-pb(f,e)))}}function Eb(a,b,e){for(var d=0,f;d<a.length;d++){f=m(a[d]);f.height(Math.max(0,b-Sa(f,e)))}}function pb(a,b){return gc(a)+hc(a)+(b?ic(a):0)}function gc(a){return(parseFloat(m.curCSS(a[0],"paddingLeft",true))||0)+(parseFloat(m.curCSS(a[0],"paddingRight",true))||0)}function ic(a){return(parseFloat(m.curCSS(a[0],
-"marginLeft",true))||0)+(parseFloat(m.curCSS(a[0],"marginRight",true))||0)}function hc(a){return(parseFloat(m.curCSS(a[0],"borderLeftWidth",true))||0)+(parseFloat(m.curCSS(a[0],"borderRightWidth",true))||0)}function Sa(a,b){return jc(a)+kc(a)+(b?Fb(a):0)}function jc(a){return(parseFloat(m.curCSS(a[0],"paddingTop",true))||0)+(parseFloat(m.curCSS(a[0],"paddingBottom",true))||0)}function Fb(a){return(parseFloat(m.curCSS(a[0],"marginTop",true))||0)+(parseFloat(m.curCSS(a[0],"marginBottom",true))||0)}
-function kc(a){return(parseFloat(m.curCSS(a[0],"borderTopWidth",true))||0)+(parseFloat(m.curCSS(a[0],"borderBottomWidth",true))||0)}function Za(a,b){b=typeof b=="number"?b+"px":b;a.each(function(e,d){d.style.cssText+=";min-height:"+b+";_height:"+b})}function xb(){}function Gb(a,b){return a-b}function Hb(a){return Math.max.apply(Math,a)}function Pa(a){return(a<10?"0":"")+a}function jb(a,b){if(a[b]!==ma)return a[b];b=b.split(/(?=[A-Z])/);for(var e=b.length-1,d;e>=0;e--){d=a[b[e].toLowerCase()];if(d!==
-ma)return d}return a[""]}function Qa(a){return a.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/'/g,"&#039;").replace(/"/g,"&quot;").replace(/\n/g,"<br />")}function Ib(a){return a.id+"/"+a.className+"/"+a.style.cssText.replace(/(^|;)\s*(top|left|width|height)\s*:[^;]*/ig,"")}function qb(a){a.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return false})}function ab(a){a.children().removeClass("fc-first fc-last").filter(":first-child").addClass("fc-first").end().filter(":last-child").addClass("fc-last")}
+g._fci)!==ma){g._fci=ma;g=b[f];e(g.event,g.element,g);m(d.target).trigger(d)}d.stopPropagation()})}function Va(a,b,e){for(var d=0,f;d<a.length;d++){f=m(a[d]);f.width(Math.max(0,b-pb(f,e)))}}function Eb(a,b,e){for(var d=0,f;d<a.length;d++){f=m(a[d]);f.height(Math.max(0,b-Sa(f,e)))}}function pb(a,b){return gc(a)+hc(a)+(b?ic(a):0)}function gc(a){return(parseFloat(m.css(a[0],"paddingLeft",true))||0)+(parseFloat(m.css(a[0],"paddingRight",true))||0)}function ic(a){return(parseFloat(m.css(a[0],"marginLeft",
+true))||0)+(parseFloat(m.css(a[0],"marginRight",true))||0)}function hc(a){return(parseFloat(m.css(a[0],"borderLeftWidth",true))||0)+(parseFloat(m.css(a[0],"borderRightWidth",true))||0)}function Sa(a,b){return jc(a)+kc(a)+(b?Fb(a):0)}function jc(a){return(parseFloat(m.css(a[0],"paddingTop",true))||0)+(parseFloat(m.css(a[0],"paddingBottom",true))||0)}function Fb(a){return(parseFloat(m.css(a[0],"marginTop",true))||0)+(parseFloat(m.css(a[0],"marginBottom",true))||0)}function kc(a){return(parseFloat(m.css(a[0],
+"borderTopWidth",true))||0)+(parseFloat(m.css(a[0],"borderBottomWidth",true))||0)}function Za(a,b){b=typeof b=="number"?b+"px":b;a.each(function(e,d){d.style.cssText+=";min-height:"+b+";_height:"+b})}function xb(){}function Gb(a,b){return a-b}function Hb(a){return Math.max.apply(Math,a)}function Pa(a){return(a<10?"0":"")+a}function jb(a,b){if(a[b]!==ma)return a[b];b=b.split(/(?=[A-Z])/);for(var e=b.length-1,d;e>=0;e--){d=a[b[e].toLowerCase()];if(d!==ma)return d}return a[""]}function Qa(a){return a.replace(/&/g,
+"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/'/g,"&#039;").replace(/"/g,"&quot;").replace(/\n/g,"<br />")}function Ib(a){return a.id+"/"+a.className+"/"+a.style.cssText.replace(/(^|;)\s*(top|left|width|height)\s*:[^;]*/ig,"")}function qb(a){a.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return false})}function ab(a){a.children().removeClass("fc-first fc-last").filter(":first-child").addClass("fc-first").end().filter(":last-child").addClass("fc-last")}
function rb(a,b){a.each(function(e,d){d.className=d.className.replace(/^fc-\w*/,"fc-"+lc[b.getDay()])})}function Jb(a,b){var e=a.source||{},d=a.color,f=e.color,g=b("eventColor"),l=a.backgroundColor||d||e.backgroundColor||f||b("eventBackgroundColor")||g;d=a.borderColor||d||e.borderColor||f||b("eventBorderColor")||g;a=a.textColor||e.textColor||b("eventTextColor");b=[];l&&b.push("background-color:"+l);d&&b.push("border-color:"+d);a&&b.push("color:"+a);return b.join(";")}function $a(a,b,e){if(m.isFunction(a))a=
[a];if(a){var d,f;for(d=0;d<a.length;d++)f=a[d].apply(b,e)||f;return f}}function Ta(){for(var a=0;a<arguments.length;a++)if(arguments[a]!==ma)return arguments[a]}function mc(a,b){function e(j,t){if(t){hb(j,t);j.setDate(1)}j=N(j,true);j.setDate(1);t=hb(N(j),1);var y=N(j),S=N(t),Q=f("firstDay"),q=f("weekends")?0:1;if(q){Fa(y);Fa(S,-1,true)}ba(y,-((y.getDay()-Math.max(Q,q)+7)%7));ba(S,(7-S.getDay()+Math.max(Q,q))%7);Q=Math.round((S-y)/(Ab*7));if(f("weekMode")=="fixed"){ba(S,(6-Q)*7);Q=6}d.title=l(j,
f("titleFormat"));d.start=j;d.end=t;d.visStart=y;d.visEnd=S;g(6,Q,q?5:7,true)}var d=this;d.render=e;sb.call(d,a,b,"month");var f=d.opt,g=d.renderBasic,l=b.formatDate}function nc(a,b){function e(j,t){t&&ba(j,t*7);j=ba(N(j),-((j.getDay()-f("firstDay")+7)%7));t=ba(N(j),7);var y=N(j),S=N(t),Q=f("weekends");if(!Q){Fa(y);Fa(S,-1,true)}d.title=l(y,ba(N(S),-1),f("titleFormat"));d.start=j;d.end=t;d.visStart=y;d.visEnd=S;g(1,1,Q?7:5,false)}var d=this;d.render=e;sb.call(d,a,b,"basicWeek");var f=d.opt,g=d.renderBasic,
@@ -106,7 +106,7 @@ t,y=-1,S=-1;for(t=0;t<l;t++)if(g>=e[t][0]&&g<e[t][1]){y=t;break}for(t=0;t<j;t++)
g=l=null;a.build();b(t);d=y||"mousemove";m(document).bind(d,b)};e.stop=function(){m(document).unbind(d,b);return l}}function xc(a){if(a.pageX===ma){a.pageX=a.originalEvent.pageX;a.pageY=a.originalEvent.pageY}}function Pb(a){function b(l){return d[l]=d[l]||a(l)}var e=this,d={},f={},g={};e.left=function(l){return f[l]=f[l]===ma?b(l).position().left:f[l]};e.right=function(l){return g[l]=g[l]===ma?e.left(l)+b(l).width():g[l]};e.clear=function(){d={};f={};g={}}}var Ya={defaultView:"month",aspectRatio:1.35,
header:{left:"title",center:"",right:"today prev,next"},weekends:true,allDayDefault:true,ignoreTimezone:true,lazyFetching:true,startParam:"start",endParam:"end",titleFormat:{month:"MMMM yyyy",week:"MMM d[ yyyy]{ '&#8212;'[ MMM] d yyyy}",day:"dddd, MMM d, yyyy"},columnFormat:{month:"ddd",week:"ddd M/d",day:"dddd M/d"},timeFormat:{"":"h(:mm)t"},isRTL:false,firstDay:0,monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan",
"Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],buttonText:{prev:"&nbsp;&#9668;&nbsp;",next:"&nbsp;&#9658;&nbsp;",prevYear:"&nbsp;&lt;&lt;&nbsp;",nextYear:"&nbsp;&gt;&gt;&nbsp;",today:"today",month:"month",week:"week",day:"day"},theme:false,buttonIcons:{prev:"circle-triangle-w",next:"circle-triangle-e"},unselectAuto:true,dropAccept:"*"},yc=
-{header:{left:"next,prev today",center:"",right:"title"},buttonText:{prev:"&nbsp;&#9658;&nbsp;",next:"&nbsp;&#9668;&nbsp;",prevYear:"&nbsp;&gt;&gt;&nbsp;",nextYear:"&nbsp;&lt;&lt;&nbsp;"},buttonIcons:{prev:"circle-triangle-e",next:"circle-triangle-w"}},Aa=m.fullCalendar={version:"1.5.3"},Ja=Aa.views={};m.fn.fullCalendar=function(a){if(typeof a=="string"){var b=Array.prototype.slice.call(arguments,1),e;this.each(function(){var f=m.data(this,"fullCalendar");if(f&&m.isFunction(f[a])){f=f[a].apply(f,
+{header:{left:"next,prev today",center:"",right:"title"},buttonText:{prev:"&nbsp;&#9658;&nbsp;",next:"&nbsp;&#9668;&nbsp;",prevYear:"&nbsp;&gt;&gt;&nbsp;",nextYear:"&nbsp;&lt;&lt;&nbsp;"},buttonIcons:{prev:"circle-triangle-e",next:"circle-triangle-w"}},Aa=m.fullCalendar={version:"1.5.4"},Ja=Aa.views={};m.fn.fullCalendar=function(a){if(typeof a=="string"){var b=Array.prototype.slice.call(arguments,1),e;this.each(function(){var f=m.data(this,"fullCalendar");if(f&&m.isFunction(f[a])){f=f[a].apply(f,
b);if(e===ma)e=f;a=="destroy"&&m.removeData(this,"fullCalendar")}});if(e!==ma)return e;return this}var d=a.eventSources||[];delete a.eventSources;if(a.events){d.push(a.events);delete a.events}a=m.extend(true,{},Ya,a.isRTL||a.isRTL===ma&&Ya.isRTL?yc:{},a);this.each(function(f,g){f=m(g);g=new Yb(f,a,d);f.data("fullCalendar",g);g.render()});return this};Aa.sourceNormalizers=[];Aa.sourceFetchers=[];var ac={dataType:"json",cache:false},bc=1;Aa.addDays=ba;Aa.cloneDate=N;Aa.parseDate=kb;Aa.parseISO8601=
Bb;Aa.parseTime=mb;Aa.formatDate=Oa;Aa.formatDates=ib;var lc=["sun","mon","tue","wed","thu","fri","sat"],Ab=864E5,cc=36E5,wc=6E4,dc={s:function(a){return a.getSeconds()},ss:function(a){return Pa(a.getSeconds())},m:function(a){return a.getMinutes()},mm:function(a){return Pa(a.getMinutes())},h:function(a){return a.getHours()%12||12},hh:function(a){return Pa(a.getHours()%12||12)},H:function(a){return a.getHours()},HH:function(a){return Pa(a.getHours())},d:function(a){return a.getDate()},dd:function(a){return Pa(a.getDate())},
ddd:function(a,b){return b.dayNamesShort[a.getDay()]},dddd:function(a,b){return b.dayNames[a.getDay()]},M:function(a){return a.getMonth()+1},MM:function(a){return Pa(a.getMonth()+1)},MMM:function(a,b){return b.monthNamesShort[a.getMonth()]},MMMM:function(a,b){return b.monthNames[a.getMonth()]},yy:function(a){return(a.getFullYear()+"").substring(2)},yyyy:function(a){return a.getFullYear()},t:function(a){return a.getHours()<12?"a":"p"},tt:function(a){return a.getHours()<12?"am":"pm"},T:function(a){return a.getHours()<
diff --git a/3rdparty/fullcalendar/js/gcal.js b/3rdparty/fullcalendar/js/gcal.js
index e9bbe26d824..ba42ac56047 100644
--- a/3rdparty/fullcalendar/js/gcal.js
+++ b/3rdparty/fullcalendar/js/gcal.js
@@ -1,11 +1,11 @@
/*
- * FullCalendar v1.5.3 Google Calendar Plugin
+ * FullCalendar v1.5.4 Google Calendar Plugin
*
* Copyright (c) 2011 Adam Shaw
* Dual licensed under the MIT and GPL licenses, located in
* MIT-LICENSE.txt and GPL-LICENSE.txt respectively.
*
- * Date: Mon Feb 6 22:40:40 2012 -0800
+ * Date: Tue Sep 4 23:38:33 2012 -0700
*
*/
diff --git a/3rdparty/js/chosen/VERSION b/3rdparty/js/chosen/VERSION
index b0bb878545d..b5d0ec558fd 100644
--- a/3rdparty/js/chosen/VERSION
+++ b/3rdparty/js/chosen/VERSION
@@ -1 +1 @@
-0.9.5
+0.9.8 \ No newline at end of file
diff --git a/3rdparty/js/chosen/chosen.jquery.js b/3rdparty/js/chosen/chosen.jquery.js
index e7e661c0962..d1edb08787c 100644..100755
--- a/3rdparty/js/chosen/chosen.jquery.js
+++ b/3rdparty/js/chosen/chosen.jquery.js
@@ -1,62 +1,299 @@
// Chosen, a Select Box Enhancer for jQuery and Protoype
// by Patrick Filler for Harvest, http://getharvest.com
//
-// Version 0.9.5
+// Version 0.9.8
// Full source at https://github.com/harvesthq/chosen
// Copyright (c) 2011 Harvest http://getharvest.com
// MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md
// This file is generated by `cake build`, do not edit it by hand.
(function() {
- /*
- Chosen source: generate output using 'cake build'
- Copyright (c) 2011 by Harvest
- */ var $, Chosen, get_side_border_padding, root;
- var __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
- root = this;
- $ = jQuery;
- $.fn.extend({
- chosen: function(options) {
- if ($.browser === "msie" && ($.browser.version === "6.0" || $.browser.version === "7.0")) {
- return this;
+ var SelectParser;
+
+ SelectParser = (function() {
+
+ function SelectParser() {
+ this.options_index = 0;
+ this.parsed = [];
+ }
+
+ SelectParser.prototype.add_node = function(child) {
+ if (child.nodeName === "OPTGROUP") {
+ return this.add_group(child);
+ } else {
+ return this.add_option(child);
}
- return $(this).each(function(input_field) {
- if (!($(this)).hasClass("chzn-done")) {
- return new Chosen(this, options);
- }
+ };
+
+ SelectParser.prototype.add_group = function(group) {
+ var group_position, option, _i, _len, _ref, _results;
+ group_position = this.parsed.length;
+ this.parsed.push({
+ array_index: group_position,
+ group: true,
+ label: group.label,
+ children: 0,
+ disabled: group.disabled
});
+ _ref = group.childNodes;
+ _results = [];
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+ option = _ref[_i];
+ _results.push(this.add_option(option, group_position, group.disabled));
+ }
+ return _results;
+ };
+
+ SelectParser.prototype.add_option = function(option, group_position, group_disabled) {
+ if (option.nodeName === "OPTION") {
+ if (option.text !== "") {
+ if (group_position != null) this.parsed[group_position].children += 1;
+ this.parsed.push({
+ array_index: this.parsed.length,
+ options_index: this.options_index,
+ value: option.value,
+ text: option.text,
+ html: option.innerHTML,
+ selected: option.selected,
+ disabled: group_disabled === true ? group_disabled : option.disabled,
+ group_array_index: group_position,
+ classes: option.className,
+ style: option.style.cssText
+ });
+ } else {
+ this.parsed.push({
+ array_index: this.parsed.length,
+ options_index: this.options_index,
+ empty: true
+ });
+ }
+ return this.options_index += 1;
+ }
+ };
+
+ return SelectParser;
+
+ })();
+
+ SelectParser.select_to_array = function(select) {
+ var child, parser, _i, _len, _ref;
+ parser = new SelectParser();
+ _ref = select.childNodes;
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+ child = _ref[_i];
+ parser.add_node(child);
}
- });
- Chosen = (function() {
- function Chosen(form_field, options) {
+ return parser.parsed;
+ };
+
+ this.SelectParser = SelectParser;
+
+}).call(this);
+
+/*
+Chosen source: generate output using 'cake build'
+Copyright (c) 2011 by Harvest
+*/
+
+(function() {
+ var AbstractChosen, root;
+
+ root = this;
+
+ AbstractChosen = (function() {
+
+ function AbstractChosen(form_field, options) {
this.form_field = form_field;
this.options = options != null ? options : {};
this.set_default_values();
- this.form_field_jq = $(this.form_field);
this.is_multiple = this.form_field.multiple;
- this.is_rtl = this.form_field_jq.hasClass("chzn-rtl");
- this.default_text_default = this.form_field.multiple ? "Select Some Options" : "Select an Option";
+ this.default_text_default = this.is_multiple ? "Select Some Options" : "Select an Option";
+ this.setup();
this.set_up_html();
this.register_observers();
- this.form_field_jq.addClass("chzn-done");
+ this.finish_setup();
}
- Chosen.prototype.set_default_values = function() {
- this.click_test_action = __bind(function(evt) {
- return this.test_active_click(evt);
- }, this);
- this.activate_action = __bind(function(evt) {
- return this.activate_field(evt);
- }, this);
+
+ AbstractChosen.prototype.set_default_values = function() {
+ var _this = this;
+ this.click_test_action = function(evt) {
+ return _this.test_active_click(evt);
+ };
+ this.activate_action = function(evt) {
+ return _this.activate_field(evt);
+ };
this.active_field = false;
this.mouse_on_container = false;
this.results_showing = false;
this.result_highlighted = null;
this.result_single_selected = null;
- this.allow_single_deselect = (this.options.allow_single_deselect != null) && this.form_field.options[0].text === "" ? this.options.allow_single_deselect : false;
+ this.allow_single_deselect = (this.options.allow_single_deselect != null) && (this.form_field.options[0] != null) && this.form_field.options[0].text === "" ? this.options.allow_single_deselect : false;
this.disable_search_threshold = this.options.disable_search_threshold || 0;
+ this.search_contains = this.options.search_contains || false;
this.choices = 0;
return this.results_none_found = this.options.no_results_text || "No results match";
};
+
+ AbstractChosen.prototype.mouse_enter = function() {
+ return this.mouse_on_container = true;
+ };
+
+ AbstractChosen.prototype.mouse_leave = function() {
+ return this.mouse_on_container = false;
+ };
+
+ AbstractChosen.prototype.input_focus = function(evt) {
+ var _this = this;
+ if (!this.active_field) {
+ return setTimeout((function() {
+ return _this.container_mousedown();
+ }), 50);
+ }
+ };
+
+ AbstractChosen.prototype.input_blur = function(evt) {
+ var _this = this;
+ if (!this.mouse_on_container) {
+ this.active_field = false;
+ return setTimeout((function() {
+ return _this.blur_test();
+ }), 100);
+ }
+ };
+
+ AbstractChosen.prototype.result_add_option = function(option) {
+ var classes, style;
+ if (!option.disabled) {
+ option.dom_id = this.container_id + "_o_" + option.array_index;
+ classes = option.selected && this.is_multiple ? [] : ["active-result"];
+ if (option.selected) classes.push("result-selected");
+ if (option.group_array_index != null) classes.push("group-option");
+ if (option.classes !== "") classes.push(option.classes);
+ style = option.style.cssText !== "" ? " style=\"" + option.style + "\"" : "";
+ return '<li id="' + option.dom_id + '" class="' + classes.join(' ') + '"' + style + '>' + option.html + '</li>';
+ } else {
+ return "";
+ }
+ };
+
+ AbstractChosen.prototype.results_update_field = function() {
+ this.result_clear_highlight();
+ this.result_single_selected = null;
+ return this.results_build();
+ };
+
+ AbstractChosen.prototype.results_toggle = function() {
+ if (this.results_showing) {
+ return this.results_hide();
+ } else {
+ return this.results_show();
+ }
+ };
+
+ AbstractChosen.prototype.results_search = function(evt) {
+ if (this.results_showing) {
+ return this.winnow_results();
+ } else {
+ return this.results_show();
+ }
+ };
+
+ AbstractChosen.prototype.keyup_checker = function(evt) {
+ var stroke, _ref;
+ stroke = (_ref = evt.which) != null ? _ref : evt.keyCode;
+ this.search_field_scale();
+ switch (stroke) {
+ case 8:
+ if (this.is_multiple && this.backstroke_length < 1 && this.choices > 0) {
+ return this.keydown_backstroke();
+ } else if (!this.pending_backstroke) {
+ this.result_clear_highlight();
+ return this.results_search();
+ }
+ break;
+ case 13:
+ evt.preventDefault();
+ if (this.results_showing) return this.result_select(evt);
+ break;
+ case 27:
+ if (this.results_showing) this.results_hide();
+ return true;
+ case 9:
+ case 38:
+ case 40:
+ case 16:
+ case 91:
+ case 17:
+ break;
+ default:
+ return this.results_search();
+ }
+ };
+
+ AbstractChosen.prototype.generate_field_id = function() {
+ var new_id;
+ new_id = this.generate_random_id();
+ this.form_field.id = new_id;
+ return new_id;
+ };
+
+ AbstractChosen.prototype.generate_random_char = function() {
+ var chars, newchar, rand;
+ chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZ";
+ rand = Math.floor(Math.random() * chars.length);
+ return newchar = chars.substring(rand, rand + 1);
+ };
+
+ return AbstractChosen;
+
+ })();
+
+ root.AbstractChosen = AbstractChosen;
+
+}).call(this);
+
+/*
+Chosen source: generate output using 'cake build'
+Copyright (c) 2011 by Harvest
+*/
+
+(function() {
+ var $, Chosen, get_side_border_padding, root,
+ __hasProp = Object.prototype.hasOwnProperty,
+ __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor; child.__super__ = parent.prototype; return child; };
+
+ root = this;
+
+ $ = jQuery;
+
+ $.fn.extend({
+ chosen: function(options) {
+ if ($.browser.msie && ($.browser.version === "6.0" || $.browser.version === "7.0")) {
+ return this;
+ }
+ return $(this).each(function(input_field) {
+ if (!($(this)).hasClass("chzn-done")) return new Chosen(this, options);
+ });
+ }
+ });
+
+ Chosen = (function(_super) {
+
+ __extends(Chosen, _super);
+
+ function Chosen() {
+ Chosen.__super__.constructor.apply(this, arguments);
+ }
+
+ Chosen.prototype.setup = function() {
+ this.form_field_jq = $(this.form_field);
+ return this.is_rtl = this.form_field_jq.hasClass("chzn-rtl");
+ };
+
+ Chosen.prototype.finish_setup = function() {
+ return this.form_field_jq.addClass("chzn-done");
+ };
+
Chosen.prototype.set_up_html = function() {
var container_div, dd_top, dd_width, sf_width;
this.container_id = this.form_field.id.length ? this.form_field.id.replace(/(:|\.)/g, '_') : this.generate_field_id();
@@ -71,14 +308,11 @@
if (this.is_multiple) {
container_div.html('<ul class="chzn-choices"><li class="search-field"><input type="text" value="' + this.default_text + '" class="default" autocomplete="off" style="width:25px;" /></li></ul><div class="chzn-drop" style="left:-9000px;"><ul class="chzn-results"></ul></div>');
} else {
- container_div.html('<a href="javascript:void(0)" class="chzn-single"><span>' + this.default_text + '</span><div><b></b></div></a><div class="chzn-drop" style="left:-9000px;"><div class="chzn-search"><input type="text" autocomplete="off" /></div><ul class="chzn-results"></ul></div>');
+ container_div.html('<a href="javascript:void(0)" class="chzn-single chzn-default"><span>' + this.default_text + '</span><div><b></b></div></a><div class="chzn-drop" style="left:-9000px;"><div class="chzn-search"><input type="text" autocomplete="off" /></div><ul class="chzn-results"></ul></div>');
}
this.form_field_jq.hide().after(container_div);
this.container = $('#' + this.container_id);
this.container.addClass("chzn-container-" + (this.is_multiple ? "multi" : "single"));
- if (!this.is_multiple && this.form_field.options.length <= this.disable_search_threshold) {
- this.container.addClass("chzn-container-single-nosearch");
- }
this.dropdown = this.container.find('div.chzn-drop').first();
dd_top = this.container.height();
dd_width = this.f_width - get_side_border_padding(this.dropdown);
@@ -102,83 +336,92 @@
});
}
this.results_build();
- return this.set_tab_index();
+ this.set_tab_index();
+ return this.form_field_jq.trigger("liszt:ready", {
+ chosen: this
+ });
};
+
Chosen.prototype.register_observers = function() {
- this.container.mousedown(__bind(function(evt) {
- return this.container_mousedown(evt);
- }, this));
- this.container.mouseup(__bind(function(evt) {
- return this.container_mouseup(evt);
- }, this));
- this.container.mouseenter(__bind(function(evt) {
- return this.mouse_enter(evt);
- }, this));
- this.container.mouseleave(__bind(function(evt) {
- return this.mouse_leave(evt);
- }, this));
- this.search_results.mouseup(__bind(function(evt) {
- return this.search_results_mouseup(evt);
- }, this));
- this.search_results.mouseover(__bind(function(evt) {
- return this.search_results_mouseover(evt);
- }, this));
- this.search_results.mouseout(__bind(function(evt) {
- return this.search_results_mouseout(evt);
- }, this));
- this.form_field_jq.bind("liszt:updated", __bind(function(evt) {
- return this.results_update_field(evt);
- }, this));
- this.search_field.blur(__bind(function(evt) {
- return this.input_blur(evt);
- }, this));
- this.search_field.keyup(__bind(function(evt) {
- return this.keyup_checker(evt);
- }, this));
- this.search_field.keydown(__bind(function(evt) {
- return this.keydown_checker(evt);
- }, this));
+ var _this = this;
+ this.container.mousedown(function(evt) {
+ return _this.container_mousedown(evt);
+ });
+ this.container.mouseup(function(evt) {
+ return _this.container_mouseup(evt);
+ });
+ this.container.mouseenter(function(evt) {
+ return _this.mouse_enter(evt);
+ });
+ this.container.mouseleave(function(evt) {
+ return _this.mouse_leave(evt);
+ });
+ this.search_results.mouseup(function(evt) {
+ return _this.search_results_mouseup(evt);
+ });
+ this.search_results.mouseover(function(evt) {
+ return _this.search_results_mouseover(evt);
+ });
+ this.search_results.mouseout(function(evt) {
+ return _this.search_results_mouseout(evt);
+ });
+ this.form_field_jq.bind("liszt:updated", function(evt) {
+ return _this.results_update_field(evt);
+ });
+ this.search_field.blur(function(evt) {
+ return _this.input_blur(evt);
+ });
+ this.search_field.keyup(function(evt) {
+ return _this.keyup_checker(evt);
+ });
+ this.search_field.keydown(function(evt) {
+ return _this.keydown_checker(evt);
+ });
if (this.is_multiple) {
- this.search_choices.click(__bind(function(evt) {
- return this.choices_click(evt);
- }, this));
- return this.search_field.focus(__bind(function(evt) {
- return this.input_focus(evt);
- }, this));
+ this.search_choices.click(function(evt) {
+ return _this.choices_click(evt);
+ });
+ return this.search_field.focus(function(evt) {
+ return _this.input_focus(evt);
+ });
+ } else {
+ return this.container.click(function(evt) {
+ return evt.preventDefault();
+ });
}
};
+
Chosen.prototype.search_field_disabled = function() {
- this.is_disabled = this.form_field_jq.attr('disabled');
+ this.is_disabled = this.form_field_jq[0].disabled;
if (this.is_disabled) {
this.container.addClass('chzn-disabled');
- this.search_field.attr('disabled', true);
+ this.search_field[0].disabled = true;
if (!this.is_multiple) {
this.selected_item.unbind("focus", this.activate_action);
}
return this.close_field();
} else {
this.container.removeClass('chzn-disabled');
- this.search_field.attr('disabled', false);
+ this.search_field[0].disabled = false;
if (!this.is_multiple) {
return this.selected_item.bind("focus", this.activate_action);
}
}
};
+
Chosen.prototype.container_mousedown = function(evt) {
var target_closelink;
if (!this.is_disabled) {
target_closelink = evt != null ? ($(evt.target)).hasClass("search-choice-close") : false;
- if (evt && evt.type === "mousedown") {
+ if (evt && evt.type === "mousedown" && !this.results_showing) {
evt.stopPropagation();
}
if (!this.pending_destroy_click && !target_closelink) {
if (!this.active_field) {
- if (this.is_multiple) {
- this.search_field.val("");
- }
+ if (this.is_multiple) this.search_field.val("");
$(document).click(this.click_test_action);
this.results_show();
- } else if (!this.is_multiple && evt && ($(evt.target) === this.selected_item || $(evt.target).parents("a.chzn-single").length)) {
+ } else if (!this.is_multiple && evt && (($(evt.target)[0] === this.selected_item[0]) || $(evt.target).parents("a.chzn-single").length)) {
evt.preventDefault();
this.results_toggle();
}
@@ -188,37 +431,17 @@
}
}
};
+
Chosen.prototype.container_mouseup = function(evt) {
- if (evt.target.nodeName === "ABBR") {
- return this.results_reset(evt);
- }
- };
- Chosen.prototype.mouse_enter = function() {
- return this.mouse_on_container = true;
- };
- Chosen.prototype.mouse_leave = function() {
- return this.mouse_on_container = false;
- };
- Chosen.prototype.input_focus = function(evt) {
- if (!this.active_field) {
- return setTimeout((__bind(function() {
- return this.container_mousedown();
- }, this)), 50);
- }
- };
- Chosen.prototype.input_blur = function(evt) {
- if (!this.mouse_on_container) {
- this.active_field = false;
- return setTimeout((__bind(function() {
- return this.blur_test();
- }, this)), 100);
- }
+ if (evt.target.nodeName === "ABBR") return this.results_reset(evt);
};
+
Chosen.prototype.blur_test = function(evt) {
if (!this.active_field && this.container.hasClass("chzn-container-active")) {
return this.close_field();
}
};
+
Chosen.prototype.close_field = function() {
$(document).unbind("click", this.click_test_action);
if (!this.is_multiple) {
@@ -233,6 +456,7 @@
this.show_search_field_default();
return this.search_field_scale();
};
+
Chosen.prototype.activate_field = function() {
if (!this.is_multiple && !this.active_field) {
this.search_field.attr("tabindex", this.selected_item.attr("tabindex"));
@@ -243,6 +467,7 @@
this.search_field.val(this.search_field.val());
return this.search_field.focus();
};
+
Chosen.prototype.test_active_click = function(evt) {
if ($(evt.target).parents('#' + this.container_id).length) {
return this.active_field = true;
@@ -250,9 +475,9 @@
return this.close_field();
}
};
+
Chosen.prototype.results_build = function() {
- var content, data, startTime, _i, _len, _ref;
- startTime = new Date();
+ var content, data, _i, _len, _ref;
this.parsing = true;
this.results_data = root.SelectParser.select_to_array(this.form_field);
if (this.is_multiple && this.choices > 0) {
@@ -260,6 +485,11 @@
this.choices = 0;
} else if (!this.is_multiple) {
this.selected_item.find("span").text(this.default_text);
+ if (this.form_field.options.length <= this.disable_search_threshold) {
+ this.container.addClass("chzn-container-single-nosearch");
+ } else {
+ this.container.removeClass("chzn-container-single-nosearch");
+ }
}
content = '';
_ref = this.results_data;
@@ -272,10 +502,8 @@
if (data.selected && this.is_multiple) {
this.choice_build(data);
} else if (data.selected && !this.is_multiple) {
- this.selected_item.find("span").text(data.text);
- if (this.allow_single_deselect) {
- this.selected_item.find("span").first().after("<abbr class=\"search-choice-close\"></abbr>");
- }
+ this.selected_item.removeClass("chzn-default").find("span").text(data.text);
+ if (this.allow_single_deselect) this.single_deselect_control_build();
}
}
}
@@ -285,6 +513,7 @@
this.search_results.html(content);
return this.parsing = false;
};
+
Chosen.prototype.result_add_group = function(group) {
if (!group.disabled) {
group.dom_id = this.container_id + "_g_" + group.array_index;
@@ -293,31 +522,7 @@
return "";
}
};
- Chosen.prototype.result_add_option = function(option) {
- var classes, style;
- if (!option.disabled) {
- option.dom_id = this.container_id + "_o_" + option.array_index;
- classes = option.selected && this.is_multiple ? [] : ["active-result"];
- if (option.selected) {
- classes.push("result-selected");
- }
- if (option.group_array_index != null) {
- classes.push("group-option");
- }
- if (option.classes !== "") {
- classes.push(option.classes);
- }
- style = option.style.cssText !== "" ? " style=\"" + option.style + "\"" : "";
- return '<li id="' + option.dom_id + '" class="' + classes.join(' ') + '"' + style + '>' + option.html + '</li>';
- } else {
- return "";
- }
- };
- Chosen.prototype.results_update_field = function() {
- this.result_clear_highlight();
- this.result_single_selected = null;
- return this.results_build();
- };
+
Chosen.prototype.result_do_highlight = function(el) {
var high_bottom, high_top, maxHeight, visible_bottom, visible_top;
if (el.length) {
@@ -336,19 +541,12 @@
}
}
};
+
Chosen.prototype.result_clear_highlight = function() {
- if (this.result_highlight) {
- this.result_highlight.removeClass("highlighted");
- }
+ if (this.result_highlight) this.result_highlight.removeClass("highlighted");
return this.result_highlight = null;
};
- Chosen.prototype.results_toggle = function() {
- if (this.results_showing) {
- return this.results_hide();
- } else {
- return this.results_show();
- }
- };
+
Chosen.prototype.results_show = function() {
var dd_top;
if (!this.is_multiple) {
@@ -367,6 +565,7 @@
this.search_field.val(this.search_field.val());
return this.winnow_results();
};
+
Chosen.prototype.results_hide = function() {
if (!this.is_multiple) {
this.selected_item.removeClass("chzn-single-with-drop");
@@ -377,6 +576,7 @@
});
return this.results_showing = false;
};
+
Chosen.prototype.set_tab_index = function(el) {
var ti;
if (this.form_field_jq.attr("tabindex")) {
@@ -390,6 +590,7 @@
}
}
};
+
Chosen.prototype.show_search_field_default = function() {
if (this.is_multiple && this.choices < 1 && !this.active_field) {
this.search_field.val(this.default_text);
@@ -399,6 +600,7 @@
return this.search_field.removeClass("default");
}
};
+
Chosen.prototype.search_results_mouseup = function(evt) {
var target;
target = $(evt.target).hasClass("active-result") ? $(evt.target) : $(evt.target).parents(".active-result").first();
@@ -407,34 +609,38 @@
return this.result_select(evt);
}
};
+
Chosen.prototype.search_results_mouseover = function(evt) {
var target;
target = $(evt.target).hasClass("active-result") ? $(evt.target) : $(evt.target).parents(".active-result").first();
- if (target) {
- return this.result_do_highlight(target);
- }
+ if (target) return this.result_do_highlight(target);
};
+
Chosen.prototype.search_results_mouseout = function(evt) {
if ($(evt.target).hasClass("active-result" || $(evt.target).parents('.active-result').first())) {
return this.result_clear_highlight();
}
};
+
Chosen.prototype.choices_click = function(evt) {
evt.preventDefault();
if (this.active_field && !($(evt.target).hasClass("search-choice" || $(evt.target).parents('.search-choice').first)) && !this.results_showing) {
return this.results_show();
}
};
+
Chosen.prototype.choice_build = function(item) {
- var choice_id, link;
+ var choice_id, link,
+ _this = this;
choice_id = this.container_id + "_c_" + item.array_index;
this.choices += 1;
this.search_container.before('<li class="search-choice" id="' + choice_id + '"><span>' + item.html + '</span><a href="javascript:void(0)" class="search-choice-close" rel="' + item.array_index + '"></a></li>');
link = $('#' + choice_id).find("a").first();
- return link.click(__bind(function(evt) {
- return this.choice_destroy_link_click(evt);
- }, this));
+ return link.click(function(evt) {
+ return _this.choice_destroy_link_click(evt);
+ });
};
+
Chosen.prototype.choice_destroy_link_click = function(evt) {
evt.preventDefault();
if (!this.is_disabled) {
@@ -444,6 +650,7 @@
return evt.stopPropagation;
}
};
+
Chosen.prototype.choice_destroy = function(link) {
this.choices -= 1;
this.show_search_field_default();
@@ -453,16 +660,17 @@
this.result_deselect(link.attr("rel"));
return link.parents('li').first().remove();
};
+
Chosen.prototype.results_reset = function(evt) {
this.form_field.options[0].selected = true;
this.selected_item.find("span").text(this.default_text);
+ if (!this.is_multiple) this.selected_item.addClass("chzn-default");
this.show_search_field_default();
$(evt.target).remove();
this.form_field_jq.trigger("change");
- if (this.active_field) {
- return this.results_hide();
- }
+ if (this.active_field) return this.results_hide();
};
+
Chosen.prototype.result_select = function(evt) {
var high, high_id, item, position;
if (this.result_highlight) {
@@ -474,6 +682,7 @@
} else {
this.search_results.find(".result-selected").removeClass("result-selected");
this.result_single_selected = high;
+ this.selected_item.removeClass("chzn-default");
}
high.addClass("result-selected");
position = high_id.substr(high_id.lastIndexOf("_") + 1);
@@ -484,24 +693,23 @@
this.choice_build(item);
} else {
this.selected_item.find("span").first().text(item.text);
- if (this.allow_single_deselect) {
- this.selected_item.find("span").first().after("<abbr class=\"search-choice-close\"></abbr>");
- }
- }
- if (!(evt.metaKey && this.is_multiple)) {
- this.results_hide();
+ if (this.allow_single_deselect) this.single_deselect_control_build();
}
+ if (!(evt.metaKey && this.is_multiple)) this.results_hide();
this.search_field.val("");
this.form_field_jq.trigger("change");
return this.search_field_scale();
}
};
+
Chosen.prototype.result_activate = function(el) {
return el.addClass("active-result");
};
+
Chosen.prototype.result_deactivate = function(el) {
return el.removeClass("active-result");
};
+
Chosen.prototype.result_deselect = function(pos) {
var result, result_data;
result_data = this.results_data[pos];
@@ -514,30 +722,31 @@
this.form_field_jq.trigger("change");
return this.search_field_scale();
};
- Chosen.prototype.results_search = function(evt) {
- if (this.results_showing) {
- return this.winnow_results();
- } else {
- return this.results_show();
+
+ Chosen.prototype.single_deselect_control_build = function() {
+ if (this.allow_single_deselect && this.selected_item.find("abbr").length < 1) {
+ return this.selected_item.find("span").first().after("<abbr class=\"search-choice-close\"></abbr>");
}
};
+
Chosen.prototype.winnow_results = function() {
- var found, option, part, parts, regex, result_id, results, searchText, startTime, startpos, text, zregex, _i, _j, _len, _len2, _ref;
- startTime = new Date();
+ var found, option, part, parts, regex, regexAnchor, result, result_id, results, searchText, startpos, text, zregex, _i, _j, _len, _len2, _ref;
this.no_results_clear();
results = 0;
searchText = this.search_field.val() === this.default_text ? "" : $('<div/>').text($.trim(this.search_field.val())).html();
- regex = new RegExp('^' + searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"), 'i');
+ regexAnchor = this.search_contains ? "" : "^";
+ regex = new RegExp(regexAnchor + searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"), 'i');
zregex = new RegExp(searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"), 'i');
_ref = this.results_data;
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
option = _ref[_i];
if (!option.disabled && !option.empty) {
if (option.group) {
- $('#' + option.dom_id).hide();
+ $('#' + option.dom_id).css('display', 'none');
} else if (!(this.is_multiple && option.selected)) {
found = false;
result_id = option.dom_id;
+ result = $("#" + result_id);
if (regex.test(option.html)) {
found = true;
results += 1;
@@ -561,18 +770,16 @@
} else {
text = option.html;
}
- if ($("#" + result_id).html !== text) {
- $("#" + result_id).html(text);
- }
- this.result_activate($("#" + result_id));
+ result.html(text);
+ this.result_activate(result);
if (option.group_array_index != null) {
- $("#" + this.results_data[option.group_array_index].dom_id).show();
+ $("#" + this.results_data[option.group_array_index].dom_id).css('display', 'list-item');
}
} else {
if (this.result_highlight && result_id === this.result_highlight.attr('id')) {
this.result_clear_highlight();
}
- this.result_deactivate($("#" + result_id));
+ this.result_deactivate(result);
}
}
}
@@ -583,6 +790,7 @@
return this.winnow_results_set_highlight();
}
};
+
Chosen.prototype.winnow_results_clear = function() {
var li, lis, _i, _len, _results;
this.search_field.val("");
@@ -591,46 +799,49 @@
for (_i = 0, _len = lis.length; _i < _len; _i++) {
li = lis[_i];
li = $(li);
- _results.push(li.hasClass("group-result") ? li.show() : !this.is_multiple || !li.hasClass("result-selected") ? this.result_activate(li) : void 0);
+ if (li.hasClass("group-result")) {
+ _results.push(li.css('display', 'auto'));
+ } else if (!this.is_multiple || !li.hasClass("result-selected")) {
+ _results.push(this.result_activate(li));
+ } else {
+ _results.push(void 0);
+ }
}
return _results;
};
+
Chosen.prototype.winnow_results_set_highlight = function() {
var do_high, selected_results;
if (!this.result_highlight) {
selected_results = !this.is_multiple ? this.search_results.find(".result-selected.active-result") : [];
do_high = selected_results.length ? selected_results.first() : this.search_results.find(".active-result").first();
- if (do_high != null) {
- return this.result_do_highlight(do_high);
- }
+ if (do_high != null) return this.result_do_highlight(do_high);
}
};
+
Chosen.prototype.no_results = function(terms) {
var no_results_html;
no_results_html = $('<li class="no-results">' + this.results_none_found + ' "<span></span>"</li>');
no_results_html.find("span").first().html(terms);
return this.search_results.append(no_results_html);
};
+
Chosen.prototype.no_results_clear = function() {
return this.search_results.find(".no-results").remove();
};
+
Chosen.prototype.keydown_arrow = function() {
var first_active, next_sib;
if (!this.result_highlight) {
first_active = this.search_results.find("li.active-result").first();
- if (first_active) {
- this.result_do_highlight($(first_active));
- }
+ if (first_active) this.result_do_highlight($(first_active));
} else if (this.results_showing) {
next_sib = this.result_highlight.nextAll("li.active-result").first();
- if (next_sib) {
- this.result_do_highlight(next_sib);
- }
- }
- if (!this.results_showing) {
- return this.results_show();
+ if (next_sib) this.result_do_highlight(next_sib);
}
+ if (!this.results_showing) return this.results_show();
};
+
Chosen.prototype.keyup_arrow = function() {
var prev_sibs;
if (!this.results_showing && !this.is_multiple) {
@@ -640,13 +851,12 @@
if (prev_sibs.length) {
return this.result_do_highlight(prev_sibs.first());
} else {
- if (this.choices > 0) {
- this.results_hide();
- }
+ if (this.choices > 0) this.results_hide();
return this.result_clear_highlight();
}
}
};
+
Chosen.prototype.keydown_backstroke = function() {
if (this.pending_backstroke) {
this.choice_destroy(this.pending_backstroke.find("a").first());
@@ -656,59 +866,25 @@
return this.pending_backstroke.addClass("search-choice-focus");
}
};
+
Chosen.prototype.clear_backstroke = function() {
if (this.pending_backstroke) {
this.pending_backstroke.removeClass("search-choice-focus");
}
return this.pending_backstroke = null;
};
- Chosen.prototype.keyup_checker = function(evt) {
- var stroke, _ref;
- stroke = (_ref = evt.which) != null ? _ref : evt.keyCode;
- this.search_field_scale();
- switch (stroke) {
- case 8:
- if (this.is_multiple && this.backstroke_length < 1 && this.choices > 0) {
- return this.keydown_backstroke();
- } else if (!this.pending_backstroke) {
- this.result_clear_highlight();
- return this.results_search();
- }
- break;
- case 13:
- evt.preventDefault();
- if (this.results_showing) {
- return this.result_select(evt);
- }
- break;
- case 27:
- if (this.results_showing) {
- return this.results_hide();
- }
- break;
- case 9:
- case 38:
- case 40:
- case 16:
- case 91:
- case 17:
- break;
- default:
- return this.results_search();
- }
- };
+
Chosen.prototype.keydown_checker = function(evt) {
var stroke, _ref;
stroke = (_ref = evt.which) != null ? _ref : evt.keyCode;
this.search_field_scale();
- if (stroke !== 8 && this.pending_backstroke) {
- this.clear_backstroke();
- }
+ if (stroke !== 8 && this.pending_backstroke) this.clear_backstroke();
switch (stroke) {
case 8:
this.backstroke_length = this.search_field.val().length;
break;
case 9:
+ if (this.results_showing && !this.is_multiple) this.result_select(evt);
this.mouse_on_container = false;
break;
case 13:
@@ -723,6 +899,7 @@
break;
}
};
+
Chosen.prototype.search_field_scale = function() {
var dd_top, div, h, style, style_block, styles, w, _i, _len;
if (this.is_multiple) {
@@ -741,9 +918,7 @@
$('body').append(div);
w = div.width() + 25;
div.remove();
- if (w > this.f_width - 10) {
- w = this.f_width - 10;
- }
+ if (w > this.f_width - 10) w = this.f_width - 10;
this.search_field.css({
'width': w + 'px'
});
@@ -753,12 +928,7 @@
});
}
};
- Chosen.prototype.generate_field_id = function() {
- var new_id;
- new_id = this.generate_random_id();
- this.form_field.id = new_id;
- return new_id;
- };
+
Chosen.prototype.generate_random_id = function() {
var string;
string = "sel" + this.generate_random_char() + this.generate_random_char() + this.generate_random_char();
@@ -767,91 +937,16 @@
}
return string;
};
- Chosen.prototype.generate_random_char = function() {
- var chars, newchar, rand;
- chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZ";
- rand = Math.floor(Math.random() * chars.length);
- return newchar = chars.substring(rand, rand + 1);
- };
+
return Chosen;
- })();
+
+ })(AbstractChosen);
+
get_side_border_padding = function(elmt) {
var side_border_padding;
return side_border_padding = elmt.outerWidth() - elmt.width();
};
+
root.get_side_border_padding = get_side_border_padding;
-}).call(this);
-(function() {
- var SelectParser;
- SelectParser = (function() {
- function SelectParser() {
- this.options_index = 0;
- this.parsed = [];
- }
- SelectParser.prototype.add_node = function(child) {
- if (child.nodeName === "OPTGROUP") {
- return this.add_group(child);
- } else {
- return this.add_option(child);
- }
- };
- SelectParser.prototype.add_group = function(group) {
- var group_position, option, _i, _len, _ref, _results;
- group_position = this.parsed.length;
- this.parsed.push({
- array_index: group_position,
- group: true,
- label: group.label,
- children: 0,
- disabled: group.disabled
- });
- _ref = group.childNodes;
- _results = [];
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- option = _ref[_i];
- _results.push(this.add_option(option, group_position, group.disabled));
- }
- return _results;
- };
- SelectParser.prototype.add_option = function(option, group_position, group_disabled) {
- if (option.nodeName === "OPTION") {
- if (option.text !== "") {
- if (group_position != null) {
- this.parsed[group_position].children += 1;
- }
- this.parsed.push({
- array_index: this.parsed.length,
- options_index: this.options_index,
- value: option.value,
- text: option.text,
- html: option.innerHTML,
- selected: option.selected,
- disabled: group_disabled === true ? group_disabled : option.disabled,
- group_array_index: group_position,
- classes: option.className,
- style: option.style.cssText
- });
- } else {
- this.parsed.push({
- array_index: this.parsed.length,
- options_index: this.options_index,
- empty: true
- });
- }
- return this.options_index += 1;
- }
- };
- return SelectParser;
- })();
- SelectParser.select_to_array = function(select) {
- var child, parser, _i, _len, _ref;
- parser = new SelectParser();
- _ref = select.childNodes;
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- child = _ref[_i];
- parser.add_node(child);
- }
- return parser.parsed;
- };
- this.SelectParser = SelectParser;
+
}).call(this);
diff --git a/3rdparty/js/chosen/chosen.jquery.min.js b/3rdparty/js/chosen/chosen.jquery.min.js
index 371ee53e7a3..9ba164cc47a 100644..100755
--- a/3rdparty/js/chosen/chosen.jquery.min.js
+++ b/3rdparty/js/chosen/chosen.jquery.min.js
@@ -1,10 +1,10 @@
// Chosen, a Select Box Enhancer for jQuery and Protoype
// by Patrick Filler for Harvest, http://getharvest.com
//
-// Version 0.9.5
+// Version 0.9.8
// Full source at https://github.com/harvesthq/chosen
// Copyright (c) 2011 Harvest http://getharvest.com
// MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md
// This file is generated by `cake build`, do not edit it by hand.
-(function(){var a,b,c,d,e=function(a,b){return function(){return a.apply(b,arguments)}};d=this,a=jQuery,a.fn.extend({chosen:function(c){return a.browser!=="msie"||a.browser.version!=="6.0"&&a.browser.version!=="7.0"?a(this).each(function(d){if(!a(this).hasClass("chzn-done"))return new b(this,c)}):this}}),b=function(){function b(b,c){this.form_field=b,this.options=c!=null?c:{},this.set_default_values(),this.form_field_jq=a(this.form_field),this.is_multiple=this.form_field.multiple,this.is_rtl=this.form_field_jq.hasClass("chzn-rtl"),this.default_text_default=this.form_field.multiple?"Select Some Options":"Select an Option",this.set_up_html(),this.register_observers(),this.form_field_jq.addClass("chzn-done")}b.prototype.set_default_values=function(){this.click_test_action=e(function(a){return this.test_active_click(a)},this),this.activate_action=e(function(a){return this.activate_field(a)},this),this.active_field=!1,this.mouse_on_container=!1,this.results_showing=!1,this.result_highlighted=null,this.result_single_selected=null,this.allow_single_deselect=this.options.allow_single_deselect!=null&&this.form_field.options[0].text===""?this.options.allow_single_deselect:!1,this.disable_search_threshold=this.options.disable_search_threshold||0,this.choices=0;return this.results_none_found=this.options.no_results_text||"No results match"},b.prototype.set_up_html=function(){var b,d,e,f;this.container_id=this.form_field.id.length?this.form_field.id.replace(/(:|\.)/g,"_"):this.generate_field_id(),this.container_id+="_chzn",this.f_width=this.form_field_jq.outerWidth(),this.default_text=this.form_field_jq.data("placeholder")?this.form_field_jq.data("placeholder"):this.default_text_default,b=a("<div />",{id:this.container_id,"class":"chzn-container"+(this.is_rtl?" chzn-rtl":""),style:"width: "+this.f_width+"px;"}),this.is_multiple?b.html('<ul class="chzn-choices"><li class="search-field"><input type="text" value="'+this.default_text+'" class="default" autocomplete="off" style="width:25px;" /></li></ul><div class="chzn-drop" style="left:-9000px;"><ul class="chzn-results"></ul></div>'):b.html('<a href="javascript:void(0)" class="chzn-single"><span>'+this.default_text+'</span><div><b></b></div></a><div class="chzn-drop" style="left:-9000px;"><div class="chzn-search"><input type="text" autocomplete="off" /></div><ul class="chzn-results"></ul></div>'),this.form_field_jq.hide().after(b),this.container=a("#"+this.container_id),this.container.addClass("chzn-container-"+(this.is_multiple?"multi":"single")),!this.is_multiple&&this.form_field.options.length<=this.disable_search_threshold&&this.container.addClass("chzn-container-single-nosearch"),this.dropdown=this.container.find("div.chzn-drop").first(),d=this.container.height(),e=this.f_width-c(this.dropdown),this.dropdown.css({width:e+"px",top:d+"px"}),this.search_field=this.container.find("input").first(),this.search_results=this.container.find("ul.chzn-results").first(),this.search_field_scale(),this.search_no_results=this.container.find("li.no-results").first(),this.is_multiple?(this.search_choices=this.container.find("ul.chzn-choices").first(),this.search_container=this.container.find("li.search-field").first()):(this.search_container=this.container.find("div.chzn-search").first(),this.selected_item=this.container.find(".chzn-single").first(),f=e-c(this.search_container)-c(this.search_field),this.search_field.css({width:f+"px"})),this.results_build();return this.set_tab_index()},b.prototype.register_observers=function(){this.container.mousedown(e(function(a){return this.container_mousedown(a)},this)),this.container.mouseup(e(function(a){return this.container_mouseup(a)},this)),this.container.mouseenter(e(function(a){return this.mouse_enter(a)},this)),this.container.mouseleave(e(function(a){return this.mouse_leave(a)},this)),this.search_results.mouseup(e(function(a){return this.search_results_mouseup(a)},this)),this.search_results.mouseover(e(function(a){return this.search_results_mouseover(a)},this)),this.search_results.mouseout(e(function(a){return this.search_results_mouseout(a)},this)),this.form_field_jq.bind("liszt:updated",e(function(a){return this.results_update_field(a)},this)),this.search_field.blur(e(function(a){return this.input_blur(a)},this)),this.search_field.keyup(e(function(a){return this.keyup_checker(a)},this)),this.search_field.keydown(e(function(a){return this.keydown_checker(a)},this));if(this.is_multiple){this.search_choices.click(e(function(a){return this.choices_click(a)},this));return this.search_field.focus(e(function(a){return this.input_focus(a)},this))}},b.prototype.search_field_disabled=function(){this.is_disabled=this.form_field_jq.attr("disabled");if(this.is_disabled){this.container.addClass("chzn-disabled"),this.search_field.attr("disabled",!0),this.is_multiple||this.selected_item.unbind("focus",this.activate_action);return this.close_field()}this.container.removeClass("chzn-disabled"),this.search_field.attr("disabled",!1);if(!this.is_multiple)return this.selected_item.bind("focus",this.activate_action)},b.prototype.container_mousedown=function(b){var c;if(!this.is_disabled){c=b!=null?a(b.target).hasClass("search-choice-close"):!1,b&&b.type==="mousedown"&&b.stopPropagation();if(!this.pending_destroy_click&&!c){this.active_field?!this.is_multiple&&b&&(a(b.target)===this.selected_item||a(b.target).parents("a.chzn-single").length)&&(b.preventDefault(),this.results_toggle()):(this.is_multiple&&this.search_field.val(""),a(document).click(this.click_test_action),this.results_show());return this.activate_field()}return this.pending_destroy_click=!1}},b.prototype.container_mouseup=function(a){if(a.target.nodeName==="ABBR")return this.results_reset(a)},b.prototype.mouse_enter=function(){return this.mouse_on_container=!0},b.prototype.mouse_leave=function(){return this.mouse_on_container=!1},b.prototype.input_focus=function(a){if(!this.active_field)return setTimeout(e(function(){return this.container_mousedown()},this),50)},b.prototype.input_blur=function(a){if(!this.mouse_on_container){this.active_field=!1;return setTimeout(e(function(){return this.blur_test()},this),100)}},b.prototype.blur_test=function(a){if(!this.active_field&&this.container.hasClass("chzn-container-active"))return this.close_field()},b.prototype.close_field=function(){a(document).unbind("click",this.click_test_action),this.is_multiple||(this.selected_item.attr("tabindex",this.search_field.attr("tabindex")),this.search_field.attr("tabindex",-1)),this.active_field=!1,this.results_hide(),this.container.removeClass("chzn-container-active"),this.winnow_results_clear(),this.clear_backstroke(),this.show_search_field_default();return this.search_field_scale()},b.prototype.activate_field=function(){!this.is_multiple&&!this.active_field&&(this.search_field.attr("tabindex",this.selected_item.attr("tabindex")),this.selected_item.attr("tabindex",-1)),this.container.addClass("chzn-container-active"),this.active_field=!0,this.search_field.val(this.search_field.val());return this.search_field.focus()},b.prototype.test_active_click=function(b){return a(b.target).parents("#"+this.container_id).length?this.active_field=!0:this.close_field()},b.prototype.results_build=function(){var a,b,c,e,f,g;c=new Date,this.parsing=!0,this.results_data=d.SelectParser.select_to_array(this.form_field),this.is_multiple&&this.choices>0?(this.search_choices.find("li.search-choice").remove(),this.choices=0):this.is_multiple||this.selected_item.find("span").text(this.default_text),a="",g=this.results_data;for(e=0,f=g.length;e<f;e++)b=g[e],b.group?a+=this.result_add_group(b):b.empty||(a+=this.result_add_option(b),b.selected&&this.is_multiple?this.choice_build(b):b.selected&&!this.is_multiple&&(this.selected_item.find("span").text(b.text),this.allow_single_deselect&&this.selected_item.find("span").first().after('<abbr class="search-choice-close"></abbr>')));this.search_field_disabled(),this.show_search_field_default(),this.search_field_scale(),this.search_results.html(a);return this.parsing=!1},b.prototype.result_add_group=function(b){if(!b.disabled){b.dom_id=this.container_id+"_g_"+b.array_index;return'<li id="'+b.dom_id+'" class="group-result">'+a("<div />").text(b.label).html()+"</li>"}return""},b.prototype.result_add_option=function(a){var b,c;if(!a.disabled){a.dom_id=this.container_id+"_o_"+a.array_index,b=a.selected&&this.is_multiple?[]:["active-result"],a.selected&&b.push("result-selected"),a.group_array_index!=null&&b.push("group-option"),a.classes!==""&&b.push(a.classes),c=a.style.cssText!==""?' style="'+a.style+'"':"";return'<li id="'+a.dom_id+'" class="'+b.join(" ")+'"'+c+">"+a.html+"</li>"}return""},b.prototype.results_update_field=function(){this.result_clear_highlight(),this.result_single_selected=null;return this.results_build()},b.prototype.result_do_highlight=function(a){var b,c,d,e,f;if(a.length){this.result_clear_highlight(),this.result_highlight=a,this.result_highlight.addClass("highlighted"),d=parseInt(this.search_results.css("maxHeight"),10),f=this.search_results.scrollTop(),e=d+f,c=this.result_highlight.position().top+this.search_results.scrollTop(),b=c+this.result_highlight.outerHeight();if(b>=e)return this.search_results.scrollTop(b-d>0?b-d:0);if(c<f)return this.search_results.scrollTop(c)}},b.prototype.result_clear_highlight=function(){this.result_highlight&&this.result_highlight.removeClass("highlighted");return this.result_highlight=null},b.prototype.results_toggle=function(){return this.results_showing?this.results_hide():this.results_show()},b.prototype.results_show=function(){var a;this.is_multiple||(this.selected_item.addClass("chzn-single-with-drop"),this.result_single_selected&&this.result_do_highlight(this.result_single_selected)),a=this.is_multiple?this.container.height():this.container.height()-1,this.dropdown.css({top:a+"px",left:0}),this.results_showing=!0,this.search_field.focus(),this.search_field.val(this.search_field.val());return this.winnow_results()},b.prototype.results_hide=function(){this.is_multiple||this.selected_item.removeClass("chzn-single-with-drop"),this.result_clear_highlight(),this.dropdown.css({left:"-9000px"});return this.results_showing=!1},b.prototype.set_tab_index=function(a){var b;if(this.form_field_jq.attr("tabindex")){b=this.form_field_jq.attr("tabindex"),this.form_field_jq.attr("tabindex",-1);if(this.is_multiple)return this.search_field.attr("tabindex",b);this.selected_item.attr("tabindex",b);return this.search_field.attr("tabindex",-1)}},b.prototype.show_search_field_default=function(){if(this.is_multiple&&this.choices<1&&!this.active_field){this.search_field.val(this.default_text);return this.search_field.addClass("default")}this.search_field.val("");return this.search_field.removeClass("default")},b.prototype.search_results_mouseup=function(b){var c;c=a(b.target).hasClass("active-result")?a(b.target):a(b.target).parents(".active-result").first();if(c.length){this.result_highlight=c;return this.result_select(b)}},b.prototype.search_results_mouseover=function(b){var c;c=a(b.target).hasClass("active-result")?a(b.target):a(b.target).parents(".active-result").first();if(c)return this.result_do_highlight(c)},b.prototype.search_results_mouseout=function(b){if(a(b.target).hasClass("active-result"))return this.result_clear_highlight()},b.prototype.choices_click=function(b){b.preventDefault();if(this.active_field&&!a(b.target).hasClass("search-choice")&&!this.results_showing)return this.results_show()},b.prototype.choice_build=function(b){var c,d;c=this.container_id+"_c_"+b.array_index,this.choices+=1,this.search_container.before('<li class="search-choice" id="'+c+'"><span>'+b.html+'</span><a href="javascript:void(0)" class="search-choice-close" rel="'+b.array_index+'"></a></li>'),d=a("#"+c).find("a").first();return d.click(e(function(a){return this.choice_destroy_link_click(a)},this))},b.prototype.choice_destroy_link_click=function(b){b.preventDefault();if(!this.is_disabled){this.pending_destroy_click=!0;return this.choice_destroy(a(b.target))}return b.stopPropagation},b.prototype.choice_destroy=function(a){this.choices-=1,this.show_search_field_default(),this.is_multiple&&this.choices>0&&this.search_field.val().length<1&&this.results_hide(),this.result_deselect(a.attr("rel"));return a.parents("li").first().remove()},b.prototype.results_reset=function(b){this.form_field.options[0].selected=!0,this.selected_item.find("span").text(this.default_text),this.show_search_field_default(),a(b.target).remove(),this.form_field_jq.trigger("change");if(this.active_field)return this.results_hide()},b.prototype.result_select=function(a){var b,c,d,e;if(this.result_highlight){b=this.result_highlight,c=b.attr("id"),this.result_clear_highlight(),this.is_multiple?this.result_deactivate(b):(this.search_results.find(".result-selected").removeClass("result-selected"),this.result_single_selected=b),b.addClass("result-selected"),e=c.substr(c.lastIndexOf("_")+1),d=this.results_data[e],d.selected=!0,this.form_field.options[d.options_index].selected=!0,this.is_multiple?this.choice_build(d):(this.selected_item.find("span").first().text(d.text),this.allow_single_deselect&&this.selected_item.find("span").first().after('<abbr class="search-choice-close"></abbr>')),(!a.metaKey||!this.is_multiple)&&this.results_hide(),this.search_field.val(""),this.form_field_jq.trigger("change");return this.search_field_scale()}},b.prototype.result_activate=function(a){return a.addClass("active-result")},b.prototype.result_deactivate=function(a){return a.removeClass("active-result")},b.prototype.result_deselect=function(b){var c,d;d=this.results_data[b],d.selected=!1,this.form_field.options[d.options_index].selected=!1,c=a("#"+this.container_id+"_o_"+b),c.removeClass("result-selected").addClass("active-result").show(),this.result_clear_highlight(),this.winnow_results(),this.form_field_jq.trigger("change");return this.search_field_scale()},b.prototype.results_search=function(a){return this.results_showing?this.winnow_results():this.results_show()},b.prototype.winnow_results=function(){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;j=new Date,this.no_results_clear(),h=0,i=this.search_field.val()===this.default_text?"":a("<div/>").text(a.trim(this.search_field.val())).html(),f=new RegExp("^"+i.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),"i"),m=new RegExp(i.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),"i"),r=this.results_data;for(n=0,p=r.length;n<p;n++){c=r[n];if(!c.disabled&&!c.empty)if(c.group)a("#"+c.dom_id).hide();else if(!this.is_multiple||!c.selected){b=!1,g=c.dom_id;if(f.test(c.html))b=!0,h+=1;else if(c.html.indexOf(" ")>=0||c.html.indexOf("[")===0){e=c.html.replace(/\[|\]/g,"").split(" ");if(e.length)for(o=0,q=e.length;o<q;o++)d=e[o],f.test(d)&&(b=!0,h+=1)}b?(i.length?(k=c.html.search(m),l=c.html.substr(0,k+i.length)+"</em>"+c.html.substr(k+i.length),l=l.substr(0,k)+"<em>"+l.substr(k)):l=c.html,a("#"+g).html!==l&&a("#"+g).html(l),this.result_activate(a("#"+g)),c.group_array_index!=null&&a("#"+this.results_data[c.group_array_index].dom_id).show()):(this.result_highlight&&g===this.result_highlight.attr("id")&&this.result_clear_highlight(),this.result_deactivate(a("#"+g)))}}return h<1&&i.length?this.no_results(i):this.winnow_results_set_highlight()},b.prototype.winnow_results_clear=function(){var b,c,d,e,f;this.search_field.val(""),c=this.search_results.find("li"),f=[];for(d=0,e=c.length;d<e;d++)b=c[d],b=a(b),f.push(b.hasClass("group-result")?b.show():!this.is_multiple||!b.hasClass("result-selected")?this.result_activate(b):void 0);return f},b.prototype.winnow_results_set_highlight=function(){var a,b;if(!this.result_highlight){b=this.is_multiple?[]:this.search_results.find(".result-selected.active-result"),a=b.length?b.first():this.search_results.find(".active-result").first();if(a!=null)return this.result_do_highlight(a)}},b.prototype.no_results=function(b){var c;c=a('<li class="no-results">'+this.results_none_found+' "<span></span>"</li>'),c.find("span").first().html(b);return this.search_results.append(c)},b.prototype.no_results_clear=function(){return this.search_results.find(".no-results").remove()},b.prototype.keydown_arrow=function(){var b,c;this.result_highlight?this.results_showing&&(c=this.result_highlight.nextAll("li.active-result").first(),c&&this.result_do_highlight(c)):(b=this.search_results.find("li.active-result").first(),b&&this.result_do_highlight(a(b)));if(!this.results_showing)return this.results_show()},b.prototype.keyup_arrow=function(){var a;if(!this.results_showing&&!this.is_multiple)return this.results_show();if(this.result_highlight){a=this.result_highlight.prevAll("li.active-result");if(a.length)return this.result_do_highlight(a.first());this.choices>0&&this.results_hide();return this.result_clear_highlight()}},b.prototype.keydown_backstroke=function(){if(this.pending_backstroke){this.choice_destroy(this.pending_backstroke.find("a").first());return this.clear_backstroke()}this.pending_backstroke=this.search_container.siblings("li.search-choice").last();return this.pending_backstroke.addClass("search-choice-focus")},b.prototype.clear_backstroke=function(){this.pending_backstroke&&this.pending_backstroke.removeClass("search-choice-focus");return this.pending_backstroke=null},b.prototype.keyup_checker=function(a){var b,c;b=(c=a.which)!=null?c:a.keyCode,this.search_field_scale();switch(b){case 8:if(this.is_multiple&&this.backstroke_length<1&&this.choices>0)return this.keydown_backstroke();if(!this.pending_backstroke){this.result_clear_highlight();return this.results_search()}break;case 13:a.preventDefault();if(this.results_showing)return this.result_select(a);break;case 27:if(this.results_showing)return this.results_hide();break;case 9:case 38:case 40:case 16:case 91:case 17:break;default:return this.results_search()}},b.prototype.keydown_checker=function(a){var b,c;b=(c=a.which)!=null?c:a.keyCode,this.search_field_scale(),b!==8&&this.pending_backstroke&&this.clear_backstroke();switch(b){case 8:this.backstroke_length=this.search_field.val().length;break;case 9:this.mouse_on_container=!1;break;case 13:a.preventDefault();break;case 38:a.preventDefault(),this.keyup_arrow();break;case 40:this.keydown_arrow()}},b.prototype.search_field_scale=function(){var b,c,d,e,f,g,h,i,j;if(this.is_multiple){d=0,h=0,f="position:absolute; left: -1000px; top: -1000px; display:none;",g=["font-size","font-style","font-weight","font-family","line-height","text-transform","letter-spacing"];for(i=0,j=g.length;i<j;i++)e=g[i],f+=e+":"+this.search_field.css(e)+";";c=a("<div />",{style:f}),c.text(this.search_field.val()),a("body").append(c),h=c.width()+25,c.remove(),h>this.f_width-10&&(h=this.f_width-10),this.search_field.css({width:h+"px"}),b=this.container.height();return this.dropdown.css({top:b+"px"})}},b.prototype.generate_field_id=function(){var a;a=this.generate_random_id(),this.form_field.id=a;return a},b.prototype.generate_random_id=function(){var b;b="sel"+this.generate_random_char()+this.generate_random_char()+this.generate_random_char();while(a("#"+b).length>0)b+=this.generate_random_char();return b},b.prototype.generate_random_char=function(){var a,b,c;a="0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZ",c=Math.floor(Math.random()*a.length);return b=a.substring(c,c+1)};return b}(),c=function(a){var b;return b=a.outerWidth()-a.width()},d.get_side_border_padding=c}).call(this),function(){var a;a=function(){function a(){this.options_index=0,this.parsed=[]}a.prototype.add_node=function(a){return a.nodeName==="OPTGROUP"?this.add_group(a):this.add_option(a)},a.prototype.add_group=function(a){var b,c,d,e,f,g;b=this.parsed.length,this.parsed.push({array_index:b,group:!0,label:a.label,children:0,disabled:a.disabled}),f=a.childNodes,g=[];for(d=0,e=f.length;d<e;d++)c=f[d],g.push(this.add_option(c,b,a.disabled));return g},a.prototype.add_option=function(a,b,c){if(a.nodeName==="OPTION"){a.text!==""?(b!=null&&(this.parsed[b].children+=1),this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,value:a.value,text:a.text,html:a.innerHTML,selected:a.selected,disabled:c===!0?c:a.disabled,group_array_index:b,classes:a.className,style:a.style.cssText})):this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,empty:!0});return this.options_index+=1}};return a}(),a.select_to_array=function(b){var c,d,e,f,g;d=new a,g=b.childNodes;for(e=0,f=g.length;e<f;e++)c=g[e],d.add_node(c);return d.parsed},this.SelectParser=a}.call(this) \ No newline at end of file
+((function(){var a;a=function(){function a(){this.options_index=0,this.parsed=[]}return a.prototype.add_node=function(a){return a.nodeName==="OPTGROUP"?this.add_group(a):this.add_option(a)},a.prototype.add_group=function(a){var b,c,d,e,f,g;b=this.parsed.length,this.parsed.push({array_index:b,group:!0,label:a.label,children:0,disabled:a.disabled}),f=a.childNodes,g=[];for(d=0,e=f.length;d<e;d++)c=f[d],g.push(this.add_option(c,b,a.disabled));return g},a.prototype.add_option=function(a,b,c){if(a.nodeName==="OPTION")return a.text!==""?(b!=null&&(this.parsed[b].children+=1),this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,value:a.value,text:a.text,html:a.innerHTML,selected:a.selected,disabled:c===!0?c:a.disabled,group_array_index:b,classes:a.className,style:a.style.cssText})):this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,empty:!0}),this.options_index+=1},a}(),a.select_to_array=function(b){var c,d,e,f,g;d=new a,g=b.childNodes;for(e=0,f=g.length;e<f;e++)c=g[e],d.add_node(c);return d.parsed},this.SelectParser=a})).call(this),function(){var a,b;b=this,a=function(){function a(a,b){this.form_field=a,this.options=b!=null?b:{},this.set_default_values(),this.is_multiple=this.form_field.multiple,this.default_text_default=this.is_multiple?"Select Some Options":"Select an Option",this.setup(),this.set_up_html(),this.register_observers(),this.finish_setup()}return a.prototype.set_default_values=function(){var a=this;return this.click_test_action=function(b){return a.test_active_click(b)},this.activate_action=function(b){return a.activate_field(b)},this.active_field=!1,this.mouse_on_container=!1,this.results_showing=!1,this.result_highlighted=null,this.result_single_selected=null,this.allow_single_deselect=this.options.allow_single_deselect!=null&&this.form_field.options[0]!=null&&this.form_field.options[0].text===""?this.options.allow_single_deselect:!1,this.disable_search_threshold=this.options.disable_search_threshold||0,this.search_contains=this.options.search_contains||!1,this.choices=0,this.results_none_found=this.options.no_results_text||"No results match"},a.prototype.mouse_enter=function(){return this.mouse_on_container=!0},a.prototype.mouse_leave=function(){return this.mouse_on_container=!1},a.prototype.input_focus=function(a){var b=this;if(!this.active_field)return setTimeout(function(){return b.container_mousedown()},50)},a.prototype.input_blur=function(a){var b=this;if(!this.mouse_on_container)return this.active_field=!1,setTimeout(function(){return b.blur_test()},100)},a.prototype.result_add_option=function(a){var b,c;return a.disabled?"":(a.dom_id=this.container_id+"_o_"+a.array_index,b=a.selected&&this.is_multiple?[]:["active-result"],a.selected&&b.push("result-selected"),a.group_array_index!=null&&b.push("group-option"),a.classes!==""&&b.push(a.classes),c=a.style.cssText!==""?' style="'+a.style+'"':"",'<li id="'+a.dom_id+'" class="'+b.join(" ")+'"'+c+">"+a.html+"</li>")},a.prototype.results_update_field=function(){return this.result_clear_highlight(),this.result_single_selected=null,this.results_build()},a.prototype.results_toggle=function(){return this.results_showing?this.results_hide():this.results_show()},a.prototype.results_search=function(a){return this.results_showing?this.winnow_results():this.results_show()},a.prototype.keyup_checker=function(a){var b,c;b=(c=a.which)!=null?c:a.keyCode,this.search_field_scale();switch(b){case 8:if(this.is_multiple&&this.backstroke_length<1&&this.choices>0)return this.keydown_backstroke();if(!this.pending_backstroke)return this.result_clear_highlight(),this.results_search();break;case 13:a.preventDefault();if(this.results_showing)return this.result_select(a);break;case 27:return this.results_showing&&this.results_hide(),!0;case 9:case 38:case 40:case 16:case 91:case 17:break;default:return this.results_search()}},a.prototype.generate_field_id=function(){var a;return a=this.generate_random_id(),this.form_field.id=a,a},a.prototype.generate_random_char=function(){var a,b,c;return a="0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZ",c=Math.floor(Math.random()*a.length),b=a.substring(c,c+1)},a}(),b.AbstractChosen=a}.call(this),function(){var a,b,c,d,e=Object.prototype.hasOwnProperty,f=function(a,b){function d(){this.constructor=a}for(var c in b)e.call(b,c)&&(a[c]=b[c]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a};d=this,a=jQuery,a.fn.extend({chosen:function(c){return!a.browser.msie||a.browser.version!=="6.0"&&a.browser.version!=="7.0"?a(this).each(function(d){if(!a(this).hasClass("chzn-done"))return new b(this,c)}):this}}),b=function(b){function e(){e.__super__.constructor.apply(this,arguments)}return f(e,b),e.prototype.setup=function(){return this.form_field_jq=a(this.form_field),this.is_rtl=this.form_field_jq.hasClass("chzn-rtl")},e.prototype.finish_setup=function(){return this.form_field_jq.addClass("chzn-done")},e.prototype.set_up_html=function(){var b,d,e,f;return this.container_id=this.form_field.id.length?this.form_field.id.replace(/(:|\.)/g,"_"):this.generate_field_id(),this.container_id+="_chzn",this.f_width=this.form_field_jq.outerWidth(),this.default_text=this.form_field_jq.data("placeholder")?this.form_field_jq.data("placeholder"):this.default_text_default,b=a("<div />",{id:this.container_id,"class":"chzn-container"+(this.is_rtl?" chzn-rtl":""),style:"width: "+this.f_width+"px;"}),this.is_multiple?b.html('<ul class="chzn-choices"><li class="search-field"><input type="text" value="'+this.default_text+'" class="default" autocomplete="off" style="width:25px;" /></li></ul><div class="chzn-drop" style="left:-9000px;"><ul class="chzn-results"></ul></div>'):b.html('<a href="javascript:void(0)" class="chzn-single chzn-default"><span>'+this.default_text+'</span><div><b></b></div></a><div class="chzn-drop" style="left:-9000px;"><div class="chzn-search"><input type="text" autocomplete="off" /></div><ul class="chzn-results"></ul></div>'),this.form_field_jq.hide().after(b),this.container=a("#"+this.container_id),this.container.addClass("chzn-container-"+(this.is_multiple?"multi":"single")),this.dropdown=this.container.find("div.chzn-drop").first(),d=this.container.height(),e=this.f_width-c(this.dropdown),this.dropdown.css({width:e+"px",top:d+"px"}),this.search_field=this.container.find("input").first(),this.search_results=this.container.find("ul.chzn-results").first(),this.search_field_scale(),this.search_no_results=this.container.find("li.no-results").first(),this.is_multiple?(this.search_choices=this.container.find("ul.chzn-choices").first(),this.search_container=this.container.find("li.search-field").first()):(this.search_container=this.container.find("div.chzn-search").first(),this.selected_item=this.container.find(".chzn-single").first(),f=e-c(this.search_container)-c(this.search_field),this.search_field.css({width:f+"px"})),this.results_build(),this.set_tab_index(),this.form_field_jq.trigger("liszt:ready",{chosen:this})},e.prototype.register_observers=function(){var a=this;return this.container.mousedown(function(b){return a.container_mousedown(b)}),this.container.mouseup(function(b){return a.container_mouseup(b)}),this.container.mouseenter(function(b){return a.mouse_enter(b)}),this.container.mouseleave(function(b){return a.mouse_leave(b)}),this.search_results.mouseup(function(b){return a.search_results_mouseup(b)}),this.search_results.mouseover(function(b){return a.search_results_mouseover(b)}),this.search_results.mouseout(function(b){return a.search_results_mouseout(b)}),this.form_field_jq.bind("liszt:updated",function(b){return a.results_update_field(b)}),this.search_field.blur(function(b){return a.input_blur(b)}),this.search_field.keyup(function(b){return a.keyup_checker(b)}),this.search_field.keydown(function(b){return a.keydown_checker(b)}),this.is_multiple?(this.search_choices.click(function(b){return a.choices_click(b)}),this.search_field.focus(function(b){return a.input_focus(b)})):this.container.click(function(a){return a.preventDefault()})},e.prototype.search_field_disabled=function(){this.is_disabled=this.form_field_jq[0].disabled;if(this.is_disabled)return this.container.addClass("chzn-disabled"),this.search_field[0].disabled=!0,this.is_multiple||this.selected_item.unbind("focus",this.activate_action),this.close_field();this.container.removeClass("chzn-disabled"),this.search_field[0].disabled=!1;if(!this.is_multiple)return this.selected_item.bind("focus",this.activate_action)},e.prototype.container_mousedown=function(b){var c;if(!this.is_disabled)return c=b!=null?a(b.target).hasClass("search-choice-close"):!1,b&&b.type==="mousedown"&&!this.results_showing&&b.stopPropagation(),!this.pending_destroy_click&&!c?(this.active_field?!this.is_multiple&&b&&(a(b.target)[0]===this.selected_item[0]||a(b.target).parents("a.chzn-single").length)&&(b.preventDefault(),this.results_toggle()):(this.is_multiple&&this.search_field.val(""),a(document).click(this.click_test_action),this.results_show()),this.activate_field()):this.pending_destroy_click=!1},e.prototype.container_mouseup=function(a){if(a.target.nodeName==="ABBR")return this.results_reset(a)},e.prototype.blur_test=function(a){if(!this.active_field&&this.container.hasClass("chzn-container-active"))return this.close_field()},e.prototype.close_field=function(){return a(document).unbind("click",this.click_test_action),this.is_multiple||(this.selected_item.attr("tabindex",this.search_field.attr("tabindex")),this.search_field.attr("tabindex",-1)),this.active_field=!1,this.results_hide(),this.container.removeClass("chzn-container-active"),this.winnow_results_clear(),this.clear_backstroke(),this.show_search_field_default(),this.search_field_scale()},e.prototype.activate_field=function(){return!this.is_multiple&&!this.active_field&&(this.search_field.attr("tabindex",this.selected_item.attr("tabindex")),this.selected_item.attr("tabindex",-1)),this.container.addClass("chzn-container-active"),this.active_field=!0,this.search_field.val(this.search_field.val()),this.search_field.focus()},e.prototype.test_active_click=function(b){return a(b.target).parents("#"+this.container_id).length?this.active_field=!0:this.close_field()},e.prototype.results_build=function(){var a,b,c,e,f;this.parsing=!0,this.results_data=d.SelectParser.select_to_array(this.form_field),this.is_multiple&&this.choices>0?(this.search_choices.find("li.search-choice").remove(),this.choices=0):this.is_multiple||(this.selected_item.find("span").text(this.default_text),this.form_field.options.length<=this.disable_search_threshold?this.container.addClass("chzn-container-single-nosearch"):this.container.removeClass("chzn-container-single-nosearch")),a="",f=this.results_data;for(c=0,e=f.length;c<e;c++)b=f[c],b.group?a+=this.result_add_group(b):b.empty||(a+=this.result_add_option(b),b.selected&&this.is_multiple?this.choice_build(b):b.selected&&!this.is_multiple&&(this.selected_item.removeClass("chzn-default").find("span").text(b.text),this.allow_single_deselect&&this.single_deselect_control_build()));return this.search_field_disabled(),this.show_search_field_default(),this.search_field_scale(),this.search_results.html(a),this.parsing=!1},e.prototype.result_add_group=function(b){return b.disabled?"":(b.dom_id=this.container_id+"_g_"+b.array_index,'<li id="'+b.dom_id+'" class="group-result">'+a("<div />").text(b.label).html()+"</li>")},e.prototype.result_do_highlight=function(a){var b,c,d,e,f;if(a.length){this.result_clear_highlight(),this.result_highlight=a,this.result_highlight.addClass("highlighted"),d=parseInt(this.search_results.css("maxHeight"),10),f=this.search_results.scrollTop(),e=d+f,c=this.result_highlight.position().top+this.search_results.scrollTop(),b=c+this.result_highlight.outerHeight();if(b>=e)return this.search_results.scrollTop(b-d>0?b-d:0);if(c<f)return this.search_results.scrollTop(c)}},e.prototype.result_clear_highlight=function(){return this.result_highlight&&this.result_highlight.removeClass("highlighted"),this.result_highlight=null},e.prototype.results_show=function(){var a;return this.is_multiple||(this.selected_item.addClass("chzn-single-with-drop"),this.result_single_selected&&this.result_do_highlight(this.result_single_selected)),a=this.is_multiple?this.container.height():this.container.height()-1,this.dropdown.css({top:a+"px",left:0}),this.results_showing=!0,this.search_field.focus(),this.search_field.val(this.search_field.val()),this.winnow_results()},e.prototype.results_hide=function(){return this.is_multiple||this.selected_item.removeClass("chzn-single-with-drop"),this.result_clear_highlight(),this.dropdown.css({left:"-9000px"}),this.results_showing=!1},e.prototype.set_tab_index=function(a){var b;if(this.form_field_jq.attr("tabindex"))return b=this.form_field_jq.attr("tabindex"),this.form_field_jq.attr("tabindex",-1),this.is_multiple?this.search_field.attr("tabindex",b):(this.selected_item.attr("tabindex",b),this.search_field.attr("tabindex",-1))},e.prototype.show_search_field_default=function(){return this.is_multiple&&this.choices<1&&!this.active_field?(this.search_field.val(this.default_text),this.search_field.addClass("default")):(this.search_field.val(""),this.search_field.removeClass("default"))},e.prototype.search_results_mouseup=function(b){var c;c=a(b.target).hasClass("active-result")?a(b.target):a(b.target).parents(".active-result").first();if(c.length)return this.result_highlight=c,this.result_select(b)},e.prototype.search_results_mouseover=function(b){var c;c=a(b.target).hasClass("active-result")?a(b.target):a(b.target).parents(".active-result").first();if(c)return this.result_do_highlight(c)},e.prototype.search_results_mouseout=function(b){if(a(b.target).hasClass("active-result"))return this.result_clear_highlight()},e.prototype.choices_click=function(b){b.preventDefault();if(this.active_field&&!a(b.target).hasClass("search-choice")&&!this.results_showing)return this.results_show()},e.prototype.choice_build=function(b){var c,d,e=this;return c=this.container_id+"_c_"+b.array_index,this.choices+=1,this.search_container.before('<li class="search-choice" id="'+c+'"><span>'+b.html+'</span><a href="javascript:void(0)" class="search-choice-close" rel="'+b.array_index+'"></a></li>'),d=a("#"+c).find("a").first(),d.click(function(a){return e.choice_destroy_link_click(a)})},e.prototype.choice_destroy_link_click=function(b){return b.preventDefault(),this.is_disabled?b.stopPropagation:(this.pending_destroy_click=!0,this.choice_destroy(a(b.target)))},e.prototype.choice_destroy=function(a){return this.choices-=1,this.show_search_field_default(),this.is_multiple&&this.choices>0&&this.search_field.val().length<1&&this.results_hide(),this.result_deselect(a.attr("rel")),a.parents("li").first().remove()},e.prototype.results_reset=function(b){this.form_field.options[0].selected=!0,this.selected_item.find("span").text(this.default_text),this.is_multiple||this.selected_item.addClass("chzn-default"),this.show_search_field_default(),a(b.target).remove(),this.form_field_jq.trigger("change");if(this.active_field)return this.results_hide()},e.prototype.result_select=function(a){var b,c,d,e;if(this.result_highlight)return b=this.result_highlight,c=b.attr("id"),this.result_clear_highlight(),this.is_multiple?this.result_deactivate(b):(this.search_results.find(".result-selected").removeClass("result-selected"),this.result_single_selected=b,this.selected_item.removeClass("chzn-default")),b.addClass("result-selected"),e=c.substr(c.lastIndexOf("_")+1),d=this.results_data[e],d.selected=!0,this.form_field.options[d.options_index].selected=!0,this.is_multiple?this.choice_build(d):(this.selected_item.find("span").first().text(d.text),this.allow_single_deselect&&this.single_deselect_control_build()),(!a.metaKey||!this.is_multiple)&&this.results_hide(),this.search_field.val(""),this.form_field_jq.trigger("change"),this.search_field_scale()},e.prototype.result_activate=function(a){return a.addClass("active-result")},e.prototype.result_deactivate=function(a){return a.removeClass("active-result")},e.prototype.result_deselect=function(b){var c,d;return d=this.results_data[b],d.selected=!1,this.form_field.options[d.options_index].selected=!1,c=a("#"+this.container_id+"_o_"+b),c.removeClass("result-selected").addClass("active-result").show(),this.result_clear_highlight(),this.winnow_results(),this.form_field_jq.trigger("change"),this.search_field_scale()},e.prototype.single_deselect_control_build=function(){if(this.allow_single_deselect&&this.selected_item.find("abbr").length<1)return this.selected_item.find("span").first().after('<abbr class="search-choice-close"></abbr>')},e.prototype.winnow_results=function(){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;this.no_results_clear(),j=0,k=this.search_field.val()===this.default_text?"":a("<div/>").text(a.trim(this.search_field.val())).html(),g=this.search_contains?"":"^",f=new RegExp(g+k.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),"i"),n=new RegExp(k.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),"i"),s=this.results_data;for(o=0,q=s.length;o<q;o++){c=s[o];if(!c.disabled&&!c.empty)if(c.group)a("#"+c.dom_id).css("display","none");else if(!this.is_multiple||!c.selected){b=!1,i=c.dom_id,h=a("#"+i);if(f.test(c.html))b=!0,j+=1;else if(c.html.indexOf(" ")>=0||c.html.indexOf("[")===0){e=c.html.replace(/\[|\]/g,"").split(" ");if(e.length)for(p=0,r=e.length;p<r;p++)d=e[p],f.test(d)&&(b=!0,j+=1)}b?(k.length?(l=c.html.search(n),m=c.html.substr(0,l+k.length)+"</em>"+c.html.substr(l+k.length),m=m.substr(0,l)+"<em>"+m.substr(l)):m=c.html,h.html(m),this.result_activate(h),c.group_array_index!=null&&a("#"+this.results_data[c.group_array_index].dom_id).css("display","list-item")):(this.result_highlight&&i===this.result_highlight.attr("id")&&this.result_clear_highlight(),this.result_deactivate(h))}}return j<1&&k.length?this.no_results(k):this.winnow_results_set_highlight()},e.prototype.winnow_results_clear=function(){var b,c,d,e,f;this.search_field.val(""),c=this.search_results.find("li"),f=[];for(d=0,e=c.length;d<e;d++)b=c[d],b=a(b),b.hasClass("group-result")?f.push(b.css("display","auto")):!this.is_multiple||!b.hasClass("result-selected")?f.push(this.result_activate(b)):f.push(void 0);return f},e.prototype.winnow_results_set_highlight=function(){var a,b;if(!this.result_highlight){b=this.is_multiple?[]:this.search_results.find(".result-selected.active-result"),a=b.length?b.first():this.search_results.find(".active-result").first();if(a!=null)return this.result_do_highlight(a)}},e.prototype.no_results=function(b){var c;return c=a('<li class="no-results">'+this.results_none_found+' "<span></span>"</li>'),c.find("span").first().html(b),this.search_results.append(c)},e.prototype.no_results_clear=function(){return this.search_results.find(".no-results").remove()},e.prototype.keydown_arrow=function(){var b,c;this.result_highlight?this.results_showing&&(c=this.result_highlight.nextAll("li.active-result").first(),c&&this.result_do_highlight(c)):(b=this.search_results.find("li.active-result").first(),b&&this.result_do_highlight(a(b)));if(!this.results_showing)return this.results_show()},e.prototype.keyup_arrow=function(){var a;if(!this.results_showing&&!this.is_multiple)return this.results_show();if(this.result_highlight)return a=this.result_highlight.prevAll("li.active-result"),a.length?this.result_do_highlight(a.first()):(this.choices>0&&this.results_hide(),this.result_clear_highlight())},e.prototype.keydown_backstroke=function(){return this.pending_backstroke?(this.choice_destroy(this.pending_backstroke.find("a").first()),this.clear_backstroke()):(this.pending_backstroke=this.search_container.siblings("li.search-choice").last(),this.pending_backstroke.addClass("search-choice-focus"))},e.prototype.clear_backstroke=function(){return this.pending_backstroke&&this.pending_backstroke.removeClass("search-choice-focus"),this.pending_backstroke=null},e.prototype.keydown_checker=function(a){var b,c;b=(c=a.which)!=null?c:a.keyCode,this.search_field_scale(),b!==8&&this.pending_backstroke&&this.clear_backstroke();switch(b){case 8:this.backstroke_length=this.search_field.val().length;break;case 9:this.results_showing&&!this.is_multiple&&this.result_select(a),this.mouse_on_container=!1;break;case 13:a.preventDefault();break;case 38:a.preventDefault(),this.keyup_arrow();break;case 40:this.keydown_arrow()}},e.prototype.search_field_scale=function(){var b,c,d,e,f,g,h,i,j;if(this.is_multiple){d=0,h=0,f="position:absolute; left: -1000px; top: -1000px; display:none;",g=["font-size","font-style","font-weight","font-family","line-height","text-transform","letter-spacing"];for(i=0,j=g.length;i<j;i++)e=g[i],f+=e+":"+this.search_field.css(e)+";";return c=a("<div />",{style:f}),c.text(this.search_field.val()),a("body").append(c),h=c.width()+25,c.remove(),h>this.f_width-10&&(h=this.f_width-10),this.search_field.css({width:h+"px"}),b=this.container.height(),this.dropdown.css({top:b+"px"})}},e.prototype.generate_random_id=function(){var b;b="sel"+this.generate_random_char()+this.generate_random_char()+this.generate_random_char();while(a("#"+b).length>0)b+=this.generate_random_char();return b},e}(AbstractChosen),c=function(a){var b;return b=a.outerWidth()-a.width()},d.get_side_border_padding=c}.call(this) \ No newline at end of file
diff --git a/3rdparty/miniColors/css/images/colors.png b/3rdparty/miniColors/css/images/colors.png
index 1b4f819d8d9..deb50a9ae10 100755
--- a/3rdparty/miniColors/css/images/colors.png
+++ b/3rdparty/miniColors/css/images/colors.png
Binary files differ
diff --git a/3rdparty/miniColors/css/images/trigger.png b/3rdparty/miniColors/css/images/trigger.png
index 8c169fd6053..96c91294f3f 100755
--- a/3rdparty/miniColors/css/images/trigger.png
+++ b/3rdparty/miniColors/css/images/trigger.png
Binary files differ
diff --git a/3rdparty/miniColors/css/jquery.miniColors.css b/3rdparty/miniColors/css/jquery.miniColors.css
index 381bc1dc065..592f44894d1 100755
--- a/3rdparty/miniColors/css/jquery.miniColors.css
+++ b/3rdparty/miniColors/css/jquery.miniColors.css
@@ -1,19 +1,13 @@
-.miniColors-trigger {
- height: 22px;
- width: 22px;
- background: url(images/trigger.png) center no-repeat;
- vertical-align: middle;
- margin: 0 .25em;
- display: inline-block;
- outline: none;
+INPUT.miniColors {
+ margin-right: 4px;
}
.miniColors-selector {
position: absolute;
width: 175px;
height: 150px;
- background: #FFF;
- border: solid 1px #BBB;
+ background: white;
+ border: solid 1px #bababa;
-moz-box-shadow: 0 0 6px rgba(0, 0, 0, .25);
-webkit-box-shadow: 0 0 6px rgba(0, 0, 0, .25);
box-shadow: 0 0 6px rgba(0, 0, 0, .25);
@@ -24,9 +18,13 @@
z-index: 999999;
}
+.miniColors.opacity.miniColors-selector {
+ width: 200px;
+}
+
.miniColors-selector.black {
- background: #000;
- border-color: #000;
+ background: black;
+ border-color: black;
}
.miniColors-colors {
@@ -35,25 +33,43 @@
left: 5px;
width: 150px;
height: 150px;
- background: url(images/colors.png) right no-repeat;
+ background: url(images/colors.png) -40px 0 no-repeat;
cursor: crosshair;
}
+.miniColors.opacity .miniColors-colors {
+ left: 30px;
+}
+
.miniColors-hues {
position: absolute;
top: 5px;
left: 160px;
width: 20px;
height: 150px;
- background: url(images/colors.png) left no-repeat;
+ background: url(images/colors.png) 0 0 no-repeat;
+ cursor: crosshair;
+}
+
+.miniColors.opacity .miniColors-hues {
+ left: 185px;
+}
+
+.miniColors-opacity {
+ position: absolute;
+ top: 5px;
+ left: 5px;
+ width: 20px;
+ height: 150px;
+ background: url(images/colors.png) -20px 0 no-repeat;
cursor: crosshair;
}
.miniColors-colorPicker {
position: absolute;
- width: 9px;
- height: 9px;
- border: 1px solid #fff;
+ width: 11px;
+ height: 11px;
+ border: 1px solid black;
-moz-border-radius: 11px;
-webkit-border-radius: 11px;
border-radius: 11px;
@@ -64,18 +80,46 @@
left: 0;
width: 7px;
height: 7px;
- border: 1px solid #000;
+ border: 2px solid white;
-moz-border-radius: 9px;
-webkit-border-radius: 9px;
border-radius: 9px;
}
-.miniColors-huePicker {
+.miniColors-huePicker,
+.miniColors-opacityPicker {
position: absolute;
- left: -3px;
- width: 24px;
- height: 1px;
- border: 1px solid #fff;
+ left: -2px;
+ width: 22px;
+ height: 2px;
+ border: 1px solid black;
+ background: white;
+ margin-top: -1px;
border-radius: 2px;
- background: #000;
+}
+
+.miniColors-trigger,
+.miniColors-triggerWrap {
+ width: 22px;
+ height: 22px;
+ display: inline-block;
+}
+
+.miniColors-triggerWrap {
+ background: url(images/trigger.png) -22px 0 no-repeat;
+}
+
+.miniColors-triggerWrap.disabled {
+ filter: alpha(opacity=50);
+ opacity: .5;
+}
+
+.miniColors-trigger {
+ vertical-align: middle;
+ outline: none;
+ background: url(images/trigger.png) 0 0 no-repeat;
+}
+
+.miniColors-triggerWrap.disabled .miniColors-trigger {
+ cursor: default;
} \ No newline at end of file
diff --git a/3rdparty/miniColors/js/jquery.miniColors.js b/3rdparty/miniColors/js/jquery.miniColors.js
index 187db3fa84e..a0f439c2c49 100755
--- a/3rdparty/miniColors/js/jquery.miniColors.js
+++ b/3rdparty/miniColors/js/jquery.miniColors.js
@@ -1,7 +1,7 @@
/*
* jQuery miniColors: A small color selector
*
- * Copyright 2011 Cory LaViska for A Beautiful Site, LLC. (http://abeautifulsite.net/)
+ * Copyright 2012 Cory LaViska for A Beautiful Site, LLC. (http://www.abeautifulsite.net/)
*
* Dual licensed under the MIT or GPL Version 2 licenses
*
@@ -18,20 +18,30 @@ if(jQuery) (function($) {
//
// Determine initial color (defaults to white)
- var color = expandHex(input.val());
- if( !color ) color = 'ffffff';
- var hsb = hex2hsb(color);
+ var color = expandHex(input.val()) || 'ffffff',
+ hsb = hex2hsb(color),
+ rgb = hsb2rgb(hsb),
+ alpha = parseFloat(input.attr('data-opacity')).toFixed(2);
+
+ if( alpha > 1 ) alpha = 1;
+ if( alpha < 0 ) alpha = 0;
// Create trigger
var trigger = $('<a class="miniColors-trigger" style="background-color: #' + color + '" href="#"></a>');
trigger.insertAfter(input);
+ trigger.wrap('<span class="miniColors-triggerWrap"></span>');
+ if( o.opacity ) {
+ trigger.css('backgroundColor', 'rgba(' + rgb.r + ', ' + rgb.g + ', ' + rgb.b + ', ' + alpha + ')');
+ }
// Set input data and update attributes
input
.addClass('miniColors')
.data('original-maxlength', input.attr('maxlength') || null)
.data('original-autocomplete', input.attr('autocomplete') || null)
- .data('letterCase', 'uppercase')
+ .data('letterCase', o.letterCase === 'uppercase' ? 'uppercase' : 'lowercase')
+ .data('opacity', o.opacity ? true : false)
+ .data('alpha', alpha)
.data('trigger', trigger)
.data('hsb', hsb)
.data('change', o.change ? o.change : null)
@@ -42,11 +52,11 @@ if(jQuery) (function($) {
.val('#' + convertCase(color, o.letterCase));
// Handle options
- if( o.readonly ) input.prop('readonly', true);
- if( o.disabled ) disable(input);
+ if( o.readonly || input.prop('readonly') ) input.prop('readonly', true);
+ if( o.disabled || input.prop('disabled') ) disable(input);
// Show selector when trigger is clicked
- trigger.bind('click.miniColors', function(event) {
+ trigger.on('click.miniColors', function(event) {
event.preventDefault();
if( input.val() === '' ) input.val('#');
show(input);
@@ -54,29 +64,29 @@ if(jQuery) (function($) {
});
// Show selector when input receives focus
- input.bind('focus.miniColors', function(event) {
+ input.on('focus.miniColors', function(event) {
if( input.val() === '' ) input.val('#');
show(input);
});
// Hide on blur
- input.bind('blur.miniColors', function(event) {
+ input.on('blur.miniColors', function(event) {
var hex = expandHex( hsb2hex(input.data('hsb')) );
input.val( hex ? '#' + convertCase(hex, input.data('letterCase')) : '' );
});
// Hide when tabbing out of the input
- input.bind('keydown.miniColors', function(event) {
+ input.on('keydown.miniColors', function(event) {
if( event.keyCode === 9 ) hide(input);
});
// Update when color is typed in
- input.bind('keyup.miniColors', function(event) {
+ input.on('keyup.miniColors', function(event) {
setColorFromInput(input);
});
// Handle pasting
- input.bind('paste.miniColors', function(event) {
+ input.on('paste.miniColors', function(event) {
// Short pause to wait for paste to complete
setTimeout( function() {
setColorFromInput(input);
@@ -89,19 +99,18 @@ if(jQuery) (function($) {
//
// Destroys an active instance of the miniColors selector
//
-
hide();
input = $(input);
// Restore to original state
- input.data('trigger').remove();
+ input.data('trigger').parent().remove();
input
.attr('autocomplete', input.data('original-autocomplete'))
.attr('maxlength', input.data('original-maxlength'))
.removeData()
.removeClass('miniColors')
- .unbind('.miniColors');
- $(document).unbind('.miniColors');
+ .off('.miniColors');
+ $(document).off('.miniColors');
};
var enable = function(input) {
@@ -110,8 +119,7 @@ if(jQuery) (function($) {
//
input
.prop('disabled', false)
- .data('trigger')
- .css('opacity', 1);
+ .data('trigger').parent().removeClass('disabled');
};
var disable = function(input) {
@@ -121,8 +129,7 @@ if(jQuery) (function($) {
hide(input);
input
.prop('disabled', true)
- .data('trigger')
- .css('opacity', 0.5);
+ .data('trigger').parent().addClass('disabled');
};
var show = function(input) {
@@ -133,24 +140,27 @@ if(jQuery) (function($) {
// Hide all other instances
hide();
-
+
// Generate the selector
var selector = $('<div class="miniColors-selector"></div>');
selector
- .append('<div class="miniColors-colors" style="background-color: #FFF;"><div class="miniColors-colorPicker"><div class="miniColors-colorPicker-inner"></div></div>')
.append('<div class="miniColors-hues"><div class="miniColors-huePicker"></div></div>')
- .css({
- top: input.is(':visible') ? input.offset().top + input.outerHeight() : input.data('trigger').offset().top + input.data('trigger').outerHeight(),
- left: input.is(':visible') ? input.offset().left : input.data('trigger').offset().left,
- display: 'none'
- })
+ .append('<div class="miniColors-colors" style="background-color: #FFF;"><div class="miniColors-colorPicker"><div class="miniColors-colorPicker-inner"></div></div>')
+ .css('display', 'none')
.addClass( input.attr('class') );
+ // Opacity
+ if( input.data('opacity') ) {
+ selector
+ .addClass('opacity')
+ .prepend('<div class="miniColors-opacity"><div class="miniColors-opacityPicker"></div></div>');
+ }
+
// Set background for colors
var hsb = input.data('hsb');
selector
- .find('.miniColors-colors')
- .css('backgroundColor', '#' + hsb2hex({ h: hsb.h, s: 100, b: 100 }));
+ .find('.miniColors-colors').css('backgroundColor', '#' + hsb2hex({ h: hsb.h, s: 100, b: 100 })).end()
+ .find('.miniColors-opacity').css('backgroundColor', '#' + hsb2hex({ h: hsb.h, s: hsb.s, b: hsb.b })).end();
// Set colorPicker position
var colorPosition = input.data('colorPosition');
@@ -162,64 +172,106 @@ if(jQuery) (function($) {
// Set huePicker position
var huePosition = input.data('huePosition');
if( !huePosition ) huePosition = getHuePositionFromHSB(hsb);
- selector.find('.miniColors-huePicker').css('top', huePosition.y + 'px');
+ selector.find('.miniColors-huePicker').css('top', huePosition + 'px');
+
+ // Set opacity position
+ var opacityPosition = input.data('opacityPosition');
+ if( !opacityPosition ) opacityPosition = getOpacityPositionFromAlpha(input.attr('data-opacity'));
+ selector.find('.miniColors-opacityPicker').css('top', opacityPosition + 'px');
// Set input data
input
.data('selector', selector)
.data('huePicker', selector.find('.miniColors-huePicker'))
+ .data('opacityPicker', selector.find('.miniColors-opacityPicker'))
.data('colorPicker', selector.find('.miniColors-colorPicker'))
.data('mousebutton', 0);
-
+
$('BODY').append(selector);
- selector.fadeIn(100);
+
+ // Position the selector
+ var trigger = input.data('trigger'),
+ hidden = !input.is(':visible'),
+ top = hidden ? trigger.offset().top + trigger.outerHeight() : input.offset().top + input.outerHeight(),
+ left = hidden ? trigger.offset().left : input.offset().left,
+ selectorWidth = selector.outerWidth(),
+ selectorHeight = selector.outerHeight(),
+ triggerWidth = trigger.outerWidth(),
+ triggerHeight = trigger.outerHeight(),
+ windowHeight = $(window).height(),
+ windowWidth = $(window).width(),
+ scrollTop = $(window).scrollTop(),
+ scrollLeft = $(window).scrollLeft();
+
+ // Adjust based on viewport
+ if( (top + selectorHeight) > windowHeight + scrollTop ) top = top - selectorHeight - triggerHeight;
+ if( (left + selectorWidth) > windowWidth + scrollLeft ) left = left - selectorWidth + triggerWidth;
+
+ // Set position and show
+ selector.css({
+ top: top,
+ left: left
+ }).fadeIn(100);
// Prevent text selection in IE
- selector.bind('selectstart', function() { return false; });
+ selector.on('selectstart', function() { return false; });
- $(document).bind('mousedown.miniColors touchstart.miniColors', function(event) {
-
- input.data('mousebutton', 1);
- var testSubject = $(event.target).parents().andSelf();
-
- if( testSubject.hasClass('miniColors-colors') ) {
- event.preventDefault();
- input.data('moving', 'colors');
- moveColor(input, event);
- }
-
- if( testSubject.hasClass('miniColors-hues') ) {
- event.preventDefault();
- input.data('moving', 'hues');
- moveHue(input, event);
- }
-
- if( testSubject.hasClass('miniColors-selector') ) {
- event.preventDefault();
- return;
- }
-
- if( testSubject.hasClass('miniColors') ) return;
-
- hide(input);
- });
+ // Hide on resize (IE7/8 trigger this when any element is resized...)
+ if( !$.browser.msie || ($.browser.msie && $.browser.version >= 9) ) {
+ $(window).on('resize.miniColors', function(event) {
+ hide(input);
+ });
+ }
$(document)
- .bind('mouseup.miniColors touchend.miniColors', function(event) {
+ .on('mousedown.miniColors touchstart.miniColors', function(event) {
+
+ input.data('mousebutton', 1);
+ var testSubject = $(event.target).parents().andSelf();
+
+ if( testSubject.hasClass('miniColors-colors') ) {
+ event.preventDefault();
+ input.data('moving', 'colors');
+ moveColor(input, event);
+ }
+
+ if( testSubject.hasClass('miniColors-hues') ) {
+ event.preventDefault();
+ input.data('moving', 'hues');
+ moveHue(input, event);
+ }
+
+ if( testSubject.hasClass('miniColors-opacity') ) {
+ event.preventDefault();
+ input.data('moving', 'opacity');
+ moveOpacity(input, event);
+ }
+
+ if( testSubject.hasClass('miniColors-selector') ) {
+ event.preventDefault();
+ return;
+ }
+
+ if( testSubject.hasClass('miniColors') ) return;
+
+ hide(input);
+ })
+ .on('mouseup.miniColors touchend.miniColors', function(event) {
event.preventDefault();
input.data('mousebutton', 0).removeData('moving');
})
- .bind('mousemove.miniColors touchmove.miniColors', function(event) {
+ .on('mousemove.miniColors touchmove.miniColors', function(event) {
event.preventDefault();
if( input.data('mousebutton') === 1 ) {
if( input.data('moving') === 'colors' ) moveColor(input, event);
if( input.data('moving') === 'hues' ) moveHue(input, event);
+ if( input.data('moving') === 'opacity' ) moveOpacity(input, event);
}
});
// Fire open callback
if( input.data('open') ) {
- input.data('open').call(input.get(0), '#' + hsb2hex(hsb), hsb2rgb(hsb));
+ input.data('open').call(input.get(0), '#' + hsb2hex(hsb), $.extend(hsb2rgb(hsb), { a: parseFloat(input.attr('data-opacity')) }));
}
};
@@ -231,22 +283,22 @@ if(jQuery) (function($) {
//
// Hide all other instances if input isn't specified
- if( !input ) input = '.miniColors';
+ if( !input ) input = $('.miniColors');
- $(input).each( function() {
+ input.each( function() {
var selector = $(this).data('selector');
$(this).removeData('selector');
$(selector).fadeOut(100, function() {
// Fire close callback
if( input.data('close') ) {
var hsb = input.data('hsb'), hex = hsb2hex(hsb);
- input.data('close').call(input.get(0), '#' + hex, hsb2rgb(hsb));
+ input.data('close').call(input.get(0), '#' + hex, $.extend(hsb2rgb(hsb), { a: parseFloat(input.attr('data-opacity')) }));
}
$(this).remove();
});
});
- $(document).unbind('.miniColors');
+ $(document).off('.miniColors');
};
@@ -266,8 +318,8 @@ if(jQuery) (function($) {
position.x = event.originalEvent.changedTouches[0].pageX;
position.y = event.originalEvent.changedTouches[0].pageY;
}
- position.x = position.x - input.data('selector').find('.miniColors-colors').offset().left - 5;
- position.y = position.y - input.data('selector').find('.miniColors-colors').offset().top - 5;
+ position.x = position.x - input.data('selector').find('.miniColors-colors').offset().left - 6;
+ position.y = position.y - input.data('selector').find('.miniColors-colors').offset().top - 6;
if( position.x <= -5 ) position.x = -5;
if( position.x >= 144 ) position.x = 144;
if( position.y <= -5 ) position.y = -5;
@@ -301,23 +353,21 @@ if(jQuery) (function($) {
huePicker.hide();
- var position = {
- y: event.pageY
- };
+ var position = event.pageY;
// Touch support
if( event.originalEvent.changedTouches ) {
- position.y = event.originalEvent.changedTouches[0].pageY;
+ position = event.originalEvent.changedTouches[0].pageY;
}
- position.y = position.y - input.data('selector').find('.miniColors-colors').offset().top - 1;
- if( position.y <= -1 ) position.y = -1;
- if( position.y >= 149 ) position.y = 149;
+ position = position - input.data('selector').find('.miniColors-colors').offset().top - 1;
+ if( position <= -1 ) position = -1;
+ if( position >= 149 ) position = 149;
input.data('huePosition', position);
- huePicker.css('top', position.y).show();
+ huePicker.css('top', position).show();
// Calculate hue
- var h = Math.round((150 - position.y - 1) * 2.4);
+ var h = Math.round((150 - position - 1) * 2.4);
if( h < 0 ) h = 0;
if( h > 360 ) h = 360;
@@ -330,18 +380,65 @@ if(jQuery) (function($) {
};
+ var moveOpacity = function(input, event) {
+
+ var opacityPicker = input.data('opacityPicker');
+
+ opacityPicker.hide();
+
+ var position = event.pageY;
+
+ // Touch support
+ if( event.originalEvent.changedTouches ) {
+ position = event.originalEvent.changedTouches[0].pageY;
+ }
+
+ position = position - input.data('selector').find('.miniColors-colors').offset().top - 1;
+ if( position <= -1 ) position = -1;
+ if( position >= 149 ) position = 149;
+ input.data('opacityPosition', position);
+ opacityPicker.css('top', position).show();
+
+ // Calculate opacity
+ var alpha = parseFloat((150 - position - 1) / 150).toFixed(2);
+ if( alpha < 0 ) alpha = 0;
+ if( alpha > 1 ) alpha = 1;
+
+ // Update opacity
+ input
+ .data('alpha', alpha)
+ .attr('data-opacity', alpha);
+
+ // Set color
+ setColor(input, input.data('hsb'), true);
+
+ };
+
var setColor = function(input, hsb, updateInput) {
input.data('hsb', hsb);
- var hex = hsb2hex(hsb);
+ var hex = hsb2hex(hsb),
+ selector = $(input.data('selector'));
if( updateInput ) input.val( '#' + convertCase(hex, input.data('letterCase')) );
+
+ selector
+ .find('.miniColors-colors').css('backgroundColor', '#' + hsb2hex({ h: hsb.h, s: 100, b: 100 })).end()
+ .find('.miniColors-opacity').css('backgroundColor', '#' + hex).end();
+
+ var rgb = hsb2rgb(hsb);
+
+ // Set background color (also fallback for non RGBA browsers)
input.data('trigger').css('backgroundColor', '#' + hex);
- if( input.data('selector') ) input.data('selector').find('.miniColors-colors').css('backgroundColor', '#' + hsb2hex({ h: hsb.h, s: 100, b: 100 }));
+
+ // Set background color + opacity
+ if( input.data('opacity') ) {
+ input.data('trigger').css('backgroundColor', 'rgba(' + rgb.r + ', ' + rgb.g + ', ' + rgb.b + ', ' + input.attr('data-opacity') + ')');
+ }
// Fire change callback
if( input.data('change') ) {
- if( hex === input.data('lastChange') ) return;
- input.data('change').call(input.get(0), '#' + hex, hsb2rgb(hsb));
- input.data('lastChange', hex);
+ if( (hex + ',' + input.attr('data-opacity')) === input.data('lastChange') ) return;
+ input.data('change').call(input.get(0), '#' + hex, $.extend(hsb2rgb(hsb), { a: parseFloat(input.attr('data-opacity')) }));
+ input.data('lastChange', hex + ',' + input.attr('data-opacity'));
}
};
@@ -355,10 +452,6 @@ if(jQuery) (function($) {
// Get HSB equivalent
var hsb = hex2hsb(hex);
- // If color is the same, no change required
- var currentHSB = input.data('hsb');
- if( hsb.h === currentHSB.h && hsb.s === currentHSB.s && hsb.b === currentHSB.b ) return true;
-
// Set colorPicker position
var colorPosition = getColorPositionFromHSB(hsb);
var colorPicker = $(input.data('colorPicker'));
@@ -368,9 +461,14 @@ if(jQuery) (function($) {
// Set huePosition position
var huePosition = getHuePositionFromHSB(hsb);
var huePicker = $(input.data('huePicker'));
- huePicker.css('top', huePosition.y + 'px');
+ huePicker.css('top', huePosition + 'px');
input.data('huePosition', huePosition);
+ // Set opacity position
+ var opacityPosition = getOpacityPositionFromAlpha(input.attr('data-opacity'));
+ var opacityPicker = $(input.data('opacityPicker'));
+ opacityPicker.css('top', opacityPosition + 'px');
+ input.data('opacityPosition', opacityPosition);
setColor(input, hsb);
return true;
@@ -378,9 +476,11 @@ if(jQuery) (function($) {
};
var convertCase = function(string, letterCase) {
- if( letterCase === 'lowercase' ) return string.toLowerCase();
- if( letterCase === 'uppercase' ) return string.toUpperCase();
- return string;
+ if( letterCase === 'uppercase' ) {
+ return string.toUpperCase();
+ } else {
+ return string.toLowerCase();
+ }
};
var getColorPositionFromHSB = function(hsb) {
@@ -397,7 +497,14 @@ if(jQuery) (function($) {
var y = 150 - (hsb.h / 2.4);
if( y < 0 ) h = 0;
if( y > 150 ) h = 150;
- return { y: y - 1 };
+ return y;
+ };
+
+ var getOpacityPositionFromAlpha = function(alpha) {
+ var y = 150 * alpha;
+ if( y < 0 ) y = 0;
+ if( y > 150 ) y = 150;
+ return 150 - y;
};
var cleanHex = function(hex) {
@@ -542,6 +649,29 @@ if(jQuery) (function($) {
});
return $(this);
+
+ case 'opacity':
+
+ // Getter
+ if( data === undefined ) {
+ if( !$(this).hasClass('miniColors') ) return;
+ if( $(this).data('opacity') ) {
+ return parseFloat($(this).attr('data-opacity'));
+ } else {
+ return null;
+ }
+ }
+
+ // Setter
+ $(this).each( function() {
+ if( !$(this).hasClass('miniColors') ) return;
+ if( data < 0 ) data = 0;
+ if( data > 1 ) data = 1;
+ $(this).attr('data-opacity', data).data('alpha', data);
+ setColorFromInput($(this));
+ });
+
+ return $(this);
case 'destroy':
diff --git a/3rdparty/miniColors/js/jquery.miniColors.min.js b/3rdparty/miniColors/js/jquery.miniColors.min.js
index c00e0ace6b5..1d3346455b0 100755
--- a/3rdparty/miniColors/js/jquery.miniColors.min.js
+++ b/3rdparty/miniColors/js/jquery.miniColors.min.js
@@ -1,9 +1,9 @@
/*
* jQuery miniColors: A small color selector
*
- * Copyright 2011 Cory LaViska for A Beautiful Site, LLC. (http://abeautifulsite.net/)
+ * Copyright 2012 Cory LaViska for A Beautiful Site, LLC. (http://www.abeautifulsite.net/)
*
* Dual licensed under the MIT or GPL Version 2 licenses
*
*/
-if(jQuery)(function($){$.extend($.fn,{miniColors:function(o,data){var create=function(input,o,data){var color=expandHex(input.val());if(!color)color='ffffff';var hsb=hex2hsb(color);var trigger=$('<a class="miniColors-trigger" style="background-color: #'+color+'" href="#"></a>');trigger.insertAfter(input);input.addClass('miniColors').data('original-maxlength',input.attr('maxlength')||null).data('original-autocomplete',input.attr('autocomplete')||null).data('letterCase','uppercase').data('trigger',trigger).data('hsb',hsb).data('change',o.change?o.change:null).data('close',o.close?o.close:null).data('open',o.open?o.open:null).attr('maxlength',7).attr('autocomplete','off').val('#'+convertCase(color,o.letterCase));if(o.readonly)input.prop('readonly',true);if(o.disabled)disable(input);trigger.bind('click.miniColors',function(event){event.preventDefault();if(input.val()==='')input.val('#');show(input)});input.bind('focus.miniColors',function(event){if(input.val()==='')input.val('#');show(input)});input.bind('blur.miniColors',function(event){var hex=expandHex(hsb2hex(input.data('hsb')));input.val(hex?'#'+convertCase(hex,input.data('letterCase')):'')});input.bind('keydown.miniColors',function(event){if(event.keyCode===9)hide(input)});input.bind('keyup.miniColors',function(event){setColorFromInput(input)});input.bind('paste.miniColors',function(event){setTimeout(function(){setColorFromInput(input)},5)})};var destroy=function(input){hide();input=$(input);input.data('trigger').remove();input.attr('autocomplete',input.data('original-autocomplete')).attr('maxlength',input.data('original-maxlength')).removeData().removeClass('miniColors').unbind('.miniColors');$(document).unbind('.miniColors')};var enable=function(input){input.prop('disabled',false).data('trigger').css('opacity',1)};var disable=function(input){hide(input);input.prop('disabled',true).data('trigger').css('opacity',0.5)};var show=function(input){if(input.prop('disabled'))return false;hide();var selector=$('<div class="miniColors-selector"></div>');selector.append('<div class="miniColors-colors" style="background-color: #FFF;"><div class="miniColors-colorPicker"><div class="miniColors-colorPicker-inner"></div></div>').append('<div class="miniColors-hues"><div class="miniColors-huePicker"></div></div>').css({top:input.is(':visible')?input.offset().top+input.outerHeight():input.data('trigger').offset().top+input.data('trigger').outerHeight(),left:input.is(':visible')?input.offset().left:input.data('trigger').offset().left,display:'none'}).addClass(input.attr('class'));var hsb=input.data('hsb');selector.find('.miniColors-colors').css('backgroundColor','#'+hsb2hex({h:hsb.h,s:100,b:100}));var colorPosition=input.data('colorPosition');if(!colorPosition)colorPosition=getColorPositionFromHSB(hsb);selector.find('.miniColors-colorPicker').css('top',colorPosition.y+'px').css('left',colorPosition.x+'px');var huePosition=input.data('huePosition');if(!huePosition)huePosition=getHuePositionFromHSB(hsb);selector.find('.miniColors-huePicker').css('top',huePosition.y+'px');input.data('selector',selector).data('huePicker',selector.find('.miniColors-huePicker')).data('colorPicker',selector.find('.miniColors-colorPicker')).data('mousebutton',0);$('BODY').append(selector);selector.fadeIn(100);selector.bind('selectstart',function(){return false});$(document).bind('mousedown.miniColors touchstart.miniColors',function(event){input.data('mousebutton',1);var testSubject=$(event.target).parents().andSelf();if(testSubject.hasClass('miniColors-colors')){event.preventDefault();input.data('moving','colors');moveColor(input,event)}if(testSubject.hasClass('miniColors-hues')){event.preventDefault();input.data('moving','hues');moveHue(input,event)}if(testSubject.hasClass('miniColors-selector')){event.preventDefault();return}if(testSubject.hasClass('miniColors'))return;hide(input)});$(document).bind('mouseup.miniColors touchend.miniColors',function(event){event.preventDefault();input.data('mousebutton',0).removeData('moving')}).bind('mousemove.miniColors touchmove.miniColors',function(event){event.preventDefault();if(input.data('mousebutton')===1){if(input.data('moving')==='colors')moveColor(input,event);if(input.data('moving')==='hues')moveHue(input,event)}});if(input.data('open')){input.data('open').call(input.get(0),'#'+hsb2hex(hsb),hsb2rgb(hsb))}};var hide=function(input){if(!input)input='.miniColors';$(input).each(function(){var selector=$(this).data('selector');$(this).removeData('selector');$(selector).fadeOut(100,function(){if(input.data('close')){var hsb=input.data('hsb'),hex=hsb2hex(hsb);input.data('close').call(input.get(0),'#'+hex,hsb2rgb(hsb))}$(this).remove()})});$(document).unbind('.miniColors')};var moveColor=function(input,event){var colorPicker=input.data('colorPicker');colorPicker.hide();var position={x:event.pageX,y:event.pageY};if(event.originalEvent.changedTouches){position.x=event.originalEvent.changedTouches[0].pageX;position.y=event.originalEvent.changedTouches[0].pageY}position.x=position.x-input.data('selector').find('.miniColors-colors').offset().left-5;position.y=position.y-input.data('selector').find('.miniColors-colors').offset().top-5;if(position.x<=-5)position.x=-5;if(position.x>=144)position.x=144;if(position.y<=-5)position.y=-5;if(position.y>=144)position.y=144;input.data('colorPosition',position);colorPicker.css('left',position.x).css('top',position.y).show();var s=Math.round((position.x+5)*0.67);if(s<0)s=0;if(s>100)s=100;var b=100-Math.round((position.y+5)*0.67);if(b<0)b=0;if(b>100)b=100;var hsb=input.data('hsb');hsb.s=s;hsb.b=b;setColor(input,hsb,true)};var moveHue=function(input,event){var huePicker=input.data('huePicker');huePicker.hide();var position={y:event.pageY};if(event.originalEvent.changedTouches){position.y=event.originalEvent.changedTouches[0].pageY}position.y=position.y-input.data('selector').find('.miniColors-colors').offset().top-1;if(position.y<=-1)position.y=-1;if(position.y>=149)position.y=149;input.data('huePosition',position);huePicker.css('top',position.y).show();var h=Math.round((150-position.y-1)*2.4);if(h<0)h=0;if(h>360)h=360;var hsb=input.data('hsb');hsb.h=h;setColor(input,hsb,true)};var setColor=function(input,hsb,updateInput){input.data('hsb',hsb);var hex=hsb2hex(hsb);if(updateInput)input.val('#'+convertCase(hex,input.data('letterCase')));input.data('trigger').css('backgroundColor','#'+hex);if(input.data('selector'))input.data('selector').find('.miniColors-colors').css('backgroundColor','#'+hsb2hex({h:hsb.h,s:100,b:100}));if(input.data('change')){if(hex===input.data('lastChange'))return;input.data('change').call(input.get(0),'#'+hex,hsb2rgb(hsb));input.data('lastChange',hex)}};var setColorFromInput=function(input){input.val('#'+cleanHex(input.val()));var hex=expandHex(input.val());if(!hex)return false;var hsb=hex2hsb(hex);var currentHSB=input.data('hsb');if(hsb.h===currentHSB.h&&hsb.s===currentHSB.s&&hsb.b===currentHSB.b)return true;var colorPosition=getColorPositionFromHSB(hsb);var colorPicker=$(input.data('colorPicker'));colorPicker.css('top',colorPosition.y+'px').css('left',colorPosition.x+'px');input.data('colorPosition',colorPosition);var huePosition=getHuePositionFromHSB(hsb);var huePicker=$(input.data('huePicker'));huePicker.css('top',huePosition.y+'px');input.data('huePosition',huePosition);setColor(input,hsb);return true};var convertCase=function(string,letterCase){if(letterCase==='lowercase')return string.toLowerCase();if(letterCase==='uppercase')return string.toUpperCase();return string};var getColorPositionFromHSB=function(hsb){var x=Math.ceil(hsb.s/0.67);if(x<0)x=0;if(x>150)x=150;var y=150-Math.ceil(hsb.b/0.67);if(y<0)y=0;if(y>150)y=150;return{x:x-5,y:y-5}};var getHuePositionFromHSB=function(hsb){var y=150-(hsb.h/2.4);if(y<0)h=0;if(y>150)h=150;return{y:y-1}};var cleanHex=function(hex){return hex.replace(/[^A-F0-9]/ig,'')};var expandHex=function(hex){hex=cleanHex(hex);if(!hex)return null;if(hex.length===3)hex=hex[0]+hex[0]+hex[1]+hex[1]+hex[2]+hex[2];return hex.length===6?hex:null};var hsb2rgb=function(hsb){var rgb={};var h=Math.round(hsb.h);var s=Math.round(hsb.s*255/100);var v=Math.round(hsb.b*255/100);if(s===0){rgb.r=rgb.g=rgb.b=v}else{var t1=v;var t2=(255-s)*v/255;var t3=(t1-t2)*(h%60)/60;if(h===360)h=0;if(h<60){rgb.r=t1;rgb.b=t2;rgb.g=t2+t3}else if(h<120){rgb.g=t1;rgb.b=t2;rgb.r=t1-t3}else if(h<180){rgb.g=t1;rgb.r=t2;rgb.b=t2+t3}else if(h<240){rgb.b=t1;rgb.r=t2;rgb.g=t1-t3}else if(h<300){rgb.b=t1;rgb.g=t2;rgb.r=t2+t3}else if(h<360){rgb.r=t1;rgb.g=t2;rgb.b=t1-t3}else{rgb.r=0;rgb.g=0;rgb.b=0}}return{r:Math.round(rgb.r),g:Math.round(rgb.g),b:Math.round(rgb.b)}};var rgb2hex=function(rgb){var hex=[rgb.r.toString(16),rgb.g.toString(16),rgb.b.toString(16)];$.each(hex,function(nr,val){if(val.length===1)hex[nr]='0'+val});return hex.join('')};var hex2rgb=function(hex){hex=parseInt(((hex.indexOf('#')>-1)?hex.substring(1):hex),16);return{r:hex>>16,g:(hex&0x00FF00)>>8,b:(hex&0x0000FF)}};var rgb2hsb=function(rgb){var hsb={h:0,s:0,b:0};var min=Math.min(rgb.r,rgb.g,rgb.b);var max=Math.max(rgb.r,rgb.g,rgb.b);var delta=max-min;hsb.b=max;hsb.s=max!==0?255*delta/max:0;if(hsb.s!==0){if(rgb.r===max){hsb.h=(rgb.g-rgb.b)/delta}else if(rgb.g===max){hsb.h=2+(rgb.b-rgb.r)/delta}else{hsb.h=4+(rgb.r-rgb.g)/delta}}else{hsb.h=-1}hsb.h*=60;if(hsb.h<0){hsb.h+=360}hsb.s*=100/255;hsb.b*=100/255;return hsb};var hex2hsb=function(hex){var hsb=rgb2hsb(hex2rgb(hex));if(hsb.s===0)hsb.h=360;return hsb};var hsb2hex=function(hsb){return rgb2hex(hsb2rgb(hsb))};switch(o){case'readonly':$(this).each(function(){if(!$(this).hasClass('miniColors'))return;$(this).prop('readonly',data)});return $(this);case'disabled':$(this).each(function(){if(!$(this).hasClass('miniColors'))return;if(data){disable($(this))}else{enable($(this))}});return $(this);case'value':if(data===undefined){if(!$(this).hasClass('miniColors'))return;var input=$(this),hex=expandHex(input.val());return hex?'#'+convertCase(hex,input.data('letterCase')):null}$(this).each(function(){if(!$(this).hasClass('miniColors'))return;$(this).val(data);setColorFromInput($(this))});return $(this);case'destroy':$(this).each(function(){if(!$(this).hasClass('miniColors'))return;destroy($(this))});return $(this);default:if(!o)o={};$(this).each(function(){if($(this)[0].tagName.toLowerCase()!=='input')return;if($(this).data('trigger'))return;create($(this),o,data)});return $(this)}}})})(jQuery); \ No newline at end of file
+if(jQuery)(function($){$.extend($.fn,{miniColors:function(o,data){var create=function(input,o,data){var color=expandHex(input.val())||'ffffff',hsb=hex2hsb(color),rgb=hsb2rgb(hsb),alpha=parseFloat(input.attr('data-opacity')).toFixed(2);if(alpha>1)alpha=1;if(alpha<0)alpha=0;var trigger=$('<a class="miniColors-trigger" style="background-color: #'+color+'" href="#"></a>');trigger.insertAfter(input);trigger.wrap('<span class="miniColors-triggerWrap"></span>');if(o.opacity){trigger.css('backgroundColor','rgba('+rgb.r+', '+rgb.g+', '+rgb.b+', '+alpha+')')}input.addClass('miniColors').data('original-maxlength',input.attr('maxlength')||null).data('original-autocomplete',input.attr('autocomplete')||null).data('letterCase',o.letterCase==='uppercase'?'uppercase':'lowercase').data('opacity',o.opacity?true:false).data('alpha',alpha).data('trigger',trigger).data('hsb',hsb).data('change',o.change?o.change:null).data('close',o.close?o.close:null).data('open',o.open?o.open:null).attr('maxlength',7).attr('autocomplete','off').val('#'+convertCase(color,o.letterCase));if(o.readonly||input.prop('readonly'))input.prop('readonly',true);if(o.disabled||input.prop('disabled'))disable(input);trigger.on('click.miniColors',function(event){event.preventDefault();if(input.val()==='')input.val('#');show(input)});input.on('focus.miniColors',function(event){if(input.val()==='')input.val('#');show(input)});input.on('blur.miniColors',function(event){var hex=expandHex(hsb2hex(input.data('hsb')));input.val(hex?'#'+convertCase(hex,input.data('letterCase')):'')});input.on('keydown.miniColors',function(event){if(event.keyCode===9)hide(input)});input.on('keyup.miniColors',function(event){setColorFromInput(input)});input.on('paste.miniColors',function(event){setTimeout(function(){setColorFromInput(input)},5)})};var destroy=function(input){hide();input=$(input);input.data('trigger').parent().remove();input.attr('autocomplete',input.data('original-autocomplete')).attr('maxlength',input.data('original-maxlength')).removeData().removeClass('miniColors').off('.miniColors');$(document).off('.miniColors')};var enable=function(input){input.prop('disabled',false).data('trigger').parent().removeClass('disabled')};var disable=function(input){hide(input);input.prop('disabled',true).data('trigger').parent().addClass('disabled')};var show=function(input){if(input.prop('disabled'))return false;hide();var selector=$('<div class="miniColors-selector"></div>');selector.append('<div class="miniColors-hues"><div class="miniColors-huePicker"></div></div>').append('<div class="miniColors-colors" style="background-color: #FFF;"><div class="miniColors-colorPicker"><div class="miniColors-colorPicker-inner"></div></div>').css('display','none').addClass(input.attr('class'));if(input.data('opacity')){selector.addClass('opacity').prepend('<div class="miniColors-opacity"><div class="miniColors-opacityPicker"></div></div>')}var hsb=input.data('hsb');selector.find('.miniColors-colors').css('backgroundColor','#'+hsb2hex({h:hsb.h,s:100,b:100})).end().find('.miniColors-opacity').css('backgroundColor','#'+hsb2hex({h:hsb.h,s:hsb.s,b:hsb.b})).end();var colorPosition=input.data('colorPosition');if(!colorPosition)colorPosition=getColorPositionFromHSB(hsb);selector.find('.miniColors-colorPicker').css('top',colorPosition.y+'px').css('left',colorPosition.x+'px');var huePosition=input.data('huePosition');if(!huePosition)huePosition=getHuePositionFromHSB(hsb);selector.find('.miniColors-huePicker').css('top',huePosition+'px');var opacityPosition=input.data('opacityPosition');if(!opacityPosition)opacityPosition=getOpacityPositionFromAlpha(input.attr('data-opacity'));selector.find('.miniColors-opacityPicker').css('top',opacityPosition+'px');input.data('selector',selector).data('huePicker',selector.find('.miniColors-huePicker')).data('opacityPicker',selector.find('.miniColors-opacityPicker')).data('colorPicker',selector.find('.miniColors-colorPicker')).data('mousebutton',0);$('BODY').append(selector);var trigger=input.data('trigger'),hidden=!input.is(':visible'),top=hidden?trigger.offset().top+trigger.outerHeight():input.offset().top+input.outerHeight(),left=hidden?trigger.offset().left:input.offset().left,selectorWidth=selector.outerWidth(),selectorHeight=selector.outerHeight(),triggerWidth=trigger.outerWidth(),triggerHeight=trigger.outerHeight(),windowHeight=$(window).height(),windowWidth=$(window).width(),scrollTop=$(window).scrollTop(),scrollLeft=$(window).scrollLeft();if((top+selectorHeight)>windowHeight+scrollTop)top=top-selectorHeight-triggerHeight;if((left+selectorWidth)>windowWidth+scrollLeft)left=left-selectorWidth+triggerWidth;selector.css({top:top,left:left}).fadeIn(100);selector.on('selectstart',function(){return false});if(!$.browser.msie||($.browser.msie&&$.browser.version>=9)){$(window).on('resize.miniColors',function(event){hide(input)})}$(document).on('mousedown.miniColors touchstart.miniColors',function(event){input.data('mousebutton',1);var testSubject=$(event.target).parents().andSelf();if(testSubject.hasClass('miniColors-colors')){event.preventDefault();input.data('moving','colors');moveColor(input,event)}if(testSubject.hasClass('miniColors-hues')){event.preventDefault();input.data('moving','hues');moveHue(input,event)}if(testSubject.hasClass('miniColors-opacity')){event.preventDefault();input.data('moving','opacity');moveOpacity(input,event)}if(testSubject.hasClass('miniColors-selector')){event.preventDefault();return}if(testSubject.hasClass('miniColors'))return;hide(input)}).on('mouseup.miniColors touchend.miniColors',function(event){event.preventDefault();input.data('mousebutton',0).removeData('moving')}).on('mousemove.miniColors touchmove.miniColors',function(event){event.preventDefault();if(input.data('mousebutton')===1){if(input.data('moving')==='colors')moveColor(input,event);if(input.data('moving')==='hues')moveHue(input,event);if(input.data('moving')==='opacity')moveOpacity(input,event)}});if(input.data('open')){input.data('open').call(input.get(0),'#'+hsb2hex(hsb),$.extend(hsb2rgb(hsb),{a:parseFloat(input.attr('data-opacity'))}))}};var hide=function(input){if(!input)input=$('.miniColors');input.each(function(){var selector=$(this).data('selector');$(this).removeData('selector');$(selector).fadeOut(100,function(){if(input.data('close')){var hsb=input.data('hsb'),hex=hsb2hex(hsb);input.data('close').call(input.get(0),'#'+hex,$.extend(hsb2rgb(hsb),{a:parseFloat(input.attr('data-opacity'))}))}$(this).remove()})});$(document).off('.miniColors')};var moveColor=function(input,event){var colorPicker=input.data('colorPicker');colorPicker.hide();var position={x:event.pageX,y:event.pageY};if(event.originalEvent.changedTouches){position.x=event.originalEvent.changedTouches[0].pageX;position.y=event.originalEvent.changedTouches[0].pageY}position.x=position.x-input.data('selector').find('.miniColors-colors').offset().left-6;position.y=position.y-input.data('selector').find('.miniColors-colors').offset().top-6;if(position.x<=-5)position.x=-5;if(position.x>=144)position.x=144;if(position.y<=-5)position.y=-5;if(position.y>=144)position.y=144;input.data('colorPosition',position);colorPicker.css('left',position.x).css('top',position.y).show();var s=Math.round((position.x+5)*0.67);if(s<0)s=0;if(s>100)s=100;var b=100-Math.round((position.y+5)*0.67);if(b<0)b=0;if(b>100)b=100;var hsb=input.data('hsb');hsb.s=s;hsb.b=b;setColor(input,hsb,true)};var moveHue=function(input,event){var huePicker=input.data('huePicker');huePicker.hide();var position=event.pageY;if(event.originalEvent.changedTouches){position=event.originalEvent.changedTouches[0].pageY}position=position-input.data('selector').find('.miniColors-colors').offset().top-1;if(position<=-1)position=-1;if(position>=149)position=149;input.data('huePosition',position);huePicker.css('top',position).show();var h=Math.round((150-position-1)*2.4);if(h<0)h=0;if(h>360)h=360;var hsb=input.data('hsb');hsb.h=h;setColor(input,hsb,true)};var moveOpacity=function(input,event){var opacityPicker=input.data('opacityPicker');opacityPicker.hide();var position=event.pageY;if(event.originalEvent.changedTouches){position=event.originalEvent.changedTouches[0].pageY}position=position-input.data('selector').find('.miniColors-colors').offset().top-1;if(position<=-1)position=-1;if(position>=149)position=149;input.data('opacityPosition',position);opacityPicker.css('top',position).show();var alpha=parseFloat((150-position-1)/150).toFixed(2);if(alpha<0)alpha=0;if(alpha>1)alpha=1;input.data('alpha',alpha).attr('data-opacity',alpha);setColor(input,input.data('hsb'),true)};var setColor=function(input,hsb,updateInput){input.data('hsb',hsb);var hex=hsb2hex(hsb),selector=$(input.data('selector'));if(updateInput)input.val('#'+convertCase(hex,input.data('letterCase')));selector.find('.miniColors-colors').css('backgroundColor','#'+hsb2hex({h:hsb.h,s:100,b:100})).end().find('.miniColors-opacity').css('backgroundColor','#'+hex).end();var rgb=hsb2rgb(hsb);input.data('trigger').css('backgroundColor','#'+hex);if(input.data('opacity')){input.data('trigger').css('backgroundColor','rgba('+rgb.r+', '+rgb.g+', '+rgb.b+', '+input.attr('data-opacity')+')')}if(input.data('change')){if((hex+','+input.attr('data-opacity'))===input.data('lastChange'))return;input.data('change').call(input.get(0),'#'+hex,$.extend(hsb2rgb(hsb),{a:parseFloat(input.attr('data-opacity'))}));input.data('lastChange',hex+','+input.attr('data-opacity'))}};var setColorFromInput=function(input){input.val('#'+cleanHex(input.val()));var hex=expandHex(input.val());if(!hex)return false;var hsb=hex2hsb(hex);var colorPosition=getColorPositionFromHSB(hsb);var colorPicker=$(input.data('colorPicker'));colorPicker.css('top',colorPosition.y+'px').css('left',colorPosition.x+'px');input.data('colorPosition',colorPosition);var huePosition=getHuePositionFromHSB(hsb);var huePicker=$(input.data('huePicker'));huePicker.css('top',huePosition+'px');input.data('huePosition',huePosition);var opacityPosition=getOpacityPositionFromAlpha(input.attr('data-opacity'));var opacityPicker=$(input.data('opacityPicker'));opacityPicker.css('top',opacityPosition+'px');input.data('opacityPosition',opacityPosition);setColor(input,hsb);return true};var convertCase=function(string,letterCase){if(letterCase==='uppercase'){return string.toUpperCase()}else{return string.toLowerCase()}};var getColorPositionFromHSB=function(hsb){var x=Math.ceil(hsb.s/0.67);if(x<0)x=0;if(x>150)x=150;var y=150-Math.ceil(hsb.b/0.67);if(y<0)y=0;if(y>150)y=150;return{x:x-5,y:y-5}};var getHuePositionFromHSB=function(hsb){var y=150-(hsb.h/2.4);if(y<0)h=0;if(y>150)h=150;return y};var getOpacityPositionFromAlpha=function(alpha){var y=150*alpha;if(y<0)y=0;if(y>150)y=150;return 150-y};var cleanHex=function(hex){return hex.replace(/[^A-F0-9]/ig,'')};var expandHex=function(hex){hex=cleanHex(hex);if(!hex)return null;if(hex.length===3)hex=hex[0]+hex[0]+hex[1]+hex[1]+hex[2]+hex[2];return hex.length===6?hex:null};var hsb2rgb=function(hsb){var rgb={};var h=Math.round(hsb.h);var s=Math.round(hsb.s*255/100);var v=Math.round(hsb.b*255/100);if(s===0){rgb.r=rgb.g=rgb.b=v}else{var t1=v;var t2=(255-s)*v/255;var t3=(t1-t2)*(h%60)/60;if(h===360)h=0;if(h<60){rgb.r=t1;rgb.b=t2;rgb.g=t2+t3}else if(h<120){rgb.g=t1;rgb.b=t2;rgb.r=t1-t3}else if(h<180){rgb.g=t1;rgb.r=t2;rgb.b=t2+t3}else if(h<240){rgb.b=t1;rgb.r=t2;rgb.g=t1-t3}else if(h<300){rgb.b=t1;rgb.g=t2;rgb.r=t2+t3}else if(h<360){rgb.r=t1;rgb.g=t2;rgb.b=t1-t3}else{rgb.r=0;rgb.g=0;rgb.b=0}}return{r:Math.round(rgb.r),g:Math.round(rgb.g),b:Math.round(rgb.b)}};var rgb2hex=function(rgb){var hex=[rgb.r.toString(16),rgb.g.toString(16),rgb.b.toString(16)];$.each(hex,function(nr,val){if(val.length===1)hex[nr]='0'+val});return hex.join('')};var hex2rgb=function(hex){hex=parseInt(((hex.indexOf('#')>-1)?hex.substring(1):hex),16);return{r:hex>>16,g:(hex&0x00FF00)>>8,b:(hex&0x0000FF)}};var rgb2hsb=function(rgb){var hsb={h:0,s:0,b:0};var min=Math.min(rgb.r,rgb.g,rgb.b);var max=Math.max(rgb.r,rgb.g,rgb.b);var delta=max-min;hsb.b=max;hsb.s=max!==0?255*delta/max:0;if(hsb.s!==0){if(rgb.r===max){hsb.h=(rgb.g-rgb.b)/delta}else if(rgb.g===max){hsb.h=2+(rgb.b-rgb.r)/delta}else{hsb.h=4+(rgb.r-rgb.g)/delta}}else{hsb.h=-1}hsb.h*=60;if(hsb.h<0){hsb.h+=360}hsb.s*=100/255;hsb.b*=100/255;return hsb};var hex2hsb=function(hex){var hsb=rgb2hsb(hex2rgb(hex));if(hsb.s===0)hsb.h=360;return hsb};var hsb2hex=function(hsb){return rgb2hex(hsb2rgb(hsb))};switch(o){case'readonly':$(this).each(function(){if(!$(this).hasClass('miniColors'))return;$(this).prop('readonly',data)});return $(this);case'disabled':$(this).each(function(){if(!$(this).hasClass('miniColors'))return;if(data){disable($(this))}else{enable($(this))}});return $(this);case'value':if(data===undefined){if(!$(this).hasClass('miniColors'))return;var input=$(this),hex=expandHex(input.val());return hex?'#'+convertCase(hex,input.data('letterCase')):null}$(this).each(function(){if(!$(this).hasClass('miniColors'))return;$(this).val(data);setColorFromInput($(this))});return $(this);case'opacity':if(data===undefined){if(!$(this).hasClass('miniColors'))return;if($(this).data('opacity')){return parseFloat($(this).attr('data-opacity'))}else{return null}}$(this).each(function(){if(!$(this).hasClass('miniColors'))return;if(data<0)data=0;if(data>1)data=1;$(this).attr('data-opacity',data).data('alpha',data);setColorFromInput($(this))});return $(this);case'destroy':$(this).each(function(){if(!$(this).hasClass('miniColors'))return;destroy($(this))});return $(this);default:if(!o)o={};$(this).each(function(){if($(this)[0].tagName.toLowerCase()!=='input')return;if($(this).data('trigger'))return;create($(this),o,data)});return $(this)}}})})(jQuery); \ No newline at end of file
diff --git a/3rdparty/timepicker/GPL-LICENSE.txt b/3rdparty/timepicker/GPL-LICENSE.txt
index 932f11115fe..932f11115fe 100644..100755
--- a/3rdparty/timepicker/GPL-LICENSE.txt
+++ b/3rdparty/timepicker/GPL-LICENSE.txt
diff --git a/3rdparty/timepicker/MIT-LICENSE.txt b/3rdparty/timepicker/MIT-LICENSE.txt
index 532704636b7..532704636b7 100644..100755
--- a/3rdparty/timepicker/MIT-LICENSE.txt
+++ b/3rdparty/timepicker/MIT-LICENSE.txt
diff --git a/3rdparty/timepicker/css/include/images/ui-bg_diagonals-thick_18_b81900_40x40.png b/3rdparty/timepicker/css/include/images/ui-bg_diagonals-thick_18_b81900_40x40.png
index 954e22dbd99..954e22dbd99 100644..100755
--- a/3rdparty/timepicker/css/include/images/ui-bg_diagonals-thick_18_b81900_40x40.png
+++ b/3rdparty/timepicker/css/include/images/ui-bg_diagonals-thick_18_b81900_40x40.png
Binary files differ
diff --git a/3rdparty/timepicker/css/include/images/ui-bg_diagonals-thick_20_666666_40x40.png b/3rdparty/timepicker/css/include/images/ui-bg_diagonals-thick_20_666666_40x40.png
index 64ece5707d9..64ece5707d9 100644..100755
--- a/3rdparty/timepicker/css/include/images/ui-bg_diagonals-thick_20_666666_40x40.png
+++ b/3rdparty/timepicker/css/include/images/ui-bg_diagonals-thick_20_666666_40x40.png
Binary files differ
diff --git a/3rdparty/timepicker/css/include/images/ui-bg_flat_10_000000_40x100.png b/3rdparty/timepicker/css/include/images/ui-bg_flat_10_000000_40x100.png
index abdc01082bf..abdc01082bf 100644..100755
--- a/3rdparty/timepicker/css/include/images/ui-bg_flat_10_000000_40x100.png
+++ b/3rdparty/timepicker/css/include/images/ui-bg_flat_10_000000_40x100.png
Binary files differ
diff --git a/3rdparty/timepicker/css/include/images/ui-bg_glass_100_f6f6f6_1x400.png b/3rdparty/timepicker/css/include/images/ui-bg_glass_100_f6f6f6_1x400.png
index 9b383f4d2ea..9b383f4d2ea 100644..100755
--- a/3rdparty/timepicker/css/include/images/ui-bg_glass_100_f6f6f6_1x400.png
+++ b/3rdparty/timepicker/css/include/images/ui-bg_glass_100_f6f6f6_1x400.png
Binary files differ
diff --git a/3rdparty/timepicker/css/include/images/ui-bg_glass_100_fdf5ce_1x400.png b/3rdparty/timepicker/css/include/images/ui-bg_glass_100_fdf5ce_1x400.png
index a23baad25b1..a23baad25b1 100644..100755
--- a/3rdparty/timepicker/css/include/images/ui-bg_glass_100_fdf5ce_1x400.png
+++ b/3rdparty/timepicker/css/include/images/ui-bg_glass_100_fdf5ce_1x400.png
Binary files differ
diff --git a/3rdparty/timepicker/css/include/images/ui-bg_glass_65_ffffff_1x400.png b/3rdparty/timepicker/css/include/images/ui-bg_glass_65_ffffff_1x400.png
index 42ccba269b6..42ccba269b6 100644..100755
--- a/3rdparty/timepicker/css/include/images/ui-bg_glass_65_ffffff_1x400.png
+++ b/3rdparty/timepicker/css/include/images/ui-bg_glass_65_ffffff_1x400.png
Binary files differ
diff --git a/3rdparty/timepicker/css/include/images/ui-bg_gloss-wave_35_f6a828_500x100.png b/3rdparty/timepicker/css/include/images/ui-bg_gloss-wave_35_f6a828_500x100.png
index 39d5824d6af..39d5824d6af 100644..100755
--- a/3rdparty/timepicker/css/include/images/ui-bg_gloss-wave_35_f6a828_500x100.png
+++ b/3rdparty/timepicker/css/include/images/ui-bg_gloss-wave_35_f6a828_500x100.png
Binary files differ
diff --git a/3rdparty/timepicker/css/include/images/ui-bg_highlight-soft_100_eeeeee_1x100.png b/3rdparty/timepicker/css/include/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
index f1273672d25..f1273672d25 100644..100755
--- a/3rdparty/timepicker/css/include/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
+++ b/3rdparty/timepicker/css/include/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
Binary files differ
diff --git a/3rdparty/timepicker/css/include/images/ui-bg_highlight-soft_75_ffe45c_1x100.png b/3rdparty/timepicker/css/include/images/ui-bg_highlight-soft_75_ffe45c_1x100.png
index 359397acffd..359397acffd 100644..100755
--- a/3rdparty/timepicker/css/include/images/ui-bg_highlight-soft_75_ffe45c_1x100.png
+++ b/3rdparty/timepicker/css/include/images/ui-bg_highlight-soft_75_ffe45c_1x100.png
Binary files differ
diff --git a/3rdparty/timepicker/css/include/images/ui-icons_222222_256x240.png b/3rdparty/timepicker/css/include/images/ui-icons_222222_256x240.png
index b273ff111d2..b273ff111d2 100644..100755
--- a/3rdparty/timepicker/css/include/images/ui-icons_222222_256x240.png
+++ b/3rdparty/timepicker/css/include/images/ui-icons_222222_256x240.png
Binary files differ
diff --git a/3rdparty/timepicker/css/include/images/ui-icons_228ef1_256x240.png b/3rdparty/timepicker/css/include/images/ui-icons_228ef1_256x240.png
index a641a371afa..a641a371afa 100644..100755
--- a/3rdparty/timepicker/css/include/images/ui-icons_228ef1_256x240.png
+++ b/3rdparty/timepicker/css/include/images/ui-icons_228ef1_256x240.png
Binary files differ
diff --git a/3rdparty/timepicker/css/include/images/ui-icons_ef8c08_256x240.png b/3rdparty/timepicker/css/include/images/ui-icons_ef8c08_256x240.png
index 85e63e9f604..85e63e9f604 100644..100755
--- a/3rdparty/timepicker/css/include/images/ui-icons_ef8c08_256x240.png
+++ b/3rdparty/timepicker/css/include/images/ui-icons_ef8c08_256x240.png
Binary files differ
diff --git a/3rdparty/timepicker/css/include/images/ui-icons_ffd27a_256x240.png b/3rdparty/timepicker/css/include/images/ui-icons_ffd27a_256x240.png
index e117effa3dc..e117effa3dc 100644..100755
--- a/3rdparty/timepicker/css/include/images/ui-icons_ffd27a_256x240.png
+++ b/3rdparty/timepicker/css/include/images/ui-icons_ffd27a_256x240.png
Binary files differ
diff --git a/3rdparty/timepicker/css/include/images/ui-icons_ffffff_256x240.png b/3rdparty/timepicker/css/include/images/ui-icons_ffffff_256x240.png
index 42f8f992c72..42f8f992c72 100644..100755
--- a/3rdparty/timepicker/css/include/images/ui-icons_ffffff_256x240.png
+++ b/3rdparty/timepicker/css/include/images/ui-icons_ffffff_256x240.png
Binary files differ
diff --git a/3rdparty/timepicker/css/include/jquery-1.5.1.min.js b/3rdparty/timepicker/css/include/jquery-1.5.1.min.js
index 6437874c699..6437874c699 100644..100755
--- a/3rdparty/timepicker/css/include/jquery-1.5.1.min.js
+++ b/3rdparty/timepicker/css/include/jquery-1.5.1.min.js
diff --git a/3rdparty/timepicker/css/include/jquery-ui-1.8.14.custom.css b/3rdparty/timepicker/css/include/jquery-ui-1.8.14.custom.css
index fe310705756..fe310705756 100644..100755
--- a/3rdparty/timepicker/css/include/jquery-ui-1.8.14.custom.css
+++ b/3rdparty/timepicker/css/include/jquery-ui-1.8.14.custom.css
diff --git a/3rdparty/timepicker/css/include/jquery.ui.core.min.js b/3rdparty/timepicker/css/include/jquery.ui.core.min.js
index 577548e7882..577548e7882 100644..100755
--- a/3rdparty/timepicker/css/include/jquery.ui.core.min.js
+++ b/3rdparty/timepicker/css/include/jquery.ui.core.min.js
diff --git a/3rdparty/timepicker/css/include/jquery.ui.position.min.js b/3rdparty/timepicker/css/include/jquery.ui.position.min.js
index 9f550be8e21..9f550be8e21 100644..100755
--- a/3rdparty/timepicker/css/include/jquery.ui.position.min.js
+++ b/3rdparty/timepicker/css/include/jquery.ui.position.min.js
diff --git a/3rdparty/timepicker/css/include/jquery.ui.tabs.min.js b/3rdparty/timepicker/css/include/jquery.ui.tabs.min.js
index 11a67c144a6..11a67c144a6 100644..100755
--- a/3rdparty/timepicker/css/include/jquery.ui.tabs.min.js
+++ b/3rdparty/timepicker/css/include/jquery.ui.tabs.min.js
diff --git a/3rdparty/timepicker/css/include/jquery.ui.widget.min.js b/3rdparty/timepicker/css/include/jquery.ui.widget.min.js
index 39ab91a0963..39ab91a0963 100644..100755
--- a/3rdparty/timepicker/css/include/jquery.ui.widget.min.js
+++ b/3rdparty/timepicker/css/include/jquery.ui.widget.min.js
diff --git a/3rdparty/timepicker/css/include/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png b/3rdparty/timepicker/css/include/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png
index 954e22dbd99..954e22dbd99 100644..100755
--- a/3rdparty/timepicker/css/include/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png
+++ b/3rdparty/timepicker/css/include/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png
Binary files differ
diff --git a/3rdparty/timepicker/css/include/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png b/3rdparty/timepicker/css/include/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png
index 64ece5707d9..64ece5707d9 100644..100755
--- a/3rdparty/timepicker/css/include/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png
+++ b/3rdparty/timepicker/css/include/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png
Binary files differ
diff --git a/3rdparty/timepicker/css/include/ui-lightness/images/ui-bg_flat_10_000000_40x100.png b/3rdparty/timepicker/css/include/ui-lightness/images/ui-bg_flat_10_000000_40x100.png
index abdc01082bf..abdc01082bf 100644..100755
--- a/3rdparty/timepicker/css/include/ui-lightness/images/ui-bg_flat_10_000000_40x100.png
+++ b/3rdparty/timepicker/css/include/ui-lightness/images/ui-bg_flat_10_000000_40x100.png
Binary files differ
diff --git a/3rdparty/timepicker/css/include/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png b/3rdparty/timepicker/css/include/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png
index 9b383f4d2ea..9b383f4d2ea 100644..100755
--- a/3rdparty/timepicker/css/include/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png
+++ b/3rdparty/timepicker/css/include/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png
Binary files differ
diff --git a/3rdparty/timepicker/css/include/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png b/3rdparty/timepicker/css/include/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png
index a23baad25b1..a23baad25b1 100644..100755
--- a/3rdparty/timepicker/css/include/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png
+++ b/3rdparty/timepicker/css/include/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png
Binary files differ
diff --git a/3rdparty/timepicker/css/include/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png b/3rdparty/timepicker/css/include/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png
index 42ccba269b6..42ccba269b6 100644..100755
--- a/3rdparty/timepicker/css/include/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png
+++ b/3rdparty/timepicker/css/include/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png
Binary files differ
diff --git a/3rdparty/timepicker/css/include/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png b/3rdparty/timepicker/css/include/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png
index 39d5824d6af..39d5824d6af 100644..100755
--- a/3rdparty/timepicker/css/include/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png
+++ b/3rdparty/timepicker/css/include/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png
Binary files differ
diff --git a/3rdparty/timepicker/css/include/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png b/3rdparty/timepicker/css/include/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
index f1273672d25..f1273672d25 100644..100755
--- a/3rdparty/timepicker/css/include/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
+++ b/3rdparty/timepicker/css/include/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
Binary files differ
diff --git a/3rdparty/timepicker/css/include/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png b/3rdparty/timepicker/css/include/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png
index 359397acffd..359397acffd 100644..100755
--- a/3rdparty/timepicker/css/include/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png
+++ b/3rdparty/timepicker/css/include/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png
Binary files differ
diff --git a/3rdparty/timepicker/css/include/ui-lightness/images/ui-icons_222222_256x240.png b/3rdparty/timepicker/css/include/ui-lightness/images/ui-icons_222222_256x240.png
index b273ff111d2..b273ff111d2 100644..100755
--- a/3rdparty/timepicker/css/include/ui-lightness/images/ui-icons_222222_256x240.png
+++ b/3rdparty/timepicker/css/include/ui-lightness/images/ui-icons_222222_256x240.png
Binary files differ
diff --git a/3rdparty/timepicker/css/include/ui-lightness/images/ui-icons_228ef1_256x240.png b/3rdparty/timepicker/css/include/ui-lightness/images/ui-icons_228ef1_256x240.png
index a641a371afa..a641a371afa 100644..100755
--- a/3rdparty/timepicker/css/include/ui-lightness/images/ui-icons_228ef1_256x240.png
+++ b/3rdparty/timepicker/css/include/ui-lightness/images/ui-icons_228ef1_256x240.png
Binary files differ
diff --git a/3rdparty/timepicker/css/include/ui-lightness/images/ui-icons_ef8c08_256x240.png b/3rdparty/timepicker/css/include/ui-lightness/images/ui-icons_ef8c08_256x240.png
index 85e63e9f604..85e63e9f604 100644..100755
--- a/3rdparty/timepicker/css/include/ui-lightness/images/ui-icons_ef8c08_256x240.png
+++ b/3rdparty/timepicker/css/include/ui-lightness/images/ui-icons_ef8c08_256x240.png
Binary files differ
diff --git a/3rdparty/timepicker/css/include/ui-lightness/images/ui-icons_ffd27a_256x240.png b/3rdparty/timepicker/css/include/ui-lightness/images/ui-icons_ffd27a_256x240.png
index e117effa3dc..e117effa3dc 100644..100755
--- a/3rdparty/timepicker/css/include/ui-lightness/images/ui-icons_ffd27a_256x240.png
+++ b/3rdparty/timepicker/css/include/ui-lightness/images/ui-icons_ffd27a_256x240.png
Binary files differ
diff --git a/3rdparty/timepicker/css/include/ui-lightness/images/ui-icons_ffffff_256x240.png b/3rdparty/timepicker/css/include/ui-lightness/images/ui-icons_ffffff_256x240.png
index 42f8f992c72..42f8f992c72 100644..100755
--- a/3rdparty/timepicker/css/include/ui-lightness/images/ui-icons_ffffff_256x240.png
+++ b/3rdparty/timepicker/css/include/ui-lightness/images/ui-icons_ffffff_256x240.png
Binary files differ
diff --git a/3rdparty/timepicker/css/jquery.ui.timepicker.css b/3rdparty/timepicker/css/jquery.ui.timepicker.css
index 08b442a7e53..1efbacb7c33 100644..100755
--- a/3rdparty/timepicker/css/jquery.ui.timepicker.css
+++ b/3rdparty/timepicker/css/jquery.ui.timepicker.css
@@ -10,7 +10,7 @@
.ui-timepicker-inline { display: inline; }
-#ui-timepicker-div { padding: 0.2em }
+#ui-timepicker-div { padding: 0.2em; background-color: #fff; }
.ui-timepicker-table { display: inline-table; width: 0; }
.ui-timepicker-table table { margin:0.15em 0 0 0; border-collapse: collapse; }
diff --git a/3rdparty/timepicker/js/i18n/i18n.html b/3rdparty/timepicker/js/i18n/i18n.html
index 83cb5e3f30c..4ba56cf8a9e 100644..100755
--- a/3rdparty/timepicker/js/i18n/i18n.html
+++ b/3rdparty/timepicker/js/i18n/i18n.html
@@ -1,6 +1,11 @@
<!DOCTYPE html>
<html lang="en">
<head>
+ <!-- Around the world, around the world -->
+ <!-- Around the world, around the world -->
+ <!-- Around the world, around the world -->
+ <!-- Around the world, around the world -->
+
<meta charset="utf-8">
<title>Internationalisation page for the jquery ui timepicker</title>
@@ -14,10 +19,20 @@
<style>
#timepicker { font-size: 10px }
</style>
-
+ <script src='jquery.ui.timepicker-cs.js'></script>
<script src='jquery.ui.timepicker-de.js'></script>
+ <script src='jquery.ui.timepicker-es.js'></script>
+
<script src='jquery.ui.timepicker-fr.js'></script>
+ <script src='jquery.ui.timepicker-hr.js'></script>
+ <script src='jquery.ui.timepicker-it.js'></script>
<script src='jquery.ui.timepicker-ja.js'></script>
+ <script src='jquery.ui.timepicker-nl.js'></script>
+ <script src='jquery.ui.timepicker-pl.js'></script>
+ <script src='jquery.ui.timepicker-pt-BR.js'></script>
+ <script src='jquery.ui.timepicker-sl.js'></script>
+ <script src='jquery.ui.timepicker-sv.js'></script>
+ <script src='jquery.ui.timepicker-tr.js'></script>
</head>
<body>
@@ -32,18 +47,35 @@
showDeselectButton: true
});
- $('#locale').change(function() {
- $('#timepicker').timepicker( "option",
- $.timepicker.regional[ $( this ).val() ] );
- });
+ $('#locale').change(updateLocale).keyup(updateLocale);
+
});
+
+ function updateLocale()
+ {
+ $('#timepicker').timepicker( "option",
+ $.timepicker.regional[ $( '#locale' ).val() ] );
+ }
+
</script>
Select a localisation :
<select id='locale'>
- <option value='fr'>Fran&ccedil;ais</option>
- <option value='de'>Deutsch</option>
+ <option>Select a localisation</option>
+
+ <option value='hr'>Croatian/Bosnian</option>
+ <option value='cs'>Czech</option>
+ <option value='de'>German (Deutsch)</option>
+ <option value='nl'>Dutch (Nederlands)</option>
+ <option value='fr'>Fran&ccedil;ais</option>
+ <option value='it'>Italian</option>
<option value='ja'>Japanese</option>
+ <option value='pl'>Polish</option>
+ <option value="pt-BR">Portuguese/Brazilian</option>
+ <option value='sl'>Slovenian</option>
+ <option value='es'>Spanish</option>
+ <option value='sv'>Swedish</option>
+ <option value='tr'>Turkish</option>
</select>
<br>
@@ -56,18 +88,60 @@
List of localisations :
<ul>
+
<li>
- <a href="jquery.ui.timepicker-de.js">Deutsch (jquery.ui.timepicker-de.js</a>
+ <a href="jquery.ui.timepicker-hr.js">Croatian/Bosnian (jquery.ui.timepicker.hr.js)</a>
</li>
-
+
+ <li>
+ <a href="jquery.ui.timepicker-cs.js">Czech (jquery.ui.timepicker-cs.js</a>
+ </li>
+
+ <li>
+ <a href="jquery.ui.timepicker-de.js">German (Deutsch) (jquery.ui.timepicker-de.js)</a>
+ </li>
+
+ <li>
+ <a href="jquery.ui.timepicker-nl.js">Dutch (Nederlands) (jquery.ui.timepicker-nl.js)</a>
+ </li>
+
+ <li>
+ <a href="jquery.ui.timepicker-fr.js">Fran&ccedil;ais (jquery.ui.timepicker-fr.js)</a>
+ </li>
+
+ <li>
+ <a href="jquery.ui.timepicker-it.js">Italian (jquery.ui.timepicker-it.js)</a>
+ </li>
+
+ <li>
+ <a href="jquery.ui.timepicker-ja.js">Japanese (jquery.ui.timepicker-ja.js)</a>
+ </li>
+
+ <li>
+ <a href="jquery.ui.timepicker-pl.js">Polish (jquery.ui.timepicker-pl.js)</a>
+ </li>
+
+ <li>
+ <a href="jquery.ui.timepicker-pt-BR.js">Portuguese/Brazilian (jquery.ui.timepicker-pt-BR.js)</a>
+ </li>
+
+ <li>
+ <a href="jquery.ui.timepicker-sl.js">Slovenian (jquery.ui.timepicker-sl.js)</a>
+ </li>
+
+ <li>
+ <a href="jquery.ui.timepicker-sv.js">Swedish (jquery.ui.timepicker-sv.js)</a>
+ </li>
+
<li>
- <a href="jquery.ui.timepicker-fr.js">Fran&ccedil;ais (jquery.ui.timepicker-fr.js</a>
+ <a href="jquery.ui.timepicker-es.js">Spanish (jquery.ui.timepicker-es.js)</a>
</li>
<li>
- <a href="jquery.ui.timepicker-ja.js">Japanese (jquery.ui.timepicker-ja.js</a>
+ <a href="jquery.ui.timepicker-sv.js">Turkish (jquery.ui.timepicker-tr.js)</a>
</li>
</ul>
-</body> \ No newline at end of file
+</body>
+</html> \ No newline at end of file
diff --git a/3rdparty/timepicker/js/i18n/jquery.ui.timepicker-cs.js b/3rdparty/timepicker/js/i18n/jquery.ui.timepicker-cs.js
new file mode 100755
index 00000000000..23a43444cf1
--- /dev/null
+++ b/3rdparty/timepicker/js/i18n/jquery.ui.timepicker-cs.js
@@ -0,0 +1,12 @@
+/* Czech initialisation for the timepicker plugin */
+/* Written by David Spohr (spohr.david at gmail). */
+jQuery(function($){
+ $.timepicker.regional['cs'] = {
+ hourText: 'Hodiny',
+ minuteText: 'Minuty',
+ amPmText: ['AM', 'PM'] ,
+ closeButtonText: 'Zavřít',
+ nowButtonText: 'Nyní',
+ deselectButtonText: 'Odoznačit' }
+ $.timepicker.setDefaults($.timepicker.regional['cs']);
+}); \ No newline at end of file
diff --git a/3rdparty/timepicker/js/i18n/jquery.ui.timepicker-de.js b/3rdparty/timepicker/js/i18n/jquery.ui.timepicker-de.js
index c010a498e15..e3bf859ee63 100644..100755
--- a/3rdparty/timepicker/js/i18n/jquery.ui.timepicker-de.js
+++ b/3rdparty/timepicker/js/i18n/jquery.ui.timepicker-de.js
@@ -1,9 +1,12 @@
-/* Deutsch initialisation for the timepicker plugin */
-/* Written by Bernd Plagge (bplagge@choicenet.ne.jp). */
+/* German initialisation for the timepicker plugin */
+/* Written by Lowie Hulzinga. */
jQuery(function($){
$.timepicker.regional['de'] = {
hourText: 'Stunde',
minuteText: 'Minuten',
- amPmText: ['AM', 'PM'] }
+ amPmText: ['AM', 'PM'] ,
+ closeButtonText: 'Beenden',
+ nowButtonText: 'Aktuelle Zeit',
+ deselectButtonText: 'Wischen' }
$.timepicker.setDefaults($.timepicker.regional['de']);
-}); \ No newline at end of file
+});
diff --git a/3rdparty/timepicker/js/i18n/jquery.ui.timepicker-es.js b/3rdparty/timepicker/js/i18n/jquery.ui.timepicker-es.js
new file mode 100755
index 00000000000..b8bcbf859a1
--- /dev/null
+++ b/3rdparty/timepicker/js/i18n/jquery.ui.timepicker-es.js
@@ -0,0 +1,12 @@
+/* Spanish initialisation for the jQuery time picker plugin. */
+/* Writen by Jandro González (agonzalezalves@gmail.com) */
+jQuery(function($){
+ $.timepicker.regional['es'] = {
+ hourText: 'Hora',
+ minuteText: 'Minuto',
+ amPmText: ['AM', 'PM'],
+ closeButtonText: 'Aceptar',
+ nowButtonText: 'Ahora',
+ deselectButtonText: 'Deseleccionar' }
+ $.timepicker.setDefaults($.timepicker.regional['es']);
+});
diff --git a/3rdparty/timepicker/js/i18n/jquery.ui.timepicker-fr.js b/3rdparty/timepicker/js/i18n/jquery.ui.timepicker-fr.js
index bd37d731c8d..bd37d731c8d 100644..100755
--- a/3rdparty/timepicker/js/i18n/jquery.ui.timepicker-fr.js
+++ b/3rdparty/timepicker/js/i18n/jquery.ui.timepicker-fr.js
diff --git a/3rdparty/timepicker/js/i18n/jquery.ui.timepicker-hr.js b/3rdparty/timepicker/js/i18n/jquery.ui.timepicker-hr.js
new file mode 100755
index 00000000000..6950a169398
--- /dev/null
+++ b/3rdparty/timepicker/js/i18n/jquery.ui.timepicker-hr.js
@@ -0,0 +1,13 @@
+/* Croatian/Bosnian initialisation for the timepicker plugin */
+/* Written by Rene Brakus (rene.brakus@infobip.com). */
+jQuery(function($){
+ $.timepicker.regional['hr'] = {
+ hourText: 'Sat',
+ minuteText: 'Minuta',
+ amPmText: ['Prijepodne', 'Poslijepodne'],
+ closeButtonText: 'Zatvoriti',
+ nowButtonText: 'Sada',
+ deselectButtonText: 'Poništite'}
+
+ $.timepicker.setDefaults($.timepicker.regional['hr']);
+}); \ No newline at end of file
diff --git a/3rdparty/timepicker/js/i18n/jquery.ui.timepicker-it.js b/3rdparty/timepicker/js/i18n/jquery.ui.timepicker-it.js
new file mode 100755
index 00000000000..ad20df30539
--- /dev/null
+++ b/3rdparty/timepicker/js/i18n/jquery.ui.timepicker-it.js
@@ -0,0 +1,12 @@
+/* Italian initialisation for the jQuery time picker plugin. */
+/* Written by Serge Margarita (serge.margarita@gmail.com) */
+jQuery(function($){
+ $.timepicker.regional['it'] = {
+ hourText: 'Ore',
+ minuteText: 'Minuti',
+ amPmText: ['AM', 'PM'],
+ closeButtonText: 'Chiudi',
+ nowButtonText: 'Adesso',
+ deselectButtonText: 'Svuota' }
+ $.timepicker.setDefaults($.timepicker.regional['it']);
+}); \ No newline at end of file
diff --git a/3rdparty/timepicker/js/i18n/jquery.ui.timepicker-ja.js b/3rdparty/timepicker/js/i18n/jquery.ui.timepicker-ja.js
index 01b2c8a3de5..b38cf6e5960 100644..100755
--- a/3rdparty/timepicker/js/i18n/jquery.ui.timepicker-ja.js
+++ b/3rdparty/timepicker/js/i18n/jquery.ui.timepicker-ja.js
@@ -4,6 +4,9 @@ jQuery(function($){
$.timepicker.regional['ja'] = {
hourText: '時間',
minuteText: '分',
- amPmText: ['午前', '午後'] }
+ amPmText: ['午前', '午後'],
+ closeButtonText: '閉じる',
+ nowButtonText: '現時',
+ deselectButtonText: '選択解除' }
$.timepicker.setDefaults($.timepicker.regional['ja']);
});
diff --git a/3rdparty/timepicker/js/i18n/jquery.ui.timepicker-nl.js b/3rdparty/timepicker/js/i18n/jquery.ui.timepicker-nl.js
new file mode 100755
index 00000000000..945d55ea0ba
--- /dev/null
+++ b/3rdparty/timepicker/js/i18n/jquery.ui.timepicker-nl.js
@@ -0,0 +1,12 @@
+/* Nederlands initialisation for the timepicker plugin */
+/* Written by Lowie Hulzinga. */
+jQuery(function($){
+ $.timepicker.regional['nl'] = {
+ hourText: 'Uren',
+ minuteText: 'Minuten',
+ amPmText: ['AM', 'PM'],
+ closeButtonText: 'Sluiten',
+ nowButtonText: 'Actuele tijd',
+ deselectButtonText: 'Wissen' }
+ $.timepicker.setDefaults($.timepicker.regional['nl']);
+}); \ No newline at end of file
diff --git a/3rdparty/timepicker/js/i18n/jquery.ui.timepicker-pl.js b/3rdparty/timepicker/js/i18n/jquery.ui.timepicker-pl.js
new file mode 100755
index 00000000000..9f401c5ad15
--- /dev/null
+++ b/3rdparty/timepicker/js/i18n/jquery.ui.timepicker-pl.js
@@ -0,0 +1,12 @@
+/* Polish initialisation for the timepicker plugin */
+/* Written by Mateusz Wadolkowski (mw@pcdoctor.pl). */
+jQuery(function($){
+ $.timepicker.regional['pl'] = {
+ hourText: 'Godziny',
+ minuteText: 'Minuty',
+ amPmText: ['', ''],
+ closeButtonText: 'Zamknij',
+ nowButtonText: 'Teraz',
+ deselectButtonText: 'Odznacz'}
+ $.timepicker.setDefaults($.timepicker.regional['pl']);
+}); \ No newline at end of file
diff --git a/3rdparty/timepicker/js/i18n/jquery.ui.timepicker-pt-BR.js b/3rdparty/timepicker/js/i18n/jquery.ui.timepicker-pt-BR.js
new file mode 100755
index 00000000000..90273322689
--- /dev/null
+++ b/3rdparty/timepicker/js/i18n/jquery.ui.timepicker-pt-BR.js
@@ -0,0 +1,12 @@
+/* Brazilan initialisation for the timepicker plugin */
+/* Written by Daniel Almeida (quantodaniel@gmail.com). */
+jQuery(function($){
+ $.timepicker.regional['pt-BR'] = {
+ hourText: 'Hora',
+ minuteText: 'Minuto',
+ amPmText: ['AM', 'PM'],
+ closeButtonText: 'Fechar',
+ nowButtonText: 'Agora',
+ deselectButtonText: 'Limpar' }
+ $.timepicker.setDefaults($.timepicker.regional['pt-BR']);
+}); \ No newline at end of file
diff --git a/3rdparty/timepicker/js/i18n/jquery.ui.timepicker-sl.js b/3rdparty/timepicker/js/i18n/jquery.ui.timepicker-sl.js
new file mode 100755
index 00000000000..0b7d9c9f6c8
--- /dev/null
+++ b/3rdparty/timepicker/js/i18n/jquery.ui.timepicker-sl.js
@@ -0,0 +1,12 @@
+/* Slovenian localization for the jQuery time picker plugin. */
+/* Written by Blaž Maležič (blaz@malezic.si) */
+jQuery(function($){
+ $.timepicker.regional['sl'] = {
+ hourText: 'Ure',
+ minuteText: 'Minute',
+ amPmText: ['AM', 'PM'],
+ closeButtonText: 'Zapri',
+ nowButtonText: 'Zdaj',
+ deselectButtonText: 'Pobriši' }
+ $.timepicker.setDefaults($.timepicker.regional['sl']);
+});
diff --git a/3rdparty/timepicker/js/i18n/jquery.ui.timepicker-sv.js b/3rdparty/timepicker/js/i18n/jquery.ui.timepicker-sv.js
new file mode 100755
index 00000000000..d6d798ef381
--- /dev/null
+++ b/3rdparty/timepicker/js/i18n/jquery.ui.timepicker-sv.js
@@ -0,0 +1,12 @@
+/* Swedish initialisation for the timepicker plugin */
+/* Written by Björn Westlin (bjorn.westlin@su.se). */
+jQuery(function($){
+ $.timepicker.regional['sv'] = {
+ hourText: 'Timme',
+ minuteText: 'Minut',
+ amPmText: ['AM', 'PM'] ,
+ closeButtonText: 'Stäng',
+ nowButtonText: 'Nu',
+ deselectButtonText: 'Rensa' }
+ $.timepicker.setDefaults($.timepicker.regional['sv']);
+});
diff --git a/3rdparty/timepicker/js/i18n/jquery.ui.timepicker-tr.js b/3rdparty/timepicker/js/i18n/jquery.ui.timepicker-tr.js
new file mode 100755
index 00000000000..4de447c4740
--- /dev/null
+++ b/3rdparty/timepicker/js/i18n/jquery.ui.timepicker-tr.js
@@ -0,0 +1,12 @@
+/* Turkish initialisation for the jQuery time picker plugin. */
+/* Written by Mutlu Tevfik Koçak (mtkocak@gmail.com) */
+jQuery(function($){
+ $.timepicker.regional['tr'] = {
+ hourText: 'Saat',
+ minuteText: 'Dakika',
+ amPmText: ['AM', 'PM'],
+ closeButtonText: 'Kapat',
+ nowButtonText: 'Şu anda',
+ deselectButtonText: 'Seçimi temizle' }
+ $.timepicker.setDefaults($.timepicker.regional['tr']);
+}); \ No newline at end of file
diff --git a/3rdparty/timepicker/js/jquery.ui.timepicker.js b/3rdparty/timepicker/js/jquery.ui.timepicker.js
index d086b674b7b..728841fa7ab 100644..100755
--- a/3rdparty/timepicker/js/jquery.ui.timepicker.js
+++ b/3rdparty/timepicker/js/jquery.ui.timepicker.js
@@ -1,5 +1,5 @@
/*
- * jQuery UI Timepicker 0.2.9
+ * jQuery UI Timepicker 0.3.1
*
* Copyright 2010-2011, Francois Gelinas
* Dual licensed under the MIT or GPL Version 2 licenses.
@@ -38,12 +38,12 @@
->T-Rex<-
*/
-(function ($, undefined) {
+(function ($) {
- $.extend($.ui, { timepicker: { version: "0.2.9"} });
+ $.extend($.ui, { timepicker: { version: "0.3.1"} });
- var PROP_NAME = 'timepicker';
- var tpuuid = new Date().getTime();
+ var PROP_NAME = 'timepicker',
+ tpuuid = new Date().getTime();
/* Time picker manager.
Use the singleton instance of this class, $.timepicker, to interact with the time picker.
@@ -53,7 +53,6 @@
function Timepicker() {
this.debug = true; // Change this to true to start debugging
this._curInst = null; // The current instance in use
- this._isInline = false; // true if the instance is displayed inline
this._disabledInputs = []; // List of time picker inputs that have been disabled
this._timepickerShowing = false; // True if the popup picker is showing , false if not
this._inDialog = false; // True if showing within a "dialog", false if not
@@ -267,17 +266,23 @@
input[isRTL ? 'before' : 'after'](inst.append);
}
input.unbind('focus.timepicker', this._showTimepicker);
+ input.unbind('click.timepicker', this._adjustZIndex);
+
if (inst.trigger) { inst.trigger.remove(); }
var showOn = this._get(inst, 'showOn');
if (showOn == 'focus' || showOn == 'both') { // pop-up time picker when in the marked field
input.bind("focus.timepicker", this._showTimepicker);
+ input.bind("click.timepicker", this._adjustZIndex);
}
if (showOn == 'button' || showOn == 'both') { // pop-up time picker when 'button' element is clicked
var button = this._get(inst, 'button');
$(button).bind("click.timepicker", function () {
- if ($.timepicker._timepickerShowing && $.timepicker._lastInput == input[0]) { $.timepicker._hideTimepicker(); }
- else { $.timepicker._showTimepicker(input[0]); }
+ if ($.timepicker._timepickerShowing && $.timepicker._lastInput == input[0]) {
+ $.timepicker._hideTimepicker();
+ } else if (!inst.input.is(':disabled')) {
+ $.timepicker._showTimepicker(input[0]);
+ }
return false;
});
@@ -303,12 +308,19 @@
inst.tpDiv.show();
},
+ _adjustZIndex: function(input) {
+ input = input.target || input;
+ var inst = $.timepicker._getInst(input);
+ inst.tpDiv.css('zIndex', $.timepicker._getZIndex(input) +1);
+ },
+
/* Pop-up the time picker for a given input field.
@param input element - the input field attached to the time picker or
event - if triggered by focus */
_showTimepicker: function (input) {
input = input.target || input;
if (input.nodeName.toLowerCase() != 'input') { input = $('input', input.parentNode)[0]; } // find from button/image trigger
+
if ($.timepicker._isDisabledTimepicker(input) || $.timepicker._lastInput == input) { return; } // already here
// fix v 0.0.8 - close current timepicker before showing another one
@@ -389,7 +401,8 @@
};
// Fixed the zIndex problem for real (I hope) - FG - v 0.2.9
- inst.tpDiv.css('zIndex', $.timepicker._getZIndex(input) +1);
+ $.timepicker._adjustZIndex(input);
+ //inst.tpDiv.css('zIndex', $.timepicker._getZIndex(input) +1);
if ($.effects && $.effects[showAnim]) {
inst.tpDiv.show(showAnim, $.timepicker._get(inst, 'showOptions'), duration, postProcess);
@@ -419,6 +432,16 @@
}
},
+ /* Refresh the time picker
+ @param target element - The target input field or inline container element. */
+ _refreshTimepicker: function(target) {
+ var inst = this._getInst(target);
+ if (inst) {
+ this._updateTimepicker(inst);
+ }
+ },
+
+
/* Generate the time picker content. */
_updateTimepicker: function (inst) {
inst.tpDiv.empty().append(this._generateHTML(inst));
@@ -467,7 +490,7 @@
.find('.' + this._dayOverClass + ' a')
.trigger('mouseover')
.end()
- .find('.ui-timepicker-now').bind("click",function(e) {
+ .find('.ui-timepicker-now').bind("click", function(e) {
$.timepicker.selectNow(e);
}).end()
.find('.ui-timepicker-deselect').bind("click",function(e) {
@@ -786,6 +809,26 @@
},
+ /* Detach a timepicker from its control.
+ @param target element - the target input field or division or span */
+ _destroyTimepicker: function(target) {
+ var $target = $(target);
+ var inst = $.data(target, PROP_NAME);
+ if (!$target.hasClass(this.markerClassName)) {
+ return;
+ }
+ var nodeName = target.nodeName.toLowerCase();
+ $.removeData(target, PROP_NAME);
+ if (nodeName == 'input') {
+ inst.append.remove();
+ inst.trigger.remove();
+ $target.removeClass(this.markerClassName)
+ .unbind('focus.timepicker', this._showTimepicker)
+ .unbind('click.timepicker', this._adjustZIndex);
+ } else if (nodeName == 'div' || nodeName == 'span')
+ $target.removeClass(this.markerClassName).empty();
+ },
+
/* Enable the date picker to a jQuery selection.
@param target element - the target input field or division or span */
_enableTimepicker: function(target) {
@@ -799,12 +842,17 @@
var nodeName = target.nodeName.toLowerCase();
if (nodeName == 'input') {
target.disabled = false;
+ var button = this._get(inst, 'button');
+ $(button).removeClass('ui-state-disabled').disabled = false;
inst.trigger.filter('button').
each(function() { this.disabled = false; }).end();
}
else if (nodeName == 'div' || nodeName == 'span') {
var inline = $target.children('.' + this._inlineClass);
inline.children().removeClass('ui-state-disabled');
+ inline.find('button').each(
+ function() { this.disabled = false }
+ )
}
this._disabledInputs = $.map(this._disabledInputs,
function(value) { return (value == target_id ? null : value); }); // delete entry
@@ -820,6 +868,9 @@
}
var nodeName = target.nodeName.toLowerCase();
if (nodeName == 'input') {
+ var button = this._get(inst, 'button');
+
+ $(button).addClass('ui-state-disabled').disabled = true;
target.disabled = true;
inst.trigger.filter('button').
@@ -829,6 +880,10 @@
else if (nodeName == 'div' || nodeName == 'span') {
var inline = $target.children('.' + this._inlineClass);
inline.children().addClass('ui-state-disabled');
+ inline.find('button').each(
+ function() { this.disabled = true }
+ )
+
}
this._disabledInputs = $.map(this._disabledInputs,
function(value) { return (value == target ? null : value); }); // delete entry
@@ -923,13 +978,9 @@
(showAnim == 'fadeIn' ? 'fadeOut' : 'hide'))]((showAnim ? duration : null), postProcess);
}
if (!showAnim) { postProcess(); }
- var onClose = this._get(inst, 'onClose');
- if (onClose) {
- onClose.apply(
- (inst.input ? inst.input[0] : null),
- [(inst.input ? inst.input.val() : ''), inst]); // trigger custom callback
- }
+
this._timepickerShowing = false;
+
this._lastInput = null;
if (this._inDialog) {
this._dialogInput.css({ position: 'absolute', left: '0', top: '-100px' });
@@ -939,6 +990,14 @@
}
}
this._inDialog = false;
+
+ var onClose = this._get(inst, 'onClose');
+ if (onClose) {
+ onClose.apply(
+ (inst.input ? inst.input[0] : null),
+ [(inst.input ? inst.input.val() : ''), inst]); // trigger custom callback
+ }
+
}
},
@@ -1106,12 +1165,10 @@
return retVal;
},
- selectNow: function(e) {
-
- var id = $(e.target).attr("data-timepicker-instance-id"),
+ selectNow: function(event) {
+ var id = $(event.target).attr("data-timepicker-instance-id"),
$target = $(id),
inst = this._getInst($target[0]);
-
//if (!inst || (input && inst != $.data(input, PROP_NAME))) { return; }
var currentTime = new Date();
inst.hours = currentTime.getHours();
@@ -1121,8 +1178,8 @@
this._hideTimepicker();
},
- deselectTime: function(e) {
- var id = $(e.target).attr("data-timepicker-instance-id"),
+ deselectTime: function(event) {
+ var id = $(event.target).attr("data-timepicker-instance-id"),
$target = $(id),
inst = this._getInst($target[0]);
inst.hours = -1;
@@ -1135,7 +1192,7 @@
selectHours: function (event) {
var $td = $(event.currentTarget),
id = $td.attr("data-timepicker-instance-id"),
- newHours = $td.attr("data-hour"),
+ newHours = parseInt($td.attr("data-hour")),
fromDoubleClick = event.data.fromDoubleClick,
$target = $(id),
inst = this._getInst($target[0]),
@@ -1168,7 +1225,7 @@
selectMinutes: function (event) {
var $td = $(event.currentTarget),
id = $td.attr("data-timepicker-instance-id"),
- newMinutes = $td.attr("data-minute"),
+ newMinutes = parseInt($td.attr("data-minute")),
fromDoubleClick = event.data.fromDoubleClick,
$target = $(id),
inst = this._getInst($target[0]),
@@ -1213,8 +1270,10 @@
return '';
}
- if ((inst.hours < 0) || (inst.hours > 23)) { inst.hours = 12; }
- if ((inst.minutes < 0) || (inst.minutes > 59)) { inst.minutes = 0; }
+ // default to 0 AM if hours is not valid
+ if ((inst.hours < inst.hours.starts) || (inst.hours > inst.hours.ends )) { inst.hours = 0; }
+ // default to 0 minutes if minute is not valid
+ if ((inst.minutes < inst.minutes.starts) || (inst.minutes > inst.minutes.ends)) { inst.minutes = 0; }
var period = "",
showPeriod = (this._get(inst, 'showPeriod') == true),
@@ -1309,6 +1368,8 @@
$.timepicker.initialized = true;
}
+
+
var otherArgs = Array.prototype.slice.call(arguments, 1);
if (typeof options == 'string' && (options == 'getTime' || options == 'getHour' || options == 'getMinute' ))
return $.timepicker['_' + options + 'Timepicker'].
@@ -1336,7 +1397,7 @@
$.timepicker = new Timepicker(); // singleton instance
$.timepicker.initialized = false;
$.timepicker.uuid = new Date().getTime();
- $.timepicker.version = "0.2.9";
+ $.timepicker.version = "0.3.1";
// Workaround for #4055
// Add another global to avoid noConflict issues with inline event handlers
diff --git a/3rdparty/timepicker/releases.txt b/3rdparty/timepicker/releases.txt
index 64622d49429..99ecbafdacb 100644..100755
--- a/3rdparty/timepicker/releases.txt
+++ b/3rdparty/timepicker/releases.txt
@@ -1,3 +1,13 @@
+Release 0.3.0 - 27 March 2012
+Fixed a zIndex problem in jQuery Dialog when the user clicked on the input while the timepicker was still visible.
+Added Czech translation, thanks David Spohr
+Added Swedish translation, thanks Björn Westlin
+Added Dutch translation, thanks Lowie Hulzinga
+Prevent showing the timepicker dialog with the button when disabled(Thanks ruhley. ref #38)
+Add ui-state-disabled class to button trigger when disabled.
+Fixed onClose function on first time passes the hours variable as string (Thanks Zanisimo, ref #39)
+Added "refresh" method $('selector').timepicker('refresh');
+
Release 0.2.9 - November 13, 2011
Fixed the zIndex problem and removed the zIndex option (Thanks everyone who reported the problem)
Fix a bug where repeatedly clicking on hour cells made the timepicker very slow.
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js
index de733579072..100a2368722 100644
--- a/apps/files/js/filelist.js
+++ b/apps/files/js/filelist.js
@@ -15,9 +15,9 @@ var FileList={
extension=false;
}
html+='<td class="filename" style="background-image:url('+img+')"><input type="checkbox" />';
- html+='<a class="name" href="download.php?file='+$('#dir').val().replace(/</, '&lt;').replace(/>/, '&gt;')+'/'+name+'"><span class="nametext">'+basename;
+ html+='<a class="name" href="download.php?file='+$('#dir').val().replace(/</, '&lt;').replace(/>/, '&gt;')+'/'+escapeHTML(name)+'"><span class="nametext">'+escapeHTML(basename);
if(extension){
- html+='<span class="extension">'+extension+'</span>';
+ html+='<span class="extension">'+escapeHTML(extension)+'</span>';
}
html+='</span></a></td>';
if(size!='Pending'){
@@ -189,9 +189,9 @@ var FileList={
checkName:function(oldName, newName, isNewFile) {
if (isNewFile || $('tr').filterAttr('data-file', newName).length > 0) {
if (isNewFile) {
- $('#notification').html(newName+' '+t('files', 'already exists')+'<span class="replace">'+t('files', 'replace')+'</span><span class="suggest">'+t('files', 'suggest name')+'</span><span class="cancel">'+t('files', 'cancel')+'</span>');
+ $('#notification').html(escapeHTML(newName)+' '+t('files', 'already exists')+'<span class="replace">'+t('files', 'replace')+'</span><span class="suggest">'+t('files', 'suggest name')+'</span><span class="cancel">'+t('files', 'cancel')+'</span>');
} else {
- $('#notification').html(newName+' '+t('files', 'already exists')+'<span class="replace">'+t('files', 'replace')+'</span><span class="cancel">'+t('files', 'cancel')+'</span>');
+ $('#notification').html(escapeHTML(newName)+' '+t('files', 'already exists')+'<span class="replace">'+t('files', 'replace')+'</span><span class="cancel">'+t('files', 'cancel')+'</span>');
}
$('#notification').data('oldName', oldName);
$('#notification').data('newName', newName);
@@ -272,9 +272,9 @@ var FileList={
} else {
// NOTE: Temporary fix to change the text to unshared for files in root of Shared folder
if ($('#dir').val() == '/Shared') {
- $('#notification').html(t('files', 'unshared')+' '+files+'<span class="undo">'+t('files', 'undo')+'</span>');
+ $('#notification').html(t('files', 'unshared')+' '+ escapeHTML(files) +'<span class="undo">'+t('files', 'undo')+'</span>');
} else {
- $('#notification').html(t('files', 'deleted')+' '+files+'<span class="undo">'+t('files', 'undo')+'</span>');
+ $('#notification').html(t('files', 'deleted')+' '+ escapeHTML(files)+'<span class="undo">'+t('files', 'undo')+'</span>');
}
$('#notification').fadeIn();
}
diff --git a/apps/files/js/files.js b/apps/files/js/files.js
index 64919acb5dd..c5333f2fafb 100644
--- a/apps/files/js/files.js
+++ b/apps/files/js/files.js
@@ -209,7 +209,7 @@ $(document).ready(function() {
var totalSize=0;
if(files){
for(var i=0;i<files.length;i++){
- if(files[i].size ==0 && files[i].type== '')
+ if(files[i].size ==0 || files[i].type== '')
{
OC.dialogs.alert(t('files', 'Unable to upload your file as it is a directory or has 0 bytes'), t('files', 'Upload Error'));
return;
@@ -282,7 +282,7 @@ $(document).ready(function() {
var fileName = files[i].name
var dropTarget = $(e.originalEvent.target).closest('tr');
if(dropTarget && dropTarget.attr('data-type') === 'dir') { // drag&drop upload to folder
- var dirName = dropTarget.attr('data-file')
+ var dirName = dropTarget.attr('data-file');
var jqXHR = $('.file_upload_start').fileupload('send', {files: files[i],
formData: function(form) {
var formArray = form.serializeArray();
diff --git a/apps/files/l10n/da.php b/apps/files/l10n/da.php
index 4a1372de529..5e428c9b2d9 100644
--- a/apps/files/l10n/da.php
+++ b/apps/files/l10n/da.php
@@ -23,6 +23,8 @@
"Unable to upload your file as it is a directory or has 0 bytes" => "Kunne ikke uploade din fil, da det enten er en mappe eller er tom",
"Upload Error" => "Fejl ved upload",
"Pending" => "Afventer",
+"1 file uploading" => "1 fil uploades",
+"files uploading" => "filer uploades",
"Upload cancelled." => "Upload afbrudt.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Fil upload kører. Hvis du forlader siden nu, vil uploadet blive annuleret.",
"Invalid name, '/' is not allowed." => "Ugyldigt navn, '/' er ikke tilladt.",
@@ -35,6 +37,16 @@
"folders" => "mapper",
"file" => "fil",
"files" => "filer",
+"seconds ago" => "sekunder siden",
+"minute ago" => "minut siden",
+"minutes ago" => "minutter",
+"today" => "i dag",
+"yesterday" => "i går",
+"days ago" => "dage siden",
+"last month" => "sidste måned",
+"months ago" => "måneder siden",
+"last year" => "sidste år",
+"years ago" => "år siden",
"File handling" => "Filhåndtering",
"Maximum upload size" => "Maksimal upload-størrelse",
"max. possible: " => "max. mulige: ",
diff --git a/apps/files/l10n/zh_CN.GB2312.php b/apps/files/l10n/zh_CN.GB2312.php
index b60ad3d4cdd..8d4ae972b9b 100644
--- a/apps/files/l10n/zh_CN.GB2312.php
+++ b/apps/files/l10n/zh_CN.GB2312.php
@@ -9,6 +9,7 @@
"Files" => "文件",
"Unshare" => "取消共享",
"Delete" => "删除",
+"Rename" => "重命名",
"already exists" => "已经存在了",
"replace" => "替换",
"suggest name" => "推荐名称",
@@ -22,6 +23,8 @@
"Unable to upload your file as it is a directory or has 0 bytes" => "不能上传你指定的文件,可能因为它是个文件夹或者大小为0",
"Upload Error" => "上传错误",
"Pending" => "Pending",
+"1 file uploading" => "1 个文件正在上传",
+"files uploading" => "个文件正在上传",
"Upload cancelled." => "上传取消了",
"File upload is in progress. Leaving the page now will cancel the upload." => "文件正在上传。关闭页面会取消上传。",
"Invalid name, '/' is not allowed." => "非法文件名,\"/\"是不被许可的",
@@ -34,6 +37,16 @@
"folders" => "文件夹",
"file" => "文件",
"files" => "文件",
+"seconds ago" => "秒前",
+"minute ago" => "分钟前",
+"minutes ago" => "分钟前",
+"today" => "今天",
+"yesterday" => "昨天",
+"days ago" => "天前",
+"last month" => "上个月",
+"months ago" => "月前",
+"last year" => "去年",
+"years ago" => "年前",
"File handling" => "文件处理中",
"Maximum upload size" => "最大上传大小",
"max. possible: " => "最大可能",
diff --git a/apps/files_external/l10n/da.php b/apps/files_external/l10n/da.php
index e4f1b9bb5ec..00a81f3da16 100644
--- a/apps/files_external/l10n/da.php
+++ b/apps/files_external/l10n/da.php
@@ -1,4 +1,10 @@
<?php $TRANSLATIONS = array(
+"Access granted" => "Adgang godkendt",
+"Error configuring Dropbox storage" => "Fejl ved konfiguration af Dropbox plads",
+"Grant access" => "Godkend adgang",
+"Fill out all required fields" => "Udfyld alle nødvendige felter",
+"Please provide a valid Dropbox app key and secret." => "Angiv venligst en valid Dropbox app nøgle og hemmelighed",
+"Error configuring Google Drive storage" => "Fejl ved konfiguration af Google Drive plads",
"External Storage" => "Ekstern opbevaring",
"Mount point" => "Monteringspunkt",
"Backend" => "Backend",
diff --git a/apps/files_external/l10n/de.php b/apps/files_external/l10n/de.php
index cf9968bf920..5d57e5e4598 100644
--- a/apps/files_external/l10n/de.php
+++ b/apps/files_external/l10n/de.php
@@ -1,9 +1,9 @@
<?php $TRANSLATIONS = array(
-"Access granted" => "Zugriff erlaubt",
+"Access granted" => "Zugriff gestattet",
"Error configuring Dropbox storage" => "Fehler beim Einrichten von Dropbox",
-"Grant access" => "Zugriff erlauben",
-"Fill out all required fields" => "Alle notwendigen Felder füllen",
-"Please provide a valid Dropbox app key and secret." => "Bitte geben Sie einen gültigen Dropbox-App-Key mit Secret ein.",
+"Grant access" => "Zugriff gestatten",
+"Fill out all required fields" => "Bitte alle notwendigen Felder füllen",
+"Please provide a valid Dropbox app key and secret." => "Bitte trage einen gültigen Dropbox-App-Key mit Secret ein.",
"Error configuring Google Drive storage" => "Fehler beim Einrichten von Google Drive",
"External Storage" => "Externer Speicher",
"Mount point" => "Mount-Point",
diff --git a/apps/files_external/l10n/fi_FI.php b/apps/files_external/l10n/fi_FI.php
index c8c93306e1f..d7b16e0d3ee 100644
--- a/apps/files_external/l10n/fi_FI.php
+++ b/apps/files_external/l10n/fi_FI.php
@@ -1,4 +1,9 @@
<?php $TRANSLATIONS = array(
+"Access granted" => "Pääsy sallittu",
+"Error configuring Dropbox storage" => "Virhe Dropbox levyn asetuksia tehtäessä",
+"Grant access" => "Salli pääsy",
+"Fill out all required fields" => "Täytä kaikki vaaditut kentät",
+"Error configuring Google Drive storage" => "Virhe Google Drive levyn asetuksia tehtäessä",
"External Storage" => "Erillinen tallennusväline",
"Mount point" => "Liitospiste",
"Backend" => "Taustaosa",
diff --git a/apps/files_external/l10n/nl.php b/apps/files_external/l10n/nl.php
index fee60e66aa5..87ab87cfc9f 100644
--- a/apps/files_external/l10n/nl.php
+++ b/apps/files_external/l10n/nl.php
@@ -1,4 +1,10 @@
<?php $TRANSLATIONS = array(
+"Access granted" => "Toegang toegestaan",
+"Error configuring Dropbox storage" => "Fout tijdens het configureren van Dropbox opslag",
+"Grant access" => "Sta toegang toe",
+"Fill out all required fields" => "Vul alle verplichte in",
+"Please provide a valid Dropbox app key and secret." => "Geef een geldige Dropbox key en secret.",
+"Error configuring Google Drive storage" => "Fout tijdens het configureren van Google Drive opslag",
"External Storage" => "Externe opslag",
"Mount point" => "Aankoppelpunt",
"Backend" => "Backend",
diff --git a/apps/files_external/l10n/ru_RU.php b/apps/files_external/l10n/ru_RU.php
index 4bd2e2e964f..493e3f5bee4 100644
--- a/apps/files_external/l10n/ru_RU.php
+++ b/apps/files_external/l10n/ru_RU.php
@@ -3,6 +3,8 @@
"Error configuring Dropbox storage" => "Ошибка при конфигурировании хранилища Dropbox",
"Grant access" => "Предоставить доступ",
"Fill out all required fields" => "Заполните все требуемые поля",
+"Please provide a valid Dropbox app key and secret." => "Пожалуйста представьте допустимый ключ приложения Dropbox и пароль.",
+"Error configuring Google Drive storage" => "Ошибка настройки хранилища Google Drive",
"External Storage" => "Внешние системы хранения данных",
"Mount point" => "Точка монтирования",
"Backend" => "Бэкэнд",
diff --git a/apps/files_external/l10n/zh_CN.GB2312.php b/apps/files_external/l10n/zh_CN.GB2312.php
index 62ac77ada04..47983d3d7d4 100644
--- a/apps/files_external/l10n/zh_CN.GB2312.php
+++ b/apps/files_external/l10n/zh_CN.GB2312.php
@@ -1,4 +1,10 @@
<?php $TRANSLATIONS = array(
+"Access granted" => "已授予权限",
+"Error configuring Dropbox storage" => "配置 Dropbox 存储出错",
+"Grant access" => "授予权限",
+"Fill out all required fields" => "填充全部必填字段",
+"Please provide a valid Dropbox app key and secret." => "请提供一个有效的 Dropbox app key 和 secret。",
+"Error configuring Google Drive storage" => "配置 Google Drive 存储失败",
"External Storage" => "外部存储",
"Mount point" => "挂载点",
"Backend" => "后端",
diff --git a/apps/files_external/lib/config.php b/apps/files_external/lib/config.php
index 7be23360199..3ba86cf148b 100755
--- a/apps/files_external/lib/config.php
+++ b/apps/files_external/lib/config.php
@@ -288,6 +288,9 @@ class OC_Mount_Config {
if (!is_dir($path)) mkdir($path);
$result = array();
$handle = opendir($path);
+ if (!$handle) {
+ return array();
+ }
while (false !== ($file = readdir($handle))) {
if($file != '.' && $file != '..') $result[] = $file;
}
diff --git a/apps/files_sharing/l10n/ru_RU.php b/apps/files_sharing/l10n/ru_RU.php
index a1579efc8f9..36e4b2fd0e1 100644
--- a/apps/files_sharing/l10n/ru_RU.php
+++ b/apps/files_sharing/l10n/ru_RU.php
@@ -1,6 +1,8 @@
<?php $TRANSLATIONS = array(
"Password" => "Пароль",
"Submit" => "Передать",
+"%s shared the folder %s with you" => "%s имеет общий с Вами доступ к папке %s ",
+"%s shared the file %s with you" => "%s имеет общий с Вами доступ к файлу %s ",
"Download" => "Загрузка",
"No preview available for" => "Предварительный просмотр недоступен",
"web services under your control" => "веб-сервисы под Вашим контролем"
diff --git a/apps/files_sharing/l10n/zh_CN.GB2312.php b/apps/files_sharing/l10n/zh_CN.GB2312.php
index fdde2c641f6..117ec8f4065 100644
--- a/apps/files_sharing/l10n/zh_CN.GB2312.php
+++ b/apps/files_sharing/l10n/zh_CN.GB2312.php
@@ -1,6 +1,8 @@
<?php $TRANSLATIONS = array(
"Password" => "密码",
"Submit" => "提交",
+"%s shared the folder %s with you" => "%s 与您分享了文件夹 %s",
+"%s shared the file %s with you" => "%s 与您分享了文件 %s",
"Download" => "下载",
"No preview available for" => "没有预览可用于",
"web services under your control" => "您控制的网络服务"
diff --git a/apps/files_versions/js/versions.js b/apps/files_versions/js/versions.js
index 87396cd0ba1..07c5655560e 100644
--- a/apps/files_versions/js/versions.js
+++ b/apps/files_versions/js/versions.js
@@ -45,7 +45,7 @@ function createVersionsDropdown(filename, files) {
var historyUrl = OC.linkTo('files_versions', 'history.php') + '?path='+encodeURIComponent( $( '#dir' ).val() ).replace( /%2F/g, '/' )+'/'+encodeURIComponent( filename );
- var html = '<div id="dropdown" class="drop drop-versions" data-file="'+files+'">';
+ var html = '<div id="dropdown" class="drop drop-versions" data-file="'+escapeHTML(files)+'">';
html += '<div id="private">';
html += '<select data-placeholder="Saved versions" id="found_versions" class="chzen-select" style="width:16em;">';
html += '<option value=""></option>';
diff --git a/apps/files_versions/l10n/zh_CN.GB2312.php b/apps/files_versions/l10n/zh_CN.GB2312.php
index 43af097a21e..107805221b8 100644
--- a/apps/files_versions/l10n/zh_CN.GB2312.php
+++ b/apps/files_versions/l10n/zh_CN.GB2312.php
@@ -1,5 +1,6 @@
<?php $TRANSLATIONS = array(
"Expire all versions" => "作废所有版本",
+"History" => "历史",
"Versions" => "版本",
"This will delete all existing backup versions of your files" => "这将删除所有您现有文件的备份版本",
"Files Versioning" => "文件版本",
diff --git a/apps/user_ldap/l10n/ru_RU.php b/apps/user_ldap/l10n/ru_RU.php
index 4b8aa36f181..8433f39e83c 100644
--- a/apps/user_ldap/l10n/ru_RU.php
+++ b/apps/user_ldap/l10n/ru_RU.php
@@ -6,15 +6,20 @@
"User DN" => "DN пользователя",
"Password" => "Пароль",
"For anonymous access, leave DN and Password empty." => "Для анонимного доступа оставьте поля DN и пароль пустыми.",
+"User Login Filter" => "Фильтр имен пользователей",
"use %%uid placeholder, e.g. \"uid=%%uid\"" => "используйте %%uid заполнитель, например, \"uid=%%uid\"",
"without any placeholder, e.g. \"objectClass=person\"." => "без каких-либо заполнителей, например, \"objectClass=person\".",
"Group Filter" => "Групповой фильтр",
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "без каких-либо заполнителей, например, \"objectClass=posixGroup\".",
"Port" => "Порт",
+"Base User Tree" => "Базовое дерево пользователей",
+"Group-Member association" => "Связь член-группа",
"Use TLS" => "Использовать TLS",
"Do not use it for SSL connections, it will fail." => "Не используйте это SSL-соединений, это не будет выполнено.",
+"Case insensitve LDAP server (Windows)" => "Нечувствительный к регистру LDAP-сервер (Windows)",
"Turn off SSL certificate validation." => "Выключить проверку сертификата SSL.",
"Not recommended, use for testing only." => "Не рекомендовано, используйте только для тестирования.",
+"User Display Name Field" => "Поле, отображаемое как имя пользователя",
"The LDAP attribute to use to generate the user`s ownCloud name." => "Атрибут LDAP, используемый для создания имени пользователя в ownCloud.",
"The LDAP attribute to use to generate the groups`s ownCloud name." => "Атрибут LDAP, используемый для создания группового имени в ownCloud.",
"in bytes" => "в байтах",
diff --git a/core/js/js.js b/core/js/js.js
index d87047dbc6b..ba8020c89ed 100644
--- a/core/js/js.js
+++ b/core/js/js.js
@@ -46,6 +46,15 @@ function t(app,text, vars){
}
t.cache={};
+/*
+* Sanitizes a HTML string
+* @param string
+* @return Sanitized string
+*/
+function escapeHTML(s) {
+ return s.toString().split('&').join('&amp;').split('<').join('&lt;').split('"').join('&quot;');
+}
+
/**
* Get the path to download a file
* @param file The filename
diff --git a/core/l10n/da.php b/core/l10n/da.php
index dbc99e237cb..5a56b670859 100644
--- a/core/l10n/da.php
+++ b/core/l10n/da.php
@@ -25,14 +25,20 @@
"Error while sharing" => "Fejl under deling",
"Error while unsharing" => "Fejl under annullering af deling",
"Error while changing permissions" => "Fejl under justering af rettigheder",
+"Shared with you and the group" => "Delt med dig og gruppen",
+"by" => "af",
+"Shared with you by" => "Delt med dig af",
"Share with" => "Del med",
"Share with link" => "Del med link",
"Password protect" => "Beskyt med adgangskode",
"Password" => "Kodeord",
"Set expiration date" => "Vælg udløbsdato",
"Expiration date" => "Udløbsdato",
+"Share via email:" => "Del via email:",
"No people found" => "Ingen personer fundet",
"Resharing is not allowed" => "Videredeling ikke tilladt",
+"Shared in" => "Delt i",
+"with" => "med",
"Unshare" => "Fjern deling",
"can edit" => "kan redigere",
"access control" => "Adgangskontrol",
@@ -41,6 +47,7 @@
"delete" => "slet",
"share" => "del",
"Password protected" => "Beskyttet med adgangskode",
+"Error unsetting expiration date" => "Fejl ved fjernelse af udløbsdato",
"Error setting expiration date" => "Fejl under sætning af udløbsdato",
"ownCloud password reset" => "Nulstil ownCloud kodeord",
"Use the following link to reset your password: {link}" => "Anvend følgende link til at nulstille din adgangskode: {link}",
diff --git a/core/l10n/fi_FI.php b/core/l10n/fi_FI.php
index a11ec5033c0..a1856067310 100644
--- a/core/l10n/fi_FI.php
+++ b/core/l10n/fi_FI.php
@@ -22,18 +22,28 @@
"Ok" => "Ok",
"No categories selected for deletion." => "Luokkia ei valittu poistettavaksi.",
"Error" => "Virhe",
+"Error while sharing" => "Virhe jaettaessa",
+"Error while unsharing" => "Virhe jakoa peruttaessa",
"Error while changing permissions" => "Virhe oikeuksia muuttaessa",
+"Shared with you and the group" => "Jaettu sinulle ja ryhmälle",
+"Share with link" => "Jaa linkillä",
"Password protect" => "Suojaa salasanalla",
"Password" => "Salasana",
"Set expiration date" => "Aseta päättymispäivä",
"Expiration date" => "Päättymispäivä",
+"Share via email:" => "Jaa sähköpostilla:",
+"No people found" => "Henkilöitä ei löytynyt",
"Resharing is not allowed" => "Jakaminen uudelleen ei ole salittu",
+"with" => "kanssa",
+"Unshare" => "Peru jakaminen",
"can edit" => "voi muokata",
+"access control" => "Pääsyn hallinta",
"create" => "luo",
"update" => "päivitä",
"delete" => "poista",
"share" => "jaa",
"Password protected" => "Salasanasuojattu",
+"Error unsetting expiration date" => "Virhe purettaessa eräpäivää",
"Error setting expiration date" => "Virhe päättymispäivää asettaessa",
"ownCloud password reset" => "ownCloud-salasanan nollaus",
"Use the following link to reset your password: {link}" => "Voit palauttaa salasanasi seuraavassa osoitteessa: {link}",
diff --git a/core/l10n/nl.php b/core/l10n/nl.php
index e4051fc5c5d..2e2a32c29bb 100644
--- a/core/l10n/nl.php
+++ b/core/l10n/nl.php
@@ -25,14 +25,20 @@
"Error while sharing" => "Fout tijdens het delen",
"Error while unsharing" => "Fout tijdens het stoppen met delen",
"Error while changing permissions" => "Fout tijdens het veranderen van permissies",
+"Shared with you and the group" => "Gedeeld me u en de groep",
+"by" => "door",
+"Shared with you by" => "Gedeeld met u door",
"Share with" => "Deel met",
"Share with link" => "Deel met link",
"Password protect" => "Passeerwoord beveiliging",
"Password" => "Wachtwoord",
"Set expiration date" => "Zet vervaldatum",
"Expiration date" => "Vervaldatum",
+"Share via email:" => "Deel via email:",
"No people found" => "Geen mensen gevonden",
"Resharing is not allowed" => "Verder delen is niet toegestaan",
+"Shared in" => "Gedeeld in",
+"with" => "met",
"Unshare" => "Stop met delen",
"can edit" => "kan wijzigen",
"access control" => "toegangscontrole",
@@ -41,6 +47,7 @@
"delete" => "verwijderen",
"share" => "deel",
"Password protected" => "Passeerwoord beveiligd",
+"Error unsetting expiration date" => "Fout tijdens het verwijderen van de verval datum",
"Error setting expiration date" => "Fout tijdens het configureren van de vervaldatum",
"ownCloud password reset" => "ownCloud wachtwoord herstellen",
"Use the following link to reset your password: {link}" => "Gebruik de volgende link om je wachtwoord te resetten: {link}",
diff --git a/core/l10n/pt_PT.php b/core/l10n/pt_PT.php
index 4ab9958f430..d483d087103 100644
--- a/core/l10n/pt_PT.php
+++ b/core/l10n/pt_PT.php
@@ -15,13 +15,40 @@
"October" => "Outubro",
"November" => "Novembro",
"December" => "Dezembro",
+"Choose" => "Escolha",
"Cancel" => "Cancelar",
"No" => "Não",
"Yes" => "Sim",
"Ok" => "Ok",
"No categories selected for deletion." => "Nenhuma categoria seleccionar para eliminar",
"Error" => "Erro",
+"Error while sharing" => "Erro ao partilhar",
+"Error while unsharing" => "Erro ao deixar de partilhar",
+"Error while changing permissions" => "Erro ao mudar permissões",
+"Shared with you and the group" => "Partilhado consigo e o grupo",
+"by" => "por",
+"Shared with you by" => "Partilhado consigo por",
+"Share with" => "Partilhar com",
+"Share with link" => "Partilhar com link",
+"Password protect" => "Proteger com palavra-passe",
"Password" => "Palavra chave",
+"Set expiration date" => "Especificar data de expiração",
+"Expiration date" => "Data de expiração",
+"Share via email:" => "Partilhar via email:",
+"No people found" => "Não foi encontrado ninguém",
+"Resharing is not allowed" => "Não é permitido partilhar de novo",
+"Shared in" => "Partilhado em",
+"with" => "com",
+"Unshare" => "Deixar de partilhar",
+"can edit" => "pode editar",
+"access control" => "Controlo de acesso",
+"create" => "criar",
+"update" => "actualizar",
+"delete" => "apagar",
+"share" => "partilhar",
+"Password protected" => "Protegido com palavra-passe",
+"Error unsetting expiration date" => "Erro ao retirar a data de expiração",
+"Error setting expiration date" => "Erro ao aplicar a data de expiração",
"ownCloud password reset" => "Reposição da password ownCloud",
"Use the following link to reset your password: {link}" => "Use o seguinte endereço para repor a sua password: {link}",
"You will receive a link to reset your password via Email." => "Vai receber um endereço para repor a sua password",
@@ -50,6 +77,7 @@
"Database user" => "Utilizador da base de dados",
"Database password" => "Password da base de dados",
"Database name" => "Nome da base de dados",
+"Database tablespace" => "Tablespace da base de dados",
"Database host" => "Host da base de dados",
"Finish setup" => "Acabar instalação",
"web services under your control" => "serviços web sob o seu controlo",
diff --git a/core/l10n/ru_RU.php b/core/l10n/ru_RU.php
index be86bb2ea59..60e15b996ec 100644
--- a/core/l10n/ru_RU.php
+++ b/core/l10n/ru_RU.php
@@ -31,8 +31,10 @@
"Set expiration date" => "Установить срок действия",
"Expiration date" => "Дата истечения срока действия",
"No people found" => "Не найдено людей",
+"Resharing is not allowed" => "Рекурсивный общий доступ не разрешен",
"with" => "с",
"Unshare" => "Отключить общий доступ",
+"can edit" => "возможно редактирование",
"access control" => "контроль доступа",
"create" => "создать",
"update" => "обновить",
diff --git a/core/l10n/zh_CN.GB2312.php b/core/l10n/zh_CN.GB2312.php
index de437cf2e4c..2f87278bf58 100644
--- a/core/l10n/zh_CN.GB2312.php
+++ b/core/l10n/zh_CN.GB2312.php
@@ -15,13 +15,40 @@
"October" => "十月",
"November" => "十一月",
"December" => "十二月",
+"Choose" => "选择",
"Cancel" => "取消",
"No" => "否",
"Yes" => "是",
"Ok" => "好的",
"No categories selected for deletion." => "没有选者要删除的分类.",
"Error" => "错误",
+"Error while sharing" => "分享出错",
+"Error while unsharing" => "取消分享出错",
+"Error while changing permissions" => "变更权限出错",
+"Shared with you and the group" => "与您和小组成员分享",
+"by" => "由",
+"Shared with you by" => "与您的分享,由",
+"Share with" => "分享",
+"Share with link" => "分享链接",
+"Password protect" => "密码保护",
"Password" => "密码",
+"Set expiration date" => "设置失效日期",
+"Expiration date" => "失效日期",
+"Share via email:" => "通过电子邮件分享:",
+"No people found" => "查无此人",
+"Resharing is not allowed" => "不允许重复分享",
+"Shared in" => "分享在",
+"with" => "与",
+"Unshare" => "取消分享",
+"can edit" => "可编辑",
+"access control" => "访问控制",
+"create" => "创建",
+"update" => "更新",
+"delete" => "删除",
+"share" => "分享",
+"Password protected" => "密码保护",
+"Error unsetting expiration date" => "取消设置失效日期出错",
+"Error setting expiration date" => "设置失效日期出错",
"ownCloud password reset" => "私有云密码重置",
"Use the following link to reset your password: {link}" => "使用下面的链接来重置你的密码:{link}",
"You will receive a link to reset your password via Email." => "你将会收到一个重置密码的链接",
diff --git a/l10n/da/core.po b/l10n/da/core.po
index 3ef84754e39..0612baf36cc 100644
--- a/l10n/da/core.po
+++ b/l10n/da/core.po
@@ -5,6 +5,7 @@
# Translators:
# <mikkelbjerglarsen@gmail.com>, 2011, 2012.
# Morten Juhl-Johansen Zölde-Fejér <morten@writtenandread.net>, 2011-2012.
+# Ole Holm Frandsen <froksen@gmail.com>, 2012.
# Pascal d'Hermilly <pascal@dhermilly.dk>, 2011.
# <simon@rosmi.dk>, 2012.
# Thomas Tanghus <>, 2012.
@@ -13,9 +14,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2012-09-28 23:34+0200\n"
-"PO-Revision-Date: 2012-09-28 21:34+0000\n"
-"Last-Translator: I Robot <thomas.mueller@tmit.eu>\n"
+"POT-Creation-Date: 2012-10-13 02:04+0200\n"
+"PO-Revision-Date: 2012-10-12 17:45+0000\n"
+"Last-Translator: Ole Holm Frandsen <froksen@gmail.com>\n"
"Language-Team: Danish (http://www.transifex.com/projects/p/owncloud/language/da/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -35,55 +36,55 @@ msgstr "Ingen kategori at tilføje?"
msgid "This category already exists: "
msgstr "Denne kategori eksisterer allerede: "
-#: js/js.js:213 templates/layout.user.php:49 templates/layout.user.php:50
+#: js/js.js:238 templates/layout.user.php:49 templates/layout.user.php:50
msgid "Settings"
msgstr "Indstillinger"
-#: js/js.js:645
+#: js/js.js:670
msgid "January"
msgstr "Januar"
-#: js/js.js:645
+#: js/js.js:670
msgid "February"
msgstr "Februar"
-#: js/js.js:645
+#: js/js.js:670
msgid "March"
msgstr "Marts"
-#: js/js.js:645
+#: js/js.js:670
msgid "April"
msgstr "April"
-#: js/js.js:645
+#: js/js.js:670
msgid "May"
msgstr "Maj"
-#: js/js.js:645
+#: js/js.js:670
msgid "June"
msgstr "Juni"
-#: js/js.js:646
+#: js/js.js:671
msgid "July"
msgstr "Juli"
-#: js/js.js:646
+#: js/js.js:671
msgid "August"
msgstr "August"
-#: js/js.js:646
+#: js/js.js:671
msgid "September"
msgstr "September"
-#: js/js.js:646
+#: js/js.js:671
msgid "October"
msgstr "Oktober"
-#: js/js.js:646
+#: js/js.js:671
msgid "November"
msgstr "November"
-#: js/js.js:646
+#: js/js.js:671
msgid "December"
msgstr "December"
@@ -111,8 +112,8 @@ msgstr "OK"
msgid "No categories selected for deletion."
msgstr "Ingen kategorier valgt"
-#: js/oc-vcategories.js:68 js/share.js:114 js/share.js:121 js/share.js:489
-#: js/share.js:501
+#: js/oc-vcategories.js:68 js/share.js:114 js/share.js:121 js/share.js:497
+#: js/share.js:509
msgid "Error"
msgstr "Fejl"
@@ -130,15 +131,15 @@ msgstr "Fejl under justering af rettigheder"
#: js/share.js:130
msgid "Shared with you and the group"
-msgstr ""
+msgstr "Delt med dig og gruppen"
#: js/share.js:130
msgid "by"
-msgstr ""
+msgstr "af"
#: js/share.js:132
msgid "Shared with you by"
-msgstr ""
+msgstr "Delt med dig af"
#: js/share.js:137
msgid "Share with"
@@ -166,7 +167,7 @@ msgstr "Udløbsdato"
#: js/share.js:185
msgid "Share via email:"
-msgstr ""
+msgstr "Del via email:"
#: js/share.js:187
msgid "No people found"
@@ -178,49 +179,49 @@ msgstr "Videredeling ikke tilladt"
#: js/share.js:250
msgid "Shared in"
-msgstr ""
+msgstr "Delt i"
#: js/share.js:250
msgid "with"
-msgstr ""
+msgstr "med"
#: js/share.js:271
msgid "Unshare"
msgstr "Fjern deling"
-#: js/share.js:279
+#: js/share.js:283
msgid "can edit"
msgstr "kan redigere"
-#: js/share.js:281
+#: js/share.js:285
msgid "access control"
msgstr "Adgangskontrol"
-#: js/share.js:284
+#: js/share.js:288
msgid "create"
msgstr "opret"
-#: js/share.js:287
+#: js/share.js:291
msgid "update"
msgstr "opdater"
-#: js/share.js:290
+#: js/share.js:294
msgid "delete"
msgstr "slet"
-#: js/share.js:293
+#: js/share.js:297
msgid "share"
msgstr "del"
-#: js/share.js:317 js/share.js:476
+#: js/share.js:322 js/share.js:484
msgid "Password protected"
msgstr "Beskyttet med adgangskode"
-#: js/share.js:489
+#: js/share.js:497
msgid "Error unsetting expiration date"
-msgstr ""
+msgstr "Fejl ved fjernelse af udløbsdato"
-#: js/share.js:501
+#: js/share.js:509
msgid "Error setting expiration date"
msgstr "Fejl under sætning af udløbsdato"
@@ -249,7 +250,7 @@ msgstr "Login fejlede!"
msgid "Username"
msgstr "Brugernavn"
-#: lostpassword/templates/lostpassword.php:15
+#: lostpassword/templates/lostpassword.php:14
msgid "Request reset"
msgstr "Anmod om nulstilling"
@@ -350,7 +351,7 @@ msgstr "Databasehost"
msgid "Finish setup"
msgstr "Afslut opsætning"
-#: templates/layout.guest.php:36
+#: templates/layout.guest.php:38
msgid "web services under your control"
msgstr "Webtjenester under din kontrol"
@@ -362,11 +363,11 @@ msgstr "Log ud"
msgid "Lost your password?"
msgstr "Mistet dit kodeord?"
-#: templates/login.php:17
+#: templates/login.php:16
msgid "remember"
msgstr "husk"
-#: templates/login.php:18
+#: templates/login.php:17
msgid "Log in"
msgstr "Log ind"
diff --git a/l10n/da/files.po b/l10n/da/files.po
index a6077390cd4..a5e95472c71 100644
--- a/l10n/da/files.po
+++ b/l10n/da/files.po
@@ -4,6 +4,7 @@
#
# Translators:
# Morten Juhl-Johansen Zölde-Fejér <morten@writtenandread.net>, 2011-2012.
+# Ole Holm Frandsen <froksen@gmail.com>, 2012.
# <osos@openeyes.dk>, 2012.
# Pascal d'Hermilly <pascal@dhermilly.dk>, 2011.
# <simon@rosmi.dk>, 2012.
@@ -13,9 +14,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2012-09-26 13:19+0200\n"
-"PO-Revision-Date: 2012-09-26 11:20+0000\n"
-"Last-Translator: I Robot <thomas.mueller@tmit.eu>\n"
+"POT-Creation-Date: 2012-10-13 02:04+0200\n"
+"PO-Revision-Date: 2012-10-12 17:48+0000\n"
+"Last-Translator: Ole Holm Frandsen <froksen@gmail.com>\n"
"Language-Team: Danish (http://www.transifex.com/projects/p/owncloud/language/da/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -69,39 +70,39 @@ msgstr "Slet"
msgid "Rename"
msgstr "Omdøb"
-#: js/filelist.js:190 js/filelist.js:192
+#: js/filelist.js:192 js/filelist.js:194
msgid "already exists"
msgstr "findes allerede"
-#: js/filelist.js:190 js/filelist.js:192
+#: js/filelist.js:192 js/filelist.js:194
msgid "replace"
msgstr "erstat"
-#: js/filelist.js:190
+#: js/filelist.js:192
msgid "suggest name"
msgstr "foreslå navn"
-#: js/filelist.js:190 js/filelist.js:192
+#: js/filelist.js:192 js/filelist.js:194
msgid "cancel"
msgstr "fortryd"
-#: js/filelist.js:239 js/filelist.js:241
+#: js/filelist.js:241 js/filelist.js:243
msgid "replaced"
msgstr "erstattet"
-#: js/filelist.js:239 js/filelist.js:241 js/filelist.js:273 js/filelist.js:275
+#: js/filelist.js:241 js/filelist.js:243 js/filelist.js:275 js/filelist.js:277
msgid "undo"
msgstr "fortryd"
-#: js/filelist.js:241
+#: js/filelist.js:243
msgid "with"
msgstr "med"
-#: js/filelist.js:273
+#: js/filelist.js:275
msgid "unshared"
msgstr "udelt"
-#: js/filelist.js:275
+#: js/filelist.js:277
msgid "deleted"
msgstr "Slettet"
@@ -109,114 +110,114 @@ msgstr "Slettet"
msgid "generating ZIP-file, it may take some time."
msgstr "genererer ZIP-fil, det kan tage lidt tid."
-#: js/files.js:208
+#: js/files.js:214
msgid "Unable to upload your file as it is a directory or has 0 bytes"
msgstr "Kunne ikke uploade din fil, da det enten er en mappe eller er tom"
-#: js/files.js:208
+#: js/files.js:214
msgid "Upload Error"
msgstr "Fejl ved upload"
-#: js/files.js:236 js/files.js:341 js/files.js:371
+#: js/files.js:242 js/files.js:347 js/files.js:377
msgid "Pending"
msgstr "Afventer"
-#: js/files.js:256
+#: js/files.js:262
msgid "1 file uploading"
-msgstr ""
+msgstr "1 fil uploades"
-#: js/files.js:259 js/files.js:304 js/files.js:319
+#: js/files.js:265 js/files.js:310 js/files.js:325
msgid "files uploading"
-msgstr ""
+msgstr "filer uploades"
-#: js/files.js:322 js/files.js:355
+#: js/files.js:328 js/files.js:361
msgid "Upload cancelled."
msgstr "Upload afbrudt."
-#: js/files.js:424
+#: js/files.js:430
msgid ""
"File upload is in progress. Leaving the page now will cancel the upload."
msgstr "Fil upload kører. Hvis du forlader siden nu, vil uploadet blive annuleret."
-#: js/files.js:494
+#: js/files.js:500
msgid "Invalid name, '/' is not allowed."
msgstr "Ugyldigt navn, '/' er ikke tilladt."
-#: js/files.js:667
+#: js/files.js:681
msgid "files scanned"
msgstr "filer scannet"
-#: js/files.js:675
+#: js/files.js:689
msgid "error while scanning"
msgstr "fejl under scanning"
-#: js/files.js:748 templates/index.php:48
+#: js/files.js:762 templates/index.php:48
msgid "Name"
msgstr "Navn"
-#: js/files.js:749 templates/index.php:56
+#: js/files.js:763 templates/index.php:56
msgid "Size"
msgstr "Størrelse"
-#: js/files.js:750 templates/index.php:58
+#: js/files.js:764 templates/index.php:58
msgid "Modified"
msgstr "Ændret"
-#: js/files.js:777
+#: js/files.js:791
msgid "folder"
msgstr "mappe"
-#: js/files.js:779
+#: js/files.js:793
msgid "folders"
msgstr "mapper"
-#: js/files.js:787
+#: js/files.js:801
msgid "file"
msgstr "fil"
-#: js/files.js:789
+#: js/files.js:803
msgid "files"
msgstr "filer"
-#: js/files.js:833
+#: js/files.js:847
msgid "seconds ago"
-msgstr ""
+msgstr "sekunder siden"
-#: js/files.js:834
+#: js/files.js:848
msgid "minute ago"
-msgstr ""
+msgstr "minut siden"
-#: js/files.js:835
+#: js/files.js:849
msgid "minutes ago"
-msgstr ""
+msgstr "minutter"
-#: js/files.js:838
+#: js/files.js:852
msgid "today"
-msgstr ""
+msgstr "i dag"
-#: js/files.js:839
+#: js/files.js:853
msgid "yesterday"
-msgstr ""
+msgstr "i går"
-#: js/files.js:840
+#: js/files.js:854
msgid "days ago"
-msgstr ""
+msgstr "dage siden"
-#: js/files.js:841
+#: js/files.js:855
msgid "last month"
-msgstr ""
+msgstr "sidste måned"
-#: js/files.js:843
+#: js/files.js:857
msgid "months ago"
-msgstr ""
+msgstr "måneder siden"
-#: js/files.js:844
+#: js/files.js:858
msgid "last year"
-msgstr ""
+msgstr "sidste år"
-#: js/files.js:845
+#: js/files.js:859
msgid "years ago"
-msgstr ""
+msgstr "år siden"
#: templates/admin.php:5
msgid "File handling"
diff --git a/l10n/da/files_external.po b/l10n/da/files_external.po
index fbc363140f1..24203a1e15e 100644
--- a/l10n/da/files_external.po
+++ b/l10n/da/files_external.po
@@ -4,13 +4,14 @@
#
# Translators:
# Morten Juhl-Johansen Zölde-Fejér <morten@writtenandread.net>, 2012.
+# Ole Holm Frandsen <froksen@gmail.com>, 2012.
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2012-10-02 23:16+0200\n"
-"PO-Revision-Date: 2012-10-02 21:17+0000\n"
-"Last-Translator: I Robot <thomas.mueller@tmit.eu>\n"
+"POT-Creation-Date: 2012-10-13 02:04+0200\n"
+"PO-Revision-Date: 2012-10-12 17:53+0000\n"
+"Last-Translator: Ole Holm Frandsen <froksen@gmail.com>\n"
"Language-Team: Danish (http://www.transifex.com/projects/p/owncloud/language/da/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -20,27 +21,27 @@ msgstr ""
#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23
msgid "Access granted"
-msgstr ""
+msgstr "Adgang godkendt"
#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86
msgid "Error configuring Dropbox storage"
-msgstr ""
+msgstr "Fejl ved konfiguration af Dropbox plads"
#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40
msgid "Grant access"
-msgstr ""
+msgstr "Godkend adgang"
#: js/dropbox.js:73 js/google.js:72
msgid "Fill out all required fields"
-msgstr ""
+msgstr "Udfyld alle nødvendige felter"
#: js/dropbox.js:85
msgid "Please provide a valid Dropbox app key and secret."
-msgstr ""
+msgstr "Angiv venligst en valid Dropbox app nøgle og hemmelighed"
#: js/google.js:26 js/google.js:73 js/google.js:78
msgid "Error configuring Google Drive storage"
-msgstr ""
+msgstr "Fejl ved konfiguration af Google Drive plads"
#: templates/settings.php:3
msgid "External Storage"
diff --git a/l10n/da/settings.po b/l10n/da/settings.po
index 5b3ac9a2a81..136582efaf0 100644
--- a/l10n/da/settings.po
+++ b/l10n/da/settings.po
@@ -6,6 +6,7 @@
# <icewind1991@gmail.com>, 2012.
# <mikkelbjerglarsen@gmail.com>, 2011.
# Morten Juhl-Johansen Zölde-Fejér <morten@writtenandread.net>, 2011-2012.
+# Ole Holm Frandsen <froksen@gmail.com>, 2012.
# Pascal d'Hermilly <pascal@dhermilly.dk>, 2011.
# <simon@rosmi.dk>, 2012.
# <sr@ybnet.dk>, 2012.
@@ -15,9 +16,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2012-10-09 02:03+0200\n"
-"PO-Revision-Date: 2012-10-09 00:03+0000\n"
-"Last-Translator: I Robot <thomas.mueller@tmit.eu>\n"
+"POT-Creation-Date: 2012-10-13 02:05+0200\n"
+"PO-Revision-Date: 2012-10-12 17:31+0000\n"
+"Last-Translator: Ole Holm Frandsen <froksen@gmail.com>\n"
"Language-Team: Danish (http://www.transifex.com/projects/p/owncloud/language/da/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -29,7 +30,7 @@ msgstr ""
msgid "Unable to load list from App Store"
msgstr "Kunne ikke indlæse listen fra App Store"
-#: ajax/creategroup.php:9 ajax/removeuser.php:13 ajax/setquota.php:18
+#: ajax/creategroup.php:9 ajax/removeuser.php:18 ajax/setquota.php:18
#: ajax/togglegroups.php:15
msgid "Authentication error"
msgstr "Adgangsfejl"
@@ -66,7 +67,7 @@ msgstr "Ugyldig forespørgsel"
msgid "Unable to delete group"
msgstr "Gruppen kan ikke slettes"
-#: ajax/removeuser.php:22
+#: ajax/removeuser.php:27
msgid "Unable to delete user"
msgstr "Bruger kan ikke slettes"
@@ -193,7 +194,7 @@ msgstr "Tilføj din App"
#: templates/apps.php:11
msgid "More Apps"
-msgstr ""
+msgstr "Flere Apps"
#: templates/apps.php:27
msgid "Select an App"
diff --git a/l10n/de/files_external.po b/l10n/de/files_external.po
index 06e859a1392..4f400dc97cc 100644
--- a/l10n/de/files_external.po
+++ b/l10n/de/files_external.po
@@ -3,6 +3,7 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
+# <blobbyjj@ymail.com>, 2012.
# I Robot <thomas.mueller@tmit.eu>, 2012.
# <thomas.mueller@tmit.eu>, 2012.
# <transifex.3.mensaje@spamgourmet.com>, 2012.
@@ -10,9 +11,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2012-10-03 02:01+0200\n"
-"PO-Revision-Date: 2012-10-02 21:25+0000\n"
-"Last-Translator: I Robot <thomas.mueller@tmit.eu>\n"
+"POT-Creation-Date: 2012-10-13 02:04+0200\n"
+"PO-Revision-Date: 2012-10-12 22:22+0000\n"
+"Last-Translator: Mirodin <blobbyjj@ymail.com>\n"
"Language-Team: German (http://www.transifex.com/projects/p/owncloud/language/de/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -22,7 +23,7 @@ msgstr ""
#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23
msgid "Access granted"
-msgstr "Zugriff erlaubt"
+msgstr "Zugriff gestattet"
#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86
msgid "Error configuring Dropbox storage"
@@ -30,15 +31,15 @@ msgstr "Fehler beim Einrichten von Dropbox"
#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40
msgid "Grant access"
-msgstr "Zugriff erlauben"
+msgstr "Zugriff gestatten"
#: js/dropbox.js:73 js/google.js:72
msgid "Fill out all required fields"
-msgstr "Alle notwendigen Felder füllen"
+msgstr "Bitte alle notwendigen Felder füllen"
#: js/dropbox.js:85
msgid "Please provide a valid Dropbox app key and secret."
-msgstr "Bitte geben Sie einen gültigen Dropbox-App-Key mit Secret ein."
+msgstr "Bitte trage einen gültigen Dropbox-App-Key mit Secret ein."
#: js/google.js:26 js/google.js:73 js/google.js:78
msgid "Error configuring Google Drive storage"
diff --git a/l10n/de/settings.po b/l10n/de/settings.po
index 6e58215f025..a4dd3740318 100644
--- a/l10n/de/settings.po
+++ b/l10n/de/settings.po
@@ -21,9 +21,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2012-10-10 02:05+0200\n"
-"PO-Revision-Date: 2012-10-09 10:11+0000\n"
-"Last-Translator: I Robot <thomas.mueller@tmit.eu>\n"
+"POT-Creation-Date: 2012-10-13 02:05+0200\n"
+"PO-Revision-Date: 2012-10-12 22:12+0000\n"
+"Last-Translator: Mirodin <blobbyjj@ymail.com>\n"
"Language-Team: German (http://www.transifex.com/projects/p/owncloud/language/de/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -35,7 +35,7 @@ msgstr ""
msgid "Unable to load list from App Store"
msgstr "Die Liste der Anwendungen im Store konnte nicht geladen werden."
-#: ajax/creategroup.php:9 ajax/removeuser.php:13 ajax/setquota.php:18
+#: ajax/creategroup.php:9 ajax/removeuser.php:18 ajax/setquota.php:18
#: ajax/togglegroups.php:15
msgid "Authentication error"
msgstr "Fehler bei der Anmeldung"
@@ -72,7 +72,7 @@ msgstr "Ungültige Anfrage"
msgid "Unable to delete group"
msgstr "Gruppe konnte nicht gelöscht werden"
-#: ajax/removeuser.php:22
+#: ajax/removeuser.php:27
msgid "Unable to delete user"
msgstr "Benutzer konnte nicht gelöscht werden"
@@ -199,7 +199,7 @@ msgstr "Füge Deine Anwendung hinzu"
#: templates/apps.php:11
msgid "More Apps"
-msgstr "Weitere Apps"
+msgstr "Weitere Anwendungen"
#: templates/apps.php:27
msgid "Select an App"
diff --git a/l10n/fi_FI/core.po b/l10n/fi_FI/core.po
index b7981285b1c..1d64256ea07 100644
--- a/l10n/fi_FI/core.po
+++ b/l10n/fi_FI/core.po
@@ -3,6 +3,7 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
+# <ari.takalo@iki.fi>, 2012.
# Jesse Jaara <jesse.jaara@gmail.com>, 2012.
# Jiri Grönroos <jiri.gronroos@iki.fi>, 2012.
# Johannes Korpela <>, 2012.
@@ -13,9 +14,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2012-09-28 23:34+0200\n"
-"PO-Revision-Date: 2012-09-28 21:34+0000\n"
-"Last-Translator: I Robot <thomas.mueller@tmit.eu>\n"
+"POT-Creation-Date: 2012-10-12 02:04+0200\n"
+"PO-Revision-Date: 2012-10-11 18:01+0000\n"
+"Last-Translator: variaatiox <ari.takalo@iki.fi>\n"
"Language-Team: Finnish (Finland) (http://www.transifex.com/projects/p/owncloud/language/fi_FI/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -35,55 +36,55 @@ msgstr "Ei lisättävää luokkaa?"
msgid "This category already exists: "
msgstr "Tämä luokka on jo olemassa: "
-#: js/js.js:213 templates/layout.user.php:49 templates/layout.user.php:50
+#: js/js.js:229 templates/layout.user.php:49 templates/layout.user.php:50
msgid "Settings"
msgstr "Asetukset"
-#: js/js.js:645
+#: js/js.js:661
msgid "January"
msgstr "Tammikuu"
-#: js/js.js:645
+#: js/js.js:661
msgid "February"
msgstr "Helmikuu"
-#: js/js.js:645
+#: js/js.js:661
msgid "March"
msgstr "Maaliskuu"
-#: js/js.js:645
+#: js/js.js:661
msgid "April"
msgstr "Huhtikuu"
-#: js/js.js:645
+#: js/js.js:661
msgid "May"
msgstr "Toukokuu"
-#: js/js.js:645
+#: js/js.js:661
msgid "June"
msgstr "Kesäkuu"
-#: js/js.js:646
+#: js/js.js:662
msgid "July"
msgstr "Heinäkuu"
-#: js/js.js:646
+#: js/js.js:662
msgid "August"
msgstr "Elokuu"
-#: js/js.js:646
+#: js/js.js:662
msgid "September"
msgstr "Syyskuu"
-#: js/js.js:646
+#: js/js.js:662
msgid "October"
msgstr "Lokakuu"
-#: js/js.js:646
+#: js/js.js:662
msgid "November"
msgstr "Marraskuu"
-#: js/js.js:646
+#: js/js.js:662
msgid "December"
msgstr "Joulukuu"
@@ -111,18 +112,18 @@ msgstr "Ok"
msgid "No categories selected for deletion."
msgstr "Luokkia ei valittu poistettavaksi."
-#: js/oc-vcategories.js:68 js/share.js:114 js/share.js:121 js/share.js:489
-#: js/share.js:501
+#: js/oc-vcategories.js:68 js/share.js:114 js/share.js:121 js/share.js:497
+#: js/share.js:509
msgid "Error"
msgstr "Virhe"
#: js/share.js:103
msgid "Error while sharing"
-msgstr ""
+msgstr "Virhe jaettaessa"
#: js/share.js:114
msgid "Error while unsharing"
-msgstr ""
+msgstr "Virhe jakoa peruttaessa"
#: js/share.js:121
msgid "Error while changing permissions"
@@ -130,7 +131,7 @@ msgstr "Virhe oikeuksia muuttaessa"
#: js/share.js:130
msgid "Shared with you and the group"
-msgstr ""
+msgstr "Jaettu sinulle ja ryhmälle"
#: js/share.js:130
msgid "by"
@@ -146,7 +147,7 @@ msgstr ""
#: js/share.js:142
msgid "Share with link"
-msgstr ""
+msgstr "Jaa linkillä"
#: js/share.js:143
msgid "Password protect"
@@ -166,11 +167,11 @@ msgstr "Päättymispäivä"
#: js/share.js:185
msgid "Share via email:"
-msgstr ""
+msgstr "Jaa sähköpostilla:"
#: js/share.js:187
msgid "No people found"
-msgstr ""
+msgstr "Henkilöitä ei löytynyt"
#: js/share.js:214
msgid "Resharing is not allowed"
@@ -182,45 +183,45 @@ msgstr ""
#: js/share.js:250
msgid "with"
-msgstr ""
+msgstr "kanssa"
#: js/share.js:271
msgid "Unshare"
-msgstr ""
+msgstr "Peru jakaminen"
-#: js/share.js:279
+#: js/share.js:283
msgid "can edit"
msgstr "voi muokata"
-#: js/share.js:281
+#: js/share.js:285
msgid "access control"
-msgstr ""
+msgstr "Pääsyn hallinta"
-#: js/share.js:284
+#: js/share.js:288
msgid "create"
msgstr "luo"
-#: js/share.js:287
+#: js/share.js:291
msgid "update"
msgstr "päivitä"
-#: js/share.js:290
+#: js/share.js:294
msgid "delete"
msgstr "poista"
-#: js/share.js:293
+#: js/share.js:297
msgid "share"
msgstr "jaa"
-#: js/share.js:317 js/share.js:476
+#: js/share.js:322 js/share.js:484
msgid "Password protected"
msgstr "Salasanasuojattu"
-#: js/share.js:489
+#: js/share.js:497
msgid "Error unsetting expiration date"
-msgstr ""
+msgstr "Virhe purettaessa eräpäivää"
-#: js/share.js:501
+#: js/share.js:509
msgid "Error setting expiration date"
msgstr "Virhe päättymispäivää asettaessa"
@@ -249,7 +250,7 @@ msgstr "Kirjautuminen epäonnistui!"
msgid "Username"
msgstr "Käyttäjätunnus"
-#: lostpassword/templates/lostpassword.php:15
+#: lostpassword/templates/lostpassword.php:14
msgid "Request reset"
msgstr "Tilaus lähetetty"
@@ -350,7 +351,7 @@ msgstr "Tietokantapalvelin"
msgid "Finish setup"
msgstr "Viimeistele asennus"
-#: templates/layout.guest.php:36
+#: templates/layout.guest.php:38
msgid "web services under your control"
msgstr "verkkopalvelut hallinnassasi"
@@ -362,11 +363,11 @@ msgstr "Kirjaudu ulos"
msgid "Lost your password?"
msgstr "Unohditko salasanasi?"
-#: templates/login.php:17
+#: templates/login.php:16
msgid "remember"
msgstr "muista"
-#: templates/login.php:18
+#: templates/login.php:17
msgid "Log in"
msgstr "Kirjaudu sisään"
diff --git a/l10n/fi_FI/files_external.po b/l10n/fi_FI/files_external.po
index 9da2ca47ee7..54f2df01a0d 100644
--- a/l10n/fi_FI/files_external.po
+++ b/l10n/fi_FI/files_external.po
@@ -3,15 +3,16 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
+# <ari.takalo@iki.fi>, 2012.
# Jiri Grönroos <jiri.gronroos@iki.fi>, 2012.
# <tehoratopato@gmail.com>, 2012.
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2012-10-02 23:16+0200\n"
-"PO-Revision-Date: 2012-10-02 21:17+0000\n"
-"Last-Translator: I Robot <thomas.mueller@tmit.eu>\n"
+"POT-Creation-Date: 2012-10-12 02:03+0200\n"
+"PO-Revision-Date: 2012-10-11 17:55+0000\n"
+"Last-Translator: variaatiox <ari.takalo@iki.fi>\n"
"Language-Team: Finnish (Finland) (http://www.transifex.com/projects/p/owncloud/language/fi_FI/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -21,19 +22,19 @@ msgstr ""
#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23
msgid "Access granted"
-msgstr ""
+msgstr "Pääsy sallittu"
#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86
msgid "Error configuring Dropbox storage"
-msgstr ""
+msgstr "Virhe Dropbox levyn asetuksia tehtäessä"
#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40
msgid "Grant access"
-msgstr ""
+msgstr "Salli pääsy"
#: js/dropbox.js:73 js/google.js:72
msgid "Fill out all required fields"
-msgstr ""
+msgstr "Täytä kaikki vaaditut kentät"
#: js/dropbox.js:85
msgid "Please provide a valid Dropbox app key and secret."
@@ -41,7 +42,7 @@ msgstr ""
#: js/google.js:26 js/google.js:73 js/google.js:78
msgid "Error configuring Google Drive storage"
-msgstr ""
+msgstr "Virhe Google Drive levyn asetuksia tehtäessä"
#: templates/settings.php:3
msgid "External Storage"
diff --git a/l10n/nl/core.po b/l10n/nl/core.po
index ab6365ed886..1f7c606ba22 100644
--- a/l10n/nl/core.po
+++ b/l10n/nl/core.po
@@ -15,9 +15,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2012-09-28 23:34+0200\n"
-"PO-Revision-Date: 2012-09-28 21:34+0000\n"
-"Last-Translator: I Robot <thomas.mueller@tmit.eu>\n"
+"POT-Creation-Date: 2012-10-13 02:04+0200\n"
+"PO-Revision-Date: 2012-10-12 20:18+0000\n"
+"Last-Translator: Richard Bos <radoeka@gmail.com>\n"
"Language-Team: Dutch (http://www.transifex.com/projects/p/owncloud/language/nl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -37,55 +37,55 @@ msgstr "Geen categorie toevoegen?"
msgid "This category already exists: "
msgstr "De categorie bestaat al."
-#: js/js.js:213 templates/layout.user.php:49 templates/layout.user.php:50
+#: js/js.js:238 templates/layout.user.php:49 templates/layout.user.php:50
msgid "Settings"
msgstr "Instellingen"
-#: js/js.js:645
+#: js/js.js:670
msgid "January"
msgstr "Januari"
-#: js/js.js:645
+#: js/js.js:670
msgid "February"
msgstr "Februari"
-#: js/js.js:645
+#: js/js.js:670
msgid "March"
msgstr "Maart"
-#: js/js.js:645
+#: js/js.js:670
msgid "April"
msgstr "April"
-#: js/js.js:645
+#: js/js.js:670
msgid "May"
msgstr "Mei"
-#: js/js.js:645
+#: js/js.js:670
msgid "June"
msgstr "Juni"
-#: js/js.js:646
+#: js/js.js:671
msgid "July"
msgstr "Juli"
-#: js/js.js:646
+#: js/js.js:671
msgid "August"
msgstr "Augustus"
-#: js/js.js:646
+#: js/js.js:671
msgid "September"
msgstr "September"
-#: js/js.js:646
+#: js/js.js:671
msgid "October"
msgstr "Oktober"
-#: js/js.js:646
+#: js/js.js:671
msgid "November"
msgstr "November"
-#: js/js.js:646
+#: js/js.js:671
msgid "December"
msgstr "December"
@@ -113,8 +113,8 @@ msgstr "Ok"
msgid "No categories selected for deletion."
msgstr "Geen categorie geselecteerd voor verwijdering."
-#: js/oc-vcategories.js:68 js/share.js:114 js/share.js:121 js/share.js:489
-#: js/share.js:501
+#: js/oc-vcategories.js:68 js/share.js:114 js/share.js:121 js/share.js:497
+#: js/share.js:509
msgid "Error"
msgstr "Fout"
@@ -132,15 +132,15 @@ msgstr "Fout tijdens het veranderen van permissies"
#: js/share.js:130
msgid "Shared with you and the group"
-msgstr ""
+msgstr "Gedeeld me u en de groep"
#: js/share.js:130
msgid "by"
-msgstr ""
+msgstr "door"
#: js/share.js:132
msgid "Shared with you by"
-msgstr ""
+msgstr "Gedeeld met u door"
#: js/share.js:137
msgid "Share with"
@@ -168,7 +168,7 @@ msgstr "Vervaldatum"
#: js/share.js:185
msgid "Share via email:"
-msgstr ""
+msgstr "Deel via email:"
#: js/share.js:187
msgid "No people found"
@@ -180,49 +180,49 @@ msgstr "Verder delen is niet toegestaan"
#: js/share.js:250
msgid "Shared in"
-msgstr ""
+msgstr "Gedeeld in"
#: js/share.js:250
msgid "with"
-msgstr ""
+msgstr "met"
#: js/share.js:271
msgid "Unshare"
msgstr "Stop met delen"
-#: js/share.js:279
+#: js/share.js:283
msgid "can edit"
msgstr "kan wijzigen"
-#: js/share.js:281
+#: js/share.js:285
msgid "access control"
msgstr "toegangscontrole"
-#: js/share.js:284
+#: js/share.js:288
msgid "create"
msgstr "maak"
-#: js/share.js:287
+#: js/share.js:291
msgid "update"
msgstr "bijwerken"
-#: js/share.js:290
+#: js/share.js:294
msgid "delete"
msgstr "verwijderen"
-#: js/share.js:293
+#: js/share.js:297
msgid "share"
msgstr "deel"
-#: js/share.js:317 js/share.js:476
+#: js/share.js:322 js/share.js:484
msgid "Password protected"
msgstr "Passeerwoord beveiligd"
-#: js/share.js:489
+#: js/share.js:497
msgid "Error unsetting expiration date"
-msgstr ""
+msgstr "Fout tijdens het verwijderen van de verval datum"
-#: js/share.js:501
+#: js/share.js:509
msgid "Error setting expiration date"
msgstr "Fout tijdens het configureren van de vervaldatum"
@@ -251,7 +251,7 @@ msgstr "Login mislukt!"
msgid "Username"
msgstr "Gebruikersnaam"
-#: lostpassword/templates/lostpassword.php:15
+#: lostpassword/templates/lostpassword.php:14
msgid "Request reset"
msgstr "Resetaanvraag"
@@ -352,7 +352,7 @@ msgstr "Database server"
msgid "Finish setup"
msgstr "Installatie afronden"
-#: templates/layout.guest.php:36
+#: templates/layout.guest.php:38
msgid "web services under your control"
msgstr "webdiensten die je beheerst"
@@ -364,11 +364,11 @@ msgstr "Afmelden"
msgid "Lost your password?"
msgstr "Uw wachtwoord vergeten?"
-#: templates/login.php:17
+#: templates/login.php:16
msgid "remember"
msgstr "onthoud gegevens"
-#: templates/login.php:18
+#: templates/login.php:17
msgid "Log in"
msgstr "Meld je aan"
diff --git a/l10n/nl/files_external.po b/l10n/nl/files_external.po
index d217f4796ba..a3bf337db11 100644
--- a/l10n/nl/files_external.po
+++ b/l10n/nl/files_external.po
@@ -8,9 +8,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2012-10-02 23:16+0200\n"
-"PO-Revision-Date: 2012-10-02 21:17+0000\n"
-"Last-Translator: I Robot <thomas.mueller@tmit.eu>\n"
+"POT-Creation-Date: 2012-10-13 02:04+0200\n"
+"PO-Revision-Date: 2012-10-12 19:43+0000\n"
+"Last-Translator: Richard Bos <radoeka@gmail.com>\n"
"Language-Team: Dutch (http://www.transifex.com/projects/p/owncloud/language/nl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -20,27 +20,27 @@ msgstr ""
#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23
msgid "Access granted"
-msgstr ""
+msgstr "Toegang toegestaan"
#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86
msgid "Error configuring Dropbox storage"
-msgstr ""
+msgstr "Fout tijdens het configureren van Dropbox opslag"
#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40
msgid "Grant access"
-msgstr ""
+msgstr "Sta toegang toe"
#: js/dropbox.js:73 js/google.js:72
msgid "Fill out all required fields"
-msgstr ""
+msgstr "Vul alle verplichte in"
#: js/dropbox.js:85
msgid "Please provide a valid Dropbox app key and secret."
-msgstr ""
+msgstr "Geef een geldige Dropbox key en secret."
#: js/google.js:26 js/google.js:73 js/google.js:78
msgid "Error configuring Google Drive storage"
-msgstr ""
+msgstr "Fout tijdens het configureren van Google Drive opslag"
#: templates/settings.php:3
msgid "External Storage"
diff --git a/l10n/nl/lib.po b/l10n/nl/lib.po
index 80648c52cf0..cd2b08ab962 100644
--- a/l10n/nl/lib.po
+++ b/l10n/nl/lib.po
@@ -8,53 +8,53 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2012-09-02 02:01+0200\n"
-"PO-Revision-Date: 2012-09-01 20:12+0000\n"
+"POT-Creation-Date: 2012-10-13 02:05+0200\n"
+"PO-Revision-Date: 2012-10-12 20:43+0000\n"
"Last-Translator: Richard Bos <radoeka@gmail.com>\n"
"Language-Team: Dutch (http://www.transifex.com/projects/p/owncloud/language/nl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: nl\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: app.php:288
+#: app.php:285
msgid "Help"
msgstr "Help"
-#: app.php:295
+#: app.php:292
msgid "Personal"
msgstr "Persoonlijk"
-#: app.php:300
+#: app.php:297
msgid "Settings"
msgstr "Instellingen"
-#: app.php:305
+#: app.php:302
msgid "Users"
msgstr "Gebruikers"
-#: app.php:312
+#: app.php:309
msgid "Apps"
msgstr "Apps"
-#: app.php:314
+#: app.php:311
msgid "Admin"
msgstr "Administrator"
-#: files.php:280
+#: files.php:328
msgid "ZIP download is turned off."
msgstr "ZIP download is uitgeschakeld."
-#: files.php:281
+#: files.php:329
msgid "Files need to be downloaded one by one."
msgstr "Bestanden moeten één voor één worden gedownload."
-#: files.php:281 files.php:306
+#: files.php:329 files.php:354
msgid "Back to Files"
msgstr "Terug naar bestanden"
-#: files.php:305
+#: files.php:353
msgid "Selected files too large to generate zip file."
msgstr "De geselecteerde bestanden zijn te groot om een zip bestand te maken."
@@ -70,57 +70,57 @@ msgstr "Authenticatie fout"
msgid "Token expired. Please reload page."
msgstr "Token verlopen. Herlaad de pagina."
-#: template.php:86
+#: template.php:87
msgid "seconds ago"
msgstr "seconden geleden"
-#: template.php:87
+#: template.php:88
msgid "1 minute ago"
msgstr "1 minuut geleden"
-#: template.php:88
+#: template.php:89
#, php-format
msgid "%d minutes ago"
msgstr "%d minuten geleden"
-#: template.php:91
+#: template.php:92
msgid "today"
msgstr "vandaag"
-#: template.php:92
+#: template.php:93
msgid "yesterday"
msgstr "gisteren"
-#: template.php:93
+#: template.php:94
#, php-format
msgid "%d days ago"
msgstr "%d dagen geleden"
-#: template.php:94
+#: template.php:95
msgid "last month"
msgstr "vorige maand"
-#: template.php:95
+#: template.php:96
msgid "months ago"
msgstr "maanden geleden"
-#: template.php:96
+#: template.php:97
msgid "last year"
msgstr "vorig jaar"
-#: template.php:97
+#: template.php:98
msgid "years ago"
msgstr "jaar geleden"
-#: updater.php:66
+#: updater.php:75
#, php-format
msgid "%s is available. Get <a href=\"%s\">more information</a>"
msgstr "%s is beschikbaar. Verkrijg <a href=\"%s\">meer informatie</a>"
-#: updater.php:68
+#: updater.php:77
msgid "up to date"
-msgstr "Bijgewerkt"
+msgstr "bijgewerkt"
-#: updater.php:71
+#: updater.php:80
msgid "updates check is disabled"
msgstr "Meest recente versie controle is uitgeschakeld"
diff --git a/l10n/nl/settings.po b/l10n/nl/settings.po
index 03b73cb31b6..0090a534ed6 100644
--- a/l10n/nl/settings.po
+++ b/l10n/nl/settings.po
@@ -16,9 +16,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2012-10-09 02:03+0200\n"
-"PO-Revision-Date: 2012-10-09 00:03+0000\n"
-"Last-Translator: I Robot <thomas.mueller@tmit.eu>\n"
+"POT-Creation-Date: 2012-10-13 02:05+0200\n"
+"PO-Revision-Date: 2012-10-12 19:36+0000\n"
+"Last-Translator: Richard Bos <radoeka@gmail.com>\n"
"Language-Team: Dutch (http://www.transifex.com/projects/p/owncloud/language/nl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -30,7 +30,7 @@ msgstr ""
msgid "Unable to load list from App Store"
msgstr "Kan de lijst niet van de App store laden"
-#: ajax/creategroup.php:9 ajax/removeuser.php:13 ajax/setquota.php:18
+#: ajax/creategroup.php:9 ajax/removeuser.php:18 ajax/setquota.php:18
#: ajax/togglegroups.php:15
msgid "Authentication error"
msgstr "Authenticatie fout"
@@ -67,7 +67,7 @@ msgstr "Ongeldig verzoek"
msgid "Unable to delete group"
msgstr "Niet in staat om groep te verwijderen"
-#: ajax/removeuser.php:22
+#: ajax/removeuser.php:27
msgid "Unable to delete user"
msgstr "Niet in staat om gebruiker te verwijderen"
@@ -194,7 +194,7 @@ msgstr "Voeg je App toe"
#: templates/apps.php:11
msgid "More Apps"
-msgstr ""
+msgstr "Meer apps"
#: templates/apps.php:27
msgid "Select an App"
diff --git a/l10n/pt_PT/core.po b/l10n/pt_PT/core.po
index a7b168b09f8..c49019a3863 100644
--- a/l10n/pt_PT/core.po
+++ b/l10n/pt_PT/core.po
@@ -3,6 +3,7 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
+# Duarte Velez Grilo <duartegrilo@gmail.com>, 2012.
# <helder.meneses@gmail.com>, 2011, 2012.
# Helder Meneses <helder.meneses@gmail.com>, 2012.
# <rjgpp.1994@gmail.com>, 2012.
@@ -10,9 +11,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2012-09-28 23:34+0200\n"
-"PO-Revision-Date: 2012-09-28 21:34+0000\n"
-"Last-Translator: I Robot <thomas.mueller@tmit.eu>\n"
+"POT-Creation-Date: 2012-10-12 02:04+0200\n"
+"PO-Revision-Date: 2012-10-11 10:31+0000\n"
+"Last-Translator: Duarte Velez Grilo <duartegrilo@gmail.com>\n"
"Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/owncloud/language/pt_PT/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -32,61 +33,61 @@ msgstr "Nenhuma categoria para adicionar?"
msgid "This category already exists: "
msgstr "Esta categoria já existe:"
-#: js/js.js:213 templates/layout.user.php:49 templates/layout.user.php:50
+#: js/js.js:229 templates/layout.user.php:49 templates/layout.user.php:50
msgid "Settings"
msgstr "Definições"
-#: js/js.js:645
+#: js/js.js:661
msgid "January"
msgstr "Janeiro"
-#: js/js.js:645
+#: js/js.js:661
msgid "February"
msgstr "Fevereiro"
-#: js/js.js:645
+#: js/js.js:661
msgid "March"
msgstr "Março"
-#: js/js.js:645
+#: js/js.js:661
msgid "April"
msgstr "Abril"
-#: js/js.js:645
+#: js/js.js:661
msgid "May"
msgstr "Maio"
-#: js/js.js:645
+#: js/js.js:661
msgid "June"
msgstr "Junho"
-#: js/js.js:646
+#: js/js.js:662
msgid "July"
msgstr "Julho"
-#: js/js.js:646
+#: js/js.js:662
msgid "August"
msgstr "Agosto"
-#: js/js.js:646
+#: js/js.js:662
msgid "September"
msgstr "Setembro"
-#: js/js.js:646
+#: js/js.js:662
msgid "October"
msgstr "Outubro"
-#: js/js.js:646
+#: js/js.js:662
msgid "November"
msgstr "Novembro"
-#: js/js.js:646
+#: js/js.js:662
msgid "December"
msgstr "Dezembro"
#: js/oc-dialogs.js:123
msgid "Choose"
-msgstr ""
+msgstr "Escolha"
#: js/oc-dialogs.js:143 js/oc-dialogs.js:163
msgid "Cancel"
@@ -108,46 +109,46 @@ msgstr "Ok"
msgid "No categories selected for deletion."
msgstr "Nenhuma categoria seleccionar para eliminar"
-#: js/oc-vcategories.js:68 js/share.js:114 js/share.js:121 js/share.js:489
-#: js/share.js:501
+#: js/oc-vcategories.js:68 js/share.js:114 js/share.js:121 js/share.js:497
+#: js/share.js:509
msgid "Error"
msgstr "Erro"
#: js/share.js:103
msgid "Error while sharing"
-msgstr ""
+msgstr "Erro ao partilhar"
#: js/share.js:114
msgid "Error while unsharing"
-msgstr ""
+msgstr "Erro ao deixar de partilhar"
#: js/share.js:121
msgid "Error while changing permissions"
-msgstr ""
+msgstr "Erro ao mudar permissões"
#: js/share.js:130
msgid "Shared with you and the group"
-msgstr ""
+msgstr "Partilhado consigo e o grupo"
#: js/share.js:130
msgid "by"
-msgstr ""
+msgstr "por"
#: js/share.js:132
msgid "Shared with you by"
-msgstr ""
+msgstr "Partilhado consigo por"
#: js/share.js:137
msgid "Share with"
-msgstr ""
+msgstr "Partilhar com"
#: js/share.js:142
msgid "Share with link"
-msgstr ""
+msgstr "Partilhar com link"
#: js/share.js:143
msgid "Password protect"
-msgstr ""
+msgstr "Proteger com palavra-passe"
#: js/share.js:147 templates/installation.php:30 templates/login.php:13
msgid "Password"
@@ -155,71 +156,71 @@ msgstr "Palavra chave"
#: js/share.js:152
msgid "Set expiration date"
-msgstr ""
+msgstr "Especificar data de expiração"
#: js/share.js:153
msgid "Expiration date"
-msgstr ""
+msgstr "Data de expiração"
#: js/share.js:185
msgid "Share via email:"
-msgstr ""
+msgstr "Partilhar via email:"
#: js/share.js:187
msgid "No people found"
-msgstr ""
+msgstr "Não foi encontrado ninguém"
#: js/share.js:214
msgid "Resharing is not allowed"
-msgstr ""
+msgstr "Não é permitido partilhar de novo"
#: js/share.js:250
msgid "Shared in"
-msgstr ""
+msgstr "Partilhado em"
#: js/share.js:250
msgid "with"
-msgstr ""
+msgstr "com"
#: js/share.js:271
msgid "Unshare"
-msgstr ""
+msgstr "Deixar de partilhar"
-#: js/share.js:279
+#: js/share.js:283
msgid "can edit"
-msgstr ""
+msgstr "pode editar"
-#: js/share.js:281
+#: js/share.js:285
msgid "access control"
-msgstr ""
+msgstr "Controlo de acesso"
-#: js/share.js:284
+#: js/share.js:288
msgid "create"
-msgstr ""
+msgstr "criar"
-#: js/share.js:287
+#: js/share.js:291
msgid "update"
-msgstr ""
+msgstr "actualizar"
-#: js/share.js:290
+#: js/share.js:294
msgid "delete"
-msgstr ""
+msgstr "apagar"
-#: js/share.js:293
+#: js/share.js:297
msgid "share"
-msgstr ""
+msgstr "partilhar"
-#: js/share.js:317 js/share.js:476
+#: js/share.js:322 js/share.js:484
msgid "Password protected"
-msgstr ""
+msgstr "Protegido com palavra-passe"
-#: js/share.js:489
+#: js/share.js:497
msgid "Error unsetting expiration date"
-msgstr ""
+msgstr "Erro ao retirar a data de expiração"
-#: js/share.js:501
+#: js/share.js:509
msgid "Error setting expiration date"
-msgstr ""
+msgstr "Erro ao aplicar a data de expiração"
#: lostpassword/index.php:26
msgid "ownCloud password reset"
@@ -246,7 +247,7 @@ msgstr "Conexão falhado!"
msgid "Username"
msgstr "Utilizador"
-#: lostpassword/templates/lostpassword.php:15
+#: lostpassword/templates/lostpassword.php:14
msgid "Request reset"
msgstr "Pedir reposição"
@@ -337,7 +338,7 @@ msgstr "Nome da base de dados"
#: templates/installation.php:109
msgid "Database tablespace"
-msgstr ""
+msgstr "Tablespace da base de dados"
#: templates/installation.php:115
msgid "Database host"
@@ -347,7 +348,7 @@ msgstr "Host da base de dados"
msgid "Finish setup"
msgstr "Acabar instalação"
-#: templates/layout.guest.php:36
+#: templates/layout.guest.php:38
msgid "web services under your control"
msgstr "serviços web sob o seu controlo"
@@ -359,11 +360,11 @@ msgstr "Sair"
msgid "Lost your password?"
msgstr "Esqueceu a sua password?"
-#: templates/login.php:17
+#: templates/login.php:16
msgid "remember"
msgstr "lembrar"
-#: templates/login.php:18
+#: templates/login.php:17
msgid "Log in"
msgstr "Entrar"
diff --git a/l10n/ru_RU/core.po b/l10n/ru_RU/core.po
index f9d5fc91673..32fa4465b3a 100644
--- a/l10n/ru_RU/core.po
+++ b/l10n/ru_RU/core.po
@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2012-10-11 02:04+0200\n"
-"PO-Revision-Date: 2012-10-10 13:35+0000\n"
+"POT-Creation-Date: 2012-10-12 02:04+0200\n"
+"PO-Revision-Date: 2012-10-11 08:47+0000\n"
"Last-Translator: AnnaSch <cdewqazxsqwe@gmail.com>\n"
"Language-Team: Russian (Russia) (http://www.transifex.com/projects/p/owncloud/language/ru_RU/)\n"
"MIME-Version: 1.0\n"
@@ -169,7 +169,7 @@ msgstr "Не найдено людей"
#: js/share.js:214
msgid "Resharing is not allowed"
-msgstr ""
+msgstr "Рекурсивный общий доступ не разрешен"
#: js/share.js:250
msgid "Shared in"
@@ -185,7 +185,7 @@ msgstr "Отключить общий доступ"
#: js/share.js:283
msgid "can edit"
-msgstr ""
+msgstr "возможно редактирование"
#: js/share.js:285
msgid "access control"
diff --git a/l10n/ru_RU/files_external.po b/l10n/ru_RU/files_external.po
index 62d3e494277..e0902a23493 100644
--- a/l10n/ru_RU/files_external.po
+++ b/l10n/ru_RU/files_external.po
@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2012-10-11 02:04+0200\n"
-"PO-Revision-Date: 2012-10-10 12:39+0000\n"
+"POT-Creation-Date: 2012-10-12 02:03+0200\n"
+"PO-Revision-Date: 2012-10-11 08:45+0000\n"
"Last-Translator: AnnaSch <cdewqazxsqwe@gmail.com>\n"
"Language-Team: Russian (Russia) (http://www.transifex.com/projects/p/owncloud/language/ru_RU/)\n"
"MIME-Version: 1.0\n"
@@ -36,11 +36,11 @@ msgstr "Заполните все требуемые поля"
#: js/dropbox.js:85
msgid "Please provide a valid Dropbox app key and secret."
-msgstr ""
+msgstr "Пожалуйста представьте допустимый ключ приложения Dropbox и пароль."
#: js/google.js:26 js/google.js:73 js/google.js:78
msgid "Error configuring Google Drive storage"
-msgstr ""
+msgstr "Ошибка настройки хранилища Google Drive"
#: templates/settings.php:3
msgid "External Storage"
diff --git a/l10n/ru_RU/files_sharing.po b/l10n/ru_RU/files_sharing.po
index bb667a04c51..7f31cb63091 100644
--- a/l10n/ru_RU/files_sharing.po
+++ b/l10n/ru_RU/files_sharing.po
@@ -8,9 +8,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2012-09-22 01:14+0200\n"
-"PO-Revision-Date: 2012-09-21 23:15+0000\n"
-"Last-Translator: I Robot <thomas.mueller@tmit.eu>\n"
+"POT-Creation-Date: 2012-10-12 02:03+0200\n"
+"PO-Revision-Date: 2012-10-11 10:54+0000\n"
+"Last-Translator: AnnaSch <cdewqazxsqwe@gmail.com>\n"
"Language-Team: Russian (Russia) (http://www.transifex.com/projects/p/owncloud/language/ru_RU/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -29,12 +29,12 @@ msgstr "Передать"
#: templates/public.php:9
#, php-format
msgid "%s shared the folder %s with you"
-msgstr ""
+msgstr "%s имеет общий с Вами доступ к папке %s "
#: templates/public.php:11
#, php-format
msgid "%s shared the file %s with you"
-msgstr ""
+msgstr "%s имеет общий с Вами доступ к файлу %s "
#: templates/public.php:14 templates/public.php:30
msgid "Download"
@@ -44,6 +44,6 @@ msgstr "Загрузка"
msgid "No preview available for"
msgstr "Предварительный просмотр недоступен"
-#: templates/public.php:37
+#: templates/public.php:35
msgid "web services under your control"
msgstr "веб-сервисы под Вашим контролем"
diff --git a/l10n/ru_RU/lib.po b/l10n/ru_RU/lib.po
index 006bcb62b0f..50b1f6524e2 100644
--- a/l10n/ru_RU/lib.po
+++ b/l10n/ru_RU/lib.po
@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2012-09-20 02:05+0200\n"
-"PO-Revision-Date: 2012-09-19 12:09+0000\n"
+"POT-Creation-Date: 2012-10-12 02:04+0200\n"
+"PO-Revision-Date: 2012-10-11 08:16+0000\n"
"Last-Translator: AnnaSch <cdewqazxsqwe@gmail.com>\n"
"Language-Team: Russian (Russia) (http://www.transifex.com/projects/p/owncloud/language/ru_RU/)\n"
"MIME-Version: 1.0\n"
@@ -42,19 +42,19 @@ msgstr "Приложения"
msgid "Admin"
msgstr "Админ"
-#: files.php:280
+#: files.php:328
msgid "ZIP download is turned off."
-msgstr ""
+msgstr "Загрузка ZIP выключена."
-#: files.php:281
+#: files.php:329
msgid "Files need to be downloaded one by one."
msgstr "Файлы должны быть загружены один за другим."
-#: files.php:281 files.php:306
+#: files.php:329 files.php:354
msgid "Back to Files"
msgstr "Обратно к файлам"
-#: files.php:305
+#: files.php:353
msgid "Selected files too large to generate zip file."
msgstr "Выбранные файлы слишком велики для генерации zip-архива."
@@ -112,15 +112,15 @@ msgstr "в прошлом году"
msgid "years ago"
msgstr "год назад"
-#: updater.php:66
+#: updater.php:75
#, php-format
msgid "%s is available. Get <a href=\"%s\">more information</a>"
msgstr "%s доступно. Получите <a href=\"%s\">more information</a>"
-#: updater.php:68
+#: updater.php:77
msgid "up to date"
msgstr "до настоящего времени"
-#: updater.php:71
+#: updater.php:80
msgid "updates check is disabled"
msgstr "Проверка обновлений отключена"
diff --git a/l10n/ru_RU/settings.po b/l10n/ru_RU/settings.po
index b4ad0e132f5..8da29bcbfef 100644
--- a/l10n/ru_RU/settings.po
+++ b/l10n/ru_RU/settings.po
@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2012-10-11 02:04+0200\n"
-"PO-Revision-Date: 2012-10-10 13:52+0000\n"
+"POT-Creation-Date: 2012-10-12 02:04+0200\n"
+"PO-Revision-Date: 2012-10-11 08:13+0000\n"
"Last-Translator: AnnaSch <cdewqazxsqwe@gmail.com>\n"
"Language-Team: Russian (Russia) (http://www.transifex.com/projects/p/owncloud/language/ru_RU/)\n"
"MIME-Version: 1.0\n"
@@ -144,7 +144,7 @@ msgstr "Предоставить ссылки"
#: templates/admin.php:68
msgid "Allow users to share items to the public with links"
-msgstr ""
+msgstr "Позволяет пользователям добавлять объекты в общий доступ по ссылке"
#: templates/admin.php:73
msgid "Allow resharing"
diff --git a/l10n/ru_RU/user_ldap.po b/l10n/ru_RU/user_ldap.po
index ed1fc49dd02..72709623ece 100644
--- a/l10n/ru_RU/user_ldap.po
+++ b/l10n/ru_RU/user_ldap.po
@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2012-10-11 02:04+0200\n"
-"PO-Revision-Date: 2012-10-10 12:58+0000\n"
+"POT-Creation-Date: 2012-10-12 02:03+0200\n"
+"PO-Revision-Date: 2012-10-11 08:03+0000\n"
"Last-Translator: AnnaSch <cdewqazxsqwe@gmail.com>\n"
"Language-Team: Russian (Russia) (http://www.transifex.com/projects/p/owncloud/language/ru_RU/)\n"
"MIME-Version: 1.0\n"
@@ -56,7 +56,7 @@ msgstr "Для анонимного доступа оставьте поля DN
#: templates/settings.php:12
msgid "User Login Filter"
-msgstr ""
+msgstr "Фильтр имен пользователей"
#: templates/settings.php:12
#, php-format
@@ -100,7 +100,7 @@ msgstr "Порт"
#: templates/settings.php:18
msgid "Base User Tree"
-msgstr ""
+msgstr "Базовое дерево пользователей"
#: templates/settings.php:19
msgid "Base Group Tree"
@@ -108,7 +108,7 @@ msgstr ""
#: templates/settings.php:20
msgid "Group-Member association"
-msgstr ""
+msgstr "Связь член-группа"
#: templates/settings.php:21
msgid "Use TLS"
@@ -120,7 +120,7 @@ msgstr "Не используйте это SSL-соединений, это не
#: templates/settings.php:22
msgid "Case insensitve LDAP server (Windows)"
-msgstr ""
+msgstr "Нечувствительный к регистру LDAP-сервер (Windows)"
#: templates/settings.php:23
msgid "Turn off SSL certificate validation."
@@ -138,7 +138,7 @@ msgstr "Не рекомендовано, используйте только д
#: templates/settings.php:24
msgid "User Display Name Field"
-msgstr ""
+msgstr "Поле, отображаемое как имя пользователя"
#: templates/settings.php:24
msgid "The LDAP attribute to use to generate the user`s ownCloud name."
diff --git a/l10n/templates/core.pot b/l10n/templates/core.pot
index 55bd36d9789..651f38bc470 100644
--- a/l10n/templates/core.pot
+++ b/l10n/templates/core.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-10-11 02:04+0200\n"
+"POT-Creation-Date: 2012-10-13 02:04+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -29,55 +29,55 @@ msgstr ""
msgid "This category already exists: "
msgstr ""
-#: js/js.js:229 templates/layout.user.php:49 templates/layout.user.php:50
+#: js/js.js:238 templates/layout.user.php:49 templates/layout.user.php:50
msgid "Settings"
msgstr ""
-#: js/js.js:661
+#: js/js.js:670
msgid "January"
msgstr ""
-#: js/js.js:661
+#: js/js.js:670
msgid "February"
msgstr ""
-#: js/js.js:661
+#: js/js.js:670
msgid "March"
msgstr ""
-#: js/js.js:661
+#: js/js.js:670
msgid "April"
msgstr ""
-#: js/js.js:661
+#: js/js.js:670
msgid "May"
msgstr ""
-#: js/js.js:661
+#: js/js.js:670
msgid "June"
msgstr ""
-#: js/js.js:662
+#: js/js.js:671
msgid "July"
msgstr ""
-#: js/js.js:662
+#: js/js.js:671
msgid "August"
msgstr ""
-#: js/js.js:662
+#: js/js.js:671
msgid "September"
msgstr ""
-#: js/js.js:662
+#: js/js.js:671
msgid "October"
msgstr ""
-#: js/js.js:662
+#: js/js.js:671
msgid "November"
msgstr ""
-#: js/js.js:662
+#: js/js.js:671
msgid "December"
msgstr ""
diff --git a/l10n/templates/files.pot b/l10n/templates/files.pot
index e57983ba837..19b3af3c6b0 100644
--- a/l10n/templates/files.pot
+++ b/l10n/templates/files.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-10-11 02:04+0200\n"
+"POT-Creation-Date: 2012-10-13 02:04+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/l10n/templates/files_encryption.pot b/l10n/templates/files_encryption.pot
index 159ecf64770..536907bb008 100644
--- a/l10n/templates/files_encryption.pot
+++ b/l10n/templates/files_encryption.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-10-11 02:04+0200\n"
+"POT-Creation-Date: 2012-10-13 02:04+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/l10n/templates/files_external.pot b/l10n/templates/files_external.pot
index b6721e8f6ea..f04d2300cbb 100644
--- a/l10n/templates/files_external.pot
+++ b/l10n/templates/files_external.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-10-11 02:04+0200\n"
+"POT-Creation-Date: 2012-10-13 02:04+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/l10n/templates/files_sharing.pot b/l10n/templates/files_sharing.pot
index c44e4e4ac08..499c844b6fa 100644
--- a/l10n/templates/files_sharing.pot
+++ b/l10n/templates/files_sharing.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-10-11 02:04+0200\n"
+"POT-Creation-Date: 2012-10-13 02:04+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/l10n/templates/files_versions.pot b/l10n/templates/files_versions.pot
index c08db0f8e19..db827defbd6 100644
--- a/l10n/templates/files_versions.pot
+++ b/l10n/templates/files_versions.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-10-11 02:04+0200\n"
+"POT-Creation-Date: 2012-10-13 02:04+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/l10n/templates/lib.pot b/l10n/templates/lib.pot
index db68096910c..020ff3080e3 100644
--- a/l10n/templates/lib.pot
+++ b/l10n/templates/lib.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-10-11 02:04+0200\n"
+"POT-Creation-Date: 2012-10-13 02:05+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/l10n/templates/settings.pot b/l10n/templates/settings.pot
index aadb83c77f6..009e49c13b6 100644
--- a/l10n/templates/settings.pot
+++ b/l10n/templates/settings.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-10-11 02:04+0200\n"
+"POT-Creation-Date: 2012-10-13 02:05+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/l10n/templates/user_ldap.pot b/l10n/templates/user_ldap.pot
index cda0cbff69a..3e8aebbb49b 100644
--- a/l10n/templates/user_ldap.pot
+++ b/l10n/templates/user_ldap.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-10-11 02:04+0200\n"
+"POT-Creation-Date: 2012-10-13 02:04+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/l10n/th_TH/settings.po b/l10n/th_TH/settings.po
index bfac678f543..180395a9629 100644
--- a/l10n/th_TH/settings.po
+++ b/l10n/th_TH/settings.po
@@ -10,9 +10,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2012-10-09 02:03+0200\n"
-"PO-Revision-Date: 2012-10-09 00:04+0000\n"
-"Last-Translator: I Robot <thomas.mueller@tmit.eu>\n"
+"POT-Creation-Date: 2012-10-12 02:04+0200\n"
+"PO-Revision-Date: 2012-10-11 13:06+0000\n"
+"Last-Translator: AriesAnywhere Anywhere <ariesanywhere@gmail.com>\n"
"Language-Team: Thai (Thailand) (http://www.transifex.com/projects/p/owncloud/language/th_TH/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -24,7 +24,7 @@ msgstr ""
msgid "Unable to load list from App Store"
msgstr "ไม่สามารถโหลดรายการจาก App Store ได้"
-#: ajax/creategroup.php:9 ajax/removeuser.php:13 ajax/setquota.php:18
+#: ajax/creategroup.php:9 ajax/removeuser.php:18 ajax/setquota.php:18
#: ajax/togglegroups.php:15
msgid "Authentication error"
msgstr "เกิดข้อผิดพลาดเกี่ยวกับสิทธิ์การเข้าใช้งาน"
@@ -61,7 +61,7 @@ msgstr "คำร้องขอไม่ถูกต้อง"
msgid "Unable to delete group"
msgstr "ไม่สามารถลบกลุ่มได้"
-#: ajax/removeuser.php:22
+#: ajax/removeuser.php:27
msgid "Unable to delete user"
msgstr "ไม่สามารถลบผู้ใช้งานได้"
@@ -188,7 +188,7 @@ msgstr "เพิ่มแอปของคุณ"
#: templates/apps.php:11
msgid "More Apps"
-msgstr ""
+msgstr "แอปฯอื่นเพิ่มเติม"
#: templates/apps.php:27
msgid "Select an App"
diff --git a/l10n/zh_CN.GB2312/core.po b/l10n/zh_CN.GB2312/core.po
index 7383234a43b..892575be9dd 100644
--- a/l10n/zh_CN.GB2312/core.po
+++ b/l10n/zh_CN.GB2312/core.po
@@ -9,9 +9,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2012-09-28 23:34+0200\n"
-"PO-Revision-Date: 2012-09-28 21:34+0000\n"
-"Last-Translator: I Robot <thomas.mueller@tmit.eu>\n"
+"POT-Creation-Date: 2012-10-12 02:04+0200\n"
+"PO-Revision-Date: 2012-10-11 23:45+0000\n"
+"Last-Translator: marguerite su <i@marguerite.su>\n"
"Language-Team: Chinese (China) (GB2312) (http://www.transifex.com/projects/p/owncloud/language/zh_CN.GB2312/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -31,61 +31,61 @@ msgstr "没有分类添加了?"
msgid "This category already exists: "
msgstr "这个分类已经存在了:"
-#: js/js.js:213 templates/layout.user.php:49 templates/layout.user.php:50
+#: js/js.js:229 templates/layout.user.php:49 templates/layout.user.php:50
msgid "Settings"
msgstr "设置"
-#: js/js.js:645
+#: js/js.js:661
msgid "January"
msgstr "一月"
-#: js/js.js:645
+#: js/js.js:661
msgid "February"
msgstr "二月"
-#: js/js.js:645
+#: js/js.js:661
msgid "March"
msgstr "三月"
-#: js/js.js:645
+#: js/js.js:661
msgid "April"
msgstr "四月"
-#: js/js.js:645
+#: js/js.js:661
msgid "May"
msgstr "五月"
-#: js/js.js:645
+#: js/js.js:661
msgid "June"
msgstr "六月"
-#: js/js.js:646
+#: js/js.js:662
msgid "July"
msgstr "七月"
-#: js/js.js:646
+#: js/js.js:662
msgid "August"
msgstr "八月"
-#: js/js.js:646
+#: js/js.js:662
msgid "September"
msgstr "九月"
-#: js/js.js:646
+#: js/js.js:662
msgid "October"
msgstr "十月"
-#: js/js.js:646
+#: js/js.js:662
msgid "November"
msgstr "十一月"
-#: js/js.js:646
+#: js/js.js:662
msgid "December"
msgstr "十二月"
#: js/oc-dialogs.js:123
msgid "Choose"
-msgstr ""
+msgstr "选择"
#: js/oc-dialogs.js:143 js/oc-dialogs.js:163
msgid "Cancel"
@@ -107,46 +107,46 @@ msgstr "好的"
msgid "No categories selected for deletion."
msgstr "没有选者要删除的分类."
-#: js/oc-vcategories.js:68 js/share.js:114 js/share.js:121 js/share.js:489
-#: js/share.js:501
+#: js/oc-vcategories.js:68 js/share.js:114 js/share.js:121 js/share.js:497
+#: js/share.js:509
msgid "Error"
msgstr "错误"
#: js/share.js:103
msgid "Error while sharing"
-msgstr ""
+msgstr "分享出错"
#: js/share.js:114
msgid "Error while unsharing"
-msgstr ""
+msgstr "取消分享出错"
#: js/share.js:121
msgid "Error while changing permissions"
-msgstr ""
+msgstr "变更权限出错"
#: js/share.js:130
msgid "Shared with you and the group"
-msgstr ""
+msgstr "与您和小组成员分享"
#: js/share.js:130
msgid "by"
-msgstr ""
+msgstr "由"
#: js/share.js:132
msgid "Shared with you by"
-msgstr ""
+msgstr "与您的分享,由"
#: js/share.js:137
msgid "Share with"
-msgstr ""
+msgstr "分享"
#: js/share.js:142
msgid "Share with link"
-msgstr ""
+msgstr "分享链接"
#: js/share.js:143
msgid "Password protect"
-msgstr ""
+msgstr "密码保护"
#: js/share.js:147 templates/installation.php:30 templates/login.php:13
msgid "Password"
@@ -154,71 +154,71 @@ msgstr "密码"
#: js/share.js:152
msgid "Set expiration date"
-msgstr ""
+msgstr "设置失效日期"
#: js/share.js:153
msgid "Expiration date"
-msgstr ""
+msgstr "失效日期"
#: js/share.js:185
msgid "Share via email:"
-msgstr ""
+msgstr "通过电子邮件分享:"
#: js/share.js:187
msgid "No people found"
-msgstr ""
+msgstr "查无此人"
#: js/share.js:214
msgid "Resharing is not allowed"
-msgstr ""
+msgstr "不允许重复分享"
#: js/share.js:250
msgid "Shared in"
-msgstr ""
+msgstr "分享在"
#: js/share.js:250
msgid "with"
-msgstr ""
+msgstr "与"
#: js/share.js:271
msgid "Unshare"
-msgstr ""
+msgstr "取消分享"
-#: js/share.js:279
+#: js/share.js:283
msgid "can edit"
-msgstr ""
+msgstr "可编辑"
-#: js/share.js:281
+#: js/share.js:285
msgid "access control"
-msgstr ""
+msgstr "访问控制"
-#: js/share.js:284
+#: js/share.js:288
msgid "create"
-msgstr ""
+msgstr "创建"
-#: js/share.js:287
+#: js/share.js:291
msgid "update"
-msgstr ""
+msgstr "更新"
-#: js/share.js:290
+#: js/share.js:294
msgid "delete"
-msgstr ""
+msgstr "删除"
-#: js/share.js:293
+#: js/share.js:297
msgid "share"
-msgstr ""
+msgstr "分享"
-#: js/share.js:317 js/share.js:476
+#: js/share.js:322 js/share.js:484
msgid "Password protected"
-msgstr ""
+msgstr "密码保护"
-#: js/share.js:489
+#: js/share.js:497
msgid "Error unsetting expiration date"
-msgstr ""
+msgstr "取消设置失效日期出错"
-#: js/share.js:501
+#: js/share.js:509
msgid "Error setting expiration date"
-msgstr ""
+msgstr "设置失效日期出错"
#: lostpassword/index.php:26
msgid "ownCloud password reset"
@@ -245,7 +245,7 @@ msgstr "登陆失败!"
msgid "Username"
msgstr "用户名"
-#: lostpassword/templates/lostpassword.php:15
+#: lostpassword/templates/lostpassword.php:14
msgid "Request reset"
msgstr "要求重置"
@@ -346,7 +346,7 @@ msgstr "数据库主机"
msgid "Finish setup"
msgstr "完成安装"
-#: templates/layout.guest.php:36
+#: templates/layout.guest.php:38
msgid "web services under your control"
msgstr "你控制下的网络服务"
@@ -358,11 +358,11 @@ msgstr "注销"
msgid "Lost your password?"
msgstr "忘记密码?"
-#: templates/login.php:17
+#: templates/login.php:16
msgid "remember"
msgstr "备忘"
-#: templates/login.php:18
+#: templates/login.php:17
msgid "Log in"
msgstr "登陆"
diff --git a/l10n/zh_CN.GB2312/files.po b/l10n/zh_CN.GB2312/files.po
index 88323a828af..25c2fb24003 100644
--- a/l10n/zh_CN.GB2312/files.po
+++ b/l10n/zh_CN.GB2312/files.po
@@ -9,9 +9,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2012-09-26 13:19+0200\n"
-"PO-Revision-Date: 2012-09-26 11:20+0000\n"
-"Last-Translator: I Robot <thomas.mueller@tmit.eu>\n"
+"POT-Creation-Date: 2012-10-12 02:03+0200\n"
+"PO-Revision-Date: 2012-10-11 23:48+0000\n"
+"Last-Translator: marguerite su <i@marguerite.su>\n"
"Language-Team: Chinese (China) (GB2312) (http://www.transifex.com/projects/p/owncloud/language/zh_CN.GB2312/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -63,41 +63,41 @@ msgstr "删除"
#: js/fileactions.js:182
msgid "Rename"
-msgstr ""
+msgstr "重命名"
-#: js/filelist.js:190 js/filelist.js:192
+#: js/filelist.js:192 js/filelist.js:194
msgid "already exists"
msgstr "已经存在了"
-#: js/filelist.js:190 js/filelist.js:192
+#: js/filelist.js:192 js/filelist.js:194
msgid "replace"
msgstr "替换"
-#: js/filelist.js:190
+#: js/filelist.js:192
msgid "suggest name"
msgstr "推荐名称"
-#: js/filelist.js:190 js/filelist.js:192
+#: js/filelist.js:192 js/filelist.js:194
msgid "cancel"
msgstr "取消"
-#: js/filelist.js:239 js/filelist.js:241
+#: js/filelist.js:241 js/filelist.js:243
msgid "replaced"
msgstr "替换过了"
-#: js/filelist.js:239 js/filelist.js:241 js/filelist.js:273 js/filelist.js:275
+#: js/filelist.js:241 js/filelist.js:243 js/filelist.js:275 js/filelist.js:277
msgid "undo"
msgstr "撤销"
-#: js/filelist.js:241
+#: js/filelist.js:243
msgid "with"
msgstr "随着"
-#: js/filelist.js:273
+#: js/filelist.js:275
msgid "unshared"
msgstr "已取消共享"
-#: js/filelist.js:275
+#: js/filelist.js:277
msgid "deleted"
msgstr "删除"
@@ -105,114 +105,114 @@ msgstr "删除"
msgid "generating ZIP-file, it may take some time."
msgstr "正在生成ZIP文件,这可能需要点时间"
-#: js/files.js:208
+#: js/files.js:214
msgid "Unable to upload your file as it is a directory or has 0 bytes"
msgstr "不能上传你指定的文件,可能因为它是个文件夹或者大小为0"
-#: js/files.js:208
+#: js/files.js:214
msgid "Upload Error"
msgstr "上传错误"
-#: js/files.js:236 js/files.js:341 js/files.js:371
+#: js/files.js:242 js/files.js:347 js/files.js:377
msgid "Pending"
msgstr "Pending"
-#: js/files.js:256
+#: js/files.js:262
msgid "1 file uploading"
-msgstr ""
+msgstr "1 个文件正在上传"
-#: js/files.js:259 js/files.js:304 js/files.js:319
+#: js/files.js:265 js/files.js:310 js/files.js:325
msgid "files uploading"
-msgstr ""
+msgstr "个文件正在上传"
-#: js/files.js:322 js/files.js:355
+#: js/files.js:328 js/files.js:361
msgid "Upload cancelled."
msgstr "上传取消了"
-#: js/files.js:424
+#: js/files.js:430
msgid ""
"File upload is in progress. Leaving the page now will cancel the upload."
msgstr "文件正在上传。关闭页面会取消上传。"
-#: js/files.js:494
+#: js/files.js:500
msgid "Invalid name, '/' is not allowed."
msgstr "非法文件名,\"/\"是不被许可的"
-#: js/files.js:667
+#: js/files.js:681
msgid "files scanned"
msgstr "文件已扫描"
-#: js/files.js:675
+#: js/files.js:689
msgid "error while scanning"
msgstr "扫描出错"
-#: js/files.js:748 templates/index.php:48
+#: js/files.js:762 templates/index.php:48
msgid "Name"
msgstr "名字"
-#: js/files.js:749 templates/index.php:56
+#: js/files.js:763 templates/index.php:56
msgid "Size"
msgstr "大小"
-#: js/files.js:750 templates/index.php:58
+#: js/files.js:764 templates/index.php:58
msgid "Modified"
msgstr "修改日期"
-#: js/files.js:777
+#: js/files.js:791
msgid "folder"
msgstr "文件夹"
-#: js/files.js:779
+#: js/files.js:793
msgid "folders"
msgstr "文件夹"
-#: js/files.js:787
+#: js/files.js:801
msgid "file"
msgstr "文件"
-#: js/files.js:789
+#: js/files.js:803
msgid "files"
msgstr "文件"
-#: js/files.js:833
+#: js/files.js:847
msgid "seconds ago"
-msgstr ""
+msgstr "秒前"
-#: js/files.js:834
+#: js/files.js:848
msgid "minute ago"
-msgstr ""
+msgstr "分钟前"
-#: js/files.js:835
+#: js/files.js:849
msgid "minutes ago"
-msgstr ""
+msgstr "分钟前"
-#: js/files.js:838
+#: js/files.js:852
msgid "today"
-msgstr ""
+msgstr "今天"
-#: js/files.js:839
+#: js/files.js:853
msgid "yesterday"
-msgstr ""
+msgstr "昨天"
-#: js/files.js:840
+#: js/files.js:854
msgid "days ago"
-msgstr ""
+msgstr "天前"
-#: js/files.js:841
+#: js/files.js:855
msgid "last month"
-msgstr ""
+msgstr "上个月"
-#: js/files.js:843
+#: js/files.js:857
msgid "months ago"
-msgstr ""
+msgstr "月前"
-#: js/files.js:844
+#: js/files.js:858
msgid "last year"
-msgstr ""
+msgstr "去年"
-#: js/files.js:845
+#: js/files.js:859
msgid "years ago"
-msgstr ""
+msgstr "年前"
#: templates/admin.php:5
msgid "File handling"
diff --git a/l10n/zh_CN.GB2312/files_external.po b/l10n/zh_CN.GB2312/files_external.po
index 6cf08d86498..426e58b01a3 100644
--- a/l10n/zh_CN.GB2312/files_external.po
+++ b/l10n/zh_CN.GB2312/files_external.po
@@ -8,9 +8,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2012-10-02 23:16+0200\n"
-"PO-Revision-Date: 2012-10-02 21:17+0000\n"
-"Last-Translator: I Robot <thomas.mueller@tmit.eu>\n"
+"POT-Creation-Date: 2012-10-12 02:03+0200\n"
+"PO-Revision-Date: 2012-10-11 23:47+0000\n"
+"Last-Translator: marguerite su <i@marguerite.su>\n"
"Language-Team: Chinese (China) (GB2312) (http://www.transifex.com/projects/p/owncloud/language/zh_CN.GB2312/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -20,27 +20,27 @@ msgstr ""
#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23
msgid "Access granted"
-msgstr ""
+msgstr "已授予权限"
#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86
msgid "Error configuring Dropbox storage"
-msgstr ""
+msgstr "配置 Dropbox 存储出错"
#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40
msgid "Grant access"
-msgstr ""
+msgstr "授予权限"
#: js/dropbox.js:73 js/google.js:72
msgid "Fill out all required fields"
-msgstr ""
+msgstr "填充全部必填字段"
#: js/dropbox.js:85
msgid "Please provide a valid Dropbox app key and secret."
-msgstr ""
+msgstr "请提供一个有效的 Dropbox app key 和 secret。"
#: js/google.js:26 js/google.js:73 js/google.js:78
msgid "Error configuring Google Drive storage"
-msgstr ""
+msgstr "配置 Google Drive 存储失败"
#: templates/settings.php:3
msgid "External Storage"
diff --git a/l10n/zh_CN.GB2312/files_sharing.po b/l10n/zh_CN.GB2312/files_sharing.po
index 1509a1ab9e7..a25727470d6 100644
--- a/l10n/zh_CN.GB2312/files_sharing.po
+++ b/l10n/zh_CN.GB2312/files_sharing.po
@@ -8,9 +8,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2012-09-22 01:14+0200\n"
-"PO-Revision-Date: 2012-09-21 23:15+0000\n"
-"Last-Translator: I Robot <thomas.mueller@tmit.eu>\n"
+"POT-Creation-Date: 2012-10-12 02:03+0200\n"
+"PO-Revision-Date: 2012-10-11 23:45+0000\n"
+"Last-Translator: marguerite su <i@marguerite.su>\n"
"Language-Team: Chinese (China) (GB2312) (http://www.transifex.com/projects/p/owncloud/language/zh_CN.GB2312/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -29,12 +29,12 @@ msgstr "提交"
#: templates/public.php:9
#, php-format
msgid "%s shared the folder %s with you"
-msgstr ""
+msgstr "%s 与您分享了文件夹 %s"
#: templates/public.php:11
#, php-format
msgid "%s shared the file %s with you"
-msgstr ""
+msgstr "%s 与您分享了文件 %s"
#: templates/public.php:14 templates/public.php:30
msgid "Download"
@@ -44,6 +44,6 @@ msgstr "下载"
msgid "No preview available for"
msgstr "没有预览可用于"
-#: templates/public.php:37
+#: templates/public.php:35
msgid "web services under your control"
msgstr "您控制的网络服务"
diff --git a/l10n/zh_CN.GB2312/files_versions.po b/l10n/zh_CN.GB2312/files_versions.po
index f66d4f68bee..493edd7cfe6 100644
--- a/l10n/zh_CN.GB2312/files_versions.po
+++ b/l10n/zh_CN.GB2312/files_versions.po
@@ -8,9 +8,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
-"POT-Creation-Date: 2012-09-22 01:14+0200\n"
-"PO-Revision-Date: 2012-09-21 23:15+0000\n"
-"Last-Translator: I Robot <thomas.mueller@tmit.eu>\n"
+"POT-Creation-Date: 2012-10-12 02:03+0200\n"
+"PO-Revision-Date: 2012-10-11 23:49+0000\n"
+"Last-Translator: marguerite su <i@marguerite.su>\n"
"Language-Team: Chinese (China) (GB2312) (http://www.transifex.com/projects/p/owncloud/language/zh_CN.GB2312/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -24,7 +24,7 @@ msgstr "作废所有版本"
#: js/versions.js:16
msgid "History"
-msgstr ""
+msgstr "历史"
#: templates/settings-personal.php:4
msgid "Versions"
diff --git a/lib/archive/tar.php b/lib/archive/tar.php
index 7a47802bc34..86d39b88968 100644
--- a/lib/archive/tar.php
+++ b/lib/archive/tar.php
@@ -6,7 +6,7 @@
* See the COPYING-README file.
*/
-require_once 'Archive/Tar.php';
+require_once '3rdparty/Archive/Tar.php';
class OC_Archive_TAR extends OC_Archive{
const PLAIN=0;
diff --git a/lib/base.php b/lib/base.php
index 2704cdecf7a..f26e6f8e4ee 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -106,7 +106,7 @@ class OC{
}
if($fullPath = stream_resolve_include_path($path)) {
- require_once $path;
+ require_once $fullPath;
}
return false;
}
diff --git a/lib/db.php b/lib/db.php
index f1597fb49fe..6c9eec5637d 100644
--- a/lib/db.php
+++ b/lib/db.php
@@ -391,7 +391,7 @@ class OC_DB {
*
* TODO: write more documentation
*/
- public static function getDbStructure( $file ,$mode=MDB2_SCHEMA_DUMP_STRUCTURE) {
+ public static function getDbStructure( $file, $mode=MDB2_SCHEMA_DUMP_STRUCTURE) {
self::connectScheme();
// write the scheme
diff --git a/lib/fileproxy/fileoperations.php b/lib/fileproxy/fileoperations.php
new file mode 100644
index 00000000000..fe7edafad2b
--- /dev/null
+++ b/lib/fileproxy/fileoperations.php
@@ -0,0 +1,37 @@
+<?php
+/**
+ * ownCloud
+ *
+ * @author Bjoern Schiessle
+ * @copyright 2012 Bjoern Schiessle <schiessle@owncloud.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+/**
+ * check if standard file operations
+ */
+
+class OC_FileProxy_FileOperations extends OC_FileProxy{
+ static $rootView;
+
+ public function premkdir($path) {
+ if(!self::$rootView){
+ self::$rootView = new OC_FilesystemView('');
+ }
+ return !self::$rootView->file_exists($path);
+ }
+
+} \ No newline at end of file
diff --git a/lib/files/filesystem.php b/lib/files/filesystem.php
index 841f30c7679..e4c269257c2 100644
--- a/lib/files/filesystem.php
+++ b/lib/files/filesystem.php
@@ -550,15 +550,15 @@ class Filesystem {
static public function removeETagHook($params, $root = false) {
if (isset($params['path'])) {
- $path = $params['path'];
+ $path=$params['path'];
} else {
- $path = $params['oldpath'];
+ $path=$params['oldpath'];
}
if ($root) { // reduce path to the required part of it (no 'username/files')
- $fakeRootView = new View($root);
+ $fakeRootView = new OC_FilesystemView($root);
$count = 1;
- $path = str_replace(\OC_App::getStorage("files")->getAbsolutePath($path), "", $fakeRootView->getAbsolutePath($path), $count);
+ $path=str_replace(OC_App::getStorage("files")->getAbsolutePath(), "", $fakeRootView->getAbsolutePath($path), $count);
}
$path = self::normalizePath($path);
diff --git a/lib/l10n/nl.php b/lib/l10n/nl.php
index a90fc6caa6c..c650071c03c 100644
--- a/lib/l10n/nl.php
+++ b/lib/l10n/nl.php
@@ -23,6 +23,6 @@
"last year" => "vorig jaar",
"years ago" => "jaar geleden",
"%s is available. Get <a href=\"%s\">more information</a>" => "%s is beschikbaar. Verkrijg <a href=\"%s\">meer informatie</a>",
-"up to date" => "Bijgewerkt",
+"up to date" => "bijgewerkt",
"updates check is disabled" => "Meest recente versie controle is uitgeschakeld"
);
diff --git a/lib/l10n/ru_RU.php b/lib/l10n/ru_RU.php
index 1e691993014..decf63efb97 100644
--- a/lib/l10n/ru_RU.php
+++ b/lib/l10n/ru_RU.php
@@ -5,6 +5,7 @@
"Users" => "Пользователи",
"Apps" => "Приложения",
"Admin" => "Админ",
+"ZIP download is turned off." => "Загрузка ZIP выключена.",
"Files need to be downloaded one by one." => "Файлы должны быть загружены один за другим.",
"Back to Files" => "Обратно к файлам",
"Selected files too large to generate zip file." => "Выбранные файлы слишком велики для генерации zip-архива.",
diff --git a/lib/log.php b/lib/log.php
index 8bb2839be66..6de99b4ea6b 100644
--- a/lib/log.php
+++ b/lib/log.php
@@ -20,6 +20,7 @@ class OC_Log {
const ERROR=3;
const FATAL=4;
+ static public $enabled = true;
static protected $class = null;
/**
@@ -29,11 +30,13 @@ class OC_Log {
* @param int level
*/
public static function write($app, $message, $level) {
- if (!self::$class) {
- self::$class = 'OC_Log_'.ucfirst(OC_Config::getValue('log_type', 'owncloud'));
- call_user_func(array(self::$class, 'init'));
+ if (self::$enabled) {
+ if (!self::$class) {
+ self::$class = 'OC_Log_'.ucfirst(OC_Config::getValue('log_type', 'owncloud'));
+ call_user_func(array(self::$class, 'init'));
+ }
+ $log_class=self::$class;
+ $log_class::write($app, $message, $level);
}
- $log_class=self::$class;
- $log_class::write($app, $message, $level);
}
}
diff --git a/lib/util.php b/lib/util.php
index be56f7bda39..a787a79e52a 100755
--- a/lib/util.php
+++ b/lib/util.php
@@ -1,9 +1,9 @@
<?php
-
/**
* Class for utility functions
*
*/
+
class OC_Util {
public static $scripts=array();
public static $styles=array();
@@ -49,7 +49,9 @@ class OC_Util {
\OC\Files\Filesystem::mount('\OC\Files\Storage\Local', array('datadir' => $user_root), $user);
\OC\Files\Filesystem::init($user_dir);
$quotaProxy=new OC_FileProxy_Quota();
+ $fileOperationProxy = new OC_FileProxy_FileOperations();
OC_FileProxy::register($quotaProxy);
+ OC_FileProxy::register($fileOperationProxy);
// Load personal mount config
if (is_file($user_root.'/mount.php')) {
$mountConfig = include($user_root.'/mount.php');
diff --git a/settings/l10n/da.php b/settings/l10n/da.php
index 4549bcc9d3d..f93d7b6cd11 100644
--- a/settings/l10n/da.php
+++ b/settings/l10n/da.php
@@ -36,6 +36,7 @@
"More" => "Mere",
"Developed by the <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud community</a>, the <a href=\"https://github.com/owncloud\" target=\"_blank\">source code</a> is licensed under the <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>." => "Udviklet af <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownClouds community</a>, og <a href=\"https://github.com/owncloud\" target=\"_blank\">kildekoden</a> er underlagt licensen <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>.",
"Add your App" => "Tilføj din App",
+"More Apps" => "Flere Apps",
"Select an App" => "Vælg en App",
"See application page at apps.owncloud.com" => "Se applikationens side på apps.owncloud.com",
"<span class=\"licence\"></span>-licensed by <span class=\"author\"></span>" => "<span class=\"licence\"></span>-licenseret af <span class=\"author\"></span>",
diff --git a/settings/l10n/de.php b/settings/l10n/de.php
index f81deed0c70..391dcc95c1f 100644
--- a/settings/l10n/de.php
+++ b/settings/l10n/de.php
@@ -36,7 +36,7 @@
"More" => "Mehr",
"Developed by the <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud community</a>, the <a href=\"https://github.com/owncloud\" target=\"_blank\">source code</a> is licensed under the <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>." => "Entwickelt von der <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud-Community</a>, der <a href=\"https://github.com/owncloud\" target=\"_blank\">Quellcode</a> ist unter der <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a> lizenziert.",
"Add your App" => "Füge Deine Anwendung hinzu",
-"More Apps" => "Weitere Apps",
+"More Apps" => "Weitere Anwendungen",
"Select an App" => "Wähle eine Anwendung aus",
"See application page at apps.owncloud.com" => "Weitere Anwendungen findest Du auf apps.owncloud.com",
"<span class=\"licence\"></span>-licensed by <span class=\"author\"></span>" => "<span class=\"licence\"></span>-lizenziert von <span class=\"author\"></span>",
diff --git a/settings/l10n/nl.php b/settings/l10n/nl.php
index caff2ee2c29..d7bd4267ac1 100644
--- a/settings/l10n/nl.php
+++ b/settings/l10n/nl.php
@@ -36,6 +36,7 @@
"More" => "Meer",
"Developed by the <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud community</a>, the <a href=\"https://github.com/owncloud\" target=\"_blank\">source code</a> is licensed under the <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>." => "Ontwikkeld door de <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud gemeenschap</a>, de <a href=\"https://github.com/owncloud\" target=\"_blank\">bron code</a> is gelicenseerd onder de <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>.",
"Add your App" => "Voeg je App toe",
+"More Apps" => "Meer apps",
"Select an App" => "Selecteer een app",
"See application page at apps.owncloud.com" => "Zie de applicatiepagina op apps.owncloud.com",
"<span class=\"licence\"></span>-licensed by <span class=\"author\"></span>" => "<span class=\"licence\"></span>-Gelicenseerd door <span class=\"author\"></span>",
diff --git a/settings/l10n/ru_RU.php b/settings/l10n/ru_RU.php
index 847716155d7..e94c371fe4c 100644
--- a/settings/l10n/ru_RU.php
+++ b/settings/l10n/ru_RU.php
@@ -27,6 +27,7 @@
"Enable Share API" => "Включить разделяемые API",
"Allow apps to use the Share API" => "Разрешить приложениям использовать Share API",
"Allow links" => "Предоставить ссылки",
+"Allow users to share items to the public with links" => "Позволяет пользователям добавлять объекты в общий доступ по ссылке",
"Allow resharing" => "Разрешить повторное совместное использование",
"Allow users to share with anyone" => "Разрешить пользователям разделение с кем-либо",
"Allow users to only share with users in their groups" => "Разрешить пользователям разделение только с пользователями в их группах",
diff --git a/settings/l10n/th_TH.php b/settings/l10n/th_TH.php
index c3ed4e859fc..0b2d1ecfb54 100644
--- a/settings/l10n/th_TH.php
+++ b/settings/l10n/th_TH.php
@@ -36,6 +36,7 @@
"More" => "เพิ่มเติม",
"Developed by the <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud community</a>, the <a href=\"https://github.com/owncloud\" target=\"_blank\">source code</a> is licensed under the <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>." => "พัฒนาโดย the <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ชุมชนผู้ใช้งาน ownCloud</a>, the <a href=\"https://github.com/owncloud\" target=\"_blank\">ซอร์สโค้ด</a>อยู่ภายใต้สัญญาอนุญาตของ <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>.",
"Add your App" => "เพิ่มแอปของคุณ",
+"More Apps" => "แอปฯอื่นเพิ่มเติม",
"Select an App" => "เลือก App",
"See application page at apps.owncloud.com" => "ดูหน้าแอพพลิเคชั่นที่ apps.owncloud.com",
"<span class=\"licence\"></span>-licensed by <span class=\"author\"></span>" => "<span class=\"licence\"></span>-ลิขสิทธิ์การใช้งานโดย <span class=\"author\"></span>",
diff --git a/tests/bootstrap.php b/tests/bootstrap.php
index 73c6e395299..f8364b71ef7 100644
--- a/tests/bootstrap.php
+++ b/tests/bootstrap.php
@@ -24,3 +24,6 @@ abstract class UnitTestCase extends PHPUnit_Framework_TestCase{
parent::assertFalse((bool)$actual, $string);
}
}
+
+OC_Hook::clear();
+OC_Log::$enabled = false;
diff --git a/tests/data/db_structure.xml b/tests/data/db_structure.xml
new file mode 100644
index 00000000000..03d7502c441
--- /dev/null
+++ b/tests/data/db_structure.xml
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<database>
+
+ <name>*dbname*</name>
+ <create>false</create>
+ <overwrite>false</overwrite>
+
+ <charset>utf8</charset>
+
+ <table>
+
+ <name>*dbprefix*contacts_addressbooks</name>
+
+ <declaration>
+
+ <field>
+ <name>id</name>
+ <type>integer</type>
+ <default>0</default>
+ <notnull>true</notnull>
+ <autoincrement>1</autoincrement>
+ <unsigned>true</unsigned>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>userid</name>
+ <type>text</type>
+ <default></default>
+ <notnull>true</notnull>
+ <length>255</length>
+ </field>
+
+ <field>
+ <name>displayname</name>
+ <type>text</type>
+ <default></default>
+ <notnull>false</notnull>
+ <length>255</length>
+ </field>
+
+ <field>
+ <name>uri</name>
+ <type>text</type>
+ <default></default>
+ <notnull>false</notnull>
+ <length>200</length>
+ </field>
+
+ <field>
+ <name>description</name>
+ <type>text</type>
+ <notnull>false</notnull>
+ <length>255</length>
+ </field>
+
+ <field>
+ <name>ctag</name>
+ <type>integer</type>
+ <default>1</default>
+ <notnull>true</notnull>
+ <unsigned>true</unsigned>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>active</name>
+ <type>integer</type>
+ <default>1</default>
+ <notnull>true</notnull>
+ <length>4</length>
+ </field>
+
+ </declaration>
+
+ </table>
+
+ <table>
+
+ <name>*dbprefix*contacts_cards</name>
+
+ <declaration>
+
+ <field>
+ <name>id</name>
+ <type>integer</type>
+ <default>0</default>
+ <notnull>true</notnull>
+ <autoincrement>1</autoincrement>
+ <unsigned>true</unsigned>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>addressbookid</name>
+ <type>integer</type>
+ <default></default>
+ <notnull>true</notnull>
+ <unsigned>true</unsigned>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>fullname</name>
+ <type>text</type>
+ <default></default>
+ <notnull>false</notnull>
+ <length>255</length>
+ </field>
+
+ <field>
+ <name>carddata</name>
+ <type>clob</type>
+ <notnull>false</notnull>
+ </field>
+
+ <field>
+ <name>uri</name>
+ <type>text</type>
+ <default></default>
+ <notnull>false</notnull>
+ <length>200</length>
+ </field>
+
+ <field>
+ <name>lastmodified</name>
+ <type>integer</type>
+ <default></default>
+ <notnull>false</notnull>
+ <unsigned>true</unsigned>
+ <length>4</length>
+ </field>
+
+ </declaration>
+
+ </table>
+
+</database>
diff --git a/tests/data/db_structure2.xml b/tests/data/db_structure2.xml
new file mode 100644
index 00000000000..c1bbb550483
--- /dev/null
+++ b/tests/data/db_structure2.xml
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<database>
+
+ <name>*dbname*</name>
+ <create>true</create>
+ <overwrite>false</overwrite>
+
+ <charset>utf8</charset>
+
+ <table>
+
+ <name>*dbprefix*contacts_addressbooks</name>
+
+ <declaration>
+
+ <field>
+ <name>id</name>
+ <type>integer</type>
+ <default>0</default>
+ <notnull>true</notnull>
+ <autoincrement>1</autoincrement>
+ <unsigned>true</unsigned>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>userid</name>
+ <type>text</type>
+ <default></default>
+ <notnull>true</notnull>
+ <length>255</length>
+ </field>
+
+ <field>
+ <name>displayname</name>
+ <type>text</type>
+ <default></default>
+ <notnull>false</notnull>
+ <length>255</length>
+ </field>
+
+ <field>
+ <name>uri</name>
+ <type>text</type>
+ <default></default>
+ <notnull>true</notnull>
+ <length>200</length>
+ </field>
+
+ <field>
+ <name>description</name>
+ <type>clob</type>
+ <notnull>false</notnull>
+ </field>
+
+ <field>
+ <name>ctag</name>
+ <type>integer</type>
+ <default>1</default>
+ <notnull>true</notnull>
+ <unsigned>true</unsigned>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>active</name>
+ <type>integer</type>
+ <default>1</default>
+ <notnull>true</notnull>
+ <length>1</length>
+ </field>
+
+ </declaration>
+
+ </table>
+
+</database>
diff --git a/tests/lib/cache/apc.php b/tests/lib/cache/apc.php
index 0e0edcf58f3..f68b97bcbd9 100644
--- a/tests/lib/cache/apc.php
+++ b/tests/lib/cache/apc.php
@@ -22,10 +22,14 @@
class Test_Cache_APC extends Test_Cache {
public function setUp() {
- if(!function_exists('apc_store')){
+ if(!extension_loaded('apc')){
$this->markTestSkipped('The apc extension is not available.');
return;
}
+ if(!ini_get('apc.enable_cli') && OC::$CLI){
+ $this->markTestSkipped('apc not available in CLI.');
+ return;
+ }
$this->instance=new OC_Cache_APC();
}
}
diff --git a/tests/lib/db.php b/tests/lib/db.php
new file mode 100644
index 00000000000..2344f7d8ec4
--- /dev/null
+++ b/tests/lib/db.php
@@ -0,0 +1,70 @@
+<?php
+/**
+ * Copyright (c) 2012 Bart Visscher <bartv@thisnet.nl>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+class Test_DB extends UnitTestCase {
+ protected $backupGlobals = FALSE;
+
+ protected static $schema_file = 'static://test_db_scheme';
+ protected $test_prefix;
+
+ public function setUp() {
+ $dbfile = OC::$SERVERROOT.'/tests/data/db_structure.xml';
+
+ $r = '_'.OC_Util::generate_random_bytes('4').'_';
+ $content = file_get_contents( $dbfile );
+ $content = str_replace( '*dbprefix*', '*dbprefix*'.$r, $content );
+ file_put_contents( self::$schema_file, $content );
+ OC_DB::createDbFromStructure(self::$schema_file);
+
+ $this->test_prefix = $r;
+ $this->table1 = $this->test_prefix.'contacts_addressbooks';
+ $this->table2 = $this->test_prefix.'contacts_cards';
+ }
+
+ public function tearDown() {
+ OC_DB::removeDBStructure(self::$schema_file);
+ unlink(self::$schema_file);
+ }
+
+ public function testQuotes() {
+ $query = OC_DB::prepare('SELECT `fullname` FROM *PREFIX*'.$this->table2.' WHERE `uri` = ?');
+ $result = $query->execute(array('uri_1'));
+ $this->assertTrue($result);
+ $row = $result->fetchRow();
+ $this->assertFalse($row);
+ $query = OC_DB::prepare('INSERT INTO *PREFIX*'.$this->table2.' (`fullname`,`uri`) VALUES (?,?)');
+ $result = $query->execute(array('fullname test', 'uri_1'));
+ $this->assertTrue($result);
+ $query = OC_DB::prepare('SELECT `fullname`,`uri` FROM *PREFIX*'.$this->table2.' WHERE `uri` = ?');
+ $result = $query->execute(array('uri_1'));
+ $this->assertTrue($result);
+ $row = $result->fetchRow();
+ $this->assertArrayHasKey('fullname', $row);
+ $this->assertEqual($row['fullname'], 'fullname test');
+ $row = $result->fetchRow();
+ $this->assertFalse($row);
+ }
+
+ public function testNOW() {
+ $query = OC_DB::prepare('INSERT INTO *PREFIX*'.$this->table2.' (`fullname`,`uri`) VALUES (NOW(),?)');
+ $result = $query->execute(array('uri_2'));
+ $this->assertTrue($result);
+ $query = OC_DB::prepare('SELECT `fullname`,`uri` FROM *PREFIX*'.$this->table2.' WHERE `uri` = ?');
+ $result = $query->execute(array('uri_2'));
+ $this->assertTrue($result);
+ }
+
+ public function testUNIX_TIMESTAMP() {
+ $query = OC_DB::prepare('INSERT INTO *PREFIX*'.$this->table2.' (`fullname`,`uri`) VALUES (UNIX_TIMESTAMP(),?)');
+ $result = $query->execute(array('uri_3'));
+ $this->assertTrue($result);
+ $query = OC_DB::prepare('SELECT `fullname`,`uri` FROM *PREFIX*'.$this->table2.' WHERE `uri` = ?');
+ $result = $query->execute(array('uri_3'));
+ $this->assertTrue($result);
+ }
+}
diff --git a/tests/lib/dbschema.php b/tests/lib/dbschema.php
new file mode 100644
index 00000000000..cd408160afb
--- /dev/null
+++ b/tests/lib/dbschema.php
@@ -0,0 +1,118 @@
+<?php
+/**
+ * Copyright (c) 2012 Bart Visscher <bartv@thisnet.nl>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+class Test_DBSchema extends UnitTestCase {
+ protected static $schema_file = 'static://test_db_scheme';
+ protected static $schema_file2 = 'static://test_db_scheme2';
+ protected $test_prefix;
+ protected $table1;
+ protected $table2;
+
+ public function setUp() {
+ $dbfile = OC::$SERVERROOT.'/tests/data/db_structure.xml';
+ $dbfile2 = OC::$SERVERROOT.'/tests/data/db_structure2.xml';
+
+ $r = '_'.OC_Util::generate_random_bytes('4').'_';
+ $content = file_get_contents( $dbfile );
+ $content = str_replace( '*dbprefix*', '*dbprefix*'.$r, $content );
+ file_put_contents( self::$schema_file, $content );
+ $content = file_get_contents( $dbfile2 );
+ $content = str_replace( '*dbprefix*', '*dbprefix*'.$r, $content );
+ file_put_contents( self::$schema_file2, $content );
+
+ $this->test_prefix = $r;
+ $this->table1 = $this->test_prefix.'contacts_addressbooks';
+ $this->table2 = $this->test_prefix.'contacts_cards';
+ }
+
+ public function tearDown() {
+ unlink(self::$schema_file);
+ unlink(self::$schema_file2);
+ }
+
+ // everything in one test, they depend on each other
+ public function testSchema() {
+ $this->doTestSchemaCreating();
+ $this->doTestSchemaChanging();
+ $this->doTestSchemaDumping();
+ $this->doTestSchemaRemoving();
+ }
+
+ public function doTestSchemaCreating() {
+ OC_DB::createDbFromStructure(self::$schema_file);
+ $this->assertTableExist($this->table1);
+ $this->assertTableExist($this->table2);
+ }
+
+ public function doTestSchemaChanging() {
+ OC_DB::updateDbFromStructure(self::$schema_file2);
+ $this->assertTableExist($this->table2);
+ }
+
+ public function doTestSchemaDumping() {
+ $outfile = 'static://db_out.xml';
+ OC_DB::getDbStructure($outfile);
+ $content = file_get_contents($outfile);
+ $this->assertContains($this->table1, $content);
+ $this->assertContains($this->table2, $content);
+ }
+
+ public function doTestSchemaRemoving() {
+ OC_DB::removeDBStructure(self::$schema_file);
+ $this->assertTableNotExist($this->table1);
+ $this->assertTableNotExist($this->table2);
+ }
+
+ public function tableExist($table) {
+ $table = '*PREFIX*' . $table;
+
+ switch (OC_Config::getValue( 'dbtype', 'sqlite' )) {
+ case 'sqlite':
+ case 'sqlite3':
+ $sql = "SELECT name FROM sqlite_master "
+ . "WHERE type = 'table' AND name != 'sqlite_sequence' "
+ . "AND name != 'geometry_columns' AND name != 'spatial_ref_sys' "
+ . "UNION ALL SELECT name FROM sqlite_temp_master "
+ . "WHERE type = 'table' AND name = '".$table."'";
+ $query = OC_DB::prepare($sql);
+ $result = $query->execute(array());
+ $exists = $result && $result->fetchOne();
+ break;
+ case 'mysql':
+ $sql = 'SHOW TABLES LIKE "'.$table.'"';
+ $query = OC_DB::prepare($sql);
+ $result = $query->execute(array());
+ $exists = $result && $result->fetchOne();
+ break;
+ case 'pgsql':
+ $sql = "SELECT tablename AS table_name, schemaname AS schema_name "
+ . "FROM pg_tables WHERE schemaname NOT LIKE 'pg_%' "
+ . "AND schemaname != 'information_schema' "
+ . "AND tablename = '".$table."'";
+ $query = OC_DB::prepare($sql);
+ $result = $query->execute(array());
+ $exists = $result && $result->fetchOne();
+ break;
+ }
+ return $exists;
+ }
+
+ public function assertTableExist($table) {
+ $this->assertTrue($this->tableExist($table));
+ }
+
+ public function assertTableNotExist($table) {
+ $type=OC_Config::getValue( "dbtype", "sqlite" );
+ if( $type == 'sqlite' || $type == 'sqlite3' ) {
+ // sqlite removes the tables after closing the DB
+ }
+ else {
+ $this->assertFalse($this->tableExist($table));
+ }
+ }
+}
diff --git a/tests/lib/share/share.php b/tests/lib/share/share.php
index 48d0270cc57..7f6784f8df7 100644
--- a/tests/lib/share/share.php
+++ b/tests/lib/share/share.php
@@ -61,11 +61,13 @@ class Test_Share extends UnitTestCase {
$query->execute(array('test'));
}
- /**
- * @expectedException Exception
- */
public function testShareInvalidShareType() {
- OCP\Share::shareItem('test', 'test.txt', 'foobar', $this->user2, OCP\Share::PERMISSION_READ);
+ $message = 'Share type foobar is not valid for test.txt';
+ try {
+ OCP\Share::shareItem('test', 'test.txt', 'foobar', $this->user2, OCP\Share::PERMISSION_READ);
+ } catch (Exception $exception) {
+ $this->assertEqual($exception->getMessage(), $message);
+ }
}
public function testInvalidItemType() {