diff options
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 Binary files differindex f20db4439ea..113dc9885a6 100644..100755 --- a/3rdparty/css/chosen-sprite.png +++ b/3rdparty/css/chosen-sprite.png 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,"&").replace(/</g,"<").replace(/>/g,">").replace(/'/g,"'").replace(/"/g,""").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, +"&").replace(/</g,"<").replace(/>/g,">").replace(/'/g,"'").replace(/"/g,""").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]{ '—'[ 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:" ◄ ",next:" ► ",prevYear:" << ",nextYear:" >> ",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:" ► ",next:" ◄ ",prevYear:" >> ",nextYear:" << "},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:" ► ",next:" ◄ ",prevYear:" >> ",nextYear:" << "},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 Binary files differindex 1b4f819d8d9..deb50a9ae10 100755 --- a/3rdparty/miniColors/css/images/colors.png +++ b/3rdparty/miniColors/css/images/colors.png diff --git a/3rdparty/miniColors/css/images/trigger.png b/3rdparty/miniColors/css/images/trigger.png Binary files differindex 8c169fd6053..96c91294f3f 100755 --- a/3rdparty/miniColors/css/images/trigger.png +++ b/3rdparty/miniColors/css/images/trigger.png 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 diff --git a/3rdparty/timepicker/css/include/images/ui-icons_222222_256x240.png b/3rdparty/timepicker/css/include/images/ui-icons_222222_256x240.png Binary files differindex 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 diff --git a/3rdparty/timepicker/css/include/images/ui-icons_228ef1_256x240.png b/3rdparty/timepicker/css/include/images/ui-icons_228ef1_256x240.png Binary files differindex 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 diff --git a/3rdparty/timepicker/css/include/images/ui-icons_ef8c08_256x240.png b/3rdparty/timepicker/css/include/images/ui-icons_ef8c08_256x240.png Binary files differindex 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 diff --git a/3rdparty/timepicker/css/include/images/ui-icons_ffd27a_256x240.png b/3rdparty/timepicker/css/include/images/ui-icons_ffd27a_256x240.png Binary files differindex 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 diff --git a/3rdparty/timepicker/css/include/images/ui-icons_ffffff_256x240.png b/3rdparty/timepicker/css/include/images/ui-icons_ffffff_256x240.png Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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ç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ç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ç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ç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(/</, '<').replace(/>/, '>')+'/'+name+'"><span class="nametext">'+basename; + html+='<a class="name" href="download.php?file='+$('#dir').val().replace(/</, '<').replace(/>/, '>')+'/'+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('&').split('<').join('<').split('"').join('"'); +} + /** * 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() { |