diff --git a/data/web/inc/functions.inc.php b/data/web/inc/functions.inc.php index fef6760e8c6e6aa3ee8b8dfd813737a0f6cbc817..0311671cb9ce30f7a961d7fc6d161df85844acbb 100644 --- a/data/web/inc/functions.inc.php +++ b/data/web/inc/functions.inc.php @@ -253,6 +253,8 @@ function edit_admin_account($postarray) { } $username = $postarray['admin_user']; $username_now = $_SESSION['mailcow_cc_username']; + $password = $postarray['admin_pass']; + $password2 = $postarray['admin_pass2']; if (!ctype_alnum(str_replace(array('_', '.', '-'), '', $username)) || empty ($username)) { $_SESSION['return'] = array( @@ -262,15 +264,22 @@ function edit_admin_account($postarray) { return false; } - if (!empty($postarray['admin_pass']) && !empty($postarray['admin_pass2'])) { - if ($postarray['admin_pass'] != $postarray['admin_pass2']) { + if (!empty($password) && !empty($password2)) { + if (!preg_match('/' . $GLOBALS['PASSWD_REGEP'] . '/', $password)) { + $_SESSION['return'] = array( + 'type' => 'danger', + 'msg' => sprintf($lang['danger']['password_complexity']) + ); + return false; + } + if ($password != $password2) { $_SESSION['return'] = array( 'type' => 'danger', 'msg' => sprintf($lang['danger']['password_mismatch']) ); return false; } - $password_hashed = hash_password($postarray['admin_pass']); + $password_hashed = hash_password($password); try { $stmt = $pdo->prepare("UPDATE `admin` SET `modified` = :modified, @@ -585,9 +594,7 @@ function edit_user_account($postarray) { ); return false; } - if (strlen($password_new) < "6" || - !preg_match('/[A-Za-z]/', $password_new) || - !preg_match('/[0-9]/', $password_new)) { + if (!preg_match('/' . $GLOBALS['PASSWD_REGEP'] . '/', $password_new)) { $_SESSION['return'] = array( 'type' => 'danger', 'msg' => sprintf($lang['danger']['password_complexity']) @@ -1515,7 +1522,7 @@ function add_domain_admin($postarray) { global $pdo; $username = strtolower(trim($postarray['username'])); $password = $postarray['password']; - $password2 = $postarray['password2']; + $password2 = $postarray['password2']; isset($postarray['active']) ? $active = '1' : $active = '0'; if ($_SESSION['mailcow_cc_role'] != "admin") { $_SESSION['return'] = array( @@ -1571,6 +1578,13 @@ function add_domain_admin($postarray) { } } if (!empty($password) && !empty($password2)) { + if (!preg_match('/' . $GLOBALS['PASSWD_REGEP'] . '/', $password)) { + $_SESSION['return'] = array( + 'type' => 'danger', + 'msg' => sprintf($lang['danger']['password_complexity']) + ); + return false; + } if ($password != $password2) { $_SESSION['return'] = array( 'type' => 'danger', @@ -2169,6 +2183,13 @@ function edit_domain_admin($postarray) { } if (!empty($password) && !empty($password2)) { + if (!preg_match('/' . $GLOBALS['PASSWD_REGEP'] . '/', $password)) { + $_SESSION['return'] = array( + 'type' => 'danger', + 'msg' => sprintf($lang['danger']['password_complexity']) + ); + return false; + } if ($password != $password2) { $_SESSION['return'] = array( 'type' => 'danger', @@ -2262,14 +2283,12 @@ function edit_domain_admin($postarray) { ); return false; } - if (strlen($password_new) < "6" || - !preg_match('/[A-Za-z]/', $password_new) || - !preg_match('/[0-9]/', $password_new)) { - $_SESSION['return'] = array( - 'type' => 'danger', - 'msg' => sprintf($lang['danger']['password_complexity']) - ); - return false; + if (!preg_match('/' . $GLOBALS['PASSWD_REGEP'] . '/', $password_new)) { + $_SESSION['return'] = array( + 'type' => 'danger', + 'msg' => sprintf($lang['danger']['password_complexity']) + ); + return false; } $password_hashed = hash_password($password_new); try { @@ -2991,6 +3010,13 @@ function mailbox_add_mailbox($postarray) { } if (!empty($password) && !empty($password2)) { + if (!preg_match('/' . $GLOBALS['PASSWD_REGEP'] . '/', $password)) { + $_SESSION['return'] = array( + 'type' => 'danger', + 'msg' => sprintf($lang['danger']['password_complexity']) + ); + return false; + } if ($password != $password2) { $_SESSION['return'] = array( 'type' => 'danger', @@ -3735,6 +3761,13 @@ function mailbox_edit_mailbox($postarray) { } } if (!empty($password) && !empty($password2)) { + if (!preg_match('/' . $GLOBALS['PASSWD_REGEP'] . '/', $password)) { + $_SESSION['return'] = array( + 'type' => 'danger', + 'msg' => sprintf($lang['danger']['password_complexity']) + ); + return false; + } if ($password != $password2) { $_SESSION['return'] = array( 'type' => 'danger', @@ -4313,9 +4346,13 @@ function mailbox_get_mailbox_details($mailbox) { $DomainQuota = $stmt->fetch(PDO::FETCH_ASSOC); $stmt = $pdo->prepare("SELECT COALESCE(SUM(`quota`), 0) as `in_use` FROM `mailbox` WHERE `kind` NOT REGEXP 'location|thing|group' AND `domain` = :domain AND `username` != :username"); - $stmt->execute(array(':domain' => $row['domain'], ':username' => $row['username'])); + $stmt->execute(array(':domain' => $row['domain'], ':username' => $mailbox)); $MailboxUsage = $stmt->fetch(PDO::FETCH_ASSOC); + $stmt = $pdo->prepare("SELECT IFNULL(COUNT(`address`), 0) AS `sa_count` FROM `spamalias` WHERE `address` = :address"); + $stmt->execute(array(':address' => $mailbox)); + $SpamaliasUsage = $stmt->fetch(PDO::FETCH_ASSOC); + $mailboxdata['max_new_quota'] = ($DomainQuota['quota'] * 1048576) - $MailboxUsage['in_use']; if ($mailboxdata['max_new_quota'] > ($DomainQuota['maxquota'] * 1048576)) { $mailboxdata['max_new_quota'] = ($DomainQuota['maxquota'] * 1048576); @@ -4331,6 +4368,7 @@ function mailbox_get_mailbox_details($mailbox) { $mailboxdata['quota_used'] = intval($row['bytes']); $mailboxdata['percent_in_use'] = round((intval($row['bytes']) / intval($row['quota'])) * 100); $mailboxdata['messages'] = $row['messages']; + $mailboxdata['spam_aliases'] = $SpamaliasUsage['sa_count']; if ($mailboxdata['percent_in_use'] >= 90) { $mailboxdata['percent_class'] = "danger"; } diff --git a/data/web/inc/vars.inc.php b/data/web/inc/vars.inc.php index b8270ba7613b8d4a4b7de58b6e9738aa3b5e21ce..db3f42198eea7478842807bda88c164cc3a5a673 100644 --- a/data/web/inc/vars.inc.php +++ b/data/web/inc/vars.inc.php @@ -35,4 +35,6 @@ $DEFAULT_LANG = "en"; // See https://bootswatch.com/ $DEFAULT_THEME = "lumen"; +// Password complexity as regular expression +$PASSWD_REGEP = '.{4,}'; ?> diff --git a/data/web/js/mailbox.js b/data/web/js/mailbox.js index d12a37c39d158b4c34e2d8d5b3778e7f38647d61..eedd51cb21d651a29599de7a8191d5d29be0e4fc 100644 --- a/data/web/js/mailbox.js +++ b/data/web/js/mailbox.js @@ -18,10 +18,10 @@ $(document).ready(function() { return this.each(function(){ $(this).on('keyup', function(e){ var $this = $(this), - search = $this.val().toLowerCase(), - target = $this.attr('data-filters'), - $target = $(target), - $rows = $target.find('tbody #data'); + search = $this.val().toLowerCase(), + target = $this.attr('data-filters'), + $target = $(target), + $rows = $target.find('tbody #data'); $target.find('tbody .filterTable_no_results').remove(); if(search == '') { $target.find('tbody #no-data').show(); diff --git a/data/web/lang/lang.de.php b/data/web/lang/lang.de.php index f63f155756efb03118e21c477ed077260c52822f..7b0f122f36e0f9074574a08a55e01ebbe6bc8a35 100644 --- a/data/web/lang/lang.de.php +++ b/data/web/lang/lang.de.php @@ -57,7 +57,7 @@ $lang['danger']['exit_code_not_null'] = 'Fehler: Exit-Code ist %d'; $lang['danger']['mailbox_not_available'] = 'Mailbox nicht verfügbar'; $lang['danger']['username_invalid'] = 'Benutzername kann nicht verwendet werden'; $lang['danger']['password_mismatch'] = 'Passwort-Wiederholung stimmt nicht überein'; -$lang['danger']['password_complexity'] = 'Passwort entspricht nicht den Vorgaben (Klein- und Großschreibung und mindestens eine Ziffer, mindestens 6 Zeichen lang)'; +$lang['danger']['password_complexity'] = 'Passwort entspricht nicht den Richtlinien'; $lang['danger']['password_empty'] = 'Passwort darf nicht leer sein'; $lang['danger']['login_failed'] = 'Anmeldung fehlgeschlagen'; $lang['danger']['mailbox_invalid'] = 'Mailboxname ist ungültig'; @@ -207,6 +207,7 @@ $lang['header']['logged_in_as_logout'] = 'Eingeloggt als %s (abmelden)'; $lang['header']['logged_in_as_logout_dual'] = 'Eingeloggt als %s [%s]'; $lang['header']['locale'] = 'Sprache'; $lang['mailbox']['domain'] = 'Domain'; +$lang['mailbox']['spam_aliases'] = 'Temp. Alias'; $lang['mailbox']['alias'] = 'Alias'; $lang['mailbox']['aliases'] = 'Aliasse'; $lang['mailbox']['multiple_bookings'] = 'Mehrfachbuchen'; diff --git a/data/web/lang/lang.en.php b/data/web/lang/lang.en.php index 7abafe13eb872281576f4e93210d8688da899945..e4966855811ab0470d6dc8f5328d9ad3b75722bb 100644 --- a/data/web/lang/lang.en.php +++ b/data/web/lang/lang.en.php @@ -59,7 +59,7 @@ $lang['danger']['exit_code_not_null'] = "Error: Exit code was %d"; $lang['danger']['mailbox_not_available'] = "Mailbox not available"; $lang['danger']['username_invalid'] = "Username cannot be used"; $lang['danger']['password_mismatch'] = "Confirmation password is not identical"; -$lang['danger']['password_complexity'] = "Password does not meet requirements (upper and lowercase letters and at least one number, min. 6 characters long)"; +$lang['danger']['password_complexity'] = "Password does not meet the policy"; $lang['danger']['password_empty'] = "Password must not be empty"; $lang['danger']['login_failed'] = "Login failed"; $lang['danger']['mailbox_invalid'] = "Mailbox name is invalid"; @@ -209,6 +209,7 @@ $lang['header']['logged_in_as_logout'] = 'Logged in as %s (logout)'; $lang['header']['logged_in_as_logout_dual'] = 'Logged in as %s [%s]'; $lang['header']['locale'] = 'Language'; $lang['mailbox']['domain'] = 'Domain'; +$lang['mailbox']['spam_aliases'] = 'Temp. alias'; $lang['mailbox']['multiple_bookings'] = 'Multiple bookings'; $lang['mailbox']['kind'] = 'Kind'; $lang['mailbox']['description'] = 'Description'; diff --git a/data/web/mailbox.php b/data/web/mailbox.php index 08798ffe1cd102987b23da7c3cbb998ac266da56..faa8c4c0decdd6d7420d76279f33aca34a075a1e 100644 --- a/data/web/mailbox.php +++ b/data/web/mailbox.php @@ -137,6 +137,7 @@ $_SESSION['return_to'] = $_SERVER['REQUEST_URI']; + @@ -156,6 +157,7 @@ $_SESSION['return_to'] = $_SERVER['REQUEST_URI']; / +
diff --git a/data/web/rc/.htaccess b/data/web/rc/.htaccess new file mode 100644 index 0000000000000000000000000000000000000000..feea19a2c42b7adb32b3e129f97cec9398e5126a --- /dev/null +++ b/data/web/rc/.htaccess @@ -0,0 +1,87 @@ +# WARNING: For PHP 7 the module name in the line below need to be modified! + +php_flag display_errors Off +php_flag log_errors On +# php_value error_log logs/errors + +php_value upload_max_filesize 5M +php_value post_max_size 6M +php_value memory_limit 64M + +php_flag zlib.output_compression Off +php_flag suhosin.session.encrypt Off + +#php_value session.cookie_path / +#php_value session.hash_function sha256 +php_flag session.auto_start Off +php_value session.gc_maxlifetime 21600 +php_value session.gc_divisor 500 +php_value session.gc_probability 1 + + + +Options +SymLinksIfOwnerMatch +RewriteEngine On +RewriteRule ^favicon\.ico$ skins/larry/images/favicon.ico + +# security rules: +# - deny access to files not containing a dot or starting with a dot +# in all locations except installer directory +RewriteRule ^(?!installer|\.well-known\/|[a-zA-Z0-9]{16})(\.?[^\.]+)$ - [F] +# - deny access to some locations +RewriteRule ^/?(\.git|\.tx|SQL|bin|config|logs|temp|tests|program\/(include|lib|localization|steps)) - [F] +# - deny access to some documentation files +RewriteRule /?(README\.md|composer\.json-dist|composer\.json|package\.xml|Dockerfile)$ - [F] + + + +SetOutputFilter DEFLATE + + + +ExpiresActive On +ExpiresDefault "access plus 1 month" + + +FileETag MTime Size + + +Options -Indexes + + + +# Disable page indexing +Header set X-Robots-Tag "noindex, nofollow" + +# replace 'append' with 'merge' for Apache version 2.2.9 and later +#Header append Cache-Control public env=!NO_CACHE + +# Optional security header +# Only increased security if the browser support those features +# Be careful! Testing is required! They should be adusted to your intallation / user environment + +# HSTS - HTTP Strict Transport Security +#Header always set Strict-Transport-Security "max-age=31536000; preload" env=HTTPS + +# HPKP - HTTP Public Key Pinning +# Only template - fill with your values +#Header always set Public-Key-Pins "max-age=3600; report-uri=\"\"; pin-sha256=\"\"; pin-sha256=\"\"" env=HTTPS + +# X-Xss-Protection +# This header is used to configure the built in reflective XSS protection found in Internet Explorer, Chrome and Safari (Webkit). +#Header set X-XSS-Protection "1; mode=block" + +# X-Frame-Options +# The X-Frame-Options header (RFC), or XFO header, protects your visitors against clickjacking attacks +# Already set by php code! Do not activate both options +#Header set X-Frame-Options SAMEORIGIN + +# X-Content-Type-Options +# It prevents Google Chrome and Internet Explorer from trying to mime-sniff the content-type of a response away from the one being declared by the server. +#Header set X-Content-Type-Options: "nosniff" + +# CSP - Content Security Policy +# for better privacy/security ask browsers to not set the Referer +# more flags for script, stylesheets and images available, read RFC for more information +#Header set Content-Security-Policy "referrer no-referrer" + diff --git a/data/web/rc/CHANGELOG b/data/web/rc/CHANGELOG new file mode 100644 index 0000000000000000000000000000000000000000..a679ee2170c6b8ef90d9144bada9e0d2a5f40057 --- /dev/null +++ b/data/web/rc/CHANGELOG @@ -0,0 +1,2413 @@ +CHANGELOG Roundcube Webmail +=========================== + +RELEASE 1.3-beta +---------------- +- Nicely handle contact deletion on contact edit (#5522) +- vcard_attachments: Add possibility to attach contact vCard to composed message (#4997) +- Preserve message internal/received date on import in mbox format (#5559) +- Zipdownload: Fix date format in mbox "From line" +- Possibility to display QR code for contacts data (#5030) +- Added identicon plugin +- Widescreen layout aka three column view (#5093) +- Unify automatic marking as \Seen in preview pane, full-page and extwin views (#5071) +- Disable double-click on the list when preview pane is on (#5199) +- Support hostname and hostname:port in force_https option (#5511) +- Support ALLOW-FROM in x_frame_options (#5122) +- Allow to omit a subject when sending an email (#5068) +- Warn about too many disclosed recipients in composed email [max_disclosed_recipients] (#5132) +- identity_select: Support Received header (#5085) +- Plugin API: Added get_compose_responses hook (#5457) +- Display error when trying to upload more files than specified in max_file_uploads (#5483) +- Add missing sql upgrade file for 'ip' column resize in session table (#5465) +- Do not show inline images of unsupported mimetype (#5463) +- Password: Added replacement variables support in password_pop_host (#5539) +- Password: Don't store passwords in temp files when using dovecotpw (#5531) +- Password: Added LDAP PPolicy driver (#5364) +- Password: Added cpanel_webmail driver (#5549) +- Password: Added possibility to nicely redirect from other plugins on password expiration (#5468) +- Implement separate action to mark all messages in a folder as \Seen (#5006) +- Implement marking as \Seen in all folders or in a folder and its subfolders (#5076) +- Archive: Don't reload messages list when it's not needed (#5225) +- Archive: Add option to automatically mark archived messages as \Seen (#5142) +- Improve randomness of password salts and random hashes (#5266) +- Password/cPanel: Add support for hash authentication and reseller accounts (#5252) +- Support host-specific imap_conn_options/smtp_conn_options/managesieve_conn_options (#5136) +- Center and scale images in attachment preview frame (#5421) +- Added max_message_size option enforced when attaching files to a composed message (#4993) +- Added Search button in quick search menus (#5312) +- Implement "one click" attachment/messages/photo upload (#5024) +- Squirrelmail_usercopy: Add option to define character set of data files +- Removed useless 'created' column from 'session' table (#5389) +- Dropped legacy browsers support (#5167) + - Removed legacy_browser plugin + - Removed hacks for IE < 10 + - Update to jQuery 3.1.1 and jQuery-UI 1.12.0 + - compile .min.js files with ECMASCRIPT5 option +- Require PHP >= 5.4 +- Add possibility to preview and download attachments in mail compose (#5053) +- Add possibility to rename attachments in mail compose (#4996) +- Remove backward compatibility "layer" of bc.php (#4902) +- Support WEBP images in mail messages (#5362) +- Support MathML in HTML message preview (#5182) +- Rename Addressbook to Contacts (#5233) +- Remove PHP mail() support, smtp_server is required now (#5340) +- Display full message subject in onmouseover on truncated subject in mail view (#5346) +- Enigma: Support GnuPG 2.1 (#5313) +- Enigma: Support key generation for multiple identities (#5383) +- Enigma: Import keys from key-server(s) (#5286) +- Enigma: Search missing public keys on a key-server in mail compose (#5286) +- Enigma: Delete user keys when using deluser.sh script +- Enigma: Fix redundant list-secret-keys/list-public-keys calls on signing/encryption +- Enigma: Implement PGP encryption and signing in one go (#5302) +- Enigma: Display signature verification status for encrypted+signed messages (#5302) +- Display different attachment icon on encrypted messages +- Display different confirmation text when moving messages to Trash (#5220) +- Indicate that a collapsed thread has flagged children (#5013) +- Implemented message/rfc822 attachment preview +- Update to jsTimezoneDetect 1.0.6 +- Managesieve: Add (optional) RAW script editor (#5414) +- Managesieve: Add option to automatically set vacation :from address (#5428) +- Managesieve: Support 'string' test from variables extension [RFC 5229] (#5248) +- Managesieve: Support 'duplicate' extension [RFC 7352] +- Managesieve: Unhide advanced rule controls if there are inputs with errors +- Managesieve: Display warning message when filter form contains errors +- Control search engine crawlers via X-Robots-Tag header instead of and robots.txt (#5098) +- Fixed redundancy in sql caching system and compatibility with Galera Cluster (#5439) + - Removed redundant 'created' column from cache and cache_shared tables + - Removed use of redundant data records + - Added missing primary keys (dictionary, cache, cache_shared tables) +- Fix so templating system does not mess with external (e.g. email) content (#5499) +- Fix redundant keep-alive/refresh after session error on compose page (#5500) +- Managesieve: Fix handling of scripts with nested rules (#5540) +- Fix variable substitution in ldap host for some use-cases, e.g. new_user_identity (#5544) +- Enigma: Fix PHP fatal error when decrypting a message with invalid signature (#5555) +- Fix adding images to new identity signatures +- Fix rsync error handling in installto.sh script (#5562) +- Fix some advanced search issues with multiple addressbooks (#5572) +- Fix so group/addressbook selection is retained on page refresh + +RELEASE 1.2.3 +------------- +- Searching in both contacts and groups when LDAP addressbook with group_filters option is used +- Fix vulnerability in handling of mail()'s 5th argument +- Fix To: header encoding in mail sent with mail() method (#5475) +- Fix flickering of header topline in min-mode (#5426) +- Fix bug where folders list would scroll to top when clicking on subscription checkbox (#5447) +- Fix decoding of GB2312/GBK text when iconv is not installed (#5448) +- Fix regression where creation of default folders wasn't functioning without prefix (#5460) +- Enigma: Fix bug where last records on keys list were hidden (#5461) +- Enigma: Fix key search with keyword containing non-ascii characters (#5459) +- Fix bug where deleting folders with subfolders could fail in some cases (#5466) +- Fix bug where IMAP password could be exposed via error message (#5472) +- Fix bug where it wasn't possible to store more that 2MB objects in memcache/apc, + Added memcache_max_allowed_packet and apc_max_allowed_packet settings (#5452) +- Fix "Illegal string offset" warning in rcube::log_bug() on PHP 7.1 (#5508) +- Fix storing "empty" values in rcube_cache/rcube_cache_shared (#5519) +- Fix missing content check when image resize fails on attachment thumbnail generation (#5485) +- Fix displaying attached images with wrong Content-Type specified (#5527) + +RELEASE 1.2.2 +------------- +- Enigma: Add possibility to configure gpg-agent binary location (enigma_pgp_agent) +- Enigma: Fix signature verification with some IMAP servers, e.g. Gmail, DBMail (#5371) +- Enigma: Make recipient key searches case-insensitive (#5434) +- Fix regression in resizing JPEG images with Imagick (#5376) +- Managesieve: Fix parsing of vacation date-time with non-default date_format (#5372) +- Use SymLinksIfOwnerMatch in .htaccess instead of FollowSymLinks disabled on some hosts for security reasons (#5370) +- Wash position:fixed style in HTML mail for better security (#5264) +- Fix bug where memcache_debug didn't work for session operations +- Fix bug where Message-ID domain part was tied to username instead of current identity (#5385) +- Fix bug where blocked.gif couldn't be attached to reply/forward with insecure content +- Fix E_DEPRECATED warning when using Auth_SASL::factory() (#5401) +- Fix bug where names of downloaded files could be malformed when derived from the message subject (#5404) +- Fix so "All" messages selection is resetted on search reset (#5413) +- Fix bug where folder creation could fail if personal namespace contained more than one entry (#5403) +- Fix error causing empty INBOX listing in Firefox when using an URL with user:password specified (#5400) +- Fix PHP warning when handling shared namespace with empty prefix (#5420) +- Fix so folders list is scrolled to the selected folder on page load (#5424) +- Fix so when moving to Trash we make sure the folder exists (#5192) +- Fix displaying size of attachments with zero size +- Fix so "Action disabled" error uses more appropriate 404 code (#5440) + +RELEASE 1.2.1 +------------- +- Update TinyMCE to version 4.3.13 (#5309) +- Fix bug where errors could have been not logged when per_user_logging=true +- Fix bug where message list columns could be in wrong order after column drag-n-drop and list sorting +- Fix so minified publickey.js (with cache-buster) is used when available (#5254) +- Fix (replace) application/x-tar file extension test as it might not exist in nginx config (#5253) +- Fix PHP warning when password_hosts is set, but is not an array (#5260) +- Fix redundant keep-alive requests when session_lifetime is greater than ~20000 (#5273) +- Fix so subfolders of INBOX can be set as Archive (#5274) +- Fix bug where multi-folder search could choose a wrong folder in "this and subfolders" scope (#5282) +- Fix bug where multi-folder search didn't work for unsubscribed INBOX (#5259) +- Fix bug where "no body" alert could be displayed when sending mailvelope email +- Enigma: Fix keys import from inside of an encrypted message (#5285) +- Enigma: Fix malformed signed messages with force_7bit=true (#5292) +- Enigma: Add possibility to configure gpg binary location (enigma_pgp_binary) +- Enigma: Add possibility to export private keys (#5321) +- Fix searching by email address in contacts with multiple addresses (#5291) +- Fix handling of --delete argument in moduserprefs.sh script (#5296) +- Workaround PHP issue by calling closelog() on script shutdown when using log_driver=syslog (#5289) +- Fix so upgrade script makes sure program/lib directory does not contain old libraries (#5287) +- Fix subscription checkbox state on error in folder subscribe/unsubscribe action (#5243) +- Fix bug where microsecond format in logged date didn't work in some cases +- Fix conflict in new_user_dialog and password_force_new_user settings (#5275) +- Don't create multipart/alternative messages with empty text/plain part (#5283) +- Use contact_search_name format in popup on results in compose contacts search +- Fix handling of 'mailto' and 'error' arguments in message_before_send hook (#5347) +- Fix missing localization of HTML editor when assets_dir != INSTALL_PATH +- Fix handling of blockquote tags with mixed case on html2text conversion (#5363) +- Fix javascript errors in IE on page with iframe that points to another domain + +RELEASE 1.2.0 +------------- +- Enigma: Added enigma_debug option +- Fix message list multi-select/deselect issue (#5219) +- Fix bug where getting HTML editor content could steal focus from other form controls (#5223) +- Fix bug where contact search menu fields where always unchecked in Larry skin +- Fix autoloading of 'html' class +- Fix bug where Encrypt button appears when switching editor to HTML (#5235) +- Fix XSS issue in href attribute on area tag (#5240) + +RELEASE 1.2-rc +-------------- +- Managesieve: Refactored script parser to be 100x faster +- Enigma: added option to force users to use signing/encryption +- Enigma: Added option to attach public keys to sent mail (#5152) +- Enigma: Handle messages with text before an encrypted block (#5149) +- Enigma: Handle encrypted/signed content inside message/rfc822 attachments +- Enigma: Fix missing html/plain switch on multipart/signed messages (#4963) +- Enigma: Disable format=flowed for signed plain text messages (#4960) +- Enigma: Fix handling of encrypted + signed messages (#4950) +- Enigma: Fix invalid boundary use in signed messages structure +- Enable use of TLSv1.1 and TLSv1.2 for IMAP (#4955) +- Save copy of original .htaccess file when using installto.sh script (#4947) +- Fix regression where some message attachments could be missing on edit/forward (#4939) +- Fix regression in displaying contents of message/rfc822 parts (#4937) +- Fix handling of message/rfc822 attachments on replies and forwards (#4938) +- Fix PDF support detection in Firefox > 19 (#4941) +- Fix path traversal vulnerability in setting a skin [CVE-2015-8770] (#4945) +- Fix so drag-n-drop of text (e.g. recipient addresses) on compose page actually works (#4944) +- Fix .htaccess rewrite rules to not block .well-known URIs (#4943) +- Fix mail view scaling on iOS (#4915) +- Fix PHP7 warning "session_start(): Session callback expects true/false return value" (#4948) +- Fix XSS issue in SVG images handling [CVE-2015-8864, CVE-2016-4068] (#4949) +- Fix missing language name in "Add to Dictionary" request in HTML mode (#4951) +- Fix (again) security issue in DBMail driver of password plugin [CVE-2015-2181] (#4958) +- Fix bug where Archive/Junk buttons were not active after page jump with select=all mode (#4961) +- Fix bug in long recipients list parsing for cases where recipient name contained @-char (#4964) +- Plugin API: Added addressbook_export hook +- Fix additional_message_headers plugin compatibility with Mail_Mime >= 1.9 (#4966) +- Hide DSN option in Preferences when smtp_server is not used (#4967) +- Fix handling of body parameter in mail compose request +- Protect download urls against CSRF using unique request tokens [CVE-2016-4069] (#4957) +- newmail_notifier: Refactor desktop notifications +- Fix so contactlist_fields option can be set via config file +- Fix so SPECIAL-USE assignments are forced only until user sets special folders (#4782) +- Fix performance in reverting order of THREAD result +- Fix converting mail addresses with @www. into mailto links (#5197) + +RELEASE 1.2-beta +---------------- +- Update TinyMCE to version 4.2 +- Added support for Redis session handler +- Removed some deprecated methods: https://github.com/roundcube/roundcubemail/commit/454b0b1c +- Remove backward compatibility "layer" of bc.php (#4902) +- Add possibility to define date format in write operations for ldap attributes (#3956) +- Display attachment size in compose (#1329) +- Added possibility to drag-n-drop attachments from mail preview to compose window +- Implemented mail messages searching with predefined date interval +- PGP encryption support via Mailvelope integration +- PGP encryption support via Enigma plugin +- PHP7 compatibility fixes (#4836) +- Security: Added brute-force attack prevention via login rate limit (#4922) +- Security: Added options to validate username/password on logon (#4884) +- Security: Improve randomness of security tokens (#4899) +- Security: Use random security tokens instead of hashes based on encryption key (#4829) +- Security: Improved encrypt/decrypt methods with option to choose the cipher_method (#4492) +- Make optional adding of standard signature separator - sig_separator (#3276) +- Optimize folder_size() on Cyrus IMAP by using special folder annotation (#4894) +- Make optional hidding of folders with name starting with a dot - imap_skip_hidden_folders (#4870) +- Add option to enable HTML editor always, except when replying to plain text messages (#4352) +- Emoticons: Added option to switch on/off emoticons in compose editor (#2076) +- Emoticons: Added option to switch on/off emoticons in plain text messages +- Emoticons: All emoticons-related functionality is handled by the plugin now +- Installer: Add button to save generated config file in system temp directory (#3553) +- Remove common subject prefixes Re:, Re[x]:, Re-x: on reply (#4882) +- Added GSSAPI/Kerberos authentication plugin - krb_authentication +- Password: Allow temporarily disabling the plugin functionality with a notice +- Require Mbstring and OpenSSL extensions (#5166) +- Add --config and --type options to moduserprefs.sh script (#4651) +- Implemented memcache_debug and apc_debug options +- Installer: Remove system() function use (#4695) +- Password plugin: Added 'kpasswd' driver by Peter Allgeyer +- Add initdb.sh to create database from initial.sql script with prefix support (#4722) +- Plugin API: Added disabled_plugins an disabled_buttons options in html_editor hook +- Plugin API: Added html2text hook +- Plugin API: Added message_part_body hook +- Plugin API: Added message_ready hook +- Plugin API: Add special onload() method to execute plugin actions before startup (session and GUI initialization) +- Implemented UI element to jump to specified page of the messages list (#1677) +- Fix searching of contacts to allow remote images for known senders (#4886) +- Fix bug where clicking date column with 'arrival' sorting would switch to sorting by 'date' (#4690) +- Fix bug where message content could overlap attachments list in Larry skin (#4876) +- Fix so microseconds macro (u) in log_date_format works (#4855) +- Fix so unrecognized TNEF attachments are displayed on the list of attachments (#5138) +- Fix so database_attachments::cleanup() does not remove attachments from other sessions (#4907) +- Fix responses list update issue after response name change (#4917) +- Fix bug where message preview was unintentionally reset on check-recent action (#4921) +- Fix bug where HTML messages with invalid/excessive css styles couldn't be displayed (#4905) +- Fix redundant blank lines when using HTML and top posting (#4927) +- Fix redundant blank lines on start of text after html to text conversion (#4928) +- Fix HTML sanitizer to skip in output (#4932) +- Fix invalid LDAP query in ACL user autocompletion (#4934) + +RELEASE 1.1.3 +------------- +- Fix closing of nested menus (#4854) +- Fix so E_DEPRECATED errors from PEAR libs are ignored by error_reporting change (#4770) +- Fix compatibility with PHP 5.3 in rcube_ldap class (#4842) +- Get rid of Mail_mimeDecode package dependency (#4836) +- Fix "Importing..." message does not hide on error (#4840) +- Fix Compose action in addressbook for results from multiple addressbooks (#4834) +- Fix bug where some messages in multi-folder search couldn't be viewed/printed/downloaded (#4843) +- Fix unintentional messages list page change on page switch in compose addressbook (#4844) +- Fix race-condition in saving user preferences and loading plugin config (#4845) +- Fix so plain text signature field uses monospace font (#4848) +- Fix so links with href == content aren't added to links list on html to text conversion (#4847) +- Fix handling of non-break spaces in html to text conversion (#4849) +- Fix self-reply detection issues (#4852) +- Fix multi-folder search result sorting by arrival date (#4858) +- Fix so *-request@ addresses in Sender: header are also ignored on reply-all (#4860) +- Update to TinyMCE 4.1.10 (#5164) +- Fix draft removal after a message is sent and storing sent message is disabled (#4869) +- Fix so imap folder attribute comparisons are case-insensitive (#4868) +- Fix bug where new messages weren't added to the list in search mode +- Fix wrong positioning of message list header on page scroll in Webkit browsers (#4646) +- Fix some javascript errors in rare situations (#4853) +- Fix error when using back button after sending an email (#4628) +- Fix removing signature when switching to identity with an empty sig in HTML mode (#4872) +- Disable links list generation on html-to-text conversion of identities or composed message (#4850) +- Fix "washing" of style elements wrapped into many lines +- Fix so input field (e.g. search box) does not loose focus on list load (#4862) +- Fix so css of one html part does not apply to other text parts on message display (#4887) +- Fix XSS issue in drag-n-drop file uploads [CVE-2015-8105] (#4900) +- Fix handling of plus character in mailto: links (#4891) +- Fix so adding CC/BCC recipients from the sidebar unhides compose form fields in Classic skin (#4874) +- Fix so gc.sh script removes also expired sessions from sql database (#4893) +- Fix support for Mozilla-based browsers, e.g. Pale Moon (#4895) +- Fix various issues with Turkish (and similar) locales (#4896) +- Fix so In-Reply-To header is set also for MDN receipts (#4897) +- Fix missing HTTP_X_FORWARDED_FOR address in generated Received header +- Fix issue where Content-Length of some attachments could be set to wrong value causing browser errors (#4877) + +RELEASE 1.1.2 +------------- +- Add new plugin hook 'identity_create_after' providing the ID of the inserted identity (#4807) +- Add option to place signature at bottom of the quoted text even in top-posting mode [sig_below] +- Fix handling of %-encoded entities in mailto: URLs (#4799) +- Fix zipped messages downloads after selecting all messages in a folder (#4797) +- Fix vpopmaild driver of password plugin +- Fix PHP warning: Non-static method PEAR::setErrorHandling() should not be called statically (#4798) +- Fix tables listing routine on mysql and postgres so it skips system or other database tables and views (#4796) +- Fix message list header in classic skin on window resize in Internet Explorer (#4732) +- Fix so text/calendar parts are listed as attachments even if not marked as such (#4795) +- Fix lack of signature separator for plain text signatures in html mode (#4802) +- Fix font artifact in Google Chrome on Windows (#4803) +- Fix bug where forced extwin page reload could exit from the extwin mode (#4801) +- Fix bug where some unrelated attachments in multipart/related message were not listed (#4805) +- Fix mouseup event handling when dragging a list record (#4808) +- Fix bug where preview_pane setting wasn't always saved into user preferences (#4809) +- Fix bug where messages count was not updated after message move/delete with skip_deleted=false (#4814) +- Fix security issue in contact photo handling (#4817) +- Fix possible memcache/apc cache data consistency issues (#4820) +- Fix bug where imap_conn_options were ignored in IMAP connection test (#4822) +- Fix bug where some files could have "executable" extension when stored in temp folder (#4815) +- Fix attached file path unsetting in database_attachments plugin (#4823) +- Fix issues when using moduserprefs.sh without --user argument (#4825) +- Fix potential info disclosure issue by protecting directory access (#4816) +- Fix blank image in html_signature when saving identity changes (#4833) +- Installer: Use openssl_random_pseudo_bytes() (if available) to generate des_key (#4827) +- Fix XSS vulnerability in _mbox argument handling (#4837) + +RELEASE 1.1.1 +------------- +- ACL: Allow other plugins to adjust the list of permissions and groups to edit +- Add possibility to print contact information (of a single contact) +- Add possibility to configure max_allowed_packet value for all database engines (#4772) +- Improved handling of storage errors after message is sent +- Update to TinyMCE 4.1.9 +- Unified request* event arguments handling, added support for _unlock and _action parameters +- Security: Generate random hash for the per-user local storage prefix (#4768) +- Fix refreshing of drafts list when sending a message which was saved in meantime (#4745) +- Fix saving/sending emoticon images when assets_dir is set +- Fix PHP fatal error when visiting Vacation interface and there's no sieve script yet (#4778) +- Fix setting max packet size for DB caches and check packet size also in shared cache +- Fix needless security warning on BMP attachments display (#4771) +- Fix handling of some improper constructs in format=flowed text as per the RFC3676[4.5] (#4773) +- Fix performance of rcube_db_mysql::get_variable() +- Fix missing or not up-to-date CATEGORIES entry in vCard export (#4766) +- Fix fatal errors on systems without mbstring extension or mb_regex_encoding() function (#4769) +- Fix cursor position on reply below the quote in HTML mode (#4759) +- Fix so "over quota" errors are displayed also in message compose page +- Fix duplicate entries supression in autocomplete result (#4776) +- Fix "Non-static method PEAR::isError() should not be called statically" errors (#4770) +- Fix parsing invalid HTML messages with BOM after (#4777) +- Fix duplicate entry on timezones list in rcube_config::timezone_name_from_abbr() (#4779) +- Fix so localized folder name is displayed in multi-folder search result (#4750) +- Fix javascript error after creating a folder which is a subfolder of another one (#4781) +- Fix bug where subject of sent/saved message was removed if mbstring wasn't installed (#4780) +- Fix missing vcard_attachment icon on messages list (#4783) +- Fix storing signatures with big images in MySQL database (#4785) +- Fix Opera browser detection in javascript (#4786) +- Fix so search filter, scope and fields are reset on folder change +- Fix rows count when messages search fails (#4760) +- Fix bug where spellchecking in HTML editor do not work after switching editor type more than once (#4789) +- Fix bug where TinyMCE area height was too small on slow network connection (#4788) +- Fix backtick character handling in sql queries (#4790) +- Fix redirect URL for attachments loaded in an iframe when behind a proxy (#4724) +- Fix menu container references to point to the actual
+ + + + diff --git a/data/web/rc/installer/styles.css b/data/web/rc/installer/styles.css new file mode 100644 index 0000000000000000000000000000000000000000..06f49e3706b99e2568983fcac0f2ebbc01efb4de --- /dev/null +++ b/data/web/rc/installer/styles.css @@ -0,0 +1,235 @@ +body { + background: white; + font-family: "Lucida Grande", Verdana, Arial, Helvetica, sans-serif; + font-size: small; + color: black; + margin: 0; +} + +#banner { + position: relative; + height: 58px; + margin: 0 0 1em 0; + padding: 10px 20px; + background: url('images/banner_gradient.gif') top left repeat-x #d8edfd; + overflow: hidden; +} + +#banner .banner-bg { + position: absolute; + top: 0; + right: 0; + width: 630px; + height: 78px; + background: url('images/banner_schraffur.gif') top right no-repeat; + z-index: 0; +} + +#banner .banner-logo { + position: absolute; + top: 10px; + left: 20px; + z-index: 4; +} + +#banner .banner-logo a { + border: 0; +} + +#topnav { + position: absolute; + top: 3.6em; + right: 20px; +} + +#topnav a { + color: #666; +} + +#content { + margin: 2em 20px; +} + +#footer { + margin: 2em 20px 1em 20px; + padding-top: 0.6em; + font-size: smaller; + text-align: center; + border-top: 1px dotted #999; +} + +#progress { + margin-bottom: 2em; + border: 1px solid #aaa; + background-color: #f9f9f9; +} + +#progress:after { + content: "."; + display: block; + height: 0; + font-size: 0; + clear: both; + visibility: hidden; +} + +#progress li { + float: left; + color: #999; + padding: 1em 5em 1em 0.2em; +} + +#progress li a { + color: #999; + text-decoration: none; +} + +#progress li a:hover { + text-decoration: underline; +} + +#progress li.current { + color: #000; + font-weight: bold; +} + +#progress li.passed, +#progress li.passed a, +#progress li.current a { + color: #333; +} + +fieldset { + margin-bottom: 1.5em; + border: 1px solid #aaa; + background-color: #f9f9f9; +} + +fieldset p.hint { + margin-top: 0.5em; +} + +legend { + font-size: 1.1em; + font-weight: bold; +} + +textarea.configfile { + background-color: #f9f9f9; + font-family: monospace; + font-size: 9pt; + width: 100%; + height: 30em; +} + +.propname { + font-family: monospace; + font-size: 9pt; + margin-top: 1em; + margin-bottom: 0.6em; +} + +dd div { + margin-top: 0.3em; +} + +dd label { + padding-left: 0.5em; +} + +th { + text-align: left; +} + +ul li { + margin: 0.3em 0 0.4em -1em; +} + +ul li ul li { + margin-bottom: 0.2em; +} + +h3 { + font-size: 1.1em; + margin-top: 1.5em; + margin-bottom: 0.6em; +} + +h4 { + margin-bottom: 0.2em; +} + +a.blocktoggle { + color: #666; + text-decoration: none; +} + +a.addlink { + color: #999; + font-size: 0.9em; + padding: 1px 0 1px 20px; + background: url('images/add.png') top left no-repeat; + text-decoration: none; +} + +a.removelink { + color: #999; + font-size: 0.9em; + padding: 1px 0 1px 24px; + background: url('images/delete.png') 4px 0 no-repeat; + text-decoration: none; +} + +.hint { + color: #666; + font-size: 0.95em; +} + +.success { + color: #006400; + font-weight: bold !important; +} + +.fail { + color: #ff0000 !important; + font-weight: bold !important; +} + +.na { + color: #f60; + font-weight: bold; +} + +.indent { + padding-left: 0.8em; +} + +.notice { + padding: 1em; + background-color: #f7fdcb; + border: 2px solid #c2d071; +} + +.suggestion { + padding: 0.6em; + background-color: #ebebeb; + border: 1px solid #999; +} + +p.warning, +div.warning { + padding: 1em; + background-color: #ef9398; + border: 2px solid #dc5757; +} + +h3.warning { + color: #c00; + background: url('images/error.png') top left no-repeat; + padding-left: 24px; +} + +.userconf { + color: #00c; + font-family: "Lucida Grande", Verdana, Arial, Helvetica, sans-serif; +} diff --git a/data/web/rc/installer/test.php b/data/web/rc/installer/test.php new file mode 100644 index 0000000000000000000000000000000000000000..a79adc1709e3d9b16bb05428beefabb69acb97a6 --- /dev/null +++ b/data/web/rc/installer/test.php @@ -0,0 +1,445 @@ + +
+ +

Check config file

+load_config_file(RCUBE_CONFIG_DIR . 'defaults.inc.php'); + if (!empty($config)) { + $RCI->pass('defaults.inc.php'); + } + else { + $RCI->fail('defaults.inc.php', 'Syntax error'); + } +} +else { + $RCI->fail('defaults.inc.php', 'Unable to read default config file?'); +} +echo '
'; + +if ($read_config = is_readable(RCUBE_CONFIG_DIR . 'config.inc.php')) { + $config = $RCI->load_config_file(RCUBE_CONFIG_DIR . 'config.inc.php'); + if (!empty($config)) { + $RCI->pass('config.inc.php'); + } + else { + $RCI->fail('config.inc.php', 'Syntax error'); + } +} +else { + $RCI->fail('config.inc.php', 'Unable to read file. Did you create the config file?'); +} +echo '
'; + + +if ($RCI->configured && ($messages = $RCI->check_config())) { + if (is_array($messages['replaced'])) { + echo '

Replaced config options

'; + echo '

The following config options have been replaced or renamed. '; + echo 'Please update them accordingly in your config files.

'; + + echo '
    '; + foreach ($messages['replaced'] as $msg) { + echo html::tag('li', null, html::span('propname', $msg['prop']) . + ' was replaced by ' . html::span('propname', $msg['replacement'])); + } + echo '
'; + } + + if (is_array($messages['obsolete'])) { + echo '

Obsolete config options

'; + echo '

You still have some obsolete or inexistent properties set. This isn\'t a problem but should be noticed.

'; + + echo '
    '; + foreach ($messages['obsolete'] as $msg) { + echo html::tag('li', null, html::span('propname', $msg['prop']) . ($msg['name'] ? ': ' . $msg['name'] : '')); + } + echo '
'; + } + + echo '

OK, lazy people can download the updated config file here: '; + echo html::a(array('href' => './?_mergeconfig=1'), 'config.inc.php') . '  '; + echo "

"; + + if (is_array($messages['dependencies'])) { + echo '

Dependency check failed

'; + echo '

Some of your configuration settings require other options to be configured or additional PHP modules to be installed

'; + + echo '
    '; + foreach ($messages['dependencies'] as $msg) { + echo html::tag('li', null, html::span('propname', $msg['prop']) . ': ' . $msg['explain']); + } + echo '
'; + } +} + +?> + +

Check if directories are writable

+

Roundcube may need to write/save files into these directories

+config['temp_dir'] ? $RCI->config['temp_dir'] : 'temp'; +if ($RCI->config['log_driver'] != 'syslog') + $dirs[] = $RCI->config['log_dir'] ? $RCI->config['log_dir'] : 'logs'; + +foreach ($dirs as $dir) { + $dirpath = rcube_utils::is_absolute_path($dir) ? $dir : INSTALL_PATH . $dir; + if (is_writable(realpath($dirpath))) { + $RCI->pass($dir); + $pass = true; + } + else { + $RCI->fail($dir, 'not writeable for the webserver'); + } + echo '
'; +} + +if (!$pass) { + echo '

Use chmod or chown to grant write privileges to the webserver

'; +} + +?> + +

Check DB config

+configured) { + if (!empty($RCI->config['db_dsnw'])) { + $DB = rcube_db::factory($RCI->config['db_dsnw'], '', false); + $DB->set_debug((bool)$RCI->config['sql_debug']); + $DB->db_connect('w'); + + if (!($db_error_msg = $DB->is_error())) { + $RCI->pass('DSN (write)'); + echo '
'; + $db_working = true; + } + else { + $RCI->fail('DSN (write)', $db_error_msg); + echo '

Make sure that the configured database exists and that the user has write privileges
'; + echo 'DSN: ' . $RCI->config['db_dsnw'] . '

'; + } + } + else { + $RCI->fail('DSN (write)', 'not set'); + } +} +else { + $RCI->fail('DSN (write)', 'Could not read config file'); +} + +// initialize db with schema found in /SQL/* +if ($db_working && $_POST['initdb']) { + if (!($success = $RCI->init_db($DB))) { + $db_working = false; + echo '

Please try to inizialize the database manually as described in the INSTALL guide. + Make sure that the configured database extists and that the user as write privileges

'; + } +} + +else if ($db_working && $_POST['updatedb']) { + if (!($success = $RCI->update_db($_POST['version']))) { + echo '

Database schema update failed.

'; + } +} + +// test database +if ($db_working) { + $db_read = $DB->query("SELECT count(*) FROM " . $DB->quote_identifier($RCI->config['db_prefix'] . 'users')); + if ($DB->is_error()) { + $RCI->fail('DB Schema', "Database not initialized"); + echo '

'; + $db_working = false; + } + else if ($err = $RCI->db_schema_check($DB, $update = !empty($_POST['updatedb']))) { + $RCI->fail('DB Schema', "Database schema differs"); + echo '
  • ' . join("
  • \n
  • ", $err) . "
"; + $select = $RCI->versions_select(array('name' => 'version')); + $select->add('0.9 or newer', ''); + echo '

You should run the update queries to get the schema fixed.

Version to update from: ' . $select->show() . ' 

'; + $db_working = false; + } + else { + $RCI->pass('DB Schema'); + echo '
'; + } +} + +// more database tests +if ($db_working) { + // write test + $insert_id = md5(uniqid()); + $db_write = $DB->query("INSERT INTO " . $DB->quote_identifier($RCI->config['db_prefix'] . 'session') + . " (`sess_id`, `changed`, `ip`, `vars`) VALUES (?, ".$DB->now().", '127.0.0.1', 'foo')", $insert_id); + + if ($db_write) { + $RCI->pass('DB Write'); + $DB->query("DELETE FROM " . $DB->quote_identifier($RCI->config['db_prefix'] . 'session') + . " WHERE `sess_id` = ?", $insert_id); + } + else { + $RCI->fail('DB Write', $RCI->get_error()); + } + echo '
'; + + // check timezone settings + $tz_db = 'SELECT ' . $DB->unixtimestamp($DB->now()) . ' AS tz_db'; + $tz_db = $DB->query($tz_db); + $tz_db = $DB->fetch_assoc($tz_db); + $tz_db = (int) $tz_db['tz_db']; + $tz_local = (int) time(); + $tz_diff = $tz_local - $tz_db; + + // sometimes db and web servers are on separate hosts, so allow a 30 minutes delta + if (abs($tz_diff) > 1800) { + $RCI->fail('DB Time', "Database time differs {$td_ziff}s from PHP time"); + } + else { + $RCI->pass('DB Time'); + } +} + +?> + +

Test filetype detection

+ +check_mime_detection()) { + $RCI->fail('Fileinfo/mime_content_type configuration'); + if (!empty($RCI->config['mime_magic'])) { + echo '

Try setting the mime_magic config option to null.

'; + } + else { + echo '

Check the Fileinfo functions of your PHP installation.
'; + echo 'The path to the magic.mime file can be set using the mime_magic config option in Roundcube.

'; + } +} +else { + $RCI->pass('Fileinfo/mime_content_type configuration'); + echo "
"; +} + + +if ($errors = $RCI->check_mime_extensions()) { + $RCI->fail('Mimetype to file extension mapping'); + echo '

Please set a valid path to your webserver\'s mime.types file to the mime_types config option.
'; + echo 'If you can\'t find such a file, download it from svn.apache.org.

'; +} +else { + $RCI->pass('Mimetype to file extension mapping'); + echo "
"; +} + +?> + + +

Test SMTP config

+ +

+Server: getprop('smtp_server', 'localhost')); ?>
+Port: getprop('smtp_port'); ?>
+ +getprop('smtp_server')) { + $user = $RCI->getprop('smtp_user', '(none)'); + $pass = $RCI->getprop('smtp_pass', '(none)'); + + if ($user == '%u') { + $user_field = new html_inputfield(array('name' => '_smtp_user')); + $user = $user_field->show($_POST['_smtp_user']); + } + if ($pass == '%p') { + $pass_field = new html_passwordfield(array('name' => '_smtp_pass')); + $pass = $pass_field->show(); + } + + echo "User: $user
"; + echo "Password: $pass
"; +} + +$from_field = new html_inputfield(array('name' => '_from', 'id' => 'sendmailfrom')); +$to_field = new html_inputfield(array('name' => '_to', 'id' => 'sendmailto')); + +?> +

+ +Trying to send email...
'; + + $from = idn_to_ascii(trim($_POST['_from'])); + $to = idn_to_ascii(trim($_POST['_to'])); + + if (preg_match('/^' . $RCI->email_pattern . '$/i', $from) && + preg_match('/^' . $RCI->email_pattern . '$/i', $to) + ) { + $headers = array( + 'From' => $from, + 'To' => $to, + 'Subject' => 'Test message from Roundcube', + ); + + $body = 'This is a test to confirm that Roundcube can send email.'; + + // send mail using configured SMTP server + $CONFIG = $RCI->config; + + if (!empty($_POST['_smtp_user'])) { + $CONFIG['smtp_user'] = $_POST['_smtp_user']; + } + if (!empty($_POST['_smtp_pass'])) { + $CONFIG['smtp_pass'] = $_POST['_smtp_pass']; + } + + $mail_object = new Mail_mime(); + $send_headers = $mail_object->headers($headers); + $head = $mail_object->txtHeaders($send_headers); + + $SMTP = new rcube_smtp(); + $SMTP->connect(rcube_utils::parse_host($RCI->getprop('smtp_server')), + $RCI->getprop('smtp_port'), $CONFIG['smtp_user'], $CONFIG['smtp_pass']); + + $status = $SMTP->send_mail($headers['From'], $headers['To'], $head, $body); + $smtp_response = $SMTP->get_response(); + + if ($status) { + $RCI->pass('SMTP send'); + } + else { + $RCI->fail('SMTP send', join('; ', $smtp_response)); + } + } + else { + $RCI->fail('SMTP send', 'Invalid sender or recipient'); + } + + echo '

'; +} + +?> + + + + + + + + + + + + +
show($_POST['_from']); ?>
show($_POST['_to']); ?>
+ +

+ + +

Test IMAP config

+ +get_hostlist(); +if (!empty($default_hosts)) { + $host_field = new html_select(array('name' => '_host', 'id' => 'imaphost')); + $host_field->add($default_hosts); +} +else { + $host_field = new html_inputfield(array('name' => '_host', 'id' => 'imaphost')); +} + +$user_field = new html_inputfield(array('name' => '_user', 'id' => 'imapuser')); +$pass_field = new html_passwordfield(array('name' => '_pass', 'id' => 'imappass')); + +?> + + + + + + + + + + + + + + + + + + + + +
show($_POST['_host']); ?>
Portgetprop('default_port'); ?>
show($_POST['_user']); ?>
show(); ?>
+ +Connecting to ' . rcube::Q($_POST['_host']) . '...
'; + + $imap_host = trim($_POST['_host']); + $imap_port = $RCI->getprop('default_port'); + $a_host = parse_url($imap_host); + + if ($a_host['host']) { + $imap_host = $a_host['host']; + $imap_ssl = (isset($a_host['scheme']) && in_array($a_host['scheme'], array('ssl','imaps','tls'))) ? $a_host['scheme'] : null; + if (isset($a_host['port'])) + $imap_port = $a_host['port']; + else if ($imap_ssl && $imap_ssl != 'tls' && (!$imap_port || $imap_port == 143)) + $imap_port = 993; + } + + $imap_host = idn_to_ascii($imap_host); + $imap_user = idn_to_ascii($_POST['_user']); + + $imap = new rcube_imap(null); + $imap->set_options(array( + 'auth_type' => $RCI->getprop('imap_auth_type'), + 'debug' => $RCI->getprop('imap_debug'), + 'socket_options' => $RCI->getprop('imap_conn_options'), + )); + + if ($imap->connect($imap_host, $imap_user, $_POST['_pass'], $imap_port, $imap_ssl)) { + $RCI->pass('IMAP connect', 'SORT capability: ' . ($imap->get_capability('SORT') ? 'yes' : 'no')); + $imap->close(); + } + else { + $RCI->fail('IMAP connect', $RCI->get_error()); + } +} + +?> + +

+ +
+ +
+ +

+ +After completing the installation and the final tests please remove the whole +installer folder from the document root of the webserver or make sure that +enable_installer option in config.inc.php is disabled.
+
+ +These files may expose sensitive configuration data like server passwords and encryption keys +to the public. Make sure you cannot access this installer from your browser. + +

diff --git a/data/web/rc/logs/.htaccess b/data/web/rc/logs/.htaccess new file mode 100644 index 0000000000000000000000000000000000000000..43e24edc1ff4cf98262edb7f92ced85df1a9c1ee --- /dev/null +++ b/data/web/rc/logs/.htaccess @@ -0,0 +1,7 @@ +# deny webserver access to this directory + + Require all denied + + + Deny from all + diff --git a/data/web/rc/plugins/acl/acl.js b/data/web/rc/plugins/acl/acl.js new file mode 100644 index 0000000000000000000000000000000000000000..1b92ed86d63d01a44d5b9e4e64ba44e5995195f4 --- /dev/null +++ b/data/web/rc/plugins/acl/acl.js @@ -0,0 +1,389 @@ +/** + * ACL plugin script + */ + +if (window.rcmail) { + rcmail.addEventListener('init', function() { + if (rcmail.gui_objects.acltable) { + rcmail.acl_list_init(); + // enable autocomplete on user input + if (rcmail.env.acl_users_source) { + var inst = rcmail.is_framed() ? parent.rcmail : rcmail; + inst.init_address_input_events($('#acluser'), {action:'settings/plugin.acl-autocomplete'}); + + // pass config settings and localized texts to autocomplete context + inst.set_env({ autocomplete_max:rcmail.env.autocomplete_max, autocomplete_min_length:rcmail.env.autocomplete_min_length }); + inst.add_label('autocompletechars', rcmail.labels.autocompletechars); + inst.add_label('autocompletemore', rcmail.labels.autocompletemore); + + // fix inserted value + inst.addEventListener('autocomplete_insert', function(e) { + if (e.field.id != 'acluser') + return; + + e.field.value = e.insert.replace(/[ ,;]+$/, ''); + }); + } + } + + rcmail.enable_command('acl-create', 'acl-save', 'acl-cancel', 'acl-mode-switch', true); + rcmail.enable_command('acl-delete', 'acl-edit', false); + + if (rcmail.env.acl_advanced) + $('#acl-switch').addClass('selected'); + }); +} + +// Display new-entry form +rcube_webmail.prototype.acl_create = function() +{ + this.acl_init_form(); +} + +// Display ACL edit form +rcube_webmail.prototype.acl_edit = function() +{ + // @TODO: multi-row edition + var id = this.acl_list.get_single_selection(); + if (id) + this.acl_init_form(id); +} + +// ACL entry delete +rcube_webmail.prototype.acl_delete = function() +{ + var users = this.acl_get_usernames(); + + if (users && users.length && confirm(this.get_label('acl.deleteconfirm'))) { + this.http_post('settings/plugin.acl', { + _act: 'delete', + _user: users.join(','), + _mbox: this.env.mailbox + }, + this.set_busy(true, 'acl.deleting')); + } +} + +// Save ACL data +rcube_webmail.prototype.acl_save = function() +{ + var data, type, rights = '', user = $('#acluser', this.acl_form).val(); + + $((this.env.acl_advanced ? '#advancedrights :checkbox' : '#simplerights :checkbox'), this.acl_form).map(function() { + if (this.checked) + rights += this.value; + }); + + if (type = $('input:checked[name=usertype]', this.acl_form).val()) { + if (type != 'user') + user = type; + } + + if (!user) { + alert(this.get_label('acl.nouser')); + return; + } + if (!rights) { + alert(this.get_label('acl.norights')); + return; + } + + data = { + _act: 'save', + _user: user, + _acl: rights, + _mbox: this.env.mailbox + } + + if (this.acl_id) { + data._old = this.acl_id; + } + + this.http_post('settings/plugin.acl', data, this.set_busy(true, 'acl.saving')); +} + +// Cancel/Hide form +rcube_webmail.prototype.acl_cancel = function() +{ + this.ksearch_blur(); + this.acl_popup.dialog('close'); +} + +// Update data after save (and hide form) +rcube_webmail.prototype.acl_update = function(o) +{ + // delete old row + if (o.old) + this.acl_remove_row(o.old); + // make sure the same ID doesn't exist + else if (this.env.acl[o.id]) + this.acl_remove_row(o.id); + + // add new row + this.acl_add_row(o, true); + // hide autocomplete popup + this.ksearch_blur(); + // hide form + this.acl_popup.dialog('close'); +} + +// Switch table display mode +rcube_webmail.prototype.acl_mode_switch = function(elem) +{ + this.env.acl_advanced = !this.env.acl_advanced; + this.enable_command('acl-delete', 'acl-edit', false); + this.http_request('settings/plugin.acl', '_act=list' + + '&_mode='+(this.env.acl_advanced ? 'advanced' : 'simple') + + '&_mbox='+urlencode(this.env.mailbox), + this.set_busy(true, 'loading')); +} + +// ACL table initialization +rcube_webmail.prototype.acl_list_init = function() +{ + var method = this.env.acl_advanced ? 'addClass' : 'removeClass'; + + $('#acl-switch')[method]('selected'); + $(this.gui_objects.acltable)[method]('advanced'); + + this.acl_list = new rcube_list_widget(this.gui_objects.acltable, + {multiselect: true, draggable: false, keyboard: true}); + this.acl_list.addEventListener('select', function(o) { rcmail.acl_list_select(o); }) + .addEventListener('dblclick', function(o) { rcmail.acl_list_dblclick(o); }) + .addEventListener('keypress', function(o) { rcmail.acl_list_keypress(o); }) + .init(); +} + +// ACL table row selection handler +rcube_webmail.prototype.acl_list_select = function(list) +{ + rcmail.enable_command('acl-delete', list.selection.length > 0); + rcmail.enable_command('acl-edit', list.selection.length == 1); + list.focus(); +} + +// ACL table double-click handler +rcube_webmail.prototype.acl_list_dblclick = function(list) +{ + this.acl_edit(); +} + +// ACL table keypress handler +rcube_webmail.prototype.acl_list_keypress = function(list) +{ + if (list.key_pressed == list.ENTER_KEY) + this.command('acl-edit'); + else if (list.key_pressed == list.DELETE_KEY || list.key_pressed == list.BACKSPACE_KEY) + if (!this.acl_form || !this.acl_form.is(':visible')) + this.command('acl-delete'); +} + +// Reloads ACL table +rcube_webmail.prototype.acl_list_update = function(html) +{ + $(this.gui_objects.acltable).html(html); + this.acl_list_init(); +} + +// Returns names of users in selected rows +rcube_webmail.prototype.acl_get_usernames = function() +{ + var users = [], n, len, cell, row, + list = this.acl_list, + selection = list.get_selection(); + + for (n=0, len=selection.length; n= 0) { + users.push(selection[n]); + } + else if (row = list.rows[selection[n]]) { + cell = $('td.user', row.obj); + if (cell.length == 1) + users.push(cell.text()); + } + } + + return users; +} + +// Removes ACL table row +rcube_webmail.prototype.acl_remove_row = function(id) +{ + var list = this.acl_list; + + list.remove_row(id); + list.clear_selection(); + + // we don't need it anymore (remove id conflict) + $('#rcmrow'+id).remove(); + this.env.acl[id] = null; + + this.enable_command('acl-delete', list.selection.length > 0); + this.enable_command('acl-edit', list.selection.length == 1); +} + +// Adds ACL table row +rcube_webmail.prototype.acl_add_row = function(o, sel) +{ + var n, len, ids = [], spec = [], id = o.id, list = this.acl_list, + items = this.env.acl_advanced ? [] : this.env.acl_items, + table = this.gui_objects.acltable, + row = $('thead > tr', table).clone(); + + // Update new row + $('th', row).map(function() { + var td = $(''), + title = $(this).attr('title'), + cl = this.className.replace(/^acl/, ''); + + if (title) + td.attr('title', title); + + if (items && items[cl]) + cl = items[cl]; + + if (cl == 'user') + td.addClass(cl).append($('').text(o.username)); + else + td.addClass(this.className + ' ' + rcmail.acl_class(o.acl, cl)).text(''); + + $(this).replaceWith(td); + }); + + row.attr('id', 'rcmrow'+id); + row = row.get(0); + + this.env.acl[id] = o.acl; + + // sorting... (create an array of user identifiers, then sort it) + for (n in this.env.acl) { + if (this.env.acl[n]) { + if (this.env.acl_specials.length && $.inArray(n, this.env.acl_specials) >= 0) + spec.push(n); + else + ids.push(n); + } + } + ids.sort(); + // specials on the top + ids = spec.concat(ids); + + // find current id + for (n=0, len=ids.length; n -1) + found++; + + if (found == len) + return 'enabled'; + else if (found) + return 'partial'; + + return 'disabled'; +} diff --git a/data/web/rc/plugins/acl/acl.min.js b/data/web/rc/plugins/acl/acl.min.js new file mode 100644 index 0000000000000000000000000000000000000000..bc18a2e6f24c4757229989feec4fc983204f0222 --- /dev/null +++ b/data/web/rc/plugins/acl/acl.min.js @@ -0,0 +1,15 @@ +window.rcmail&&rcmail.addEventListener("init",function(){if(rcmail.gui_objects.acltable&&(rcmail.acl_list_init(),rcmail.env.acl_users_source)){var a=rcmail.is_framed()?parent.rcmail:rcmail;a.init_address_input_events($("#acluser"),{action:"settings/plugin.acl-autocomplete"});a.set_env({autocomplete_max:rcmail.env.autocomplete_max,autocomplete_min_length:rcmail.env.autocomplete_min_length});a.add_label("autocompletechars",rcmail.labels.autocompletechars);a.add_label("autocompletemore",rcmail.labels.autocompletemore); +a.addEventListener("autocomplete_insert",function(a){"acluser"==a.field.id&&(a.field.value=a.insert.replace(/[ ,;]+$/,""))})}rcmail.enable_command("acl-create","acl-save","acl-cancel","acl-mode-switch",!0);rcmail.enable_command("acl-delete","acl-edit",!1);rcmail.env.acl_advanced&&$("#acl-switch").addClass("selected")});rcube_webmail.prototype.acl_create=function(){this.acl_init_form()};rcube_webmail.prototype.acl_edit=function(){var a=this.acl_list.get_single_selection();a&&this.acl_init_form(a)}; +rcube_webmail.prototype.acl_delete=function(){var a=this.acl_get_usernames();a&&a.length&&confirm(this.get_label("acl.deleteconfirm"))&&this.http_post("settings/plugin.acl",{_act:"delete",_user:a.join(","),_mbox:this.env.mailbox},this.set_busy(!0,"acl.deleting"))}; +rcube_webmail.prototype.acl_save=function(){var a,b="",c=$("#acluser",this.acl_form).val();$(this.env.acl_advanced?"#advancedrights :checkbox":"#simplerights :checkbox",this.acl_form).map(function(){this.checked&&(b+=this.value)});(a=$("input:checked[name=usertype]",this.acl_form).val())&&"user"!=a&&(c=a);c?b?(a={_act:"save",_user:c,_acl:b,_mbox:this.env.mailbox},this.acl_id&&(a._old=this.acl_id),this.http_post("settings/plugin.acl",a,this.set_busy(!0,"acl.saving"))):alert(this.get_label("acl.norights")): +alert(this.get_label("acl.nouser"))};rcube_webmail.prototype.acl_cancel=function(){this.ksearch_blur();this.acl_popup.dialog("close")};rcube_webmail.prototype.acl_update=function(a){a.old?this.acl_remove_row(a.old):this.env.acl[a.id]&&this.acl_remove_row(a.id);this.acl_add_row(a,!0);this.ksearch_blur();this.acl_popup.dialog("close")}; +rcube_webmail.prototype.acl_mode_switch=function(a){this.env.acl_advanced=!this.env.acl_advanced;this.enable_command("acl-delete","acl-edit",!1);this.http_request("settings/plugin.acl","_act=list&_mode="+(this.env.acl_advanced?"advanced":"simple")+"&_mbox="+urlencode(this.env.mailbox),this.set_busy(!0,"loading"))}; +rcube_webmail.prototype.acl_list_init=function(){var a=this.env.acl_advanced?"addClass":"removeClass";$("#acl-switch")[a]("selected");$(this.gui_objects.acltable)[a]("advanced");this.acl_list=new rcube_list_widget(this.gui_objects.acltable,{multiselect:!0,draggable:!1,keyboard:!0});this.acl_list.addEventListener("select",function(a){rcmail.acl_list_select(a)}).addEventListener("dblclick",function(a){rcmail.acl_list_dblclick(a)}).addEventListener("keypress",function(a){rcmail.acl_list_keypress(a)}).init()}; +rcube_webmail.prototype.acl_list_select=function(a){rcmail.enable_command("acl-delete",0 tr",this.gui_objects.acltable).clone();$("th",g).map(function(){var b=$(""),c=$(this).attr("title"),d=this.className.replace(/^acl/,"");c&&b.attr("title",c);k&&k[d]&&(d=k[d]);"user"==d?b.addClass(d).append($("").text(a.username)):b.addClass(this.className+" "+rcmail.acl_class(a.acl,d)).text("");$(this).replaceWith(b)});g.attr("id","rcmrow"+ +f);g=g.get(0);this.env.acl[f]=a.acl;for(c in this.env.acl)this.env.acl[c]&&(this.env.acl_specials.length&&0<=$.inArray(c,this.env.acl_specials)?e.push(c):d.push(c));d.sort();d=e.concat(d);c=0;for(e=d.length;c$.inArray(a,this.env.acl_specials)?d=$("td.user",c).text():f=a):b.filter(function(){return this.id.match(/^acl([lrs]|read)$/)}).prop("checked",!0);g.val(d);$("input[value="+f+"]").prop("checked",!0);this.acl_id=a;var d={},l=this,h=document.body;d[this.get_label("save")]=function(a){l.command("acl-save")};d[this.get_label("cancel")]=function(a){l.command("acl-cancel")};this.acl_popup=this.show_popup_dialog(this.acl_form.show(),a?this.get_label("acl.editperms"): +this.get_label("acl.newuser"),d,{button_classes:["mainaction"],modal:!0,closeOnEscape:!0,close:function(a,b){(l.is_framed()?parent.rcmail:l).ksearch_hide();l.acl_form.appendTo(h).hide();$(this).remove();window.focus()}});"user"==f?g.focus():$("input:checked",n).focus()};rcube_webmail.prototype.acl_class=function(a,b){var c,e,d=0;a=String(a);b=String(b);c=0;for(e=b.length;c + * + * Copyright (C) 2011-2012, Kolab Systems AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see http://www.gnu.org/licenses/. + */ + +class acl extends rcube_plugin +{ + public $task = 'settings|addressbook|calendar'; + + private $rc; + private $supported = null; + private $mbox; + private $ldap; + private $specials = array('anyone', 'anonymous'); + + /** + * Plugin initialization + */ + function init() + { + $this->rc = rcmail::get_instance(); + + // Register hooks + $this->add_hook('folder_form', array($this, 'folder_form')); + // kolab_addressbook plugin + $this->add_hook('addressbook_form', array($this, 'folder_form')); + $this->add_hook('calendar_form_kolab', array($this, 'folder_form')); + // Plugin actions + $this->register_action('plugin.acl', array($this, 'acl_actions')); + $this->register_action('plugin.acl-autocomplete', array($this, 'acl_autocomplete')); + } + + /** + * Handler for plugin actions (AJAX) + */ + function acl_actions() + { + $action = trim(rcube_utils::get_input_value('_act', rcube_utils::INPUT_GPC)); + + // Connect to IMAP + $this->rc->storage_init(); + + // Load localization and configuration + $this->add_texts('localization/'); + $this->load_config(); + + if ($action == 'save') { + $this->action_save(); + } + else if ($action == 'delete') { + $this->action_delete(); + } + else if ($action == 'list') { + $this->action_list(); + } + + // Only AJAX actions + $this->rc->output->send(); + } + + /** + * Handler for user login autocomplete request + */ + function acl_autocomplete() + { + $this->load_config(); + + $search = rcube_utils::get_input_value('_search', rcube_utils::INPUT_GPC, true); + $reqid = rcube_utils::get_input_value('_reqid', rcube_utils::INPUT_GPC); + $users = array(); + $keys = array(); + + if ($this->init_ldap()) { + $max = (int) $this->rc->config->get('autocomplete_max', 15); + $mode = (int) $this->rc->config->get('addressbook_search_mode'); + + $this->ldap->set_pagesize($max); + $result = $this->ldap->search('*', $search, $mode); + + foreach ($result->records as $record) { + $user = $record['uid']; + + if (is_array($user)) { + $user = array_filter($user); + $user = $user[0]; + } + + if ($user) { + $display = rcube_addressbook::compose_search_name($record); + $user = array('name' => $user, 'display' => $display); + $users[] = $user; + $keys[] = $display ?: $user['name']; + } + } + + if ($this->rc->config->get('acl_groups')) { + $prefix = $this->rc->config->get('acl_group_prefix'); + $group_field = $this->rc->config->get('acl_group_field', 'name'); + $result = $this->ldap->list_groups($search, $mode); + + foreach ($result as $record) { + $group = $record['name']; + $group_id = is_array($record[$group_field]) ? $record[$group_field][0] : $record[$group_field]; + + if ($group) { + $users[] = array('name' => ($prefix ?: '') . $group_id, 'display' => $group, 'type' => 'group'); + $keys[] = $group; + } + } + } + } + + if (count($users)) { + // sort users index + asort($keys, SORT_LOCALE_STRING); + // re-sort users according to index + foreach ($keys as $idx => $val) { + $keys[$idx] = $users[$idx]; + } + $users = array_values($keys); + } + + $this->rc->output->command('ksearch_query_results', $users, $search, $reqid); + $this->rc->output->send(); + } + + /** + * Handler for 'folder_form' hook + * + * @param array $args Hook arguments array (form data) + * + * @return array Hook arguments array + */ + function folder_form($args) + { + $mbox_imap = $args['options']['name']; + $myrights = $args['options']['rights']; + + // Edited folder name (empty in create-folder mode) + if (!strlen($mbox_imap)) { + return $args; + } +/* + // Do nothing on protected folders (?) + if ($args['options']['protected']) { + return $args; + } +*/ + // Get MYRIGHTS + if (empty($myrights)) { + return $args; + } + + // Load localization and include scripts + $this->load_config(); + $this->specials = $this->rc->config->get('acl_specials', $this->specials); + $this->add_texts('localization/', array('deleteconfirm', 'norights', + 'nouser', 'deleting', 'saving', 'newuser', 'editperms')); + $this->rc->output->add_label('save', 'cancel'); + $this->include_script('acl.js'); + $this->rc->output->include_script('list.js'); + $this->include_stylesheet($this->local_skin_path().'/acl.css'); + + // add Info fieldset if it doesn't exist + if (!isset($args['form']['props']['fieldsets']['info'])) + $args['form']['props']['fieldsets']['info'] = array( + 'name' => $this->rc->gettext('info'), + 'content' => array()); + + // Display folder rights to 'Info' fieldset + $args['form']['props']['fieldsets']['info']['content']['myrights'] = array( + 'label' => rcube::Q($this->gettext('myrights')), + 'value' => $this->acl2text($myrights) + ); + + // Return if not folder admin + if (!in_array('a', $myrights)) { + return $args; + } + + // The 'Sharing' tab + $this->mbox = $mbox_imap; + $this->rc->output->set_env('acl_users_source', (bool) $this->rc->config->get('acl_users_source')); + $this->rc->output->set_env('mailbox', $mbox_imap); + $this->rc->output->add_handlers(array( + 'acltable' => array($this, 'templ_table'), + 'acluser' => array($this, 'templ_user'), + 'aclrights' => array($this, 'templ_rights'), + )); + + $this->rc->output->set_env('autocomplete_max', (int)$this->rc->config->get('autocomplete_max', 15)); + $this->rc->output->set_env('autocomplete_min_length', $this->rc->config->get('autocomplete_min_length')); + $this->rc->output->add_label('autocompletechars', 'autocompletemore'); + + $args['form']['sharing'] = array( + 'name' => rcube::Q($this->gettext('sharing')), + 'content' => $this->rc->output->parse('acl.table', false, false), + ); + + return $args; + } + + /** + * Creates ACL rights table + * + * @param array $attrib Template object attributes + * + * @return string HTML Content + */ + function templ_table($attrib) + { + if (empty($attrib['id'])) + $attrib['id'] = 'acl-table'; + + $out = $this->list_rights($attrib); + + $this->rc->output->add_gui_object('acltable', $attrib['id']); + + return $out; + } + + /** + * Creates ACL rights form (rights list part) + * + * @param array $attrib Template object attributes + * + * @return string HTML Content + */ + function templ_rights($attrib) + { + // Get supported rights + $supported = $this->rights_supported(); + + // give plugins the opportunity to adjust this list + $data = $this->rc->plugins->exec_hook('acl_rights_supported', + array('rights' => $supported, 'folder' => $this->mbox, 'labels' => array())); + $supported = $data['rights']; + + // depending on server capability either use 'te' or 'd' for deleting msgs + $deleteright = implode(array_intersect(str_split('ted'), $supported)); + + $out = ''; + $ul = ''; + $input = new html_checkbox(); + + // Advanced rights + $attrib['id'] = 'advancedrights'; + foreach ($supported as $key => $val) { + $id = "acl$val"; + $ul .= html::tag('li', null, + $input->show('', array( + 'name' => "acl[$val]", 'value' => $val, 'id' => $id)) + . html::label(array('for' => $id, 'title' => $this->gettext('longacl'.$val)), + $this->gettext('acl'.$val))); + } + + $out = html::tag('ul', $attrib, $ul, html::$common_attrib); + + // Simple rights + $ul = ''; + $attrib['id'] = 'simplerights'; + $items = array( + 'read' => 'lrs', + 'write' => 'wi', + 'delete' => $deleteright, + 'other' => preg_replace('/[lrswi'.$deleteright.']/', '', implode($supported)), + ); + + // give plugins the opportunity to adjust this list + $data = $this->rc->plugins->exec_hook('acl_rights_simple', + array('rights' => $items, 'folder' => $this->mbox, 'labels' => array(), 'titles' => array())); + + foreach ($data['rights'] as $key => $val) { + $id = "acl$key"; + $ul .= html::tag('li', null, + $input->show('', array( + 'name' => "acl[$val]", 'value' => $val, 'id' => $id)) + . html::label(array('for' => $id, 'title' => $data['titles'][$key] ?: $this->gettext('longacl'.$key)), + $data['labels'][$key] ?: $this->gettext('acl'.$key))); + } + + $out .= "\n" . html::tag('ul', $attrib, $ul, html::$common_attrib); + + $this->rc->output->set_env('acl_items', $data['rights']); + + return $out; + } + + /** + * Creates ACL rights form (user part) + * + * @param array $attrib Template object attributes + * + * @return string HTML Content + */ + function templ_user($attrib) + { + // Create username input + $attrib['name'] = 'acluser'; + + $textfield = new html_inputfield($attrib); + + $fields['user'] = html::label(array('for' => $attrib['id']), $this->gettext('username')) + . ' ' . $textfield->show(); + + // Add special entries + if (!empty($this->specials)) { + foreach ($this->specials as $key) { + $fields[$key] = html::label(array('for' => 'id'.$key), $this->gettext($key)); + } + } + + $this->rc->output->set_env('acl_specials', $this->specials); + + // Create list with radio buttons + if (count($fields) > 1) { + $ul = ''; + $radio = new html_radiobutton(array('name' => 'usertype')); + foreach ($fields as $key => $val) { + $ul .= html::tag('li', null, $radio->show($key == 'user' ? 'user' : '', + array('value' => $key, 'id' => 'id'.$key)) + . $val); + } + + $out = html::tag('ul', array('id' => 'usertype', 'class' => $attrib['class']), $ul, html::$common_attrib); + } + // Display text input alone + else { + $out = $fields['user']; + } + + return $out; + } + + /** + * Creates ACL rights table + * + * @param array $attrib Template object attributes + * + * @return string HTML Content + */ + private function list_rights($attrib=array()) + { + // Get ACL for the folder + $acl = $this->rc->storage->get_acl($this->mbox); + + if (!is_array($acl)) { + $acl = array(); + } + + // Keep special entries (anyone/anonymous) on top of the list + if (!empty($this->specials) && !empty($acl)) { + foreach ($this->specials as $key) { + if (isset($acl[$key])) { + $acl_special[$key] = $acl[$key]; + unset($acl[$key]); + } + } + } + + // Sort the list by username + uksort($acl, 'strnatcasecmp'); + + if (!empty($acl_special)) { + $acl = array_merge($acl_special, $acl); + } + + // Get supported rights and build column names + $supported = $this->rights_supported(); + + // give plugins the opportunity to adjust this list + $data = $this->rc->plugins->exec_hook('acl_rights_supported', + array('rights' => $supported, 'folder' => $this->mbox, 'labels' => array())); + $supported = $data['rights']; + + // depending on server capability either use 'te' or 'd' for deleting msgs + $deleteright = implode(array_intersect(str_split('ted'), $supported)); + + // Use advanced or simple (grouped) rights + $advanced = $this->rc->config->get('acl_advanced_mode'); + + if ($advanced) { + $items = array(); + foreach ($supported as $sup) { + $items[$sup] = $sup; + } + } + else { + $items = array( + 'read' => 'lrs', + 'write' => 'wi', + 'delete' => $deleteright, + 'other' => preg_replace('/[lrswi'.$deleteright.']/', '', implode($supported)), + ); + + // give plugins the opportunity to adjust this list + $data = $this->rc->plugins->exec_hook('acl_rights_simple', + array('rights' => $items, 'folder' => $this->mbox, 'labels' => array())); + $items = $data['rights']; + } + + // Create the table + $attrib['noheader'] = true; + $table = new html_table($attrib); + + // Create table header + $table->add_header('user', $this->gettext('identifier')); + foreach (array_keys($items) as $key) { + $label = $data['labels'][$key] ?: $this->gettext('shortacl'.$key); + $table->add_header(array('class' => 'acl'.$key, 'title' => $label), $label); + } + + $js_table = array(); + foreach ($acl as $user => $rights) { + if ($this->rc->storage->conn->user == $user) { + continue; + } + + // filter out virtual rights (c or d) the server may return + $userrights = array_intersect($rights, $supported); + $userid = rcube_utils::html_identifier($user); + + if (!empty($this->specials) && in_array($user, $this->specials)) { + $user = $this->gettext($user); + } + + $table->add_row(array('id' => 'rcmrow'.$userid)); + $table->add('user', html::a(array('id' => 'rcmlinkrow'.$userid), rcube::Q($user))); + + foreach ($items as $key => $right) { + $in = $this->acl_compare($userrights, $right); + switch ($in) { + case 2: $class = 'enabled'; break; + case 1: $class = 'partial'; break; + default: $class = 'disabled'; break; + } + $table->add('acl' . $key . ' ' . $class, ''); + } + + $js_table[$userid] = implode($userrights); + } + + $this->rc->output->set_env('acl', $js_table); + $this->rc->output->set_env('acl_advanced', $advanced); + + $out = $table->show(); + + return $out; + } + + /** + * Handler for ACL update/create action + */ + private function action_save() + { + $mbox = trim(rcube_utils::get_input_value('_mbox', rcube_utils::INPUT_POST, true)); // UTF7-IMAP + $user = trim(rcube_utils::get_input_value('_user', rcube_utils::INPUT_POST)); + $acl = trim(rcube_utils::get_input_value('_acl', rcube_utils::INPUT_POST)); + $oldid = trim(rcube_utils::get_input_value('_old', rcube_utils::INPUT_POST)); + + $acl = array_intersect(str_split($acl), $this->rights_supported()); + $users = $oldid ? array($user) : explode(',', $user); + $result = 0; + + foreach ($users as $user) { + $user = trim($user); + $prefix = $this->rc->config->get('acl_groups') ? $this->rc->config->get('acl_group_prefix') : ''; + + if ($prefix && strpos($user, $prefix) === 0) { + $username = $user; + } + else if (!empty($this->specials) && in_array($user, $this->specials)) { + $username = $this->gettext($user); + } + else if (!empty($user)) { + if (!strpos($user, '@') && ($realm = $this->get_realm())) { + $user .= '@' . rcube_utils::idn_to_ascii(preg_replace('/^@/', '', $realm)); + } + $username = $user; + } + + if (!$acl || !$user || !strlen($mbox)) { + continue; + } + + $user = $this->mod_login($user); + $username = $this->mod_login($username); + + if ($user != $_SESSION['username'] && $username != $_SESSION['username']) { + if ($this->rc->storage->set_acl($mbox, $user, $acl)) { + $ret = array('id' => rcube_utils::html_identifier($user), + 'username' => $username, 'acl' => implode($acl), 'old' => $oldid); + $this->rc->output->command('acl_update', $ret); + $result++; + } + } + } + + if ($result) { + $this->rc->output->show_message($oldid ? 'acl.updatesuccess' : 'acl.createsuccess', 'confirmation'); + } + else { + $this->rc->output->show_message($oldid ? 'acl.updateerror' : 'acl.createerror', 'error'); + } + } + + /** + * Handler for ACL delete action + */ + private function action_delete() + { + $mbox = trim(rcube_utils::get_input_value('_mbox', rcube_utils::INPUT_POST, true)); //UTF7-IMAP + $user = trim(rcube_utils::get_input_value('_user', rcube_utils::INPUT_POST)); + + $user = explode(',', $user); + + foreach ($user as $u) { + $u = trim($u); + if ($this->rc->storage->delete_acl($mbox, $u)) { + $this->rc->output->command('acl_remove_row', rcube_utils::html_identifier($u)); + } + else { + $error = true; + } + } + + if (!$error) { + $this->rc->output->show_message('acl.deletesuccess', 'confirmation'); + } + else { + $this->rc->output->show_message('acl.deleteerror', 'error'); + } + } + + /** + * Handler for ACL list update action (with display mode change) + */ + private function action_list() + { + if (in_array('acl_advanced_mode', (array)$this->rc->config->get('dont_override'))) { + return; + } + + $this->mbox = trim(rcube_utils::get_input_value('_mbox', rcube_utils::INPUT_GPC, true)); // UTF7-IMAP + $advanced = trim(rcube_utils::get_input_value('_mode', rcube_utils::INPUT_GPC)); + $advanced = $advanced == 'advanced'; + + // Save state in user preferences + $this->rc->user->save_prefs(array('acl_advanced_mode' => $advanced)); + + $out = $this->list_rights(); + + $out = preg_replace(array('/^]+>/', '/<\/table>$/'), '', $out); + + $this->rc->output->command('acl_list_update', $out); + } + + /** + * Creates
    list with descriptive access rights + * + * @param array $rights MYRIGHTS result + * + * @return string HTML content + */ + function acl2text($rights) + { + if (empty($rights)) { + return ''; + } + + $supported = $this->rights_supported(); + $list = array(); + $attrib = array( + 'name' => 'rcmyrights', + 'style' => 'margin:0; padding:0 15px;', + ); + + foreach ($supported as $right) { + if (in_array($right, $rights)) { + $list[] = html::tag('li', null, rcube::Q($this->gettext('acl' . $right))); + } + } + + if (count($list) == count($supported)) + return rcube::Q($this->gettext('aclfull')); + + return html::tag('ul', $attrib, implode("\n", $list)); + } + + /** + * Compares two ACLs (according to supported rights) + * + * @param array $acl1 ACL rights array (or string) + * @param array $acl2 ACL rights array (or string) + * + * @param int Comparision result, 2 - full match, 1 - partial match, 0 - no match + */ + function acl_compare($acl1, $acl2) + { + if (!is_array($acl1)) $acl1 = str_split($acl1); + if (!is_array($acl2)) $acl2 = str_split($acl2); + + $rights = $this->rights_supported(); + + $acl1 = array_intersect($acl1, $rights); + $acl2 = array_intersect($acl2, $rights); + $res = array_intersect($acl1, $acl2); + + $cnt1 = count($res); + $cnt2 = count($acl2); + + if ($cnt1 == $cnt2) + return 2; + else if ($cnt1) + return 1; + else + return 0; + } + + /** + * Get list of supported access rights (according to RIGHTS capability) + * + * @return array List of supported access rights abbreviations + */ + function rights_supported() + { + if ($this->supported !== null) { + return $this->supported; + } + + $capa = $this->rc->storage->get_capability('RIGHTS'); + + if (is_array($capa)) { + $rights = strtolower($capa[0]); + } + else { + $rights = 'cd'; + } + + return $this->supported = str_split('lrswi' . $rights . 'pa'); + } + + /** + * Username realm detection. + * + * @return string Username realm (domain) + */ + private function get_realm() + { + // When user enters a username without domain part, realm + // allows to add it to the username (and display correct username in the table) + + if (isset($_SESSION['acl_username_realm'])) { + return $_SESSION['acl_username_realm']; + } + + // find realm in username of logged user (?) + list($name, $domain) = explode('@', $_SESSION['username']); + + // Use (always existent) ACL entry on the INBOX for the user to determine + // whether or not the user ID in ACL entries need to be qualified and how + // they would need to be qualified. + if (empty($domain)) { + $acl = $this->rc->storage->get_acl('INBOX'); + if (is_array($acl)) { + $regexp = '/^' . preg_quote($_SESSION['username'], '/') . '@(.*)$/'; + foreach (array_keys($acl) as $name) { + if (preg_match($regexp, $name, $matches)) { + $domain = $matches[1]; + break; + } + } + } + } + + return $_SESSION['acl_username_realm'] = $domain; + } + + /** + * Initializes autocomplete LDAP backend + */ + private function init_ldap() + { + if ($this->ldap) { + return $this->ldap->ready; + } + + // get LDAP config + $config = $this->rc->config->get('acl_users_source'); + + if (empty($config)) { + return false; + } + + // not an array, use configured ldap_public source + if (!is_array($config)) { + $ldap_config = (array) $this->rc->config->get('ldap_public'); + $config = $ldap_config[$config]; + } + + $uid_field = $this->rc->config->get('acl_users_field', 'mail'); + $filter = $this->rc->config->get('acl_users_filter'); + + if (empty($uid_field) || empty($config)) { + return false; + } + + // get name attribute + if (!empty($config['fieldmap'])) { + $name_field = $config['fieldmap']['name']; + } + // ... no fieldmap, use the old method + if (empty($name_field)) { + $name_field = $config['name_field']; + } + + // add UID field to fieldmap, so it will be returned in a record with name + $config['fieldmap']['name'] = $name_field; + $config['fieldmap']['uid'] = $uid_field; + + // search in UID and name fields + // $name_field can be in a form of : (#1490591) + $name_field = preg_replace('/:.*$/', '', $name_field); + $search = array_unique(array($name_field, $uid_field)); + + $config['search_fields'] = $search; + $config['required_fields'] = array($uid_field); + + // set search filter + if ($filter) { + $config['filter'] = $filter; + } + + // disable vlv + $config['vlv'] = false; + + // Initialize LDAP connection + $this->ldap = new rcube_ldap($config, + $this->rc->config->get('ldap_debug'), + $this->rc->config->mail_domain($_SESSION['imap_host'])); + + return $this->ldap->ready; + } + + /** + * Modify user login according to 'login_lc' setting + */ + protected function mod_login($user) + { + $login_lc = $this->rc->config->get('login_lc'); + + if ($login_lc === true || $login_lc == 2) { + $user = mb_strtolower($user); + } + // lowercase domain name + else if ($login_lc && strpos($user, '@')) { + list($local, $domain) = explode('@', $user); + $user = $local . '@' . mb_strtolower($domain); + } + + return $user; + } +} diff --git a/data/web/rc/plugins/acl/composer.json b/data/web/rc/plugins/acl/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..aa87f543251f43661299242ef54dac820f9e32b9 --- /dev/null +++ b/data/web/rc/plugins/acl/composer.json @@ -0,0 +1,24 @@ +{ + "name": "roundcube/acl", + "type": "roundcube-plugin", + "description": "IMAP Folders Access Control Lists Management (RFC4314, RFC2086).", + "license": "GPLv3+", + "version": "1.6", + "authors": [ + { + "name": "Aleksander Machniak", + "email": "alec@alec.pl", + "role": "Lead" + } + ], + "repositories": [ + { + "type": "composer", + "url": "http://plugins.roundcube.net" + } + ], + "require": { + "php": ">=5.3.0", + "roundcube/plugin-installer": ">=0.1.3" + } +} diff --git a/data/web/rc/plugins/acl/config.inc.php.dist b/data/web/rc/plugins/acl/config.inc.php.dist new file mode 100644 index 0000000000000000000000000000000000000000..ed7000267348dabee711ff2ea804fb96e95d360a --- /dev/null +++ b/data/web/rc/plugins/acl/config.inc.php.dist @@ -0,0 +1,33 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'مشاركة'; +$labels['myrights'] = 'حقوق الوصول'; +$labels['username'] = 'مستخدم:'; +$labels['advanced'] = 'وضع متقدم'; +$labels['newuser'] = 'اضافة مدخل'; +$labels['editperms'] = 'تعديل الصلاحيات'; +$labels['actions'] = 'اجراءات حقوق الوصول...'; +$labels['anyone'] = 'كل المستخدمين(اي شخص)'; +$labels['anonymous'] = 'ضيف (مجهول)'; +$labels['identifier'] = 'معرف'; +$labels['acll'] = 'بحث'; +$labels['aclr'] = 'قراءة الرسائل'; +$labels['acls'] = 'ابقاء حالة الزيارة'; +$labels['aclw'] = 'اكتب رمز'; +$labels['acli'] = 'ادخل (نسخ الى)'; +$labels['aclp'] = 'نشر'; +$labels['aclc'] = 'إنشاء مجلدات فرعية'; +$labels['aclk'] = 'إنشاء مجلدات فرعية'; +$labels['acld'] = 'حذف الرسائل'; +$labels['aclt'] = 'حذف الرسائل'; +$labels['acle'] = 'حُذف'; +$labels['aclx'] = 'حذف المجلد'; +$labels['acla'] = 'ادارة'; +$labels['aclfull'] = 'تحكم كامل'; +$labels['aclother'] = 'اخرى'; +$labels['aclread'] = 'قراءة '; +$labels['aclwrite'] = 'كتابة'; +$labels['acldelete'] = 'حذف'; +$labels['shortacll'] = 'بحث'; +$labels['shortaclr'] = 'قراءة '; +$labels['shortacls'] = 'ابقاء'; +$labels['shortaclw'] = 'قراءة'; +$labels['shortacli'] = 'ادراج'; +$labels['shortaclp'] = 'نشر'; +$labels['shortaclc'] = 'أنشئ'; +$labels['shortaclk'] = 'أنشئ'; +$labels['shortacld'] = 'حذف'; +$labels['shortaclt'] = 'حذف'; +$labels['shortacle'] = 'حُذف'; +$labels['shortaclx'] = 'حذف المجلد'; +$labels['shortacla'] = 'ادارة'; +$labels['shortaclother'] = 'اخرى'; +$labels['shortaclread'] = 'قراءة '; +$labels['shortaclwrite'] = 'كتابة'; +$labels['shortacldelete'] = 'حذف'; +$labels['longacll'] = 'المجلد مرئي في القائمة وبالامكان ايضا الاشتراك'; +$labels['longaclr'] = 'من الممكن فتح المجلد للقراءة'; +$labels['longacls'] = 'وسم الزيارة في الرسائل بالامكان تغييره'; +$labels['longaclw'] = 'وسم والكلمات الرئيسية في الرسائل يمكن تغييره, ماعدا الزيارة والحذف '; +$labels['longacli'] = 'بالامكان كتابة الرسائل ونسخها الى هذا المجلد'; +$labels['longaclp'] = 'بالامكان نشر الرسائل الى هذ المجلد'; +$labels['longaclc'] = 'بالامكان انشاء المجلدات ( او اعادة التسمية ) مباشرة تحت هذا المجلد'; +$labels['longaclk'] = 'بالامكان انشاء المجلدات ( او اعادة التسمية ) مباشرة تحت هذا المجلد'; +$labels['longacld'] = 'حذف وسم الرسائل من الممكن تغييرة'; +$labels['longaclt'] = 'حذف وسم الرسائل من الممكن تغييرة'; +$labels['longacle'] = 'بالامكان شطب الرسائل'; +$labels['longaclx'] = 'هذا المجلد بالامكان حذفة او اعادة تسميته'; +$labels['longacla'] = 'حقوق الوصول لهذا المجلد بالامكان تغييره'; +$labels['longaclfull'] = 'التحكم الكامل يتضمن ادارة المجلدات'; +$labels['longaclread'] = 'من الممكن فتح المجلد للقراءة'; +$labels['longaclwrite'] = 'لا يمكن وضع علامة على الرسائل, كتبت او نسخة الى هذا المجلد'; +$labels['longacldelete'] = 'لا يمكن حذف الرسائل'; +$messages['deleting'] = 'جاري حذف حقوق الوصول...'; +$messages['saving'] = 'جاري حفظ حقوق الوصول...'; +$messages['updatesuccess'] = 'تم تغيير حقوق الوصول بنجاح'; +$messages['deletesuccess'] = 'تم حذف حقوق الوصول بنجاح'; +$messages['createsuccess'] = 'تم اضافة حقوق الوصول بنجاح'; +$messages['updateerror'] = 'لا يمكن تحديث حقوق الوصول'; +$messages['deleteerror'] = 'لا يمكن حذف حقوق الوصول'; +$messages['createerror'] = 'لا يمكن اضافة حقوق الوصول'; +$messages['deleteconfirm'] = 'هل تريد فعلاً حذف حقوق الوصول لـ المستخدمين المحددين ؟'; +$messages['norights'] = 'لم يتم تحديد حقوق وصول!'; +$messages['nouser'] = 'لم يتم تحديد اسم مستخدم!'; +?> diff --git a/data/web/rc/plugins/acl/localization/ast.inc b/data/web/rc/plugins/acl/localization/ast.inc new file mode 100644 index 0000000000000000000000000000000000000000..2932d3bd4d7d26d1cd1b2427deba06a3848bc9dd --- /dev/null +++ b/data/web/rc/plugins/acl/localization/ast.inc @@ -0,0 +1,80 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Compartición'; +$labels['myrights'] = 'Drechos d\'accesu'; +$labels['username'] = 'Usuariu:'; +$labels['advanced'] = 'Mou avanzáu'; +$labels['newuser'] = 'Amestar entrada'; +$labels['editperms'] = 'Editar permisos'; +$labels['actions'] = 'Aición de drechos d\'accesu...'; +$labels['anyone'] = 'Tolos usuarios (toos)'; +$labels['anonymous'] = 'Convidaos (anónimos)'; +$labels['identifier'] = 'Identificador'; +$labels['acll'] = 'Guetar'; +$labels['aclr'] = 'Lleer mensaxes'; +$labels['acls'] = 'Estáu Caltener Vistu'; +$labels['aclw'] = 'Escribir banderes'; +$labels['acli'] = 'Inxertar (copiar a)'; +$labels['aclc'] = 'Crear subcarpetes'; +$labels['aclk'] = 'Crear subcarpetes'; +$labels['acld'] = 'Desaniciar mensaxes'; +$labels['aclt'] = 'Desaniciar mensaxes'; +$labels['acle'] = 'Desanciar'; +$labels['aclx'] = 'Desaniciar carpeta'; +$labels['acla'] = 'Alministrar'; +$labels['aclfull'] = 'Control total'; +$labels['aclother'] = 'Otru'; +$labels['aclread'] = 'Lleer'; +$labels['aclwrite'] = 'Escribir'; +$labels['acldelete'] = 'Desaniciar'; +$labels['shortacll'] = 'Guetar'; +$labels['shortaclr'] = 'Lleer'; +$labels['shortacls'] = 'Caltener'; +$labels['shortaclw'] = 'Escribir'; +$labels['shortacli'] = 'Inxertar'; +$labels['shortaclc'] = 'Crear'; +$labels['shortaclk'] = 'Crear'; +$labels['shortacld'] = 'Desaniciar'; +$labels['shortaclt'] = 'Desaniciar'; +$labels['shortacle'] = 'Desaniciar'; +$labels['shortaclx'] = 'Desaniciu de carpeta'; +$labels['shortacla'] = 'Alministrar'; +$labels['shortaclother'] = 'Otru'; +$labels['shortaclread'] = 'Lleer'; +$labels['shortaclwrite'] = 'Escribir'; +$labels['shortacldelete'] = 'Desaniciar'; +$labels['longacll'] = 'La carpeta ye visible nes llistes y pue soscribise a'; +$labels['longaclr'] = 'La carpeta nun pue abrise pa leer'; +$labels['longaclx'] = 'La carpeta pue desaniciase o renomase'; +$labels['longacla'] = 'Puen camudase los drechos d\'accesu de la carpeta'; +$labels['longaclfull'] = 'Control completu incluyendo l\'alminitración de carpeta'; +$labels['longaclread'] = 'La carpeta pue abrise pa llectura'; +$labels['longaclwrite'] = 'Los mensaxes puen conseñase, escribise o copiase a la carpeta'; +$labels['longacldelete'] = 'Los mensaxes puen desaniciase'; +$labels['longaclother'] = 'Otros drechos d\'accesu'; +$labels['ariasummaryacltable'] = 'Llista de drechos d\'accesu'; +$messages['deleting'] = 'Desaniciando los drechos d\'accesu...'; +$messages['saving'] = 'Guardando los drechos d\'accesu...'; +$messages['updatesuccess'] = 'Camudaos con ésitu los drechos d\'accesu'; +$messages['deletesuccess'] = 'Desaniciaos con ésitu los drechos d\'accesu'; +$messages['createsuccess'] = 'Amestaos con ésitu los drechos d\'accesu'; +$messages['updateerror'] = 'Nun puen anovase los drechos d\'accesu'; +$messages['deleteerror'] = 'Nun puen desaniciase los drechos d\'accesu'; +$messages['createerror'] = 'Nun puen amestase los drechos d\'accesu'; +$messages['deleteconfirm'] = '¿De xuru quies desaniciar los drechos d\'accesu al(a los) usuariu(os) esbilláu(os)?'; +?> diff --git a/data/web/rc/plugins/acl/localization/az_AZ.inc b/data/web/rc/plugins/acl/localization/az_AZ.inc new file mode 100644 index 0000000000000000000000000000000000000000..9bf23d4f3adaac51daa4a5dcc607c098df8b0a38 --- /dev/null +++ b/data/web/rc/plugins/acl/localization/az_AZ.inc @@ -0,0 +1,91 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Paylaşma'; +$labels['myrights'] = 'Giriş hüququ'; +$labels['username'] = 'İstifadəçi:'; +$labels['advanced'] = 'Ekspert rejimi'; +$labels['newuser'] = 'Sahə əlavə et'; +$labels['editperms'] = 'Cavabları redaktə et'; +$labels['actions'] = 'Giriş hüququ ilə hərəkət...'; +$labels['anyone'] = 'Bütün istifadəçilər (istənilən)'; +$labels['anonymous'] = 'Qonaqlar (anonimlər)'; +$labels['identifier'] = 'İdentifikator'; +$labels['acll'] = 'Baxış'; +$labels['aclr'] = 'Məktubu oxu'; +$labels['acls'] = 'Oxunulan kimi saxla'; +$labels['aclw'] = 'Yazı bayrağı'; +$labels['acli'] = 'Əlavə et (kopyala)'; +$labels['aclp'] = 'Yazı'; +$labels['aclc'] = 'Qovluqaltı yarat'; +$labels['aclk'] = 'Qovluqaltı yarat'; +$labels['acld'] = 'Məktubu sil'; +$labels['aclt'] = 'Məktubu sil'; +$labels['acle'] = 'Poz'; +$labels['aclx'] = 'Qovluğu sil'; +$labels['acla'] = 'İdarə'; +$labels['aclfull'] = 'Tam idarə'; +$labels['aclother'] = 'Digər'; +$labels['aclread'] = 'Oxu'; +$labels['aclwrite'] = 'Yaz'; +$labels['acldelete'] = 'Sil'; +$labels['shortacll'] = 'Baxış'; +$labels['shortaclr'] = 'Oxu'; +$labels['shortacls'] = 'Saxla'; +$labels['shortaclw'] = 'Yaz'; +$labels['shortacli'] = 'Yerləşdir'; +$labels['shortaclp'] = 'Yazı'; +$labels['shortaclc'] = 'Yarat'; +$labels['shortaclk'] = 'Yarat'; +$labels['shortacld'] = 'Sil'; +$labels['shortaclt'] = 'Sil'; +$labels['shortacle'] = 'Poz'; +$labels['shortaclx'] = 'Qovluğun silinməsi'; +$labels['shortacla'] = 'İdarə'; +$labels['shortaclother'] = 'Digər'; +$labels['shortaclread'] = 'Oxu'; +$labels['shortaclwrite'] = 'Yaz'; +$labels['shortacldelete'] = 'Sil'; +$labels['longacll'] = 'Qovluq siyahıda görünür və yazılmağa hazırdır'; +$labels['longaclr'] = 'Bu qovluq oxunmaq üçün açıla bilər'; +$labels['longacls'] = 'Oxunulan flaqı dəyişdirilə bilər'; +$labels['longaclw'] = 'Oxunulan və silinənlərdən başqa flaqlar və açar sözləri dəyişdirilə bilər'; +$labels['longacli'] = 'Məktub qovluğa yazıla və ya saxlanıla bilər'; +$labels['longaclp'] = 'Məktub bu qovluğa göndərilə bilər'; +$labels['longaclc'] = 'Qovluqaltları bu qovluqda yaradıla və ya adı dəyişdirilə bilər'; +$labels['longaclk'] = 'Qovluqaltları bu qovluqda yaradıla və ya adı dəyişdirilə bilər'; +$labels['longacld'] = 'Silinən flaqı dəyişdirilə bilər'; +$labels['longaclt'] = 'Silinən flaqı dəyişdirilə bilər'; +$labels['longacle'] = 'Məktublar pozula bilər'; +$labels['longaclx'] = 'Bu qovluq silinə və ya adı dəyişdirilə bilər'; +$labels['longacla'] = 'Bu qovluğa giriş hüququ dəyişdirilə bilər'; +$labels['longaclfull'] = 'Qovluğun idarəsi ilə birlikdə, tam giriş.'; +$labels['longaclread'] = 'Bu qovluq oxunmaq üçün açıla bilər'; +$labels['longaclwrite'] = 'Məktubu bu qovluğa qeyd etmək, yazmaq və kopyalamaq olar'; +$labels['longacldelete'] = 'Məktubu silmək olar'; +$messages['deleting'] = 'Giriş hüququnun silinməsi...'; +$messages['saving'] = 'Giriş hüququnun saxlanılması...'; +$messages['updatesuccess'] = 'Giriş hüququ dəyişdirildi'; +$messages['deletesuccess'] = 'Giriş hüququ silindi'; +$messages['createsuccess'] = 'Giriş hüququ əlavə edildi'; +$messages['updateerror'] = 'Hüquqları yeniləmək alınmadı'; +$messages['deleteerror'] = 'Giriş hüququnu silmək mümkün deyil'; +$messages['createerror'] = 'Giriş hüququnu əlavə etmək mümkün deyil'; +$messages['deleteconfirm'] = 'Seçilmiş istifadəçilərin giriş hüququnu silməkdə əminsiniz?'; +$messages['norights'] = 'Giriş hüquqları göstərilməyib!'; +$messages['nouser'] = 'İstifadəçi adı təyin olunmayıb!'; +?> diff --git a/data/web/rc/plugins/acl/localization/be_BE.inc b/data/web/rc/plugins/acl/localization/be_BE.inc new file mode 100644 index 0000000000000000000000000000000000000000..4aac05b677331396cbd44d07483b029a71e88240 --- /dev/null +++ b/data/web/rc/plugins/acl/localization/be_BE.inc @@ -0,0 +1,98 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Сумесны доступ'; +$labels['myrights'] = 'Правы доступу'; +$labels['username'] = 'Карыстальнік:'; +$labels['advanced'] = 'Пашыраны рэжым'; +$labels['newuser'] = 'Дадаць запіс'; +$labels['editperms'] = 'Рэдагаваць правы доступу'; +$labels['actions'] = 'Дзеянні з правамі доступу...'; +$labels['anyone'] = 'Усе карыстальнікі (любыя)'; +$labels['anonymous'] = 'Госці (ананімныя)'; +$labels['identifier'] = 'Ідэнтыфікатар'; +$labels['acll'] = 'Пошук'; +$labels['aclr'] = 'Прачытаць паведамленні'; +$labels['acls'] = 'Пакінуць стан Бачанае'; +$labels['aclw'] = 'Флагі запісвання'; +$labels['acli'] = 'Уставіць (капіраваць у)'; +$labels['aclp'] = 'Адправіць'; +$labels['aclc'] = 'Стварыць укладзеныя папкі'; +$labels['aclk'] = 'Стварыць укладзеныя папкі'; +$labels['acld'] = 'Выдаліць паведамленні'; +$labels['aclt'] = 'Выдаліць паведамленні'; +$labels['acle'] = 'Знішчыць паведамленні'; +$labels['aclx'] = 'Выдаліць папку'; +$labels['acla'] = 'Адміністраваць'; +$labels['acln'] = 'Анатаваць паведамленні'; +$labels['aclfull'] = 'Поўны доступ'; +$labels['aclother'] = 'Іншае'; +$labels['aclread'] = 'Чытанне'; +$labels['aclwrite'] = 'Запіс'; +$labels['acldelete'] = 'Выдаленне'; +$labels['shortacll'] = 'Пошук'; +$labels['shortaclr'] = 'Чытанне'; +$labels['shortacls'] = 'Пакінуць'; +$labels['shortaclw'] = 'Запісванне'; +$labels['shortacli'] = 'Даданне'; +$labels['shortaclp'] = 'Адпраўленне'; +$labels['shortaclc'] = 'Стварэнне'; +$labels['shortaclk'] = 'Стварэнне'; +$labels['shortacld'] = 'Выдаленне'; +$labels['shortaclt'] = 'Выдаленне'; +$labels['shortacle'] = 'Знішчэнне'; +$labels['shortaclx'] = 'Выдаленне папкі'; +$labels['shortacla'] = 'Адміністраванне'; +$labels['shortacln'] = 'Анатаваць'; +$labels['shortaclother'] = 'Іншае'; +$labels['shortaclread'] = 'Чытанне'; +$labels['shortaclwrite'] = 'Запіс'; +$labels['shortacldelete'] = 'Выдаленне'; +$labels['longacll'] = 'Папку можна пабачыць у спісах і падпісацца на яе'; +$labels['longaclr'] = 'Папку можна адкрыць для чытання'; +$labels['longacls'] = 'На паведамленнях можна пераключаць флаг Бачанае'; +$labels['longaclw'] = 'На паведамленнях можна мяняць ключавыя словы і пераключаць флагі, апроч Бачанае і Выдаленае'; +$labels['longacli'] = 'Паведамленні могуць быць запісаныя альбо скапіяваныя ў папку'; +$labels['longaclp'] = 'Паведамленні могуць быць адпраўленыя ў гэтую папку'; +$labels['longaclc'] = 'Папкі могуць быць створаны (альбо перайменаваны) наўпрост пад гэтай папкай'; +$labels['longaclk'] = 'Папкі могуць быць створаны (альбо перайменаваны) наўпрост пад гэтай папкай'; +$labels['longacld'] = 'На паведамленнях можна пераключаць флаг Выдаленае'; +$labels['longaclt'] = 'На паведамленнях можна пераключаць флаг Выдаленае'; +$labels['longacle'] = 'Паведамленні могуць быць знішчаны'; +$labels['longaclx'] = 'Папку можна выдаліць альбо перайменаваць'; +$labels['longacla'] = 'Правы доступу на папку можна змяняць'; +$labels['longacln'] = 'Анатацыі паведамленняў (супольныя метаданыя) можна змяняць'; +$labels['longaclfull'] = 'Поўны доступ, уключна з адмінстраваннем папкі'; +$labels['longaclread'] = 'Папку можна адкрыць для чытання'; +$labels['longaclwrite'] = 'Паведамленні могуць быць пазначаныя, запісаныя альбо скапіяваныя ў папку'; +$labels['longacldelete'] = 'Паведамленні можна выдаліць'; +$labels['longaclother'] = 'Іншыя правы доступу'; +$labels['ariasummaryacltable'] = 'Спіс правоў доступу'; +$labels['arialabelaclactions'] = 'Спіс дзеянняў'; +$labels['arialabelaclform'] = 'Форма правоў доступу'; +$messages['deleting'] = 'Правы доступу выдаляюцца...'; +$messages['saving'] = 'Правы доступу захоўваюцца...'; +$messages['updatesuccess'] = 'Правы доступу зменены'; +$messages['deletesuccess'] = 'Правы доступу выдалены'; +$messages['createsuccess'] = 'Правы доступу дададзены'; +$messages['updateerror'] = 'Не ўдалося абнавіць правы доступу'; +$messages['deleteerror'] = 'Не ўдалося выдаліць правы доступу'; +$messages['createerror'] = 'Не ўдалося дадаць правы доступу'; +$messages['deleteconfirm'] = 'Напраўду выдаліць правы доступу для вылучанага карыстальніка(ў)?'; +$messages['norights'] = 'Жадных правоў не зададзена!'; +$messages['nouser'] = 'Жадных імёнаў карыстальнікаў не зададзена!'; +?> diff --git a/data/web/rc/plugins/acl/localization/bg_BG.inc b/data/web/rc/plugins/acl/localization/bg_BG.inc new file mode 100644 index 0000000000000000000000000000000000000000..ac4f4e7561c7465e509c8172dd7bebc605697044 --- /dev/null +++ b/data/web/rc/plugins/acl/localization/bg_BG.inc @@ -0,0 +1,98 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Споделяне'; +$labels['myrights'] = 'Права за достъп'; +$labels['username'] = 'Потребител:'; +$labels['advanced'] = 'Разширен режим'; +$labels['newuser'] = 'Добавяне на запис'; +$labels['editperms'] = 'Редакция на права'; +$labels['actions'] = 'Действия на права за достъп...'; +$labels['anyone'] = 'Всички потребители (който и да е)'; +$labels['anonymous'] = 'Гости (анонимни)'; +$labels['identifier'] = 'Индентификатор'; +$labels['acll'] = 'Претърсване'; +$labels['aclr'] = 'Четене на писма'; +$labels['acls'] = 'Запазване на Видяно'; +$labels['aclw'] = 'Записване на флагове'; +$labels['acli'] = 'Вмъкване (Копиране в)'; +$labels['aclp'] = 'Изпращане'; +$labels['aclc'] = 'Създаване на подпапки'; +$labels['aclk'] = 'Създаване на подпапки'; +$labels['acld'] = 'Изтриване на писма'; +$labels['aclt'] = 'Изтриване на писмо'; +$labels['acle'] = 'Заличаване'; +$labels['aclx'] = 'Изтриване на папка'; +$labels['acla'] = 'Администриране'; +$labels['acln'] = 'Анотиране на писма'; +$labels['aclfull'] = 'Пълен контрол'; +$labels['aclother'] = 'Други'; +$labels['aclread'] = 'Четене'; +$labels['aclwrite'] = 'Писане'; +$labels['acldelete'] = 'Изтриване'; +$labels['shortacll'] = 'Търсене'; +$labels['shortaclr'] = 'Четене'; +$labels['shortacls'] = 'Запазване'; +$labels['shortaclw'] = 'Писане'; +$labels['shortacli'] = 'Вмъкване'; +$labels['shortaclp'] = 'Изпращане'; +$labels['shortaclc'] = 'Създаване'; +$labels['shortaclk'] = 'Създаване'; +$labels['shortacld'] = 'Изтриване'; +$labels['shortaclt'] = 'Изтриване'; +$labels['shortacle'] = 'Заличаване'; +$labels['shortaclx'] = 'Изтриване на папка'; +$labels['shortacla'] = 'Администриране'; +$labels['shortacln'] = 'Анотирай'; +$labels['shortaclother'] = 'Други'; +$labels['shortaclread'] = 'Четене'; +$labels['shortaclwrite'] = 'Писане'; +$labels['shortacldelete'] = 'Изтриване'; +$labels['longacll'] = 'Папката е видима в списъците и може да се абонирате'; +$labels['longaclr'] = 'Папката може да бъде отворена за четене'; +$labels['longacls'] = 'Флаг Видяно може да бъде променен.'; +$labels['longaclw'] = 'Флаговете и кл. думи за писмата могат да бъдат променяни, без Видяно и Изтрито.'; +$labels['longacli'] = 'Писмата могат да бъдат писани или копирани към папката.'; +$labels['longaclp'] = 'Писмата могат да бъдат писани в папката'; +$labels['longaclc'] = 'Папките могат да бъдат създавани (или преименувани) директно в тази папка'; +$labels['longaclk'] = 'Папките могат да бъдат създавани (или преименувани) в тази основна папка'; +$labels['longacld'] = 'Флагът Изтрито може да бъде променян'; +$labels['longaclt'] = 'Флагът Изтрито може да бъде променян'; +$labels['longacle'] = 'Писмата могат да бъдат заличавани'; +$labels['longaclx'] = 'Папката може да бъде изтривана или преименувана'; +$labels['longacla'] = 'Правата за достъп до папката могат да бъдат променяни'; +$labels['longacln'] = 'Могат да се променят споделените метаданни (антоции) на писмата'; +$labels['longaclfull'] = 'Пълен контрол, включително и администриране на папките'; +$labels['longaclread'] = 'Папката може да бъде отворена за четене'; +$labels['longaclwrite'] = 'Писмата могат да бъдат маркирани, записвани или копирани в папката'; +$labels['longacldelete'] = 'Писмата могат да бъдат изтривани'; +$labels['longaclother'] = 'Други права за достъп'; +$labels['ariasummaryacltable'] = 'Списък с права за достъп'; +$labels['arialabelaclactions'] = 'Списък с действия'; +$labels['arialabelaclform'] = 'Форма с права за достъп'; +$messages['deleting'] = 'Изтриване на права за достъп...'; +$messages['saving'] = 'Запазване на права за достъп...'; +$messages['updatesuccess'] = 'Правата за достъп са променени успешно'; +$messages['deletesuccess'] = 'Правата за достъп са изтрити успешно'; +$messages['createsuccess'] = 'Правата за достъп са добавени успешно'; +$messages['updateerror'] = 'Невъзможно модифициране на правата за достъп'; +$messages['deleteerror'] = 'Невъзможно изтриване на права за достъп'; +$messages['createerror'] = 'Невъзможно добавяне на права за достъп'; +$messages['deleteconfirm'] = 'Сигурни ли сте, че желаете да премахнате правата за достъп от избраните потребители?'; +$messages['norights'] = 'Няма указани права!'; +$messages['nouser'] = 'Няма указано потребителско име!'; +?> diff --git a/data/web/rc/plugins/acl/localization/br.inc b/data/web/rc/plugins/acl/localization/br.inc new file mode 100644 index 0000000000000000000000000000000000000000..409ea485813bde9800f967f30757f6f81624f998 --- /dev/null +++ b/data/web/rc/plugins/acl/localization/br.inc @@ -0,0 +1,98 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Rannañ'; +$labels['myrights'] = 'Aotreoù mont e-barzh'; +$labels['username'] = 'Implijer:'; +$labels['advanced'] = 'Mod kempleshoc\'h'; +$labels['newuser'] = 'Ouzhpennañ un elfenn'; +$labels['editperms'] = 'Embann an aotreoù'; +$labels['actions'] = 'Aotreoù mont e-barzh'; +$labels['anyone'] = 'An holl implijerien (neb hini)'; +$labels['anonymous'] = 'Kouvidi (dizanv)'; +$labels['identifier'] = 'Naoudi'; +$labels['acll'] = 'Taol sell'; +$labels['aclr'] = 'Kemennadennoù lennet'; +$labels['acls'] = 'Derc\'hel ar stad "Gwelet"'; +$labels['aclw'] = 'Bannieloù skrivañ'; +$labels['acli'] = 'Enlakaat (Eilañ an digoradur)'; +$labels['aclp'] = 'Postañ'; +$labels['aclc'] = 'Krouiñ isteuliadoù'; +$labels['aclk'] = 'Krouiñ isteuliadoù'; +$labels['acld'] = 'Dilemel kemennadennoù'; +$labels['aclt'] = 'Dilemel kemennadennoù'; +$labels['acle'] = 'Skarzhañ'; +$labels['aclx'] = 'Dilemel an teuliad'; +$labels['acla'] = 'Ardeiñ'; +$labels['acln'] = 'Notennaouiñ kemennadennoù'; +$labels['aclfull'] = 'Reoliadur a-bezh'; +$labels['aclother'] = 'All'; +$labels['aclread'] = 'Lenn'; +$labels['aclwrite'] = 'Skrivañ'; +$labels['acldelete'] = 'Dilemel'; +$labels['shortacll'] = 'Teurel ur sell'; +$labels['shortaclr'] = 'Lenn'; +$labels['shortacls'] = 'Derc\'hel'; +$labels['shortaclw'] = 'Skrivañ'; +$labels['shortacli'] = 'Enlakaat'; +$labels['shortaclp'] = 'Postañ'; +$labels['shortaclc'] = 'Krouiñ'; +$labels['shortaclk'] = 'Krouiñ'; +$labels['shortacld'] = 'Dilemel'; +$labels['shortaclt'] = 'Dilemel'; +$labels['shortacle'] = 'Skarzhañ'; +$labels['shortaclx'] = 'Dilemel an teuliad'; +$labels['shortacla'] = 'Ardeiñ'; +$labels['shortacln'] = 'Notennaouiñ'; +$labels['shortaclother'] = 'Traoù all'; +$labels['shortaclread'] = 'Lenn'; +$labels['shortaclwrite'] = 'Skrivañ'; +$labels['shortacldelete'] = 'Dilemel'; +$labels['longacll'] = 'Gwelus eo an teuliad-se er rolloù ha gallout a reer bezañ koumanantet dezhañ'; +$labels['longaclr'] = 'Gallout a reer digeriñ an teuliad-mañ evit e lenn'; +$labels['longacls'] = 'Gallout a reer kemmañ ar bannieloù "Kemennadenn gwelet"'; +$labels['longaclw'] = 'Gallout a reer kemmañ an bannieloù kemennadennoù hag ar gerioù-alc\'hwez, war-bouez "Gwelet" ha "Dilamet"'; +$labels['longacli'] = 'Gallout a ra ar c\'hemennadennoù bezañ skrivet be eilet en teuliad'; +$labels['longaclp'] = 'Gallout a reer postañ kemennadennoù d\'an teuliad-mañ'; +$labels['longaclc'] = 'Gallout a reer krouiñ (pe adenvel) teuliadoù en teuliad war-eeun'; +$labels['longaclk'] = 'Gallout a reer krouiñ (pe adenvel) teuliadoù en teuliad war-eeun'; +$labels['longacld'] = 'Gallout a reer kemmañ ar banniel ""Kemennadenn dilamet"'; +$labels['longaclt'] = 'Gallout a reer kemmañ ar banniel ""Kemennadenn dilamet"'; +$labels['longacle'] = 'Gallout a reer skarzhañ ar c\'hemennadennoù'; +$labels['longaclx'] = 'Gallout a ra bezañ dilamet pe adanvet an teuliad'; +$labels['longacla'] = 'Gallout a reer kemmañ aotreoù haeziñ an teuliad'; +$labels['longacln'] = 'Metaroadennoù rannet (notennoù) ar c\'hemennadennoù a c\'hell bezañ kemmet'; +$labels['longaclfull'] = 'Reoliadur a-bezh, ardeiñ an teuliad en o zouez'; +$labels['longaclread'] = 'Gallout a reer digeriñ an teuliad evit e lenn'; +$labels['longaclwrite'] = 'Gallout a reer merkañ, skrivañ pe eilañ kemennadennoù d\'an teuliad'; +$labels['longacldelete'] = 'Gallout a reer dilemel ar c\'hemennadennoù'; +$labels['longaclother'] = 'Aotreoù haeziñ all'; +$labels['ariasummaryacltable'] = 'Roll an aotreoù haeziñ'; +$labels['arialabelaclactions'] = 'Roll ar gweredoù'; +$labels['arialabelaclform'] = 'Aotreoù haeziñ a-berzh'; +$messages['deleting'] = 'O tilemel an aotreoù haeziñ...'; +$messages['saving'] = 'Oc\'h enrollañ an aotreoù haeziñ...'; +$messages['updatesuccess'] = 'Kemmet an aotreoù haeziñ gant berzh'; +$messages['deletesuccess'] = 'Dilamet an aotreoù haeziñ gant berzh'; +$messages['createsuccess'] = 'Ouzhpennet an aotreoù haeziñ gant berzh'; +$messages['updateerror'] = 'N\'haller ket hizivaat an aotreoù haeziñ'; +$messages['deleteerror'] = 'N\'haller ket dilemel an aotreoù haeziñ'; +$messages['createerror'] = 'N\'haller ket ouzhpennañ aotreoù haeziñ'; +$messages['deleteconfirm'] = 'Sur oc\'h e fell deoc\'h dilemel aotreoù haeziñ an arveriaded diuzet?'; +$messages['norights'] = 'Aotre ebet erspizet!'; +$messages['nouser'] = 'Anv arveriad ebet erspizet!'; +?> diff --git a/data/web/rc/plugins/acl/localization/bs_BA.inc b/data/web/rc/plugins/acl/localization/bs_BA.inc new file mode 100644 index 0000000000000000000000000000000000000000..371dd17af6616455fb2e2d88106e49f0d7f9c469 --- /dev/null +++ b/data/web/rc/plugins/acl/localization/bs_BA.inc @@ -0,0 +1,98 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Razmjena'; +$labels['myrights'] = 'Prava pristupa'; +$labels['username'] = 'Korisnik:'; +$labels['advanced'] = 'Napredni mod'; +$labels['newuser'] = 'Dodaj unos'; +$labels['editperms'] = 'Uredi dozvole'; +$labels['actions'] = 'Akcije za prava pristupa...'; +$labels['anyone'] = 'Svi korisnici (bilo ko)'; +$labels['anonymous'] = 'Gosti (anonimno)'; +$labels['identifier'] = 'Identifikator'; +$labels['acll'] = 'Pronađi'; +$labels['aclr'] = 'Pročitaj poruke'; +$labels['acls'] = 'Zadrži stanje pregleda'; +$labels['aclw'] = 'Oznake za pisanje'; +$labels['acli'] = 'Umetni (Kopiraj u)'; +$labels['aclp'] = 'Objavi'; +$labels['aclc'] = 'Napravi podfoldere'; +$labels['aclk'] = 'Napravi podfoldere'; +$labels['acld'] = 'Obriši poruke'; +$labels['aclt'] = 'Obriši poruke'; +$labels['acle'] = 'Izbriši'; +$labels['aclx'] = 'Obriši folder'; +$labels['acla'] = 'Administracija'; +$labels['acln'] = 'Obilježi poruke'; +$labels['aclfull'] = 'Puna kontrola'; +$labels['aclother'] = 'Ostalo'; +$labels['aclread'] = 'Pročitano'; +$labels['aclwrite'] = 'Piši'; +$labels['acldelete'] = 'Obriši'; +$labels['shortacll'] = 'Pronađi'; +$labels['shortaclr'] = 'Pročitano'; +$labels['shortacls'] = 'Zadrži'; +$labels['shortaclw'] = 'Piši'; +$labels['shortacli'] = 'Umetni'; +$labels['shortaclp'] = 'Objavi'; +$labels['shortaclc'] = 'Kreiraj'; +$labels['shortaclk'] = 'Kreiraj'; +$labels['shortacld'] = 'Obriši'; +$labels['shortaclt'] = 'Obriši'; +$labels['shortacle'] = 'Izbriši'; +$labels['shortaclx'] = 'Brisanje foldera'; +$labels['shortacla'] = 'Administracija'; +$labels['shortacln'] = 'Obilježli'; +$labels['shortaclother'] = 'Ostalo'; +$labels['shortaclread'] = 'Pročitano'; +$labels['shortaclwrite'] = 'Piši'; +$labels['shortacldelete'] = 'Obriši'; +$labels['longacll'] = 'Ovaj folder je vidljiv u listama i moguće je izvršiti pretplatu na njega'; +$labels['longaclr'] = 'Folder je moguće otvoriti radi čitanja'; +$labels['longacls'] = 'Oznaka čitanja za poruke se može promijeniti'; +$labels['longaclw'] = 'Oznake za poruke i ključne riječi je moguće promijeniti, osim za pregledano i obrisano'; +$labels['longacli'] = 'Moguće je kopirati i zapisivati poruke u folder'; +$labels['longaclp'] = 'Moguće je objavljivati poruke u ovaj folder'; +$labels['longaclc'] = 'Moguće je kreirati (ili preimenovati) foldere diretno ispod ovog foldera'; +$labels['longaclk'] = 'Moguće je kreirati (ili preimenovati) foldere diretno ispod ovog foldera'; +$labels['longacld'] = 'Oznaka za obrisane poruke se može mijenjati'; +$labels['longaclt'] = 'Oznaka za obrisane poruke se može mijenjati'; +$labels['longacle'] = 'Poruke je moguće obrisati'; +$labels['longaclx'] = 'Folder je moguće obrisati ili preimenovati'; +$labels['longacla'] = 'Pristupna prava foldera je moguće promijeniti'; +$labels['longacln'] = 'Dijeljeni podaci (obilježavanja) poruka mogu se mijenjati'; +$labels['longaclfull'] = 'Puna kontrola uključujući i administraciju foldera'; +$labels['longaclread'] = 'Folder je moguće otvoriti radi čitanja'; +$labels['longaclwrite'] = 'Moguće je označavati, zapisivati i kopirati poruke u folder'; +$labels['longacldelete'] = 'Moguće je obrisati poruke'; +$labels['longaclother'] = 'Ostala prava pristupa'; +$labels['ariasummaryacltable'] = 'Lista prava pristupa'; +$labels['arialabelaclactions'] = 'Lista akcija'; +$labels['arialabelaclform'] = 'Obrazac za prava pristupa'; +$messages['deleting'] = 'Brišem prava pristupa...'; +$messages['saving'] = 'Snimam prava pristupa...'; +$messages['updatesuccess'] = 'Prava pristupa su uspješno promijenjena'; +$messages['deletesuccess'] = 'Prava pristupa su uspješno obrisana'; +$messages['createsuccess'] = 'Prava pristupa su uspješno dodana'; +$messages['updateerror'] = 'Nije moguće ažurirati prava pristupa'; +$messages['deleteerror'] = 'Nije moguće obrisati prava pristupa'; +$messages['createerror'] = 'Nije moguće dodati prava pristupa'; +$messages['deleteconfirm'] = 'Jeste li sigurni da želite ukloniti prava pristupa za odabrane korisnike?'; +$messages['norights'] = 'Niste odabrali prava pristupa!'; +$messages['nouser'] = 'Niste odabrali korisničko ime!'; +?> diff --git a/data/web/rc/plugins/acl/localization/ca_ES.inc b/data/web/rc/plugins/acl/localization/ca_ES.inc new file mode 100644 index 0000000000000000000000000000000000000000..b9df1209aff1a16ca09d1e175f9fb8661127f3fa --- /dev/null +++ b/data/web/rc/plugins/acl/localization/ca_ES.inc @@ -0,0 +1,98 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Comparteix'; +$labels['myrights'] = 'Permisos d\'accés'; +$labels['username'] = 'Usuari:'; +$labels['advanced'] = 'Mode Avançat'; +$labels['newuser'] = 'Afegeix una entrada'; +$labels['editperms'] = 'Editar Permisos'; +$labels['actions'] = 'Accions dels permisos d\'accés...'; +$labels['anyone'] = 'Tots els usuaris (qualsevol)'; +$labels['anonymous'] = 'Convidats (anònim)'; +$labels['identifier'] = 'Identificador'; +$labels['acll'] = 'Cerca'; +$labels['aclr'] = 'Llegeix missatges'; +$labels['acls'] = 'Conserva\'l com a llegit'; +$labels['aclw'] = 'Marques d\'escriptura'; +$labels['acli'] = 'Insereix (Copia dins)'; +$labels['aclp'] = 'Envia l\'entrada'; +$labels['aclc'] = 'Crea subcarpetes'; +$labels['aclk'] = 'Crea subcarpetes'; +$labels['acld'] = 'Suprimeix missatges'; +$labels['aclt'] = 'Suprimeix missatges'; +$labels['acle'] = 'Buida'; +$labels['aclx'] = 'Suprimeix carpeta'; +$labels['acla'] = 'Administra'; +$labels['acln'] = 'Anota missatges'; +$labels['aclfull'] = 'Control total'; +$labels['aclother'] = 'Un altre'; +$labels['aclread'] = 'Lectura'; +$labels['aclwrite'] = 'Escriptura'; +$labels['acldelete'] = 'Suprimeix'; +$labels['shortacll'] = 'Cerca'; +$labels['shortaclr'] = 'Lectura'; +$labels['shortacls'] = 'Conserva'; +$labels['shortaclw'] = 'Escriptura'; +$labels['shortacli'] = 'Insereix'; +$labels['shortaclp'] = 'Envia l\'entrada'; +$labels['shortaclc'] = 'Crea'; +$labels['shortaclk'] = 'Crea'; +$labels['shortacld'] = 'Suprimeix'; +$labels['shortaclt'] = 'Suprimeix'; +$labels['shortacle'] = 'Buida'; +$labels['shortaclx'] = 'Suprimeix carpeta'; +$labels['shortacla'] = 'Administra'; +$labels['shortacln'] = 'Anota'; +$labels['shortaclother'] = 'Un altre'; +$labels['shortaclread'] = 'Lectura'; +$labels['shortaclwrite'] = 'Escriptura'; +$labels['shortacldelete'] = 'Suprimeix'; +$labels['longacll'] = 'La carpeta és visible a les llistes i s\'hi pot subscriure'; +$labels['longaclr'] = 'La carpeta pot ser oberta per llegir'; +$labels['longacls'] = 'Els missatges marcats com a Llegit poden ser canviats'; +$labels['longaclw'] = 'Les marques i les paraules clau dels missatges poden ser canviats, excepte els Llegit i Suprimit'; +$labels['longacli'] = 'Els missatges poden ser escrits i copiats a la carpeta'; +$labels['longaclp'] = 'Els missatges poden ser enviats a aquesta carpeta'; +$labels['longaclc'] = 'Es poden crear (or reanomenar) carpetes directament sota aquesta carpeta'; +$labels['longaclk'] = 'Es poden crear (or reanomenar) carpetes directament sota aquesta carpeta'; +$labels['longacld'] = 'Els missatges amb l\'indicador Suprimit poden ser canviats'; +$labels['longaclt'] = 'Els missatges amb l\'indicador Suprimit poden ser canviats'; +$labels['longacle'] = 'Els missatges poden ser purgats'; +$labels['longaclx'] = 'La carpeta pot ser suprimida o reanomenada'; +$labels['longacla'] = 'Els permisos d\'accés a la carpeta poden ser canviats'; +$labels['longacln'] = 'Les metadades compartides dels missatges (anotacions) poden ser canviades'; +$labels['longaclfull'] = 'Control total fins i tot la gestió de carpetes'; +$labels['longaclread'] = 'La carpeta pot ser oberta per llegir'; +$labels['longaclwrite'] = 'Els missatges poden ser marcats, escrits o copiats a la carpeta'; +$labels['longacldelete'] = 'Els missatges poden ser suprimits'; +$labels['longaclother'] = 'Altres drets d\'accés'; +$labels['ariasummaryacltable'] = 'Llista els drets d\'accés'; +$labels['arialabelaclactions'] = 'Llista les accions'; +$labels['arialabelaclform'] = 'Formulari de drets d\'accés'; +$messages['deleting'] = 'S\'estan suprimint els permisos d\'accés...'; +$messages['saving'] = 'S\'estan desant els permisos d\'accés...'; +$messages['updatesuccess'] = 'Els permisos d\'accés han estat canviats correctament'; +$messages['deletesuccess'] = 'Els permisos d\'accés han estat suprimits correctament'; +$messages['createsuccess'] = 'Els permisos d\'accés han estat afegits correctament'; +$messages['updateerror'] = 'No s\'han pogut actualitzar els permisos d\'accés'; +$messages['deleteerror'] = 'No s\'han pogut suprimir els permisos d\'accés'; +$messages['createerror'] = 'No s\'han pogut afegir els permisos d\'accés'; +$messages['deleteconfirm'] = 'Esteu segurs que voleu suprimir els permisos d\'accés de l\'usuari o usuaris seleccionats?'; +$messages['norights'] = 'No s\'ha especificat cap permís'; +$messages['nouser'] = 'No s\'ha especificat cap nom d\'usuari'; +?> diff --git a/data/web/rc/plugins/acl/localization/cs_CZ.inc b/data/web/rc/plugins/acl/localization/cs_CZ.inc new file mode 100644 index 0000000000000000000000000000000000000000..aa9eba1600bb91be7bbc566c729f5c44fb357207 --- /dev/null +++ b/data/web/rc/plugins/acl/localization/cs_CZ.inc @@ -0,0 +1,98 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Sdílení'; +$labels['myrights'] = 'Přístupová práva'; +$labels['username'] = 'Uživatel:'; +$labels['advanced'] = 'Pokročilý režim'; +$labels['newuser'] = 'Přidat záznam'; +$labels['editperms'] = 'Upravit oprávnění'; +$labels['actions'] = 'Přístupové právo akce ...'; +$labels['anyone'] = 'Všichni uživatelé (kdokoli)'; +$labels['anonymous'] = 'Hosté (anonymní)'; +$labels['identifier'] = 'Identifikátor'; +$labels['acll'] = 'Vyhledat'; +$labels['aclr'] = 'Číst zprávy'; +$labels['acls'] = 'Ponechat stav Přečteno'; +$labels['aclw'] = 'Zapsat označení'; +$labels['acli'] = 'Vložit (Kopírovat do)'; +$labels['aclp'] = 'Odeslat'; +$labels['aclc'] = 'Vytvořit podsložky'; +$labels['aclk'] = 'Vytvořit podsložky'; +$labels['acld'] = 'Smazat zprávy'; +$labels['aclt'] = 'Smazat zprávy'; +$labels['acle'] = 'Vyprázdnit'; +$labels['aclx'] = 'Smazat složku'; +$labels['acla'] = 'Spravovat'; +$labels['acln'] = 'Označit zprávy poznámkou'; +$labels['aclfull'] = 'Plný přístup'; +$labels['aclother'] = 'Ostatní'; +$labels['aclread'] = 'Číst'; +$labels['aclwrite'] = 'Zapsat'; +$labels['acldelete'] = 'Smazat'; +$labels['shortacll'] = 'Vyhledat'; +$labels['shortaclr'] = 'Číst'; +$labels['shortacls'] = 'Zachovat'; +$labels['shortaclw'] = 'Zapsat'; +$labels['shortacli'] = 'Vložit'; +$labels['shortaclp'] = 'Odeslat'; +$labels['shortaclc'] = 'Vytvořit'; +$labels['shortaclk'] = 'Vytvořit'; +$labels['shortacld'] = 'Smazat'; +$labels['shortaclt'] = 'Smazat'; +$labels['shortacle'] = 'Vyprázdnit'; +$labels['shortaclx'] = 'Mazat složky'; +$labels['shortacla'] = 'Spravovat'; +$labels['shortacln'] = 'Označit poznámkou'; +$labels['shortaclother'] = 'Ostatní'; +$labels['shortaclread'] = 'Číst'; +$labels['shortaclwrite'] = 'Zapsat'; +$labels['shortacldelete'] = 'Smazat'; +$labels['longacll'] = 'Složka je viditelná v seznamu a může být přihlášena'; +$labels['longaclr'] = 'Složka může být otevřena pro čtení'; +$labels['longacls'] = 'Označená zpráva byla změněna'; +$labels['longaclw'] = 'Značky a klíčová slova u zpráv je možné měnit, kromě příznaku Přečteno a Smazáno'; +$labels['longacli'] = 'Zpráva může být napsána nebo zkopírována do složky'; +$labels['longaclp'] = 'Zpráva může být odeslána do této složky'; +$labels['longaclc'] = 'Složka může být vytvořena (nebo přejmenována) přimo v této složce'; +$labels['longaclk'] = 'Složka může být vytvořena (nebo přejmenována) přimo v této složce'; +$labels['longacld'] = 'Příznak smazané zprávy může být změněn'; +$labels['longaclt'] = 'Příznak smazané zprávy může být změněn'; +$labels['longacle'] = 'Zpráva může být smazána'; +$labels['longaclx'] = 'Složka může být smazána nebo přejmenována'; +$labels['longacla'] = 'Přístupová práva složky mohou být změněna'; +$labels['longacln'] = 'Zprávamy sdílené metadata (poznámky) mohou být změněny'; +$labels['longaclfull'] = 'Plný přístup včetně správy složky'; +$labels['longaclread'] = 'Složka může být otevřena pro čtení'; +$labels['longaclwrite'] = 'Zpráva může být označena, napsána nebo zkopírována do složky'; +$labels['longacldelete'] = 'Zprávy mohou být smazány'; +$labels['longaclother'] = 'Jiná přístupová oprávnění'; +$labels['ariasummaryacltable'] = 'Seznam oprávnění'; +$labels['arialabelaclactions'] = 'Seznam akcí'; +$labels['arialabelaclform'] = 'Formulář pro přístupová oprávnění'; +$messages['deleting'] = 'Odstraňuji přístupová práva...'; +$messages['saving'] = 'Ukládám přístupová práva...'; +$messages['updatesuccess'] = 'Přístupová práva byla úspěšně změněna'; +$messages['deletesuccess'] = 'Přístupová práva byla úspěšně odstraněna'; +$messages['createsuccess'] = 'Přístupová práva byla úspěšně přidána'; +$messages['updateerror'] = 'Úprava přístupových práv se nezdařila'; +$messages['deleteerror'] = 'Smazání přístupových práv se nezdařilo'; +$messages['createerror'] = 'Přidání přístupových práv se nezdařilo'; +$messages['deleteconfirm'] = 'Opravdu si přejete odstranit přístupová práva pro vybrané(ho) uživatele?'; +$messages['norights'] = 'Nejsou specifikována žádná práva!'; +$messages['nouser'] = 'Není specifikováno uživatelské jméno!'; +?> diff --git a/data/web/rc/plugins/acl/localization/cy_GB.inc b/data/web/rc/plugins/acl/localization/cy_GB.inc new file mode 100644 index 0000000000000000000000000000000000000000..816d6335ce1232cfe1b1d603f896b1b82a6e976f --- /dev/null +++ b/data/web/rc/plugins/acl/localization/cy_GB.inc @@ -0,0 +1,98 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Rhannu'; +$labels['myrights'] = 'Hawliau Mynediad'; +$labels['username'] = 'Defnyddiwr:'; +$labels['advanced'] = 'Modd uwch'; +$labels['newuser'] = 'Ychwanegu cofnod'; +$labels['editperms'] = 'Golygu hawliau'; +$labels['actions'] = 'Gweithredoedd hawl mynediad...'; +$labels['anyone'] = 'Pob defnyddiwr (unrhywun)'; +$labels['anonymous'] = 'Gwestai (anhysbys)'; +$labels['identifier'] = 'Dynodwr'; +$labels['acll'] = 'Chwilio'; +$labels['aclr'] = 'Darllen negeseuon'; +$labels['acls'] = 'Cadw stad Gwelwyd'; +$labels['aclw'] = 'Fflagiau ysgrifennu'; +$labels['acli'] = 'Mewnosod (Copïo fewn i)'; +$labels['aclp'] = 'Postio'; +$labels['aclc'] = 'Creu is-ffolderi'; +$labels['aclk'] = 'Creu is-ffolderi'; +$labels['acld'] = 'Dileu negeseuon'; +$labels['aclt'] = 'Dileu negeseuon'; +$labels['acle'] = 'Dileu'; +$labels['aclx'] = 'Dileu ffolder'; +$labels['acla'] = 'Gweinyddu'; +$labels['acln'] = 'Anodi negeseuon'; +$labels['aclfull'] = 'Rheolaeth lawn'; +$labels['aclother'] = 'Arall'; +$labels['aclread'] = 'Darllen'; +$labels['aclwrite'] = 'Ysgrifennu'; +$labels['acldelete'] = 'Dileu'; +$labels['shortacll'] = 'Chwilio'; +$labels['shortaclr'] = 'Darllen'; +$labels['shortacls'] = 'Cadw'; +$labels['shortaclw'] = 'Ysgrifennu'; +$labels['shortacli'] = 'Mewnosod'; +$labels['shortaclp'] = 'Postio'; +$labels['shortaclc'] = 'Creu'; +$labels['shortaclk'] = 'Creu'; +$labels['shortacld'] = 'Dileu'; +$labels['shortaclt'] = 'Dileu'; +$labels['shortacle'] = 'Dileu'; +$labels['shortaclx'] = 'Dileu ffolder'; +$labels['shortacla'] = 'Gweinyddu'; +$labels['shortacln'] = 'Anodi'; +$labels['shortaclother'] = 'Arall'; +$labels['shortaclread'] = 'Darllen'; +$labels['shortaclwrite'] = 'Ysgrifennu'; +$labels['shortacldelete'] = 'Dileu'; +$labels['longacll'] = 'Mae\'r ffolder hwn i\'w weld ar y rhestrau a mae\'n bosib tanysgrifio iddo'; +$labels['longaclr'] = 'Gellir agor y ffolder hwn i\'w ddarllen'; +$labels['longacls'] = 'Gellir newid y fflag negeseuon Gwelwyd'; +$labels['longaclw'] = 'Gellir newid y fflagiau negeseuon a allweddeiriau, heblaw Gwelwyd a Dilëuwyd'; +$labels['longacli'] = 'Gellir ysgrifennu neu copïo negeseuon i\'r ffolder'; +$labels['longaclp'] = 'Gellir postio negeseuon i\'r ffolder hwn'; +$labels['longaclc'] = 'Gellir creu (neu ail-enwi) ffolderi yn uniongyrchol o dan y ffolder hwn'; +$labels['longaclk'] = 'Gellir creu (neu ail-enwi) ffolderi yn uniongyrchol o dan y ffolder hwn'; +$labels['longacld'] = 'Gellir newid fflag neges Dileu'; +$labels['longaclt'] = 'Gellir newid fflag neges Dileu'; +$labels['longacle'] = 'Gellir gwaredu negeseuon'; +$labels['longaclx'] = 'Gellir dileu neu ail-enwi\'r ffolder'; +$labels['longacla'] = 'Gellir newid hawliau mynediad y ffolder'; +$labels['longacln'] = 'Gellir newid negeseuon metadata (anodiadau) a rannwyd'; +$labels['longaclfull'] = 'Rheolaeth lawn yn cynnwys rheolaeth ffolderi'; +$labels['longaclread'] = 'Gellir agor y ffolder hwn i\'w ddarllen'; +$labels['longaclwrite'] = 'Gellir nodi, ysgrifennu neu copïo negeseuon i\'r ffolder'; +$labels['longacldelete'] = 'Gellir dileu negeseuon'; +$labels['longaclother'] = 'Hawliau mynediad eraill'; +$labels['ariasummaryacltable'] = 'Rhestr o hawliau mynediad'; +$labels['arialabelaclactions'] = 'Rhestru gweithrediadau'; +$labels['arialabelaclform'] = 'Ffurflen hawliau mynediad'; +$messages['deleting'] = 'Yn dileu hawliau mynediad...'; +$messages['saving'] = 'Yn cadw hawliau mynediad...'; +$messages['updatesuccess'] = 'Wedi newid hawliau mynediad yn llwyddiannus'; +$messages['deletesuccess'] = 'Wedi dileu hawliau mynediad yn llwyddiannus'; +$messages['createsuccess'] = 'Wedi ychwanegu hawliau mynediad yn llwyddiannus'; +$messages['updateerror'] = 'Methwyd diweddaru hawliau mynediad'; +$messages['deleteerror'] = 'Methwyd dileu hawliau mynediad'; +$messages['createerror'] = 'Methwyd ychwanegu hawliau mynediad'; +$messages['deleteconfirm'] = 'Ydych chi\'n siwr eich bod am ddileu hawliau mynediad y defnyddiwr/wyr ddewiswyd?'; +$messages['norights'] = 'Nid oes hawliau wedi eu nodi!'; +$messages['nouser'] = 'Nid oes enw defnyddiwr wedi ei nodi!'; +?> diff --git a/data/web/rc/plugins/acl/localization/da_DK.inc b/data/web/rc/plugins/acl/localization/da_DK.inc new file mode 100644 index 0000000000000000000000000000000000000000..cbb07706493b48f37b1145dfb1e7620eed248fab --- /dev/null +++ b/data/web/rc/plugins/acl/localization/da_DK.inc @@ -0,0 +1,93 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Deling'; +$labels['myrights'] = 'Adgangrettigheder'; +$labels['username'] = 'Bruger:'; +$labels['advanced'] = 'Avanceret tilstand'; +$labels['newuser'] = 'Tilføj indgang'; +$labels['editperms'] = 'Rediger tilladelser'; +$labels['actions'] = 'Tilgangsrettigheder...'; +$labels['anyone'] = 'Alle brugere'; +$labels['anonymous'] = 'Gæst (anonym)'; +$labels['identifier'] = 'Identifikator'; +$labels['acll'] = 'Slå op'; +$labels['aclr'] = 'Læs beskeder'; +$labels['acls'] = 'Behold læst-status'; +$labels['aclw'] = 'Skriv flag'; +$labels['acli'] = 'Indsæt (kopier ind i)'; +$labels['aclp'] = 'Send'; +$labels['aclc'] = 'Opret undermapper'; +$labels['aclk'] = 'Opret undermapper'; +$labels['acld'] = 'Slet beskeder'; +$labels['aclt'] = 'Slet beskeder'; +$labels['acle'] = 'Udslet'; +$labels['aclx'] = 'Slet mappe'; +$labels['acla'] = 'Administrer'; +$labels['acln'] = 'Annoter beskeder'; +$labels['aclfull'] = 'Fuld kontrol'; +$labels['aclother'] = 'Andet'; +$labels['aclread'] = 'Læse'; +$labels['aclwrite'] = 'Skrive'; +$labels['acldelete'] = 'Slet'; +$labels['shortacll'] = 'Slå op'; +$labels['shortaclr'] = 'Læse'; +$labels['shortacls'] = 'Behold'; +$labels['shortaclw'] = 'Skrive'; +$labels['shortacli'] = 'Indsæt'; +$labels['shortaclp'] = 'Send'; +$labels['shortaclc'] = 'Opret'; +$labels['shortaclk'] = 'Opret'; +$labels['shortacld'] = 'Slet'; +$labels['shortaclt'] = 'Slet'; +$labels['shortacle'] = 'Udslet'; +$labels['shortaclx'] = 'Slet mappe'; +$labels['shortacla'] = 'Administrer'; +$labels['shortacln'] = 'Annoter'; +$labels['shortaclother'] = 'Andet'; +$labels['shortaclread'] = 'Læse'; +$labels['shortaclwrite'] = 'Skrive'; +$labels['shortacldelete'] = 'Slet'; +$labels['longacll'] = 'Mappen er synlig på listen og kan abonneres på'; +$labels['longaclr'] = 'Mappen kan åbnes for læsning'; +$labels['longacls'] = 'Beskeders Læst-flag kan ændres'; +$labels['longaclw'] = 'Beskeders flag og nøgleord kan ændres med undtagelse af Læst og Slettet'; +$labels['longacli'] = 'Beskeder kan blive skrevet eller kopieret til mappen'; +$labels['longaclp'] = 'Beskeder kan sendes til denne mappe'; +$labels['longaclc'] = 'Mapper kan blive oprettet (eller omdøbt) direkte under denne mappe'; +$labels['longaclk'] = 'Mapper kan blive oprettet (eller omdøbt) direkte under denne mappe'; +$labels['longacld'] = 'Beskeders Slet-flag kan ændres'; +$labels['longaclt'] = 'Beskeders Slet-flag kan ændres'; +$labels['longacle'] = 'Beskeder kan slettes'; +$labels['longaclx'] = 'Mappen kan blive slettet eller omdøbt'; +$labels['longacla'] = 'Mappen adgangsrettigheder kan ændres'; +$labels['longaclfull'] = 'Fuld kontrol inklusiv mappeadministration'; +$labels['longaclread'] = 'Mappen kan åbnes for læsning'; +$labels['longaclwrite'] = 'Beskeder kan blive markeret, skrevet eller kopieret til mappen'; +$labels['longacldelete'] = 'Beskeder kan slettes'; +$messages['deleting'] = 'Slette rettigheder...'; +$messages['saving'] = 'Gemme rettigheder...'; +$messages['updatesuccess'] = 'Tilgangsrettighederne blev ændret'; +$messages['deletesuccess'] = 'Sletterettigheder blev ændret'; +$messages['createsuccess'] = 'Tilgangsrettigheder blev tilføjet'; +$messages['updateerror'] = 'Kunne ikke opdatere adgangsrettigheder'; +$messages['deleteerror'] = 'Kunne ikke slette tilgangsrettigheder'; +$messages['createerror'] = 'Kunne ikke tilføje tilgangsrettigheder'; +$messages['deleteconfirm'] = 'Er du sikker på, at du vil slette tilgangsrettigheder fra de(n) valgte bruger(e)?'; +$messages['norights'] = 'Der er ikke specificeret nogle rettigheder!'; +$messages['nouser'] = 'Der er ikke angiver et brugernavn!'; +?> diff --git a/data/web/rc/plugins/acl/localization/de_CH.inc b/data/web/rc/plugins/acl/localization/de_CH.inc new file mode 100644 index 0000000000000000000000000000000000000000..9e4f3b2699f093745ae08fcad40d54f928a88e17 --- /dev/null +++ b/data/web/rc/plugins/acl/localization/de_CH.inc @@ -0,0 +1,98 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Freigabe'; +$labels['myrights'] = 'Zugriffsrechte'; +$labels['username'] = 'Benutzer:'; +$labels['advanced'] = 'Expertenmodus'; +$labels['newuser'] = 'Eintrag hinzufügen'; +$labels['editperms'] = 'Zugriffsrechte bearbeiten'; +$labels['actions'] = 'Zugriffsrechte Aktionen...'; +$labels['anyone'] = 'Alle Benutzer (anyone)'; +$labels['anonymous'] = 'Gäste (anonymous)'; +$labels['identifier'] = 'Bezeichnung'; +$labels['acll'] = 'Sichtbar'; +$labels['aclr'] = 'Nachrichten lesen'; +$labels['acls'] = 'Lesestatus ändern'; +$labels['aclw'] = 'Flags schreiben'; +$labels['acli'] = 'Nachrichten hinzufügen'; +$labels['aclp'] = 'Senden an'; +$labels['aclc'] = 'Unterordner erstellen'; +$labels['aclk'] = 'Unterordner erstellen'; +$labels['acld'] = 'Nachrichten als gelöscht markieren'; +$labels['aclt'] = 'Nachrichten als gelöscht markieren'; +$labels['acle'] = 'Endgültig löschen'; +$labels['aclx'] = 'Ordner löschen'; +$labels['acla'] = 'Verwalten'; +$labels['acln'] = 'Nachrichten auszeichnen'; +$labels['aclfull'] = 'Vollzugriff'; +$labels['aclother'] = 'Andere'; +$labels['aclread'] = 'Lesen'; +$labels['aclwrite'] = 'Schreiben'; +$labels['acldelete'] = 'Löschen'; +$labels['shortacll'] = 'Sichtbar'; +$labels['shortaclr'] = 'Lesen'; +$labels['shortacls'] = 'Behalte'; +$labels['shortaclw'] = 'Schreiben'; +$labels['shortacli'] = 'Hinzufügen'; +$labels['shortaclp'] = 'Senden an'; +$labels['shortaclc'] = 'Erstellen'; +$labels['shortaclk'] = 'Erstellen'; +$labels['shortacld'] = 'Löschen'; +$labels['shortaclt'] = 'Löschen'; +$labels['shortacle'] = 'Endgültig löschen'; +$labels['shortaclx'] = 'Ordner löschen'; +$labels['shortacla'] = 'Verwalten'; +$labels['shortacln'] = 'Auszeichnen'; +$labels['shortaclother'] = 'Andere'; +$labels['shortaclread'] = 'Lesen'; +$labels['shortaclwrite'] = 'Schreiben'; +$labels['shortacldelete'] = 'Löschen'; +$labels['longacll'] = 'Der Ordner ist sichtbar und kann abonniert werden'; +$labels['longaclr'] = 'Der Ordnerinhalt kann gelesen werden'; +$labels['longacls'] = 'Der Lesestatus von Nachrichten kann geändert werden'; +$labels['longaclw'] = 'Alle Nachrichten-Flags und Schlüsselwörter ausser "Gelesen" und "Gelöscht" können geändert werden'; +$labels['longacli'] = 'Nachrichten können in diesen Ordner kopiert oder verschoben werden'; +$labels['longaclp'] = 'Nachrichten können an diesen Ordner gesendet werden'; +$labels['longaclc'] = 'Unterordner können in diesem Ordner erstellt oder umbenannt werden'; +$labels['longaclk'] = 'Unterordner können in diesem Ordner erstellt oder umbenannt werden'; +$labels['longacld'] = 'Der "gelöscht" Status von Nachrichten kann geändert werden'; +$labels['longaclt'] = 'Der "gelöscht" Status von Nachrichten kann geändert werden'; +$labels['longacle'] = 'Als "gelöscht" markierte Nachrichten können entfernt werden'; +$labels['longaclx'] = 'Der Ordner kann gelöscht oder umbenannt werden'; +$labels['longacla'] = 'Die Zugriffsrechte des Ordners können geändert werden'; +$labels['longacln'] = 'Geteilte Nachrichten-Auszeichnungen (Metadaten) können nicht geändert werden'; +$labels['longaclfull'] = 'Vollzugriff inklusive Ordner-Verwaltung'; +$labels['longaclread'] = 'Der Ordnerinhalt kann gelesen werden'; +$labels['longaclwrite'] = 'Nachrichten können markiert, an den Ordner gesendet und in den Ordner kopiert oder verschoben werden'; +$labels['longacldelete'] = 'Nachrichten können gelöscht werden'; +$labels['longaclother'] = 'Andere Zugriffsrechte '; +$labels['ariasummaryacltable'] = 'Liste der Zugriffsrechte'; +$labels['arialabelaclactions'] = 'Listen-Aktionen'; +$labels['arialabelaclform'] = 'Zugriffsrechte (Formular)'; +$messages['deleting'] = 'Zugriffsrechte werden entzogen...'; +$messages['saving'] = 'Zugriffsrechte werden gespeichert...'; +$messages['updatesuccess'] = 'Zugriffsrechte erfolgreich geändert'; +$messages['deletesuccess'] = 'Zugriffsrechte erfolgreich entzogen'; +$messages['createsuccess'] = 'Zugriffsrechte erfolgreich hinzugefügt'; +$messages['updateerror'] = 'Zugriffsrechte konnten nicht geändert werden'; +$messages['deleteerror'] = 'Zugriffsrechte konnten nicht entzogen werden'; +$messages['createerror'] = 'Zugriffsrechte konnten nicht gewährt werden'; +$messages['deleteconfirm'] = 'Sind Sie sicher, dass Sie die Zugriffsrechte den ausgewählten Benutzern entziehen möchten?'; +$messages['norights'] = 'Es wurden keine Zugriffsrechte ausgewählt!'; +$messages['nouser'] = 'Es wurde kein Benutzer ausgewählt!'; +?> diff --git a/data/web/rc/plugins/acl/localization/de_DE.inc b/data/web/rc/plugins/acl/localization/de_DE.inc new file mode 100644 index 0000000000000000000000000000000000000000..3de7b332804ffc241e20b3f03b83dfed4c9ebd45 --- /dev/null +++ b/data/web/rc/plugins/acl/localization/de_DE.inc @@ -0,0 +1,98 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Freigabe'; +$labels['myrights'] = 'Zugriffsrechte'; +$labels['username'] = 'Benutzer:'; +$labels['advanced'] = 'Erweiterter Modus'; +$labels['newuser'] = 'Eintrag hinzufügen'; +$labels['editperms'] = 'Zugriffsrechte bearbeiten'; +$labels['actions'] = 'Zugriffsrechteaktionen …'; +$labels['anyone'] = 'Alle Benutzer (anyone)'; +$labels['anonymous'] = 'Gäste (anonymous)'; +$labels['identifier'] = 'Bezeichnung'; +$labels['acll'] = 'Sichtbar'; +$labels['aclr'] = 'Nachrichten lesen'; +$labels['acls'] = 'Lesestatus ändern'; +$labels['aclw'] = 'Flags schreiben'; +$labels['acli'] = 'Nachrichten hinzufügen'; +$labels['aclp'] = 'Senden an'; +$labels['aclc'] = 'Unterordner erstellen'; +$labels['aclk'] = 'Unterordner erstellen'; +$labels['acld'] = 'Nachrichten als gelöscht markieren'; +$labels['aclt'] = 'Nachrichten als gelöscht markieren'; +$labels['acle'] = 'Endgültig löschen'; +$labels['aclx'] = 'Ordner löschen'; +$labels['acla'] = 'Verwalten'; +$labels['acln'] = 'Nachrichten kommentieren'; +$labels['aclfull'] = 'Vollzugriff'; +$labels['aclother'] = 'Andere'; +$labels['aclread'] = 'Lesen'; +$labels['aclwrite'] = 'Schreiben'; +$labels['acldelete'] = 'Löschen'; +$labels['shortacll'] = 'Sichtbar'; +$labels['shortaclr'] = 'Lesen'; +$labels['shortacls'] = 'Lesestatus'; +$labels['shortaclw'] = 'Schreiben'; +$labels['shortacli'] = 'Hinzufügen'; +$labels['shortaclp'] = 'Senden an'; +$labels['shortaclc'] = 'Erstellen'; +$labels['shortaclk'] = 'Erstellen'; +$labels['shortacld'] = 'Löschen'; +$labels['shortaclt'] = 'Löschen'; +$labels['shortacle'] = 'Endgültig löschen'; +$labels['shortaclx'] = 'Ordner löschen'; +$labels['shortacla'] = 'Verwalten'; +$labels['shortacln'] = 'Kommentieren'; +$labels['shortaclother'] = 'Andere'; +$labels['shortaclread'] = 'Lesen'; +$labels['shortaclwrite'] = 'Schreiben'; +$labels['shortacldelete'] = 'Löschen'; +$labels['longacll'] = 'Der Ordner ist sichtbar und kann abonniert werden'; +$labels['longaclr'] = 'Der Ordnerinhalt kann gelesen werden'; +$labels['longacls'] = 'Der Lesestatus von Nachrichten kann geändert werden'; +$labels['longaclw'] = 'Alle Nachrichten-Flags und Schlüsselwörter außer "Gelesen" und "Gelöscht" können geändert werden'; +$labels['longacli'] = 'Nachrichten können in diesen Ordner kopiert oder verschoben werden'; +$labels['longaclp'] = 'Nachrichten können an diesen Ordner gesendet werden'; +$labels['longaclc'] = 'Unterordner können in diesem Ordner erstellt oder umbenannt werden'; +$labels['longaclk'] = 'Unterordner können in diesem Ordner erstellt oder umbenannt werden'; +$labels['longacld'] = 'Der "gelöscht" Status von Nachrichten kann geändert werden'; +$labels['longaclt'] = 'Der "gelöscht" Status von Nachrichten kann geändert werden'; +$labels['longacle'] = 'Als "gelöscht" markiert Nachrichten können gelöscht werden.'; +$labels['longaclx'] = 'Der Ordner kann gelöscht oder umbenannt werden'; +$labels['longacla'] = 'Die Zugriffsrechte des Ordners können geändert werden'; +$labels['longacln'] = 'Nachrichten Metadaten (Vermerke) können geändert werden'; +$labels['longaclfull'] = 'Vollzugriff inklusive Ordner-Verwaltung'; +$labels['longaclread'] = 'Der Ordnerinhalt kann gelesen werden'; +$labels['longaclwrite'] = 'Nachrichten können markiert, an den Ordner gesendet und in den Ordner kopiert oder verschoben werden'; +$labels['longacldelete'] = 'Nachrichten können gelöscht werden'; +$labels['longaclother'] = 'Andere Zugriffsrechte'; +$labels['ariasummaryacltable'] = 'Liste von Zugriffsrechten'; +$labels['arialabelaclactions'] = 'Aktionen anzeigen'; +$labels['arialabelaclform'] = 'Zugriffsrechteformular'; +$messages['deleting'] = 'Zugriffsrechte werden entzogen...'; +$messages['saving'] = 'Zugriffsrechte werden gewährt...'; +$messages['updatesuccess'] = 'Zugriffsrechte erfolgreich geändert'; +$messages['deletesuccess'] = 'Zugriffsrechte erfolgreich entzogen'; +$messages['createsuccess'] = 'Zugriffsrechte erfolgreich gewährt'; +$messages['updateerror'] = 'Zugriffsrechte konnten nicht geändert werden'; +$messages['deleteerror'] = 'Zugriffsrechte konnten nicht entzogen werden'; +$messages['createerror'] = 'Zugriffsrechte konnten nicht gewährt werden'; +$messages['deleteconfirm'] = 'Sind Sie sicher, daß Sie die Zugriffsrechte den ausgewählten Benutzern entziehen möchten?'; +$messages['norights'] = 'Es wurden keine Zugriffsrechte ausgewählt!'; +$messages['nouser'] = 'Es wurde kein Benutzer ausgewählt!'; +?> diff --git a/data/web/rc/plugins/acl/localization/el_GR.inc b/data/web/rc/plugins/acl/localization/el_GR.inc new file mode 100644 index 0000000000000000000000000000000000000000..0ba63463f065dd0f1cddf10eb0914e03d022b335 --- /dev/null +++ b/data/web/rc/plugins/acl/localization/el_GR.inc @@ -0,0 +1,98 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Κοινή χρήση'; +$labels['myrights'] = 'Δικαιώματα Πρόσβασης '; +$labels['username'] = 'Χρήστης:'; +$labels['advanced'] = 'Προηγμένη λειτουργία'; +$labels['newuser'] = 'Προσθήκη καταχώρησης '; +$labels['editperms'] = 'Μεταβολή δικαιωμάτων'; +$labels['actions'] = 'Ενέργειες δικαιωμάτων πρόσβασης...'; +$labels['anyone'] = 'Όλοι οι χρήστες (οποιοσδήποτε)'; +$labels['anonymous'] = 'Επισκέπτες (ανώνυμοι)'; +$labels['identifier'] = 'Αναγνωριστικό'; +$labels['acll'] = 'Αναζήτηση'; +$labels['aclr'] = 'Διαβάστε τα μηνύματα '; +$labels['acls'] = 'Διατήρηση κατάστασης ανάγνωσης'; +$labels['aclw'] = 'Ρυθμίσεις εγγραφής'; +$labels['acli'] = 'Εισάγωγη (Αντιγραφή σε) '; +$labels['aclp'] = 'Καταχώρηση'; +$labels['aclc'] = 'Δημιουργία υποφακέλων'; +$labels['aclk'] = 'Δημιουργία υποφακέλων'; +$labels['acld'] = 'Διαγραφή μηνυμάτων'; +$labels['aclt'] = 'Διαγραφή μηνυμάτων'; +$labels['acle'] = 'Απαλοιφή'; +$labels['aclx'] = 'Διαγραφή φακέλου'; +$labels['acla'] = 'Διαχείριση'; +$labels['acln'] = 'Προσθήκη υπομνήματος στα μηνύματα'; +$labels['aclfull'] = 'Πλήρης πρόσβαση'; +$labels['aclother'] = 'Άλλο'; +$labels['aclread'] = 'Ανάγνωση'; +$labels['aclwrite'] = 'Εγγραφή'; +$labels['acldelete'] = 'Διαγραφή'; +$labels['shortacll'] = 'Αναζήτηση'; +$labels['shortaclr'] = 'Ανάγνωση'; +$labels['shortacls'] = 'Τήρηση'; +$labels['shortaclw'] = 'Εγγραφή'; +$labels['shortacli'] = 'Εισαγωγή'; +$labels['shortaclp'] = 'Καταχώρηση'; +$labels['shortaclc'] = 'Δημιουργία'; +$labels['shortaclk'] = 'Δημιουργία'; +$labels['shortacld'] = 'Διαγραφή'; +$labels['shortaclt'] = 'Διαγραφή'; +$labels['shortacle'] = 'Απαλοιφή'; +$labels['shortaclx'] = 'Διαγραφή φακέλου'; +$labels['shortacla'] = 'Διαχείριση'; +$labels['shortacln'] = 'Προσθήκη υπομνήματος'; +$labels['shortaclother'] = 'Άλλο'; +$labels['shortaclread'] = 'Ανάγνωση'; +$labels['shortaclwrite'] = 'Εγγραφή'; +$labels['shortacldelete'] = 'Διαγραφή'; +$labels['longacll'] = 'Ο φάκελος είναι ορατός στους καταλόγους και μπορείτε να εγγραφείτε σε αυτόν'; +$labels['longaclr'] = 'Ο φάκελος μπορεί να προσπελαστεί για ανάγνωση '; +$labels['longacls'] = 'Η κατάσταση ανάγνωσης μηνυμάτων μπορεί να αλλαχθεί'; +$labels['longaclw'] = 'Μπορούν να μεταβληθούν οι καταστάσεις μηνυμάτων και οι λέξεις κλειδιά, εκτός από τις καταστάσεις Ανάγνωσης και Διαγραφής'; +$labels['longacli'] = 'Τα μηνύματα μπορούν να εγγραφούν ή να αντιγραφούν στον φάκελο '; +$labels['longaclp'] = 'Τα μηνύματα μπορούν να τοποθετηθούν σε αυτόν το φάκελο '; +$labels['longaclc'] = 'Μπορούν να δημιουργηθούν (ή να μετονομαστούν) φάκελοι ακριβώς κάτω από αυτόν τον φάκελο '; +$labels['longaclk'] = 'Μπορούν να δημιουργηθούν (ή να μετονομαστούν) φάκελοι ακριβώς κάτω από αυτόν τον φάκελο '; +$labels['longacld'] = 'Η κατάσταση διαγραφής μηνυμάτων μπορεί να μεταβληθεί'; +$labels['longaclt'] = 'Η κατάσταση διαγραφής μηνυμάτων μπορεί να μεταβληθεί'; +$labels['longacle'] = 'Τα μηνύματα μπορούν να απαλειφθούν'; +$labels['longaclx'] = 'Ο φάκελος μπορεί να μετονομασθεί ή να διαγραφεί'; +$labels['longacla'] = 'Τα δικαιώματα πρόσβασης στον φάκελο μπορούν να μεταβληθούν'; +$labels['longacln'] = 'Το διαμοιραζόμενο υπόμνημα των μηνυμάτων είναι δυνατό να μεταβληθεί'; +$labels['longaclfull'] = 'Πλήρης έλεγχος συμπεριλαμβανόμενης της διαχείρισης φακέλων'; +$labels['longaclread'] = 'Ο φάκελος είναι δυνατό να προσπελαστεί για ανάγνωση'; +$labels['longaclwrite'] = 'Τα μηνύματα μπορούν να σημαδεύονται, να εγγράφονται ή να αντιγράφονται στον φάκελο'; +$labels['longacldelete'] = 'Τα μηνύματα μπορούν να διαγραφούν'; +$labels['longaclother'] = 'Άλλα δικαιώματα πρόσβασης'; +$labels['ariasummaryacltable'] = 'Λίστα δικαιωμάτων πρόσβασης'; +$labels['arialabelaclactions'] = 'Λίστα ενεργειών'; +$labels['arialabelaclform'] = 'Φόρμα δικαιωμάτων πρόσβασης'; +$messages['deleting'] = 'Διαγραφή των δικαιωμάτων πρόσβασης...'; +$messages['saving'] = 'Αποθήκευση δικαιώματων πρόσβασης...'; +$messages['updatesuccess'] = 'Επιτυχής μεταβολή των δικαιωμάτων πρόσβασης'; +$messages['deletesuccess'] = 'Επιτυχής διαγραφή των δικαιωμάτων πρόσβασης'; +$messages['createsuccess'] = 'Επιτυχής προσθήκη δικαιωμάτων πρόσβασης'; +$messages['updateerror'] = 'Δεν είναι δυνατή η ενημέρωση των δικαιωμάτων πρόσβασης'; +$messages['deleteerror'] = 'Δεν είναι δυνατή η διαγραφή των δικαιωμάτων πρόσβασης '; +$messages['createerror'] = 'Δεν είναι δυνατή η προσθήκη δικαιωμάτων πρόσβασης '; +$messages['deleteconfirm'] = 'Είστε βέβαιοι ότι θέλετε να καταργήσετε τα δικαιώματα πρόσβασης του επιλεγμένου(ων) χρήστη(ών);'; +$messages['norights'] = 'Κανένα δικαίωμα δεν έχει καθοριστεί!'; +$messages['nouser'] = 'Το όνομα χρήστη δεν έχει καθοριστεί! '; +?> diff --git a/data/web/rc/plugins/acl/localization/en_CA.inc b/data/web/rc/plugins/acl/localization/en_CA.inc new file mode 100644 index 0000000000000000000000000000000000000000..ae9cb8bbe2f52848137172dea50e044e1ef7dfda --- /dev/null +++ b/data/web/rc/plugins/acl/localization/en_CA.inc @@ -0,0 +1,94 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Sharing'; +$labels['myrights'] = 'Access Rights'; +$labels['username'] = 'User:'; +$labels['advanced'] = 'Advanced mode'; +$labels['newuser'] = 'Add entry'; +$labels['editperms'] = 'Edit permissions'; +$labels['actions'] = 'Access right actions...'; +$labels['anyone'] = 'All users (anyone)'; +$labels['anonymous'] = 'Guests (anonymous)'; +$labels['identifier'] = 'Identifier'; +$labels['acll'] = 'Lookup'; +$labels['aclr'] = 'Read messages'; +$labels['acls'] = 'Keep Seen state'; +$labels['aclw'] = 'Write flags'; +$labels['acli'] = 'Insert (Copy into)'; +$labels['aclp'] = 'Post'; +$labels['aclc'] = 'Create subfolders'; +$labels['aclk'] = 'Create subfolders'; +$labels['acld'] = 'Delete messages'; +$labels['aclt'] = 'Delete messages'; +$labels['acle'] = 'Expunge'; +$labels['aclx'] = 'Delete folder'; +$labels['acla'] = 'Administer'; +$labels['acln'] = 'Annotate messages'; +$labels['aclfull'] = 'Full control'; +$labels['aclother'] = 'Other'; +$labels['aclread'] = 'Read'; +$labels['aclwrite'] = 'Write'; +$labels['acldelete'] = 'Delete'; +$labels['shortacll'] = 'Lookup'; +$labels['shortaclr'] = 'Read'; +$labels['shortacls'] = 'Keep'; +$labels['shortaclw'] = 'Write'; +$labels['shortacli'] = 'Insert'; +$labels['shortaclp'] = 'Post'; +$labels['shortaclc'] = 'Create'; +$labels['shortaclk'] = 'Create'; +$labels['shortacld'] = 'Delete'; +$labels['shortaclt'] = 'Delete'; +$labels['shortacle'] = 'Expunge'; +$labels['shortaclx'] = 'Folder delete'; +$labels['shortacla'] = 'Administer'; +$labels['shortacln'] = 'Annotate'; +$labels['shortaclother'] = 'Other'; +$labels['shortaclread'] = 'Read'; +$labels['shortaclwrite'] = 'Write'; +$labels['shortacldelete'] = 'Delete'; +$labels['longacll'] = 'The folder is visible on lists and can be subscribed to'; +$labels['longaclr'] = 'The folder can be opened for reading'; +$labels['longacls'] = 'Messages Seen flag can be changed'; +$labels['longaclw'] = 'Messages flags and keywords can be changed, except Seen and Deleted'; +$labels['longacli'] = 'Messages can be written or copied to the folder'; +$labels['longaclp'] = 'Messages can be posted to this folder'; +$labels['longaclc'] = 'Folders can be created (or renamed) directly under this folder'; +$labels['longaclk'] = 'Folders can be created (or renamed) directly under this folder'; +$labels['longacld'] = 'Messages Delete flag can be changed'; +$labels['longaclt'] = 'Messages Delete flag can be changed'; +$labels['longacle'] = 'Messages can be expunged'; +$labels['longaclx'] = 'The folder can be deleted or renamed'; +$labels['longacla'] = 'The folder access rights can be changed'; +$labels['longacln'] = 'Messages shared metadata (annotations) can be changed'; +$labels['longaclfull'] = 'Full control including folder administration'; +$labels['longaclread'] = 'The folder can be opened for reading'; +$labels['longaclwrite'] = 'Messages can be marked, written or copied to the folder'; +$labels['longacldelete'] = 'Messages can be deleted'; +$messages['deleting'] = 'Deleting access rights...'; +$messages['saving'] = 'Saving access rights...'; +$messages['updatesuccess'] = 'Successfully changed access rights'; +$messages['deletesuccess'] = 'Successfully deleted access rights'; +$messages['createsuccess'] = 'Successfully added access rights'; +$messages['updateerror'] = 'Unable to update access rights'; +$messages['deleteerror'] = 'Unable to delete access rights'; +$messages['createerror'] = 'Unable to add access rights'; +$messages['deleteconfirm'] = 'Are you sure, you want to remove access rights of selected user(s)?'; +$messages['norights'] = 'No rights has been specified!'; +$messages['nouser'] = 'No username has been specified!'; +?> diff --git a/data/web/rc/plugins/acl/localization/en_GB.inc b/data/web/rc/plugins/acl/localization/en_GB.inc new file mode 100644 index 0000000000000000000000000000000000000000..cd6393a6a2f46d2a38a95988776177d4921f6397 --- /dev/null +++ b/data/web/rc/plugins/acl/localization/en_GB.inc @@ -0,0 +1,98 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Sharing'; +$labels['myrights'] = 'Access Rights'; +$labels['username'] = 'User:'; +$labels['advanced'] = 'Advanced mode'; +$labels['newuser'] = 'Add entry'; +$labels['editperms'] = 'Edit permissions'; +$labels['actions'] = 'Access right actions...'; +$labels['anyone'] = 'All users (anyone)'; +$labels['anonymous'] = 'Guests (anonymous)'; +$labels['identifier'] = 'Identifier'; +$labels['acll'] = 'Look-up'; +$labels['aclr'] = 'Read messages'; +$labels['acls'] = 'Keep Seen state'; +$labels['aclw'] = 'Write flags'; +$labels['acli'] = 'Insert (copy into)'; +$labels['aclp'] = 'Post'; +$labels['aclc'] = 'Create sub-folders'; +$labels['aclk'] = 'Create sub-folders'; +$labels['acld'] = 'Delete messages'; +$labels['aclt'] = 'Delete messages'; +$labels['acle'] = 'Expunge'; +$labels['aclx'] = 'Delete folder'; +$labels['acla'] = 'Administer'; +$labels['acln'] = 'Annotate messages'; +$labels['aclfull'] = 'Full control'; +$labels['aclother'] = 'Other'; +$labels['aclread'] = 'Read'; +$labels['aclwrite'] = 'Write'; +$labels['acldelete'] = 'Delete'; +$labels['shortacll'] = 'Look-up'; +$labels['shortaclr'] = 'Read'; +$labels['shortacls'] = 'Keep'; +$labels['shortaclw'] = 'Write'; +$labels['shortacli'] = 'Insert'; +$labels['shortaclp'] = 'Post'; +$labels['shortaclc'] = 'Create'; +$labels['shortaclk'] = 'Create'; +$labels['shortacld'] = 'Delete'; +$labels['shortaclt'] = 'Delete'; +$labels['shortacle'] = 'Expunge'; +$labels['shortaclx'] = 'Folder delete'; +$labels['shortacla'] = 'Administer'; +$labels['shortacln'] = 'Annotate'; +$labels['shortaclother'] = 'Other'; +$labels['shortaclread'] = 'Read'; +$labels['shortaclwrite'] = 'Write'; +$labels['shortacldelete'] = 'Delete'; +$labels['longacll'] = 'The folder is visible on lists and can be subscribed to.'; +$labels['longaclr'] = 'The folder can be opened for reading'; +$labels['longacls'] = 'Messages Seen flag can be changed'; +$labels['longaclw'] = 'Messages flags and keywords can be changed, except Seen and Deleted.'; +$labels['longacli'] = 'Messages can be written or copied to the folder'; +$labels['longaclp'] = 'Messages can be posted to this folder'; +$labels['longaclc'] = 'Folders can be created (or renamed) directly under this folder'; +$labels['longaclk'] = 'Folders can be created (or renamed) directly under this folder'; +$labels['longacld'] = 'Messages Delete flag can be changed'; +$labels['longaclt'] = 'Messages Delete flag can be changed'; +$labels['longacle'] = 'Messages can be expunged'; +$labels['longaclx'] = 'The folder can be deleted or renamed'; +$labels['longacla'] = 'The folder access rights can be changed'; +$labels['longacln'] = 'Messages shared metadata (annotations) can be changed'; +$labels['longaclfull'] = 'Full control including folder administration'; +$labels['longaclread'] = 'The folder can be opened for reading'; +$labels['longaclwrite'] = 'Messages can be marked, written or copied to the folder'; +$labels['longacldelete'] = 'Messages can be deleted'; +$labels['longaclother'] = 'Other access rights'; +$labels['ariasummaryacltable'] = 'List of access rights'; +$labels['arialabelaclactions'] = 'List actions'; +$labels['arialabelaclform'] = 'Access rights form'; +$messages['deleting'] = 'Deleting access rights...'; +$messages['saving'] = 'Saving access rights...'; +$messages['updatesuccess'] = 'Successfully changed access rights'; +$messages['deletesuccess'] = 'Successfully deleted access rights'; +$messages['createsuccess'] = 'Successfully added access rights'; +$messages['updateerror'] = 'Unable to update access rights'; +$messages['deleteerror'] = 'Unable to delete access rights'; +$messages['createerror'] = 'Unable to add access rights'; +$messages['deleteconfirm'] = 'Are you sure, you want to remove access rights of selected user(s)?'; +$messages['norights'] = 'No rights has been specified!'; +$messages['nouser'] = 'No username has been specified!'; +?> diff --git a/data/web/rc/plugins/acl/localization/en_US.inc b/data/web/rc/plugins/acl/localization/en_US.inc new file mode 100644 index 0000000000000000000000000000000000000000..ff8dde76ce3e26f1b119da839bce961e9850e8a8 --- /dev/null +++ b/data/web/rc/plugins/acl/localization/en_US.inc @@ -0,0 +1,108 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ + +$labels['sharing'] = 'Sharing'; +$labels['myrights'] = 'Access Rights'; +$labels['username'] = 'User:'; +$labels['advanced'] = 'Advanced mode'; +$labels['newuser'] = 'Add entry'; +$labels['editperms'] = 'Edit permissions'; +$labels['actions'] = 'Access right actions...'; +$labels['anyone'] = 'All users (anyone)'; +$labels['anonymous'] = 'Guests (anonymous)'; +$labels['identifier'] = 'Identifier'; + +$labels['acll'] = 'Lookup'; +$labels['aclr'] = 'Read messages'; +$labels['acls'] = 'Keep Seen state'; +$labels['aclw'] = 'Write flags'; +$labels['acli'] = 'Insert (Copy into)'; +$labels['aclp'] = 'Post'; +$labels['aclc'] = 'Create subfolders'; +$labels['aclk'] = 'Create subfolders'; +$labels['acld'] = 'Delete messages'; +$labels['aclt'] = 'Delete messages'; +$labels['acle'] = 'Expunge'; +$labels['aclx'] = 'Delete folder'; +$labels['acla'] = 'Administer'; +$labels['acln'] = 'Annotate messages'; + +$labels['aclfull'] = 'Full control'; +$labels['aclother'] = 'Other'; +$labels['aclread'] = 'Read'; +$labels['aclwrite'] = 'Write'; +$labels['acldelete'] = 'Delete'; + +$labels['shortacll'] = 'Lookup'; +$labels['shortaclr'] = 'Read'; +$labels['shortacls'] = 'Keep'; +$labels['shortaclw'] = 'Write'; +$labels['shortacli'] = 'Insert'; +$labels['shortaclp'] = 'Post'; +$labels['shortaclc'] = 'Create'; +$labels['shortaclk'] = 'Create'; +$labels['shortacld'] = 'Delete'; +$labels['shortaclt'] = 'Delete'; +$labels['shortacle'] = 'Expunge'; +$labels['shortaclx'] = 'Folder delete'; +$labels['shortacla'] = 'Administer'; +$labels['shortacln'] = 'Annotate'; + +$labels['shortaclother'] = 'Other'; +$labels['shortaclread'] = 'Read'; +$labels['shortaclwrite'] = 'Write'; +$labels['shortacldelete'] = 'Delete'; + +$labels['longacll'] = 'The folder is visible on lists and can be subscribed to'; +$labels['longaclr'] = 'The folder can be opened for reading'; +$labels['longacls'] = 'Messages Seen flag can be changed'; +$labels['longaclw'] = 'Messages flags and keywords can be changed, except Seen and Deleted'; +$labels['longacli'] = 'Messages can be written or copied to the folder'; +$labels['longaclp'] = 'Messages can be posted to this folder'; +$labels['longaclc'] = 'Folders can be created (or renamed) directly under this folder'; +$labels['longaclk'] = 'Folders can be created (or renamed) directly under this folder'; +$labels['longacld'] = 'Messages Delete flag can be changed'; +$labels['longaclt'] = 'Messages Delete flag can be changed'; +$labels['longacle'] = 'Messages can be expunged'; +$labels['longaclx'] = 'The folder can be deleted or renamed'; +$labels['longacla'] = 'The folder access rights can be changed'; +$labels['longacln'] = 'Messages shared metadata (annotations) can be changed'; + +$labels['longaclfull'] = 'Full control including folder administration'; +$labels['longaclread'] = 'The folder can be opened for reading'; +$labels['longaclwrite'] = 'Messages can be marked, written or copied to the folder'; +$labels['longacldelete'] = 'Messages can be deleted'; +$labels['longaclother'] = 'Other access rights'; + +$labels['ariasummaryacltable'] = 'List of access rights'; +$labels['arialabelaclactions'] = 'List actions'; +$labels['arialabelaclform'] = 'Access rights form'; + +$messages['deleting'] = 'Deleting access rights...'; +$messages['saving'] = 'Saving access rights...'; +$messages['updatesuccess'] = 'Successfully changed access rights'; +$messages['deletesuccess'] = 'Successfully deleted access rights'; +$messages['createsuccess'] = 'Successfully added access rights'; +$messages['updateerror'] = 'Unable to update access rights'; +$messages['deleteerror'] = 'Unable to delete access rights'; +$messages['createerror'] = 'Unable to add access rights'; +$messages['deleteconfirm'] = 'Are you sure, you want to remove access rights of selected user(s)?'; +$messages['norights'] = 'No rights has been specified!'; +$messages['nouser'] = 'No username has been specified!'; + +?> diff --git a/data/web/rc/plugins/acl/localization/eo.inc b/data/web/rc/plugins/acl/localization/eo.inc new file mode 100644 index 0000000000000000000000000000000000000000..e06a38fff7206ed7b6bb92605ee5b5f2f592d1dd --- /dev/null +++ b/data/web/rc/plugins/acl/localization/eo.inc @@ -0,0 +1,63 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Kunhavigado'; +$labels['myrights'] = 'Atingrajtoj'; +$labels['username'] = 'Uzanto:'; +$labels['newuser'] = 'Aldoni eron'; +$labels['actions'] = 'Agoj de atingrajtoj...'; +$labels['anyone'] = 'Ĉiuj uzantoj (iu ajn)'; +$labels['anonymous'] = 'Gasto (sennome)'; +$labels['identifier'] = 'Identigilo'; +$labels['acll'] = 'Elserĉo'; +$labels['aclr'] = 'Legi mesaĝojn'; +$labels['acls'] = 'Manteni legitan staton'; +$labels['acli'] = 'Enmeti (alglui)'; +$labels['aclp'] = 'Afiŝi'; +$labels['aclc'] = 'Krei subdosierujojn'; +$labels['aclk'] = 'Krei subdosierujojn'; +$labels['acld'] = 'Forigi mesaĝojn'; +$labels['aclt'] = 'Forigi mesaĝojn'; +$labels['aclx'] = 'Forigi dosierujon'; +$labels['acla'] = 'Administri'; +$labels['aclfull'] = 'Plena kontrolo'; +$labels['aclother'] = 'Alia'; +$labels['aclread'] = 'Legi'; +$labels['aclwrite'] = 'Skribi'; +$labels['acldelete'] = 'Forigi'; +$labels['shortacll'] = 'Elserĉo'; +$labels['shortaclr'] = 'Legi'; +$labels['shortacls'] = 'Manteni'; +$labels['shortaclw'] = 'Skribi'; +$labels['shortacli'] = 'Enmeti'; +$labels['shortaclp'] = 'Afiŝi'; +$labels['shortaclc'] = 'Krei'; +$labels['shortaclk'] = 'Krei'; +$labels['shortacld'] = 'Forigi'; +$labels['shortaclt'] = 'Forigi'; +$labels['shortaclx'] = 'Forigo de dosierujo'; +$labels['shortacla'] = 'Administri'; +$labels['shortaclother'] = 'Alia'; +$labels['shortaclread'] = 'Legi'; +$labels['shortaclwrite'] = 'Skribi'; +$labels['shortacldelete'] = 'Forigi'; +$labels['longacll'] = 'La dosierujo videblas en listoj kaj oni povas aboni al ĝi'; +$labels['longaclr'] = 'La dosierujo malfermeblas por legado'; +$labels['longacli'] = 'Mesaĝoj skribeblas aŭ kopieblas en la dosierujo'; +$labels['longaclp'] = 'Mesaĝoj afiŝeblas en ĉi tiu dosierujo'; +$labels['longaclread'] = 'La dosierujo malfermeblas por legado'; +?> diff --git a/data/web/rc/plugins/acl/localization/es_419.inc b/data/web/rc/plugins/acl/localization/es_419.inc new file mode 100644 index 0000000000000000000000000000000000000000..3ec167c682a79c86c7949880e7e0697d386335ec --- /dev/null +++ b/data/web/rc/plugins/acl/localization/es_419.inc @@ -0,0 +1,98 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Compartiendo'; +$labels['myrights'] = 'Permisos de acceso'; +$labels['username'] = 'Usuario:'; +$labels['advanced'] = 'Modo avanzado'; +$labels['newuser'] = 'Añadir entrada'; +$labels['editperms'] = 'Editar permisos'; +$labels['actions'] = 'Acciones de derecho de acceso...'; +$labels['anyone'] = 'Todos los usuarios (cualquiera)'; +$labels['anonymous'] = 'Invitados (anónimos)'; +$labels['identifier'] = 'Identificador'; +$labels['acll'] = 'Búsqueda'; +$labels['aclr'] = 'Leer mensajes'; +$labels['acls'] = 'Mantener estado de visto'; +$labels['aclw'] = 'Etiquetas de escritura'; +$labels['acli'] = 'Insertar (copiar a)'; +$labels['aclp'] = 'Publicar'; +$labels['aclc'] = 'Crear subcarpetas'; +$labels['aclk'] = 'Crear subcarpetas'; +$labels['acld'] = 'Eliminar mensajes'; +$labels['aclt'] = 'Eliminar mensajes'; +$labels['acle'] = 'Borrar'; +$labels['aclx'] = 'Eliminar carpeta'; +$labels['acla'] = 'Administrar'; +$labels['acln'] = 'Anotar mensajes'; +$labels['aclfull'] = 'Control total'; +$labels['aclother'] = 'Otro'; +$labels['aclread'] = 'Leer'; +$labels['aclwrite'] = 'Escribir'; +$labels['acldelete'] = 'Eliminar'; +$labels['shortacll'] = 'Búsqueda'; +$labels['shortaclr'] = 'Leer'; +$labels['shortacls'] = 'Mantener'; +$labels['shortaclw'] = 'Escribir'; +$labels['shortacli'] = 'Insertar'; +$labels['shortaclp'] = 'Publicar'; +$labels['shortaclc'] = 'Crear'; +$labels['shortaclk'] = 'Crear'; +$labels['shortacld'] = 'Eliminar'; +$labels['shortaclt'] = 'Eliminar'; +$labels['shortacle'] = 'Borrar'; +$labels['shortaclx'] = 'Eliminar carpeta'; +$labels['shortacla'] = 'Administrar'; +$labels['shortacln'] = 'Anotar'; +$labels['shortaclother'] = 'Otro'; +$labels['shortaclread'] = 'Leer'; +$labels['shortaclwrite'] = 'Escribir'; +$labels['shortacldelete'] = 'Eliminar'; +$labels['longacll'] = 'La carpeta es visible en listas y se la puede suscribir'; +$labels['longaclr'] = 'La carpeta puede ser abierta para lectura'; +$labels['longacls'] = 'Etiqueta de mensajes leídos puede ser cambiada'; +$labels['longaclw'] = 'Las etiquetas de mensajes y palabras clave puede ser cambiada, excepto Leídos y Eliminados'; +$labels['longacli'] = 'Se pueden escribir o copiar mensajes a la carpeta'; +$labels['longaclp'] = 'Los mensajes pueden ser publicados en esta carpeta'; +$labels['longaclc'] = 'Las carpetas pueden ser creadas (o renombradas) directamente desde esta carpeta'; +$labels['longaclk'] = 'Las carpetas pueden ser creadas (o renombradas) directamente desde esta carpeta'; +$labels['longacld'] = 'La etiqueta de mensajes eliminados puede ser cambiada'; +$labels['longaclt'] = 'La etiqueta de mensajes eliminados puede ser cambiada'; +$labels['longacle'] = 'Los mensajes pueden ser borrados'; +$labels['longaclx'] = 'La carpeta puede ser eliminada o renombrada'; +$labels['longacla'] = 'Los derechos de acceso de la carpeta pueden ser cambiados'; +$labels['longacln'] = 'Los metadatos compartidos de los mensajes (anotaciones) puede ser cambiado'; +$labels['longaclfull'] = 'Control total incluyendo administración de carpetas'; +$labels['longaclread'] = 'La carpeta puede ser abierta para lectura'; +$labels['longaclwrite'] = 'Los mensajes pueden ser marcados, escritos o copiados a la carpeta'; +$labels['longacldelete'] = 'Los mensajes pueden ser eliminados'; +$labels['longaclother'] = 'Otros derechos de acceso'; +$labels['ariasummaryacltable'] = 'Lista de derechos de acceso'; +$labels['arialabelaclactions'] = 'Listar acciones'; +$labels['arialabelaclform'] = 'Formulario de derechos de acceso'; +$messages['deleting'] = 'Derechos de acceso de eliminación...'; +$messages['saving'] = 'Guardando derechos de acceso...'; +$messages['updatesuccess'] = 'Se han cambiado los derechos de acceso exitosamente'; +$messages['deletesuccess'] = 'Se han eliminado los derechos de acceso exitosamente'; +$messages['createsuccess'] = 'Se han agregado los derechos de acceso exitosamente'; +$messages['updateerror'] = 'No es posible actualizar los derechos de acceso'; +$messages['deleteerror'] = 'No es posible eliminar los derechos de acceso'; +$messages['createerror'] = 'No es posible agregar los derechos de acceso'; +$messages['deleteconfirm'] = '¿Estás seguro de que deseas eliminar los derechos de acceso a usuario(s) seleccionado(s)?'; +$messages['norights'] = '¡No se hace especificado un derecho!'; +$messages['nouser'] = '¡No se ha especificado un nombre de usuario!'; +?> diff --git a/data/web/rc/plugins/acl/localization/es_AR.inc b/data/web/rc/plugins/acl/localization/es_AR.inc new file mode 100644 index 0000000000000000000000000000000000000000..8ed9f12fda8ed48ad89c5e40a90b5172645d24ab --- /dev/null +++ b/data/web/rc/plugins/acl/localization/es_AR.inc @@ -0,0 +1,98 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Compartiendo'; +$labels['myrights'] = 'Permisos de acceso'; +$labels['username'] = 'Usuario:'; +$labels['advanced'] = 'Modo avanzado'; +$labels['newuser'] = 'Agregar entrada'; +$labels['editperms'] = 'Editar permisos'; +$labels['actions'] = 'Acciones para los permisos de acceso...'; +$labels['anyone'] = 'Todos los usuarios (cualquiera)'; +$labels['anonymous'] = 'Invitado (anonimo)'; +$labels['identifier'] = 'Identificacion'; +$labels['acll'] = 'Buscar'; +$labels['aclr'] = 'Leer mensajes'; +$labels['acls'] = 'Mantener como visualizado'; +$labels['aclw'] = 'Escribir marcadores'; +$labels['acli'] = 'Insertar (Copiar en)'; +$labels['aclp'] = 'Publicar'; +$labels['aclc'] = 'Crear subcarpetas'; +$labels['aclk'] = 'Crear subcarpetas'; +$labels['acld'] = 'Eliminar mensajes'; +$labels['aclt'] = 'Eliminar mensajes'; +$labels['acle'] = 'Descartar'; +$labels['aclx'] = 'Eliminar carpeta'; +$labels['acla'] = 'Administrar'; +$labels['acln'] = 'Anotar mensajes'; +$labels['aclfull'] = 'Control total'; +$labels['aclother'] = 'Otro'; +$labels['aclread'] = 'Leer'; +$labels['aclwrite'] = 'Escribir'; +$labels['acldelete'] = 'Eliminar'; +$labels['shortacll'] = 'Buscar'; +$labels['shortaclr'] = 'Leer'; +$labels['shortacls'] = 'Mantener'; +$labels['shortaclw'] = 'Escribir'; +$labels['shortacli'] = 'Insertar'; +$labels['shortaclp'] = 'Publicar'; +$labels['shortaclc'] = 'Crear'; +$labels['shortaclk'] = 'Crear'; +$labels['shortacld'] = 'Eliminar'; +$labels['shortaclt'] = 'Eliminar'; +$labels['shortacle'] = 'Descartar'; +$labels['shortaclx'] = 'Borrado de carpeta'; +$labels['shortacla'] = 'Administrar'; +$labels['shortacln'] = 'Anotar'; +$labels['shortaclother'] = 'Otro'; +$labels['shortaclread'] = 'Leer'; +$labels['shortaclwrite'] = 'Escribir'; +$labels['shortacldelete'] = 'Eliminar'; +$labels['longacll'] = 'La carpeta es visible en listas y es posible suscribirse a ella'; +$labels['longaclr'] = 'La carpeta se puede abirir para lectura'; +$labels['longacls'] = 'El marcador de Mensajes Vistos puede ser modificado'; +$labels['longaclw'] = 'Los marcadores de mensajes y palabras clave se pueden modificar, excepto Visto y Eliminado'; +$labels['longacli'] = 'En esta carpeta se pueden escribir o copiar mensajes'; +$labels['longaclp'] = 'En esta carpeta se pueden publicar mensajes'; +$labels['longaclc'] = 'Debajo de esta carpeta se puede crear (o renombrar) otras carpetas directamente'; +$labels['longaclk'] = 'Debajo de esta carpeta se puede crear (o renombrar) otras carpetas directamente'; +$labels['longacld'] = 'El marcador de Mensaje Eliminado puede ser modificado'; +$labels['longaclt'] = 'El marcador de Mensaje Eliminado puede ser modificado'; +$labels['longacle'] = 'Los mensajes pueden ser descartados'; +$labels['longaclx'] = 'La carpeta puede ser eliminada o renombrada'; +$labels['longacla'] = 'Los permisos de acceso de esta carpeta pueden ser modificados'; +$labels['longacln'] = 'La metainformación de mensajes compartidos (anotaciones) puede ser cambiada'; +$labels['longaclfull'] = 'Control total incluyendo la administracion de carpeta'; +$labels['longaclread'] = 'La carpeta se puede abrir para lectura'; +$labels['longaclwrite'] = 'En esta carpeta los mensajes pueden ser marcados, escritos o copiados'; +$labels['longacldelete'] = 'Los mensajes se pueden eliminar'; +$labels['longaclother'] = 'Otros permisos de acceso'; +$labels['ariasummaryacltable'] = 'Listado de permisos de acceso'; +$labels['arialabelaclactions'] = 'Listar acciones'; +$labels['arialabelaclform'] = 'Formulario de permisos de acceso'; +$messages['deleting'] = 'Eliminando permisos de acceso...'; +$messages['saving'] = 'Salvando permisos de acceso...'; +$messages['updatesuccess'] = 'Permisos de acceso modificados satisfactoriamente'; +$messages['deletesuccess'] = 'Permisos de acceso eliminados correctamente'; +$messages['createsuccess'] = 'Permisos de acceso agregados satisfactoriamente'; +$messages['updateerror'] = 'No se pudieron actualizar los permisos de acceso'; +$messages['deleteerror'] = 'No se pueden eliminar los permisos de acceso'; +$messages['createerror'] = 'No se pueden agregar los permisos de acceso'; +$messages['deleteconfirm'] = 'Estas seguro que queres remover los permisos de acceso a el/los usuario(s) seleccionado/s?'; +$messages['norights'] = 'Ningun permiso ha sido especificado!'; +$messages['nouser'] = 'Ningun nombre de usuario ha sido especificado!'; +?> diff --git a/data/web/rc/plugins/acl/localization/es_ES.inc b/data/web/rc/plugins/acl/localization/es_ES.inc new file mode 100644 index 0000000000000000000000000000000000000000..c90c3e5b9dde7388a659257821fa75db5d7c10f0 --- /dev/null +++ b/data/web/rc/plugins/acl/localization/es_ES.inc @@ -0,0 +1,98 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Compartir'; +$labels['myrights'] = 'Permisos de acceso'; +$labels['username'] = 'Usuario:'; +$labels['advanced'] = 'Modo avanzado'; +$labels['newuser'] = 'Añadir una entrada'; +$labels['editperms'] = 'Editar permisos'; +$labels['actions'] = 'Acciones sobre los permisos de acceso…'; +$labels['anyone'] = 'Todos los usuarios (cualquiera)'; +$labels['anonymous'] = 'Invitados (anónimo)'; +$labels['identifier'] = 'Identificador'; +$labels['acll'] = 'Búsqueda'; +$labels['aclr'] = 'Leer mensajes'; +$labels['acls'] = 'Mantener como "Leído'; +$labels['aclw'] = 'Escribir etiquetas'; +$labels['acli'] = 'Insertar (Copiar dentro)'; +$labels['aclp'] = 'Enviar'; +$labels['aclc'] = 'Crear subcarpetas'; +$labels['aclk'] = 'Crear subcarpetas'; +$labels['acld'] = 'Borrar mensajes'; +$labels['aclt'] = 'Borrar mensajes'; +$labels['acle'] = 'Expurgar'; +$labels['aclx'] = 'Borrar carpeta'; +$labels['acla'] = 'Administrar'; +$labels['acln'] = 'Anotar mensajes'; +$labels['aclfull'] = 'Control total'; +$labels['aclother'] = 'Otro'; +$labels['aclread'] = 'Leer'; +$labels['aclwrite'] = 'Escribir'; +$labels['acldelete'] = 'Borrar'; +$labels['shortacll'] = 'Búsqueda'; +$labels['shortaclr'] = 'Leer'; +$labels['shortacls'] = 'Conservar'; +$labels['shortaclw'] = 'Escribir'; +$labels['shortacli'] = 'Insertar'; +$labels['shortaclp'] = 'Enviar'; +$labels['shortaclc'] = 'Crear'; +$labels['shortaclk'] = 'Crear'; +$labels['shortacld'] = 'Borrar'; +$labels['shortaclt'] = 'Borrar'; +$labels['shortacle'] = 'Expurgar'; +$labels['shortaclx'] = 'Borrar carpeta'; +$labels['shortacla'] = 'Administrar'; +$labels['shortacln'] = 'Anotar'; +$labels['shortaclother'] = 'Otro'; +$labels['shortaclread'] = 'Leer'; +$labels['shortaclwrite'] = 'Escribir'; +$labels['shortacldelete'] = 'Borrar'; +$labels['longacll'] = 'La carpeta es visible en las listas y es posible suscribirse a ella'; +$labels['longaclr'] = 'Se puede abrir la carpeta para leer'; +$labels['longacls'] = 'Se pueden cambiar los mensajes con la etiqueta "Leído'; +$labels['longaclw'] = 'Las etiquetas de mensaje y las palabras clave se pueden cambiar, excepto "Leído" y "Borrado'; +$labels['longacli'] = 'Se pueden escribir mensajes o copiarlos a la carpeta'; +$labels['longaclp'] = 'Se pueden enviar mensajes a esta carpeta'; +$labels['longaclc'] = 'Se pueden crear (o renombrar) carpetas directamente bajo esta carpeta'; +$labels['longaclk'] = 'Se pueden crear (o renombrar) carpetas directamente bajo esta carpeta'; +$labels['longacld'] = 'No se pueden cambiar los mensajes etiquetados como "Borrado'; +$labels['longaclt'] = 'No se pueden cambiar los mensajes etiquetados como "Borrado'; +$labels['longacle'] = 'No se pueden expurgar los mensajes'; +$labels['longaclx'] = 'La carpeta se puede borrar o renombrar'; +$labels['longacla'] = 'Se pueden cambiar los permisos de acceso'; +$labels['longacln'] = 'Los metadatos compartidos de los mensajes (anotaciones) pueden cambiarse'; +$labels['longaclfull'] = 'Control total, incluyendo la gestión de carpetas'; +$labels['longaclread'] = 'Se puede abrir la carpeta para leer'; +$labels['longaclwrite'] = 'Se pueden etiquetar, escribir o copiar mensajes a la carpeta'; +$labels['longacldelete'] = 'Los mensajes se pueden borrar'; +$labels['longaclother'] = 'Otros derechos de acceso'; +$labels['ariasummaryacltable'] = 'Lista de derechos de acceso'; +$labels['arialabelaclactions'] = 'Lista de acciones'; +$labels['arialabelaclform'] = 'Formulario de derechos de acceso'; +$messages['deleting'] = 'Borrando permisos de acceso…'; +$messages['saving'] = 'Guardando permisos de acceso…'; +$messages['updatesuccess'] = 'Se han cambiado los permisos de acceso'; +$messages['deletesuccess'] = 'Se han borrado los permisos de acceso'; +$messages['createsuccess'] = 'Se han añadido los permisos de acceso'; +$messages['updateerror'] = 'No ha sido posible actualizar los derechos de acceso'; +$messages['deleteerror'] = 'No se han podido borrar los permisos de acceso'; +$messages['createerror'] = 'No se han podido añadir los permisos de acceso'; +$messages['deleteconfirm'] = '¿Seguro que quiere borrar los permisos de acceso del usuairo seleccionado?'; +$messages['norights'] = 'No se han especificado los permisos de acceso'; +$messages['nouser'] = 'No se ha especificado un nombre de usuario'; +?> diff --git a/data/web/rc/plugins/acl/localization/et_EE.inc b/data/web/rc/plugins/acl/localization/et_EE.inc new file mode 100644 index 0000000000000000000000000000000000000000..ecd5f7e8f054ea7318801776d9947685528c2e6f --- /dev/null +++ b/data/web/rc/plugins/acl/localization/et_EE.inc @@ -0,0 +1,98 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Jagamine'; +$labels['myrights'] = 'Ligipääsuõigused'; +$labels['username'] = 'Kasutaja:'; +$labels['advanced'] = 'laiendatud režiim'; +$labels['newuser'] = 'Lisa sissekanne'; +$labels['editperms'] = 'Muuda õigusi'; +$labels['actions'] = 'Ligipääsuõiguste toimingud...'; +$labels['anyone'] = 'Kõik kasutajad'; +$labels['anonymous'] = 'Külalised (anonüümsed)'; +$labels['identifier'] = 'Tuvastaja'; +$labels['acll'] = 'Ülevaade'; +$labels['aclr'] = 'Lugeda kirju'; +$labels['acls'] = 'Hoia nähtud olekut'; +$labels['aclw'] = 'Salvesta lipud'; +$labels['acli'] = 'Sisesta (kopeeri)'; +$labels['aclp'] = 'Postita'; +$labels['aclc'] = 'Luua alamkaustu'; +$labels['aclk'] = 'Luua alamkaustu'; +$labels['acld'] = 'Kustutada kirju'; +$labels['aclt'] = 'Kustutada kirju'; +$labels['acle'] = 'Eemalda'; +$labels['aclx'] = 'Kustutada kausta'; +$labels['acla'] = 'Administreerida'; +$labels['acln'] = 'Annoteeri kirja'; +$labels['aclfull'] = 'Täis kontroll'; +$labels['aclother'] = 'Muu'; +$labels['aclread'] = 'Loe'; +$labels['aclwrite'] = 'Kirjuta'; +$labels['acldelete'] = 'Kustuta'; +$labels['shortacll'] = 'Ülevaade'; +$labels['shortaclr'] = 'Loe'; +$labels['shortacls'] = 'Säilita'; +$labels['shortaclw'] = 'Kirjuta'; +$labels['shortacli'] = 'Lisa'; +$labels['shortaclp'] = 'Postita'; +$labels['shortaclc'] = 'Loo'; +$labels['shortaclk'] = 'Loo'; +$labels['shortacld'] = 'Kustuta'; +$labels['shortaclt'] = 'Kustuta'; +$labels['shortacle'] = 'Eemalda'; +$labels['shortaclx'] = 'Kausta kustutamine'; +$labels['shortacla'] = 'Administreerida'; +$labels['shortacln'] = 'Annoteeri'; +$labels['shortaclother'] = 'Muu'; +$labels['shortaclread'] = 'Loe'; +$labels['shortaclwrite'] = 'Kirjuta'; +$labels['shortacldelete'] = 'Kustuta'; +$labels['longacll'] = 'See kaust on nimekirjas nähtav ja seda saab tellida'; +$labels['longaclr'] = 'Kausta saab lugemiseks avada'; +$labels['longacls'] = 'Kirja loetuse lippu saab muuta'; +$labels['longaclw'] = 'Kirja lippe ja otsingusõnu saab muuta, väljaarvatud loetud ja kustutatud'; +$labels['longacli'] = 'Kirju saab salvestada ja kopeerida antud kausta'; +$labels['longaclp'] = 'Kirju saab postitada antud kausta'; +$labels['longaclc'] = 'Kaustasi saab luua (või ümber nimetada) otse siia kausta alla.'; +$labels['longaclk'] = 'Kaustu saab luua (või ümber nimetada) otse siia kausta alla'; +$labels['longacld'] = 'Kirja kustutamis lippu saab muuta'; +$labels['longaclt'] = 'Kirja kustutamis lippu saab muuta'; +$labels['longacle'] = 'Kirju saab eemaldada'; +$labels['longaclx'] = 'Seda kausta ei saa kustutada ega ümber nimetada'; +$labels['longacla'] = 'Selle kausta ligipääsuõigusi saab muuta'; +$labels['longacln'] = 'Kirja jagatud metainfot (annotatsioonid) saab muuta'; +$labels['longaclfull'] = 'Täielik kontroll koos kaustade haldamisega'; +$labels['longaclread'] = 'Kausta saab lugemiseks avada'; +$labels['longaclwrite'] = 'Kirju saab märgistada, salvestada või kopeerida kausta'; +$labels['longacldelete'] = 'Kirju saab kustutada'; +$labels['longaclother'] = 'Muud ligipääsu õigused'; +$labels['ariasummaryacltable'] = 'Nimekir ligipääsu õigustest'; +$labels['arialabelaclactions'] = 'Näita tegevusi'; +$labels['arialabelaclform'] = 'Ligipääsu õiguste vorm'; +$messages['deleting'] = 'Ligipääsuõiguste kustutamine...'; +$messages['saving'] = 'Ligipääsuõiguste salvestamine...'; +$messages['updatesuccess'] = 'Ligipääsuõigused on muudetud'; +$messages['deletesuccess'] = 'Ligipääsuõigused on kustutatud'; +$messages['createsuccess'] = 'Ligipääsuõigused on lisatud'; +$messages['updateerror'] = 'Ligipääsuõiguste uuendamine nurjus'; +$messages['deleteerror'] = 'Ligipääsuõiguste kustutamine nurjus'; +$messages['createerror'] = 'Ligipääsuõiguste andmine nurjus'; +$messages['deleteconfirm'] = 'Oled sa kindel, et sa soovid valitudkasutaja(te) õiguseid kustutada?'; +$messages['norights'] = 'Õigusi pole määratud!'; +$messages['nouser'] = 'Kasutajanime pole määratud!'; +?> diff --git a/data/web/rc/plugins/acl/localization/eu_ES.inc b/data/web/rc/plugins/acl/localization/eu_ES.inc new file mode 100644 index 0000000000000000000000000000000000000000..8625f4d764a83b7d4eae2fe98ac8b97d720cf223 --- /dev/null +++ b/data/web/rc/plugins/acl/localization/eu_ES.inc @@ -0,0 +1,98 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Partekatzen'; +$labels['myrights'] = 'Sarbide-eskubideak'; +$labels['username'] = 'Erabiltzailea:'; +$labels['advanced'] = 'modu aurreratua'; +$labels['newuser'] = 'Gehitu sarrera'; +$labels['editperms'] = 'Editatu baimenak'; +$labels['actions'] = 'Sarbide-eskubideen ekintzak...'; +$labels['anyone'] = 'Erabiltzaile guztiak (edozein)'; +$labels['anonymous'] = 'Gonbidatuak (anonimo)'; +$labels['identifier'] = 'Identifikatzailea'; +$labels['acll'] = 'Bilatu'; +$labels['aclr'] = 'Irakurri mezuak'; +$labels['acls'] = 'Mantendu ikusita egoera'; +$labels['aclw'] = 'Idatzi banderak'; +$labels['acli'] = 'Txertatu (kopiatu barnean)'; +$labels['aclp'] = 'Posta'; +$labels['aclc'] = 'Sortu azpikarpetak'; +$labels['aclk'] = 'Sortu azpikarpetak'; +$labels['acld'] = 'Ezabatu mezuak'; +$labels['aclt'] = 'Ezabatu mezuak'; +$labels['acle'] = 'Kendu'; +$labels['aclx'] = 'Ezabatu karpeta'; +$labels['acla'] = 'Administratu'; +$labels['acln'] = 'Idatzi mezuak'; +$labels['aclfull'] = 'Kontrol osoa'; +$labels['aclother'] = 'Beste'; +$labels['aclread'] = 'Irakurri'; +$labels['aclwrite'] = 'Idatzi'; +$labels['acldelete'] = 'Ezabatu'; +$labels['shortacll'] = 'Bilatu'; +$labels['shortaclr'] = 'Irakurri'; +$labels['shortacls'] = 'Mantendu'; +$labels['shortaclw'] = 'Idatzi'; +$labels['shortacli'] = 'Txertatu'; +$labels['shortaclp'] = 'Bidali'; +$labels['shortaclc'] = 'Sortu'; +$labels['shortaclk'] = 'Sortu'; +$labels['shortacld'] = 'Ezabatu'; +$labels['shortaclt'] = 'Ezabatu'; +$labels['shortacle'] = 'Kendu'; +$labels['shortaclx'] = 'Ezabatu karpeta'; +$labels['shortacla'] = 'Administratu'; +$labels['shortacln'] = 'Idatzi'; +$labels['shortaclother'] = 'Beste'; +$labels['shortaclread'] = 'Irakurri'; +$labels['shortaclwrite'] = 'Idatzi'; +$labels['shortacldelete'] = 'Ezabatu'; +$labels['longacll'] = 'Karpeta hau zerrendan ikusgai dago eta harpidetzen ahal zara'; +$labels['longaclr'] = 'Karpeta ireki daiteke irakurtzeko'; +$labels['longacls'] = 'Mezuen ikusita bandera aldatu daiteke'; +$labels['longaclw'] = 'Mezuen banderak eta gako-hitzak alda daitezke, ikusita eta ezabatuta salbu'; +$labels['longacli'] = 'Mezuak karpetara idatzi edo kopiatu daitezke'; +$labels['longaclp'] = 'Mezuak bidali daitezke karpeta honetara'; +$labels['longaclc'] = 'Karpetak sor daitezke (edo berrizendatu) zuzenean karpeta honetan'; +$labels['longaclk'] = 'Karpetak sor daitezke (edo berrizendatu) karpeta honetan'; +$labels['longacld'] = 'Mezuen ezabatu bandera alda daiteke'; +$labels['longaclt'] = 'Mezuen ezabatu bandera alda daiteke'; +$labels['longacle'] = 'Mezuak betiko ezaba daitezke'; +$labels['longaclx'] = 'Karpeta ezaba edo berrizenda daiteke'; +$labels['longacla'] = 'Karpetaren sarbide eskubideak alda daitezke'; +$labels['longacln'] = 'Partekatutatko mezuen metadatuak (oharrak) alda daitezke'; +$labels['longaclfull'] = 'Kontrol osoa, karpetaren administrazioa barne'; +$labels['longaclread'] = 'Karpeta ireki daiteke irakurtzeko'; +$labels['longaclwrite'] = 'Mezuak marka, idatzi edo kopia daitezke karpetara'; +$labels['longacldelete'] = 'Mezuak ezaba daitezke'; +$labels['longaclother'] = 'Beste sarbide-eskubideak'; +$labels['ariasummaryacltable'] = 'Sarbide-eskubideen zerrenda'; +$labels['arialabelaclactions'] = 'Zerrendatu ekintzak'; +$labels['arialabelaclform'] = 'Sarbide-eskubideen formularioa'; +$messages['deleting'] = 'Sarbide-eskubideak ezabatzen...'; +$messages['saving'] = 'Sarbide-eskubideak gordetzen...'; +$messages['updatesuccess'] = 'Sarbide-eskubideak ongi aldatu dira'; +$messages['deletesuccess'] = 'Sarbide-eskubideak ongi ezabatu dira'; +$messages['createsuccess'] = 'Sarbide-eskubideak ongi gehitu dira'; +$messages['updateerror'] = 'Ezin dira eguneratu sarbide-eskubideak'; +$messages['deleteerror'] = 'Ezin dira ezabatu sarbide-eskubideak'; +$messages['createerror'] = 'Ezin dira gehitu sarbide-eskubideak'; +$messages['deleteconfirm'] = 'Seguru zaude hautatutako erabiltzaile(ar)en sarbide-eskubideak ezabatu nahi duzula?'; +$messages['norights'] = 'Eskubideak ez dira zehaztu!'; +$messages['nouser'] = 'Erabiltzaile-izana ez da zehaztu!'; +?> diff --git a/data/web/rc/plugins/acl/localization/fa_AF.inc b/data/web/rc/plugins/acl/localization/fa_AF.inc new file mode 100644 index 0000000000000000000000000000000000000000..cb051f6c4b9845157b33fdb4a9f8445428639d77 --- /dev/null +++ b/data/web/rc/plugins/acl/localization/fa_AF.inc @@ -0,0 +1,26 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'اشتراک گذاری'; +$labels['username'] = 'کاربر:'; +$labels['newuser'] = 'افزودن مدخل'; +$labels['aclw'] = 'نوشتن نشانه ها'; +$labels['aclp'] = 'ارسال'; +$labels['acla'] = 'مدیر'; +$labels['aclfull'] = 'کنترل کامل'; +$labels['aclother'] = 'دیگر'; +?> diff --git a/data/web/rc/plugins/acl/localization/fa_IR.inc b/data/web/rc/plugins/acl/localization/fa_IR.inc new file mode 100644 index 0000000000000000000000000000000000000000..7b22c406a291fc722a53bb27c11256c76ed48525 --- /dev/null +++ b/data/web/rc/plugins/acl/localization/fa_IR.inc @@ -0,0 +1,98 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'اشتراک‌گذاری'; +$labels['myrights'] = 'حقوق دسترسی'; +$labels['username'] = 'کاربر:'; +$labels['advanced'] = 'حالت پیشرفته'; +$labels['newuser'] = 'افزودن ورودی'; +$labels['editperms'] = 'ویرایش مجوزها'; +$labels['actions'] = 'فعالیت‌های حق دسترسی...'; +$labels['anyone'] = 'همه‌ی کاربران (هر کسی)'; +$labels['anonymous'] = 'مهمان‌ها (ناشناس)'; +$labels['identifier'] = 'شناساگر'; +$labels['acll'] = 'یافتن'; +$labels['aclr'] = 'پیغام‌های خوانده شده'; +$labels['acls'] = 'نگه داشتن حالت بازدید'; +$labels['aclw'] = 'پرچم‌های نوشتن'; +$labels['acli'] = 'وارد کردن (رونوشت در)'; +$labels['aclp'] = 'نوشته'; +$labels['aclc'] = 'ایجاد زیرپوشه‌ها'; +$labels['aclk'] = 'ایجاد زیرپوشه‌ها'; +$labels['acld'] = 'حذف پیغام‌ها'; +$labels['aclt'] = 'حذف پیغام‌ها'; +$labels['acle'] = 'پاک کردن'; +$labels['aclx'] = 'حذف پوشه'; +$labels['acla'] = 'اداره کردن'; +$labels['acln'] = 'حاشیه نویسی پیغام ها'; +$labels['aclfull'] = 'کنترل کامل'; +$labels['aclother'] = 'دیگر'; +$labels['aclread'] = 'خواندن'; +$labels['aclwrite'] = 'نوشتن'; +$labels['acldelete'] = 'حذف کردن'; +$labels['shortacll'] = 'یافتن'; +$labels['shortaclr'] = 'خواندن'; +$labels['shortacls'] = 'نگه داشتن'; +$labels['shortaclw'] = 'نوشتن'; +$labels['shortacli'] = 'جاگذارى'; +$labels['shortaclp'] = 'پست کردن'; +$labels['shortaclc'] = 'ایجاد'; +$labels['shortaclk'] = 'ایجاد'; +$labels['shortacld'] = 'حذف'; +$labels['shortaclt'] = 'حذف'; +$labels['shortacle'] = 'پاک کردن'; +$labels['shortaclx'] = 'حذف پوشه'; +$labels['shortacla'] = 'اداره کردن'; +$labels['shortacln'] = 'حاشیه نویسی'; +$labels['shortaclother'] = 'دیگر'; +$labels['shortaclread'] = 'خواندن'; +$labels['shortaclwrite'] = 'نوشتن'; +$labels['shortacldelete'] = 'حذف کردن'; +$labels['longacll'] = 'پوشه در فهرست‌ها قابل مشاهده است و می‌تواند مشترک آن شد'; +$labels['longaclr'] = 'پوشه می‌تواند برای خواندن باز شود'; +$labels['longacls'] = 'پرچم بازدید پیغام‌ها می‌تواند تغییر داده شود'; +$labels['longaclw'] = 'پرچم و کلیدواژه پیغام‌ها می‌تواند تغییر داده شود، به غیر از بازدید و حذف'; +$labels['longacli'] = 'پیغام‌ها می‌توانند کپی یا نوشته شوند به پوشه'; +$labels['longaclp'] = 'پیغام‌ها می‌توانند پست شوند به این پوشه'; +$labels['longaclc'] = 'پوشه‌ها می‌توانند ایجاد شوند (تغییر نام داد شوند) به طور مستقیم در این پوشه'; +$labels['longaclk'] = 'پوشه‌ها می‌توانند ایجاد شوند (تغییر نام داد شوند) به طور مستقیم در این پوشه'; +$labels['longacld'] = 'پرچم حذف پیغام‌ها می‌تواند تغییر داده شود'; +$labels['longaclt'] = 'پرچم حذف پیغام‌ها می‌تواند تغییر داده شود'; +$labels['longacle'] = 'پیغام‌ها می‌توانند حذف شوند'; +$labels['longaclx'] = 'پوشه می‌تواند حذف یا تغییر نام داده شود'; +$labels['longacla'] = 'حقوق دسترسی پوشه می‌تواند تغییر داده شود'; +$labels['longacln'] = 'اطلاعات متا اشتراک گذاشته شده پیغام‌ها (حاشیه‌ها) می‌تواند تغییر داده شوند'; +$labels['longaclfull'] = 'کنترل کامل شما مدیریت پوشه'; +$labels['longaclread'] = 'پوشه می‌تواند برای خواندن باز شود'; +$labels['longaclwrite'] = 'پیغام‌ها می‌توانند علامتگذاری، نوشته و یا کپی شوند در پوشه'; +$labels['longacldelete'] = 'پیغام‌ها می‌توانند حذف شوند'; +$labels['longaclother'] = 'قوانین دسترسی دیگر'; +$labels['ariasummaryacltable'] = 'فهرست قوانین دسترسی'; +$labels['arialabelaclactions'] = 'فهرست کنش‌ها'; +$labels['arialabelaclform'] = 'فرم قوانین دسترسی'; +$messages['deleting'] = 'حذف کردن حقوق دسترسی...'; +$messages['saving'] = 'ذخیره حقوق دسترسی...'; +$messages['updatesuccess'] = 'حقوق دسترسی با کام‌یابی تغییر کردند'; +$messages['deletesuccess'] = 'حقوق دسترسی با کام‌یابی حذف شدند'; +$messages['createsuccess'] = 'حقوق دسترسی با کام‌یابی اضافه شدند'; +$messages['updateerror'] = 'ناتوانی در روزآمد کردن حقوق دسترسی'; +$messages['deleteerror'] = 'ناتوانی در حذف حقوق دسترسی'; +$messages['createerror'] = 'ناتوانی در اضافه کردن حقوق دسترسی'; +$messages['deleteconfirm'] = 'آیا شما مطمئن هستید که می‌خواهید حقوق دسترسی را برای کاربر(ان) انتخاب شده حذف نمایید؟'; +$messages['norights'] = 'هیچ حقی مشخص نشده است!'; +$messages['nouser'] = 'هیج نام‌کاربری‌ای مشخص نشده است!'; +?> diff --git a/data/web/rc/plugins/acl/localization/fi_FI.inc b/data/web/rc/plugins/acl/localization/fi_FI.inc new file mode 100644 index 0000000000000000000000000000000000000000..27510e849087fbaba4bb54f16de1411418daabf1 --- /dev/null +++ b/data/web/rc/plugins/acl/localization/fi_FI.inc @@ -0,0 +1,55 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Jakaminen'; +$labels['myrights'] = 'Käyttöoikeudet'; +$labels['username'] = 'Käyttäjä:'; +$labels['editperms'] = 'Muokkaa oikeuksia'; +$labels['anyone'] = 'Kaikki käyttäjät (kuka tahansa)'; +$labels['anonymous'] = 'Vieraat (anonyymit)'; +$labels['aclc'] = 'Luo alikansioita'; +$labels['aclk'] = 'Luo alikansioita'; +$labels['acld'] = 'Poista viestejä'; +$labels['aclt'] = 'Poista viestejä'; +$labels['aclx'] = 'Poista kansio'; +$labels['aclfull'] = 'Täydet käyttöoikeudet'; +$labels['aclother'] = 'Muu'; +$labels['aclread'] = 'Luku'; +$labels['aclwrite'] = 'Kirjoitus'; +$labels['acldelete'] = 'Poisto'; +$labels['shortaclc'] = 'Luo'; +$labels['shortaclk'] = 'Luo'; +$labels['shortacld'] = 'Poista'; +$labels['shortaclt'] = 'Poista'; +$labels['shortaclother'] = 'Muu'; +$labels['shortaclread'] = 'Luku'; +$labels['shortaclwrite'] = 'Kirjoitus'; +$labels['shortacldelete'] = 'Poisto'; +$labels['longaclr'] = 'Kansion voi avata lukua varten'; +$labels['longaclx'] = 'Kansio voidaan poistaa tai nimetä uudelleen'; +$labels['longacla'] = 'Kansion käyttöoikeuksia voi muuttaa'; +$messages['deleting'] = 'Poistetaan käyttöoikeuksia...'; +$messages['saving'] = 'Tallennetaan käyttöoikeuksia...'; +$messages['updatesuccess'] = 'Käyttöoikeuksia muutettiin onnistuneesti'; +$messages['deletesuccess'] = 'Käyttöoikeuksia poistettiin onnistuneesti'; +$messages['createsuccess'] = 'Käyttöoikeuksia lisättiin onnistuneesti'; +$messages['updateerror'] = 'Käyttöoikeuksien päivitys epäonnistui'; +$messages['deleteerror'] = 'Käyttöoikeuksien poistaminen epäonnistui'; +$messages['createerror'] = 'Käyttöoikeuksien lisääminen epäonnistui'; +$messages['norights'] = 'Oikeuksia ei ole määritelty!'; +$messages['nouser'] = 'Käyttäjänimeä ei ole määritelty!'; +?> diff --git a/data/web/rc/plugins/acl/localization/fo_FO.inc b/data/web/rc/plugins/acl/localization/fo_FO.inc new file mode 100644 index 0000000000000000000000000000000000000000..80c233cdd423342a94406adf54f2ec1969fa2743 --- /dev/null +++ b/data/web/rc/plugins/acl/localization/fo_FO.inc @@ -0,0 +1,98 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Deiling'; +$labels['myrights'] = 'Atgongdar-rættindi'; +$labels['username'] = 'Brúkari:'; +$labels['advanced'] = 'Víðkað útgáva'; +$labels['newuser'] = 'Legg inn'; +$labels['editperms'] = 'Broyt atgonguloyvi'; +$labels['actions'] = 'Stillingar til atgongu-rættindi'; +$labels['anyone'] = 'Allir brúkarir (øll)'; +$labels['anonymous'] = 'Gestir (dulnevnd)'; +$labels['identifier'] = 'dátuheiti'; +$labels['acll'] = 'Slá upp'; +$labels['aclr'] = 'Les boð'; +$labels['acls'] = 'Varveit lisna støðu'; +$labels['aclw'] = 'Hvít Fløgg'; +$labels['acli'] = 'Inn'; +$labels['aclp'] = 'Send'; +$labels['aclc'] = 'Ger undurmappur'; +$labels['aclk'] = 'Ger undurmappur'; +$labels['acld'] = 'Strika boð'; +$labels['aclt'] = 'Strika boð'; +$labels['acle'] = 'Strika út'; +$labels['aclx'] = 'Strika mappu'; +$labels['acla'] = 'Umsit'; +$labels['acln'] = 'Viðmerk boð'; +$labels['aclfull'] = 'Full stýring'; +$labels['aclother'] = 'Annað'; +$labels['aclread'] = 'Les'; +$labels['aclwrite'] = 'Skriva'; +$labels['acldelete'] = 'Strika'; +$labels['shortacll'] = 'Slá upp'; +$labels['shortaclr'] = 'Les'; +$labels['shortacls'] = 'Varveit'; +$labels['shortaclw'] = 'Skriva'; +$labels['shortacli'] = 'Legg inn'; +$labels['shortaclp'] = 'Send'; +$labels['shortaclc'] = 'Stovna'; +$labels['shortaclk'] = 'Stovna'; +$labels['shortacld'] = 'Strika'; +$labels['shortaclt'] = 'Strika'; +$labels['shortacle'] = 'Strika út'; +$labels['shortaclx'] = 'Strika mappu'; +$labels['shortacla'] = 'Umsit'; +$labels['shortacln'] = 'Viðmerk'; +$labels['shortaclother'] = 'Annað'; +$labels['shortaclread'] = 'Les'; +$labels['shortaclwrite'] = 'Skriva'; +$labels['shortacldelete'] = 'Strika'; +$labels['longacll'] = 'Mappan er sjónlig á listum og til ber at tekna seg fyri hana'; +$labels['longaclr'] = 'Mappan kann verða opna til lesná'; +$labels['longacls'] = 'Viðmerki ið vísur á lisin boð kann broytast'; +$labels['longaclw'] = 'Boð viðmerki og lyklaorð kunnu øll broytast, undantikið Sæð og Strika'; +$labels['longacli'] = 'Boð kunnu verða skriva og flutt til eina aðra mappu'; +$labels['longaclp'] = 'Boð kunnu verða send til hesa mappu'; +$labels['longaclc'] = 'Mappur kunnu verða stovnaðar (ella umdoyptar) beinleiðis undir hesu mappu'; +$labels['longaclk'] = 'Mappur kunnu verða stovnaðar (ella umdoyptar) beinleiðis undir hesu mappu'; +$labels['longacld'] = 'Viðmerki ið vísur á strika boð kann broytast'; +$labels['longaclt'] = 'Viðmerki ið vísur á strika boð kann broytast'; +$labels['longacle'] = 'Boð kunnu verða strika út'; +$labels['longaclx'] = 'Mappan kann verða strika ella umdoypt'; +$labels['longacla'] = 'Atgongdu-rættindini til hesa mappu kunnu broytast'; +$labels['longacln'] = '"Metadata" (viðmerking) av boðum kann broytast'; +$labels['longaclfull'] = 'Full stýring, írokna mappu-umsiting'; +$labels['longaclread'] = 'Mappan kann latast upp til lesná'; +$labels['longaclwrite'] = 'Boð kunnu verða viðmerkt, skriva ella avritast til mappuna'; +$labels['longacldelete'] = 'Boð kunnu verða strikað'; +$labels['longaclother'] = 'Aðrar heimildir'; +$labels['ariasummaryacltable'] = 'Listi yvir brúkara heimildum'; +$labels['arialabelaclactions'] = 'Vís gerðir'; +$labels['arialabelaclform'] = 'Heimilda frymil'; +$messages['deleting'] = 'Strikar atgongu-rættindi...'; +$messages['saving'] = 'Goymur atgongu-rættindi...'; +$messages['updatesuccess'] = 'Atgongu-rættindi broytt væleyndað'; +$messages['deletesuccess'] = 'Atgongu-rættindi strika væleyndað'; +$messages['createsuccess'] = 'Atgongu-rættindi stovna væleyndað'; +$messages['updateerror'] = 'Til ber ikki at dagføra atgongu-rættindi'; +$messages['deleteerror'] = 'Til ber ikki at strika atgongu-rættindi'; +$messages['createerror'] = 'Til ber ikki at leggja aftrat atgongu-rættindi'; +$messages['deleteconfirm'] = 'Ert tú vís/ur í at tú ynskir at strika atgongu-rættindini hjá valdum brúkar(um)?'; +$messages['norights'] = 'Eingi rættindi tilskila!'; +$messages['nouser'] = 'Einki brúkaranavn var tilskila!'; +?> diff --git a/data/web/rc/plugins/acl/localization/fr_FR.inc b/data/web/rc/plugins/acl/localization/fr_FR.inc new file mode 100644 index 0000000000000000000000000000000000000000..fdfb20548def49e62e8db1272a78e6766525b3fb --- /dev/null +++ b/data/web/rc/plugins/acl/localization/fr_FR.inc @@ -0,0 +1,98 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Partage'; +$labels['myrights'] = 'Droits d\'accès'; +$labels['username'] = 'Utilisateur :'; +$labels['advanced'] = 'Mode avancé'; +$labels['newuser'] = 'Ajouter une entrée'; +$labels['editperms'] = 'Modifier les permissions'; +$labels['actions'] = 'Actions des droits d\'accès...'; +$labels['anyone'] = 'Tous les utilisateurs (n\'importe qui)'; +$labels['anonymous'] = 'Invités (anonyme)'; +$labels['identifier'] = 'Identifiant'; +$labels['acll'] = 'Consultation'; +$labels['aclr'] = 'Lire les courriels'; +$labels['acls'] = 'Garder l\'état « vu »'; +$labels['aclw'] = 'Drapeaux d\'écriture'; +$labels['acli'] = 'Insérer (copier dans)'; +$labels['aclp'] = 'Publier'; +$labels['aclc'] = 'Créer des sous-dossiers'; +$labels['aclk'] = 'Créer des sous-dossiers'; +$labels['acld'] = 'Supprimer des courriels'; +$labels['aclt'] = 'Supprimer des courriels'; +$labels['acle'] = 'Purger'; +$labels['aclx'] = 'Supprimer un dossier'; +$labels['acla'] = 'Administrer'; +$labels['acln'] = 'Annoter les courriels'; +$labels['aclfull'] = 'Contrôle total'; +$labels['aclother'] = 'Autre'; +$labels['aclread'] = 'Lecture'; +$labels['aclwrite'] = 'Écriture'; +$labels['acldelete'] = 'Supprimer'; +$labels['shortacll'] = 'Consultation'; +$labels['shortaclr'] = 'Lecture'; +$labels['shortacls'] = 'Conserver'; +$labels['shortaclw'] = 'Écriture'; +$labels['shortacli'] = 'Insérer'; +$labels['shortaclp'] = 'Publier'; +$labels['shortaclc'] = 'Créer'; +$labels['shortaclk'] = 'Créer'; +$labels['shortacld'] = 'Supprimer'; +$labels['shortaclt'] = 'Supprimer'; +$labels['shortacle'] = 'Purger'; +$labels['shortaclx'] = 'Suppression de dossier'; +$labels['shortacla'] = 'Administrer'; +$labels['shortacln'] = 'Annoter'; +$labels['shortaclother'] = 'Autre'; +$labels['shortaclread'] = 'Lecture'; +$labels['shortaclwrite'] = 'Écriture'; +$labels['shortacldelete'] = 'Supprimer'; +$labels['longacll'] = 'Ce dossier est visible dans les listes et on peut s\'y abonner'; +$labels['longaclr'] = 'Le dossier peut-être ouvert en lecture'; +$labels['longacls'] = 'Le drapeau Vu des courriels peut-être changée'; +$labels['longaclw'] = 'Les drapeaux et mots-clés des courriels peuvent être changés, sauf pour Vu et Supprimé'; +$labels['longacli'] = 'Les courriels peuvent-être écrits ou copiés dans le dossier'; +$labels['longaclp'] = 'Les courriels peuvent-être publiés dans ce dossier'; +$labels['longaclc'] = 'Les dossiers peuvent-être créés (ou renommés) directement depuis ce dossier'; +$labels['longaclk'] = 'Les dossiers peuvent-être créés (ou renommés) directement depuis ce dossier'; +$labels['longacld'] = 'Le drapeau de suppression des courriels peut-être modifiée'; +$labels['longaclt'] = 'Le drapeau de suppression des courriels peut-être modifiée'; +$labels['longacle'] = 'Les courriels peuvent-être purgés'; +$labels['longaclx'] = 'Le dossier peut-être supprimé ou renommé'; +$labels['longacla'] = 'Les droits d\'accès du dossier peuvent être modifiés'; +$labels['longacln'] = 'Les métadonnées partagées des courriels (annotations) peuvent être changées'; +$labels['longaclfull'] = 'Contrôle total, incluant l\'administration des dossiers'; +$labels['longaclread'] = 'Le dossier peut-être ouvert en lecture'; +$labels['longaclwrite'] = 'Les courriels peuvent-être marqués, écrits ou copiés dans ce dossier'; +$labels['longacldelete'] = 'Les courriels peuvent être supprimés'; +$labels['longaclother'] = 'Autres droits d\'accès'; +$labels['ariasummaryacltable'] = 'Liste de droits d\'accès'; +$labels['arialabelaclactions'] = 'Lister les actions'; +$labels['arialabelaclform'] = 'Formulaire de droits d\'accès'; +$messages['deleting'] = 'Suppression des droits d\'accès…'; +$messages['saving'] = 'Enregistrement des droits d\'accès…'; +$messages['updatesuccess'] = 'Les droits d\'accès ont été changés avec succès'; +$messages['deletesuccess'] = 'Les droits d\'accès ont été supprimés avec succès'; +$messages['createsuccess'] = 'Les droits d\'accès ont été ajoutés avec succès'; +$messages['updateerror'] = 'Impossible de mettre à jour les droits d\'accès'; +$messages['deleteerror'] = 'Impossible de supprimer les droits d\'accès'; +$messages['createerror'] = 'Impossible d\'ajouter des droits d\'accès'; +$messages['deleteconfirm'] = 'Êtes-vous sûr de vouloir retirer les droits d\'accès des utilisateurs sélectionnés ?'; +$messages['norights'] = 'Aucun droit n\'a été spécifié !'; +$messages['nouser'] = 'Aucun nom d\'utilisateur n\'a été spécifié !'; +?> diff --git a/data/web/rc/plugins/acl/localization/fy_NL.inc b/data/web/rc/plugins/acl/localization/fy_NL.inc new file mode 100644 index 0000000000000000000000000000000000000000..aba20494590440734e5cbcede34ee2848f9d5325 --- /dev/null +++ b/data/web/rc/plugins/acl/localization/fy_NL.inc @@ -0,0 +1,23 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['username'] = 'Brûker:'; +$labels['acldelete'] = 'Fuortsmite'; +$labels['shortacld'] = 'Fuortsmite'; +$labels['shortaclt'] = 'Fuortsmite'; +$labels['shortacldelete'] = 'Fuortsmite'; +?> diff --git a/data/web/rc/plugins/acl/localization/gl_ES.inc b/data/web/rc/plugins/acl/localization/gl_ES.inc new file mode 100644 index 0000000000000000000000000000000000000000..c1841f5aada8e39d42f99a6460fce28abe913829 --- /dev/null +++ b/data/web/rc/plugins/acl/localization/gl_ES.inc @@ -0,0 +1,98 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Compartindo'; +$labels['myrights'] = 'Permisos de acceso'; +$labels['username'] = 'Utente:'; +$labels['advanced'] = 'Modo avanzado'; +$labels['newuser'] = 'Engadir entrada'; +$labels['editperms'] = 'Editar permisos'; +$labels['actions'] = 'Accións sobre os Permisos de acceso...'; +$labels['anyone'] = 'Todas as persoas usuarias (calquera)'; +$labels['anonymous'] = 'Persoas convidadas (anónimo)'; +$labels['identifier'] = 'Identificador'; +$labels['acll'] = 'Bloquear'; +$labels['aclr'] = 'Ler mensaxes'; +$labels['acls'] = 'Manter estado actividade'; +$labels['aclw'] = 'Marcas de lectura'; +$labels['acli'] = 'Engadir (Copiar en)'; +$labels['aclp'] = 'Envío'; +$labels['aclc'] = 'Crear subcartafoles'; +$labels['aclk'] = 'Crear subcartafoles'; +$labels['acld'] = 'Borrar mensaxes'; +$labels['aclt'] = 'Borrar mensaxes'; +$labels['acle'] = 'Expurga'; +$labels['aclx'] = 'Eliminar cartafol'; +$labels['acla'] = 'Administrar'; +$labels['acln'] = 'Crear anotacións para as mensaxes'; +$labels['aclfull'] = 'Control total'; +$labels['aclother'] = 'Outros'; +$labels['aclread'] = 'Lectura'; +$labels['aclwrite'] = 'Escritura'; +$labels['acldelete'] = 'Borrado'; +$labels['shortacll'] = 'Buscar'; +$labels['shortaclr'] = 'Ler'; +$labels['shortacls'] = 'Manter'; +$labels['shortaclw'] = 'Escribir'; +$labels['shortacli'] = 'Inserir'; +$labels['shortaclp'] = 'Publicar'; +$labels['shortaclc'] = 'Crear'; +$labels['shortaclk'] = 'Crear'; +$labels['shortacld'] = 'Eliminar'; +$labels['shortaclt'] = 'Eliminar'; +$labels['shortacle'] = 'Expurga'; +$labels['shortaclx'] = 'Eliminar cartafol'; +$labels['shortacla'] = 'Administrar'; +$labels['shortacln'] = 'Crear anotación'; +$labels['shortaclother'] = 'Outros'; +$labels['shortaclread'] = 'Lectura'; +$labels['shortaclwrite'] = 'Escritura'; +$labels['shortacldelete'] = 'Eliminar'; +$labels['longacll'] = 'O cartafol é visíbel e pode ser subscrito'; +$labels['longaclr'] = 'Pódese abrir o cartafol para lectura'; +$labels['longacls'] = 'Pódese mudar o marcador de Mensaxes Enviadas'; +$labels['longaclw'] = 'Pódense mudar marcadores e palabras chave agás Vistas e Borradas'; +$labels['longacli'] = 'Pódense escreber ou copiar as mensaxes a este cartafol'; +$labels['longaclp'] = 'Pódense enviar as mensaxes a este cartafol'; +$labels['longaclc'] = 'Pódense crear (ou renomear) os cartafoles directamente baixo deste cartafol'; +$labels['longaclk'] = 'Pódense crear (ou renomear) os cartafoles directamente baixo deste cartafol'; +$labels['longacld'] = 'Pódense mudar as mensaxes coa marca Eliminar'; +$labels['longaclt'] = 'Pódense mudar as mensaxes coa marca Eliminar'; +$labels['longacle'] = 'As mensaxes poden ser expurgadas'; +$labels['longaclx'] = 'Pódese borrar ou renomear o cartafol'; +$labels['longacla'] = 'Pódense mudar os permisos de acceso ao cartafol'; +$labels['longacln'] = 'Pódense trocar as anotacións das mensaxes'; +$labels['longaclfull'] = 'Control total inclúe administración de cartafoles'; +$labels['longaclread'] = 'Pódese abrir o cartafol para lectura'; +$labels['longaclwrite'] = 'Pódense marcar, escribir ou copiar as mensaxes no cartafol'; +$labels['longacldelete'] = 'Pódense borrar as mensaxes'; +$labels['longaclother'] = 'Outros dereitos de acceso'; +$labels['ariasummaryacltable'] = 'Lista de dereitos de acceso'; +$labels['arialabelaclactions'] = 'Accións de lista'; +$labels['arialabelaclform'] = 'Formulario de dereitos de acceso'; +$messages['deleting'] = 'Borrando permisos de acceso...'; +$messages['saving'] = 'Gardando permisos de acceso...'; +$messages['updatesuccess'] = 'Mudados con éxito os permisos de acceso'; +$messages['deletesuccess'] = 'Borrados con éxito os permisos de acceso'; +$messages['createsuccess'] = 'Engadidos con éxito os permisos de acceso'; +$messages['updateerror'] = 'Non se poden actualizar os permisos de acceso'; +$messages['deleteerror'] = 'Non se poden borrar os permisos de acceso'; +$messages['createerror'] = 'Non se poden engadir permisos de acceso'; +$messages['deleteconfirm'] = 'De certo que queres eliminar os permisos de acceso da(s) persoa(s) usuaria(s) escollida(s)?'; +$messages['norights'] = 'Non se especificaron permisos!'; +$messages['nouser'] = 'Non se especificou o nome da persoa usuaria!'; +?> diff --git a/data/web/rc/plugins/acl/localization/he_IL.inc b/data/web/rc/plugins/acl/localization/he_IL.inc new file mode 100644 index 0000000000000000000000000000000000000000..e2bc226967ec8ea3b07f44063310606781bed155 --- /dev/null +++ b/data/web/rc/plugins/acl/localization/he_IL.inc @@ -0,0 +1,98 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'שיתוף'; +$labels['myrights'] = 'זכויות גישה'; +$labels['username'] = 'משתמש:'; +$labels['advanced'] = 'מצב מתקדם'; +$labels['newuser'] = 'הוסף ערך'; +$labels['editperms'] = 'עריכת הרשאות'; +$labels['actions'] = 'פעולות על זכויות גישה...'; +$labels['anyone'] = 'כל המשתמשים (כל אחד)'; +$labels['anonymous'] = 'אורחים (אנונימי)'; +$labels['identifier'] = 'מזהה'; +$labels['acll'] = 'חיפוש'; +$labels['aclr'] = 'קריאת הודעות'; +$labels['acls'] = 'שמירה על סטטוס נראה'; +$labels['aclw'] = 'דגלי כתיבה'; +$labels['acli'] = 'הוספה בין ערכים (העתקה לתוך)'; +$labels['aclp'] = 'פרסום'; +$labels['aclc'] = 'יצירת תת־תיקיות'; +$labels['aclk'] = 'יצירת תת־תיקיות'; +$labels['acld'] = 'מחיקת הודעות'; +$labels['aclt'] = 'מחיקת הודעות'; +$labels['acle'] = 'ניקוי רשומות שבוטלו'; +$labels['aclx'] = 'מחיקת תיקיה'; +$labels['acla'] = 'מנהל'; +$labels['acln'] = 'הוספה של הערת תיוג להודעות'; +$labels['aclfull'] = 'שליטה מלאה'; +$labels['aclother'] = 'אחר'; +$labels['aclread'] = 'קריאה'; +$labels['aclwrite'] = 'כתיבה'; +$labels['acldelete'] = 'מחיקה'; +$labels['shortacll'] = 'חיפוש'; +$labels['shortaclr'] = 'קריאה'; +$labels['shortacls'] = 'להשאיר'; +$labels['shortaclw'] = 'כתיבה'; +$labels['shortacli'] = 'הוספה בין ערכים'; +$labels['shortaclp'] = 'פרסום'; +$labels['shortaclc'] = 'יצירה'; +$labels['shortaclk'] = 'יצירה'; +$labels['shortacld'] = 'מחיקה'; +$labels['shortaclt'] = 'מחיקה'; +$labels['shortacle'] = 'ניקוי רשומות שבוטלו'; +$labels['shortaclx'] = 'מחיקת תיקיה'; +$labels['shortacla'] = 'מנהל'; +$labels['shortacln'] = 'הוספה של הערת תיוג'; +$labels['shortaclother'] = 'אחר'; +$labels['shortaclread'] = 'קריאה'; +$labels['shortaclwrite'] = 'כתיבה'; +$labels['shortacldelete'] = 'מחיקה'; +$labels['longacll'] = 'התיקיה תראה ברשימות וניתן יהיה להרשם אליה'; +$labels['longaclr'] = 'ניתן לפתוח את התיקיה ולקרוא בה'; +$labels['longacls'] = 'ניתן לשנות דגל נראה בהודעות'; +$labels['longaclw'] = 'ניתן לשנות דגלים ומילות מפתח בהודעות, למעט נראה ונמחק'; +$labels['longacli'] = 'ניתן לכתוב הודעות לתיקיה או למוחקן'; +$labels['longaclp'] = 'ניתן לפרסם הודעות לתוך תיקיה זו'; +$labels['longaclc'] = 'ניתן ליצור (או לשנות שם) תיקיות, ישירות תחת תיקיה זו'; +$labels['longaclk'] = 'ניתן ליצור (או לשנות שם) תיקיות, ישירות תחת תיקיה זו'; +$labels['longacld'] = 'ניתן לשנות דגל נמחק של הודעות'; +$labels['longaclt'] = 'ניתן לשנות דגל נמחק של הודעות'; +$labels['longacle'] = 'ניתן לנקות הודעות שסומנו כמבוטלות'; +$labels['longaclx'] = 'ניתן למחוק תיקיה זו או לשנות שמה'; +$labels['longacla'] = 'ניתן לשנות זכויות גישה של תיקיה זו'; +$labels['longacln'] = 'ניתן לשנות הערות תיוג המשותפות להודעות'; +$labels['longaclfull'] = 'שליטה מלאה כולל ניהול התיקיה'; +$labels['longaclread'] = 'ניתן לפתוח את התיקיה ולקרוא בה'; +$labels['longaclwrite'] = 'ניתן לסמן, לכתוב או להעתיק הודעות לתיקיה זו'; +$labels['longacldelete'] = 'ניתן למחוק הודעות'; +$labels['longaclother'] = 'זכויות גישה אחרות'; +$labels['ariasummaryacltable'] = 'רשימת זכויות גישה'; +$labels['arialabelaclactions'] = 'רשימת פעולות'; +$labels['arialabelaclform'] = 'טופס זכויות גישה'; +$messages['deleting'] = 'זכויות גישה נמחקות...'; +$messages['saving'] = 'זכויות גישה נשמרות...'; +$messages['updatesuccess'] = 'זכויות גישה שונו בהצלחה'; +$messages['deletesuccess'] = 'זכויות גישה נמחקו בהצלחה'; +$messages['createsuccess'] = 'זכויות גישה נוספו בהצלחה'; +$messages['updateerror'] = 'לא ניתן לעדכן הרשאות גישה'; +$messages['deleteerror'] = 'לא ניתן למחוק זכויות גישה'; +$messages['createerror'] = 'לא ניתן להוסיף זכויות גישה'; +$messages['deleteconfirm'] = 'האם ודאי שברצונך להסיר זכויות גישה של המשתמש(ים) שנבחרו?'; +$messages['norights'] = 'לא צוינו זכויות גישה כלשהן !'; +$messages['nouser'] = 'לא צוין שם משתמש כלשהו!'; +?> diff --git a/data/web/rc/plugins/acl/localization/hr_HR.inc b/data/web/rc/plugins/acl/localization/hr_HR.inc new file mode 100644 index 0000000000000000000000000000000000000000..1feef2418325b86e54dcf39f04d9473eb50ffef9 --- /dev/null +++ b/data/web/rc/plugins/acl/localization/hr_HR.inc @@ -0,0 +1,90 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Dijeljenje'; +$labels['myrights'] = 'Prava pristupa'; +$labels['username'] = 'Korisnik:'; +$labels['newuser'] = 'Dodaj unos/pravilo'; +$labels['editperms'] = 'Uredi dozvole'; +$labels['actions'] = 'Akcije prava pristupa...'; +$labels['anyone'] = 'Svi korisnici (anyone)'; +$labels['anonymous'] = 'Gosti (anonymous)'; +$labels['identifier'] = 'Identifikator'; +$labels['acll'] = 'Pretraga'; +$labels['aclr'] = 'Pročitaj poruke'; +$labels['acls'] = 'Zadrži u stanju "Viđeno"'; +$labels['aclw'] = 'Zapiši oznake'; +$labels['acli'] = 'Umetni (kopiraj u)'; +$labels['aclp'] = 'Pošalji'; +$labels['aclc'] = 'Napravi podmapu'; +$labels['aclk'] = 'Napravi podmapu'; +$labels['acld'] = 'Obriši poruke'; +$labels['aclt'] = 'Obriši poruke'; +$labels['acle'] = 'Trajno obriši'; +$labels['aclx'] = 'Obriši mapu'; +$labels['acla'] = 'Administriraj'; +$labels['aclfull'] = 'Potpuna kontrola'; +$labels['aclother'] = 'Drugo'; +$labels['aclread'] = 'Čitanje'; +$labels['aclwrite'] = 'Pisanje'; +$labels['acldelete'] = 'Obriši'; +$labels['shortacll'] = 'Pretraži'; +$labels['shortaclr'] = 'Čitaj'; +$labels['shortacls'] = 'Zadrži'; +$labels['shortaclw'] = 'Piši'; +$labels['shortacli'] = 'Umetni'; +$labels['shortaclp'] = 'Pošalji'; +$labels['shortaclc'] = 'Stvori'; +$labels['shortaclk'] = 'Stvori'; +$labels['shortacld'] = 'Obriši'; +$labels['shortaclt'] = 'Obriši'; +$labels['shortacle'] = 'Trajno obriši'; +$labels['shortaclx'] = 'Obriši mapu'; +$labels['shortacla'] = 'Administriraj'; +$labels['shortaclother'] = 'Drugo'; +$labels['shortaclread'] = 'Čitanje'; +$labels['shortaclwrite'] = 'Pisanje'; +$labels['shortacldelete'] = 'Brisanje'; +$labels['longacll'] = 'Mapa je vidljiva u listi i može se na nju pretplatiti'; +$labels['longaclr'] = 'Mapa može biti otvorena za čitanje'; +$labels['longacls'] = 'Oznaku "Viđeno" je moguće mijenjati u porukama'; +$labels['longaclw'] = 'Oznake i ključne riječi, osim oznaka "Viđeno" i "Obrisano", se mogu mijenjati'; +$labels['longacli'] = 'Poruke mogu biti pohranjene ili kopirane u mapu'; +$labels['longaclp'] = 'Poruke mogu biti postavljene u mapu'; +$labels['longaclc'] = 'Mape pod ovom mapom se mogu stvarati (i preimenovati)'; +$labels['longaclk'] = 'Mape pod ovom mapom se mogu stvarati (i preimenovati)'; +$labels['longacld'] = 'Oznaku "Obrisano" je moguće mijenjati u porukama'; +$labels['longaclt'] = 'Oznaku "Obrisano" je moguće mijenjati u porukama'; +$labels['longacle'] = 'Poruke mogu biti izbrisane'; +$labels['longaclx'] = 'Mapa može biti obrisana ili preimenovana'; +$labels['longacla'] = 'Prava pristupa nad mapom se mogu mijenjati'; +$labels['longaclfull'] = 'Potpuna kontrola uključujući administraciju mapa'; +$labels['longaclread'] = 'Mapa može biti otvorena za čitanje'; +$labels['longaclwrite'] = 'Poruke mogu biti označene, pohranjene ili kopirane u mapu'; +$labels['longacldelete'] = 'Poruke mogu biti obrisane'; +$messages['deleting'] = 'Brišem prava pristupa...'; +$messages['saving'] = 'Pohranjujem prava pristupa'; +$messages['updatesuccess'] = 'Prava pristupa uspješno promjenjena'; +$messages['deletesuccess'] = 'Prava pristupa uspješno obrisana'; +$messages['createsuccess'] = 'Prava pristupa uspješno dodana'; +$messages['updateerror'] = 'Ne mogu pohraniti vCard'; +$messages['deleteerror'] = 'Ne mogu obrisati prava pristupa'; +$messages['createerror'] = 'Ne mogu dodati prava pristupa'; +$messages['deleteconfirm'] = 'Jeste li sigurni da želite obrisati prava pristupa za odabranog korisnika(e)?'; +$messages['norights'] = 'Nije navedeno pravo pristupa!'; +$messages['nouser'] = 'Nije navedeno korisničko ime!'; +?> diff --git a/data/web/rc/plugins/acl/localization/hu_HU.inc b/data/web/rc/plugins/acl/localization/hu_HU.inc new file mode 100644 index 0000000000000000000000000000000000000000..61aee9cdd8c89b1863b5bb0ffb0cd44c6a289833 --- /dev/null +++ b/data/web/rc/plugins/acl/localization/hu_HU.inc @@ -0,0 +1,98 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Megosztás'; +$labels['myrights'] = 'Hozzáférési jogok'; +$labels['username'] = 'Felhasználó:'; +$labels['advanced'] = 'Haladó mód'; +$labels['newuser'] = 'Elem hozzáadása'; +$labels['editperms'] = 'Jogosultságok szerkesztése'; +$labels['actions'] = 'Hozzáférési jogok müveletei..'; +$labels['anyone'] = 'Minden felhasználó (bárki)'; +$labels['anonymous'] = 'Vendégek (névtelen)'; +$labels['identifier'] = 'Azonosító'; +$labels['acll'] = 'Keresés'; +$labels['aclr'] = 'Üzenetek olvasása'; +$labels['acls'] = 'Olvasottsági állapot megtartása'; +$labels['aclw'] = 'Üzenet jelölése'; +$labels['acli'] = 'Beillesztés (Bemásolás)'; +$labels['aclp'] = 'Bejegyzés'; +$labels['aclc'] = 'Almappa létrehozás'; +$labels['aclk'] = 'Almappa létrehozás'; +$labels['acld'] = 'Üzenetek törlése'; +$labels['aclt'] = 'Üzenetek törlése'; +$labels['acle'] = 'Törölt üzenetek eltávolítása'; +$labels['aclx'] = 'Mappa törlés'; +$labels['acla'] = 'Adminisztrátor'; +$labels['acln'] = 'Üzenetekhez címkézés'; +$labels['aclfull'] = 'Teljes hozzáférés'; +$labels['aclother'] = 'Egyéb'; +$labels['aclread'] = 'Olvasás'; +$labels['aclwrite'] = 'Írás'; +$labels['acldelete'] = 'Törlés'; +$labels['shortacll'] = 'Keresés'; +$labels['shortaclr'] = 'Olvasás'; +$labels['shortacls'] = 'Megtartás'; +$labels['shortaclw'] = 'Írás'; +$labels['shortacli'] = 'Beszúrás'; +$labels['shortaclp'] = 'Bejegyzés'; +$labels['shortaclc'] = 'Létrehozás'; +$labels['shortaclk'] = 'Létrehozás'; +$labels['shortacld'] = 'Törlés'; +$labels['shortaclt'] = 'Törlés'; +$labels['shortacle'] = 'Törölt üzenetek eltávolítása'; +$labels['shortaclx'] = 'Mappa törlése'; +$labels['shortacla'] = 'Adminisztrátor'; +$labels['shortacln'] = 'Cimkézés'; +$labels['shortaclother'] = 'Egyéb'; +$labels['shortaclread'] = 'Olvasás'; +$labels['shortaclwrite'] = 'Írás'; +$labels['shortacldelete'] = 'Törlés'; +$labels['longacll'] = 'A mappa látható a listán és fel tudsz rá iratkozni.'; +$labels['longaclr'] = 'A mappa olvasásra megnyitható'; +$labels['longacls'] = 'Az üzenet megtekintési állapota módosítható'; +$labels['longaclw'] = 'Az üzenetek jelölései és kulcsszavai módosíthatóak, kivéve az olvasottsági állapotot és az üzenet törölt állapotát.'; +$labels['longacli'] = 'Üzenetek irhatóak és máolshatóak a mappába.'; +$labels['longaclp'] = 'Ebbe a mappába tudsz üzeneteket tenni.'; +$labels['longaclc'] = 'Mappák létrehozhazóak (átnevezhetőek) ez alatt a mappa alatt.'; +$labels['longaclk'] = 'Mappák létrehozhazóak (átnevezhetőek) ez alatt a mappa alatt.'; +$labels['longacld'] = 'Üzenet törölve jelző módositható.'; +$labels['longaclt'] = 'Üzenet törölve jelző módositható.'; +$labels['longacle'] = 'Az üzenetek véglegesen eltávolíthatóak'; +$labels['longaclx'] = 'A mappa törölhető vagy átnevezhető'; +$labels['longacla'] = 'A mappa hozzáférési jogai módosíthatóak'; +$labels['longacln'] = 'Üzenetek megosztott metaadatai(cimkéi) módosíthatoak'; +$labels['longaclfull'] = 'Teljes hozzáférés beleértve a mappák kezelését'; +$labels['longaclread'] = 'A mappa olvasásra megnyitható'; +$labels['longaclwrite'] = 'Az üzenetek megjelölhetök, irhatók és másolhatók ebbe a mappába'; +$labels['longacldelete'] = 'Az üzenetek törölhetőek'; +$labels['longaclother'] = 'Egyébb hozzáférési jogok'; +$labels['ariasummaryacltable'] = 'Hozzáférési jogok listája'; +$labels['arialabelaclactions'] = 'Listázási müveletek'; +$labels['arialabelaclform'] = 'Hozzáférési jogok űrlap'; +$messages['deleting'] = 'Hozzáférési jogok törlése...'; +$messages['saving'] = 'Hozzáférési jogok mentése...'; +$messages['updatesuccess'] = 'A hozzáférési jogok sikeresen módosultak.'; +$messages['deletesuccess'] = 'A hozzáférési jogok törlése sikeresen megtörtént.'; +$messages['createsuccess'] = 'A hozzáférési jogok hozzáadása sikeresen megtörtént.'; +$messages['updateerror'] = 'Nem sikerült módosítani a hozzáférési jogokat.'; +$messages['deleteerror'] = 'Nem sikerült törölni a hozzáférési jogokat.'; +$messages['createerror'] = 'Nem sikerült a hozzáférési jogok hozzáadása'; +$messages['deleteconfirm'] = 'Biztosan eltávolítja a kiválasztott felhasználó(k) hozzáférési jogait?'; +$messages['norights'] = 'Nincsennek jogok megadva.'; +$messages['nouser'] = 'A felhasználónév nincs megadva.'; +?> diff --git a/data/web/rc/plugins/acl/localization/hy_AM.inc b/data/web/rc/plugins/acl/localization/hy_AM.inc new file mode 100644 index 0000000000000000000000000000000000000000..62f081fe32555cc499f9fb5a98c1633aaa914f98 --- /dev/null +++ b/data/web/rc/plugins/acl/localization/hy_AM.inc @@ -0,0 +1,98 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Կիսվել'; +$labels['myrights'] = 'Մուտքի իրավունքներ'; +$labels['username'] = 'Օգտատեր`'; +$labels['advanced'] = 'Առաջադեմ ռեժիմ'; +$labels['newuser'] = 'Ավելացնել գրառում'; +$labels['editperms'] = 'Խմբագրել թույլտվությունները'; +$labels['actions'] = 'Մուտքի իրավունքների գործողություններ…'; +$labels['anyone'] = 'Բոլոր օգտվողները (ցանկացած)'; +$labels['anonymous'] = 'Հյուրերը (անանուն)'; +$labels['identifier'] = 'Նկարագրիչ'; +$labels['acll'] = 'Փնտրում'; +$labels['aclr'] = 'Կարդալ հաղորդագրությունները'; +$labels['acls'] = 'Պահպանել դիտման կարգավիճակը'; +$labels['aclw'] = 'Գրառման նշումներ'; +$labels['acli'] = 'Ներդնել (Պատճենել ներս)'; +$labels['aclp'] = 'Հրապարակել'; +$labels['aclc'] = 'Ստեղծել ենթապանակներ'; +$labels['aclk'] = 'Ստեղծել ենթապանակներ'; +$labels['acld'] = 'Ջնջել հաղորդագրությունները'; +$labels['aclt'] = 'Ջնջել հաղորդագրությունները'; +$labels['acle'] = 'Հեռացնել'; +$labels['aclx'] = 'Ջնջել պանակը'; +$labels['acla'] = 'Կառավարել'; +$labels['acln'] = 'Ծանոթագրել հաղորդագրությունները'; +$labels['aclfull'] = 'Լրիվ վերահսկում'; +$labels['aclother'] = 'Այլ'; +$labels['aclread'] = 'Կարդալ'; +$labels['aclwrite'] = 'Գրել'; +$labels['acldelete'] = 'Ջնջել'; +$labels['shortacll'] = 'Փնտրում'; +$labels['shortaclr'] = 'Կարդալ'; +$labels['shortacls'] = 'Պահել'; +$labels['shortaclw'] = 'Գրել'; +$labels['shortacli'] = 'Ներդնել'; +$labels['shortaclp'] = 'Հրապարակել'; +$labels['shortaclc'] = 'Ստեղծել'; +$labels['shortaclk'] = 'Ստեղծել'; +$labels['shortacld'] = 'Ջնջել'; +$labels['shortaclt'] = 'Ջնջել'; +$labels['shortacle'] = 'Հեռացնել'; +$labels['shortaclx'] = 'Պանակի ջնջում'; +$labels['shortacla'] = 'Կառավարել'; +$labels['shortacln'] = 'Ծանոթագրել'; +$labels['shortaclother'] = 'Այլ'; +$labels['shortaclread'] = 'Կարդալ'; +$labels['shortaclwrite'] = 'Գրել'; +$labels['shortacldelete'] = 'Ջնջել'; +$labels['longacll'] = 'Պանակը երևում է ցուցակներում և նրան հնարավոր է բաժանորդագրվել'; +$labels['longaclr'] = 'Պանակը կարող է բացվել ընթերցման համար'; +$labels['longacls'] = 'Տեսված հաղորդագրությունների նշումը կարող է փոփոխվել'; +$labels['longaclw'] = 'Հաղորդագրությունների նշումները և հիմնաբառերը կարող են փոփոխվել, բացառությամբ Տեսած և Ջնջված նշումների'; +$labels['longacli'] = 'Հաղորդագրությունները կարող են գրվել և պատճենվել պանակի մեջ'; +$labels['longaclp'] = 'Հաղորդագրությունները կարող են հրապարակվել այս պանակում'; +$labels['longaclc'] = 'Պանակները կարող են ստեղծվել (կամ վերանվանվել) այս պանակում'; +$labels['longaclk'] = 'Պանակները կարող են ստեղծվել (կամ վերանվանվել) այս պանակում'; +$labels['longacld'] = 'Հաղորդագրությունների Ջնջել նշումը կարող է փոփոխվել'; +$labels['longaclt'] = 'Հաղորդագրությունների Ջնջել նշումը կարող է փոփոխվել'; +$labels['longacle'] = 'Հաղորդագրությունները կարող են հեռացվել'; +$labels['longaclx'] = 'Պանակը կարող է ջնջվել կամ վերանվանվել'; +$labels['longacla'] = 'Պանակի մուտքի իրավունքները կարող են փոփոխվել'; +$labels['longacln'] = 'Հաղորդագրությունների բաշխված տվյալները (ծանոթագրությունները) կարող են փոփոխվել'; +$labels['longaclfull'] = 'Լրիվ վերահսկում ներառյալ պանակների կառավարումը'; +$labels['longaclread'] = 'Պանակը կարող է բացվել ընթերցման համար'; +$labels['longaclwrite'] = 'Հաղորդագրությունները կարող են նշվել, ստեղծվել և պատճենվել այս պանակում'; +$labels['longacldelete'] = 'Հաղորդագրությունները կարող են ջնջվել'; +$labels['longaclother'] = 'Մուտքի այլ իրավունքները'; +$labels['ariasummaryacltable'] = 'Մուտքի իրավունքների ցուցակը'; +$labels['arialabelaclactions'] = 'Գործողությունների ցուցակը'; +$labels['arialabelaclform'] = 'Մուտքի իրավունքների բլանկ'; +$messages['deleting'] = 'Ջնջվում են մուտքի իրավունքները…'; +$messages['saving'] = 'Պահպանվում են մուտքի իրավունքները…'; +$messages['updatesuccess'] = 'Մուտքի իրավունքները բարեհաջող փոփոխվեցին։'; +$messages['deletesuccess'] = 'Մուտքի իրավունքները բարեհաջող ջնջվեցին։'; +$messages['createsuccess'] = 'Մուտքի իրավունքները բարեհաջող ավելացվեցվին։'; +$messages['updateerror'] = 'Մուտքի իրավունքների թարմացումը անջատել'; +$messages['deleteerror'] = 'Մուտքի իրավունքները ջնջումը ձախողվեց։'; +$messages['createerror'] = 'Մուտքի իրավունքները ավելացումը ձախողվեց։'; +$messages['deleteconfirm'] = 'Դուք վստա՞հ էք, որ ցանկանում եք նշված օգտվողներին զրկել մուտքի իրավունքներից։'; +$messages['norights'] = 'Ոչ մի իրավունք չի՛ նշվել։'; +$messages['nouser'] = 'Օգտվողի անունը չի՛ նշվել։'; +?> diff --git a/data/web/rc/plugins/acl/localization/ia.inc b/data/web/rc/plugins/acl/localization/ia.inc new file mode 100644 index 0000000000000000000000000000000000000000..c3627389d2e178a7fd669b59dddf42595926c50c --- /dev/null +++ b/data/web/rc/plugins/acl/localization/ia.inc @@ -0,0 +1,98 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Uso in commun'; +$labels['myrights'] = 'Derectos de accesso'; +$labels['username'] = 'Usator:'; +$labels['advanced'] = 'Modo avantiate'; +$labels['newuser'] = 'Adder entrata'; +$labels['editperms'] = 'Modificar permissiones'; +$labels['actions'] = 'Actiones de derecto de accesso...'; +$labels['anyone'] = 'Tote le usatores (non importa qui)'; +$labels['anonymous'] = 'Hospites (anonyme)'; +$labels['identifier'] = 'Identificator'; +$labels['acll'] = 'Cercar'; +$labels['aclr'] = 'Leger messages'; +$labels['acls'] = 'Retener le stato Vidite'; +$labels['aclw'] = 'Signales de scriptura'; +$labels['acli'] = 'Inserer (copiar in)'; +$labels['aclp'] = 'Inviar'; +$labels['aclc'] = 'Crear subdossieres'; +$labels['aclk'] = 'Crear subdossieres'; +$labels['acld'] = 'Deler messages'; +$labels['aclt'] = 'Deler messages'; +$labels['acle'] = 'Expunger'; +$labels['aclx'] = 'Deler dossier'; +$labels['acla'] = 'Administrar'; +$labels['acln'] = 'Annotar messages'; +$labels['aclfull'] = 'Controlo total'; +$labels['aclother'] = 'Altere'; +$labels['aclread'] = 'Leger'; +$labels['aclwrite'] = 'Scriber'; +$labels['acldelete'] = 'Deler'; +$labels['shortacll'] = 'Cercar'; +$labels['shortaclr'] = 'Leger'; +$labels['shortacls'] = 'Retener'; +$labels['shortaclw'] = 'Scriber'; +$labels['shortacli'] = 'Inserer'; +$labels['shortaclp'] = 'Inviar'; +$labels['shortaclc'] = 'Crear'; +$labels['shortaclk'] = 'Crear'; +$labels['shortacld'] = 'Deler'; +$labels['shortaclt'] = 'Deler'; +$labels['shortacle'] = 'Expunger'; +$labels['shortaclx'] = 'Deletion de dossier'; +$labels['shortacla'] = 'Administrar'; +$labels['shortacln'] = 'Annotar'; +$labels['shortaclother'] = 'Altere'; +$labels['shortaclread'] = 'Leger'; +$labels['shortaclwrite'] = 'Scriber'; +$labels['shortacldelete'] = 'Deler'; +$labels['longacll'] = 'Le dossier es visibile in listas e on pote subscriber se a illo'; +$labels['longaclr'] = 'Le dossier pote esser aperite pro lectura'; +$labels['longacls'] = 'Le signal "Vidite" de messages pote esser cambiate'; +$labels['longaclw'] = 'Le signales e parolas-clave de messages pote esser cambiate, excepte "Vidite" e "Delite"'; +$labels['longacli'] = 'Messages pote esser scribite o copiate al dossier'; +$labels['longaclp'] = 'Messages pote esser inviate a iste dossier'; +$labels['longaclc'] = 'Dossieres pote esser create (o renominate) directemente sub iste dossier'; +$labels['longaclk'] = 'Dossieres pote esser create (o renominate) directemente sub iste dossier'; +$labels['longacld'] = 'Le signal "Deler" de messages pote esser cambiate'; +$labels['longaclt'] = 'Le signal "Deler" de messages pote esser cambiate'; +$labels['longacle'] = 'Messages pote esser expungite'; +$labels['longaclx'] = 'Le dossier pote esser delite o renominate'; +$labels['longacla'] = 'Le derectos de accesso del dossier pote esser cambiate'; +$labels['longacln'] = 'Le metadatos commun (annotationes) de messages pote esser cambiate'; +$labels['longaclfull'] = 'Controlo total incluse le administration de dossieres'; +$labels['longaclread'] = 'Le dossier pote esser aperite pro lectura'; +$labels['longaclwrite'] = 'Messages pote esser marcate, scribite o copiate al dossier'; +$labels['longacldelete'] = 'Messages pote esser delite'; +$labels['longaclother'] = 'Altere derectos de accesso'; +$labels['ariasummaryacltable'] = 'Lista de derectos de accesso'; +$labels['arialabelaclactions'] = 'Listar actiones'; +$labels['arialabelaclform'] = 'Formulario de derectos de accesso'; +$messages['deleting'] = 'A deler derectos de accesso...'; +$messages['saving'] = 'A salveguardar derectos de accesso...'; +$messages['updatesuccess'] = 'Le derectos de accesso ha essite cambiate'; +$messages['deletesuccess'] = 'Le derectos de accesso ha essite delite'; +$messages['createsuccess'] = 'Le derectos de accesso ha essite addite'; +$messages['updateerror'] = 'Impossibile actualisar le derectos de accesso'; +$messages['deleteerror'] = 'Impossibile deler derectos de accesso'; +$messages['createerror'] = 'Impossibile adder derectos de accesso'; +$messages['deleteconfirm'] = 'Es vos secur de voler remover le derectos de accesso del usator(es) seligite?'; +$messages['norights'] = 'Nulle derecto ha essite specificate.'; +$messages['nouser'] = 'Nulle nomine de usator ha essite specificate.'; +?> diff --git a/data/web/rc/plugins/acl/localization/id_ID.inc b/data/web/rc/plugins/acl/localization/id_ID.inc new file mode 100644 index 0000000000000000000000000000000000000000..b33597d28083bf19635679f33e83c6bdeb53446d --- /dev/null +++ b/data/web/rc/plugins/acl/localization/id_ID.inc @@ -0,0 +1,98 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Berbagi'; +$labels['myrights'] = 'Hak Akses'; +$labels['username'] = 'Pengguna:'; +$labels['advanced'] = 'Mode Lanjut'; +$labels['newuser'] = 'Tambahkan entri'; +$labels['editperms'] = 'Ubah izin'; +$labels['actions'] = 'Aksi hak akses...'; +$labels['anyone'] = 'Semua pengguna (siapa saja)'; +$labels['anonymous'] = 'Para tamu (anonim)'; +$labels['identifier'] = 'Yang mengidentifikasi'; +$labels['acll'] = 'Cari'; +$labels['aclr'] = 'Baca pesan'; +$labels['acls'] = 'Jaga status terbaca'; +$labels['aclw'] = 'Membuat tanda'; +$labels['acli'] = 'Sisipkan (Salin kedalam)'; +$labels['aclp'] = 'Tulisan'; +$labels['aclc'] = 'Buat subfolder'; +$labels['aclk'] = 'Buat subfolder'; +$labels['acld'] = 'Hapus pesan'; +$labels['aclt'] = 'Hapus pesan'; +$labels['acle'] = 'Menghapus'; +$labels['aclx'] = 'Hapus folder'; +$labels['acla'] = 'Kelola'; +$labels['acln'] = 'Berikan keterangan pesan'; +$labels['aclfull'] = 'Kendali penuh'; +$labels['aclother'] = 'Lainnya'; +$labels['aclread'] = 'Baca'; +$labels['aclwrite'] = 'Tulis'; +$labels['acldelete'] = 'Hapus'; +$labels['shortacll'] = 'Cari'; +$labels['shortaclr'] = 'Baca'; +$labels['shortacls'] = 'Simpan'; +$labels['shortaclw'] = 'Tulis'; +$labels['shortacli'] = 'Sisipkan'; +$labels['shortaclp'] = 'Tulisan'; +$labels['shortaclc'] = 'Buat'; +$labels['shortaclk'] = 'Buat'; +$labels['shortacld'] = 'Hapus'; +$labels['shortaclt'] = 'Hapus'; +$labels['shortacle'] = 'Buang'; +$labels['shortaclx'] = 'Hapus folder'; +$labels['shortacla'] = 'Kelola'; +$labels['shortacln'] = 'Berikan keterangan'; +$labels['shortaclother'] = 'Lainnya'; +$labels['shortaclread'] = 'Baca'; +$labels['shortaclwrite'] = 'Tulis'; +$labels['shortacldelete'] = 'Hapus'; +$labels['longacll'] = 'Folder terlihat di daftar dan dapat dijadikan langganan'; +$labels['longaclr'] = 'Folder dapat dibuka untuk dibaca'; +$labels['longacls'] = 'Tanda pesan terbaca dapat diubah'; +$labels['longaclw'] = 'Tanda pesan dan kata kunci dapat diubah, kecuali Terbaca dan Terhapus'; +$labels['longacli'] = 'Pesan dapat ditulis atau disalin kedalam folder'; +$labels['longaclp'] = 'Pesan dapat dikirim ke folder ini'; +$labels['longaclc'] = 'Folder dapat dibuat (atau diubah namanya) langsung dari folder ini'; +$labels['longaclk'] = 'Folder dapat dibuat (atau diubah namanya) langsung dari folder ini'; +$labels['longacld'] = 'Tanda hapus pesan dapat diubah'; +$labels['longaclt'] = 'Tanda hapus pesan dapat diubah'; +$labels['longacle'] = 'Pesan dapat dibuang'; +$labels['longaclx'] = 'Folder dapat dihapus atau diubah namanya'; +$labels['longacla'] = 'Hak akses folder dapat diubah'; +$labels['longacln'] = 'Metadata pesan bersama (penjelasan) dapat diubah'; +$labels['longaclfull'] = 'Kendali penuh penuh termasuk administrasi'; +$labels['longaclread'] = 'Folder dapat dibuka untuk dibaca'; +$labels['longaclwrite'] = 'Pesan dapat ditandai, ditulis atau disalin kedalam folder'; +$labels['longacldelete'] = 'Pesan dapat dihapus'; +$labels['longaclother'] = 'Hak akses lainnya'; +$labels['ariasummaryacltable'] = 'Daftar hak akses'; +$labels['arialabelaclactions'] = 'Aksi daftar'; +$labels['arialabelaclform'] = 'Formulir hak akses'; +$messages['deleting'] = 'Menghapus hak akses...'; +$messages['saving'] = 'Menyimpan hak akses...'; +$messages['updatesuccess'] = 'Hak akses berhasil diubah'; +$messages['deletesuccess'] = 'Hak akses berhasil dihapus'; +$messages['createsuccess'] = 'Hak akses berhasil ditambahkan'; +$messages['updateerror'] = 'Tidak dapat memperbaharui hak akses'; +$messages['deleteerror'] = 'Tidak dapat menghapus hak akses'; +$messages['createerror'] = 'Tidak dapat menambah hak akses'; +$messages['deleteconfirm'] = 'Apakah Anda yakin ingin menghapus hak akses dari user terpilih?'; +$messages['norights'] = 'Hak belum ditentukan!'; +$messages['nouser'] = 'Username belum ditentukan!'; +?> diff --git a/data/web/rc/plugins/acl/localization/is_IS.inc b/data/web/rc/plugins/acl/localization/is_IS.inc new file mode 100644 index 0000000000000000000000000000000000000000..df8d40bbbd79a6e0d1331d3162fdee37f7d963ba --- /dev/null +++ b/data/web/rc/plugins/acl/localization/is_IS.inc @@ -0,0 +1,21 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['aclread'] = 'Lesið'; +$labels['shortaclr'] = 'Lesið'; +$labels['shortaclread'] = 'Lesið'; +?> diff --git a/data/web/rc/plugins/acl/localization/it_IT.inc b/data/web/rc/plugins/acl/localization/it_IT.inc new file mode 100644 index 0000000000000000000000000000000000000000..8ec70720422e841c3e1fc75815a1af45946d6299 --- /dev/null +++ b/data/web/rc/plugins/acl/localization/it_IT.inc @@ -0,0 +1,98 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Condivisione'; +$labels['myrights'] = 'Diritti d\'accesso'; +$labels['username'] = 'Utente:'; +$labels['advanced'] = 'Modalità avanzata'; +$labels['newuser'] = 'Aggiungi voce'; +$labels['editperms'] = 'Modifica permessi'; +$labels['actions'] = 'Azioni permessi d\'accesso...'; +$labels['anyone'] = 'Tutti gli utenti'; +$labels['anonymous'] = 'Osptiti (anonimi)'; +$labels['identifier'] = 'Identificatore'; +$labels['acll'] = 'Ricerca'; +$labels['aclr'] = 'Leggi messaggi'; +$labels['acls'] = 'Mantieni lo stato Visto'; +$labels['aclw'] = 'Flag di scrittura'; +$labels['acli'] = 'Inserisci (Copia in)'; +$labels['aclp'] = 'Invio'; +$labels['aclc'] = 'Crea sottocartelle'; +$labels['aclk'] = 'Crea sottocartelle'; +$labels['acld'] = 'Elimina messaggi'; +$labels['aclt'] = 'Elimina messaggi'; +$labels['acle'] = 'Elimina'; +$labels['aclx'] = 'Elimina cartella'; +$labels['acla'] = 'Amministra'; +$labels['acln'] = 'Annota messaggi'; +$labels['aclfull'] = 'Controllo completo'; +$labels['aclother'] = 'Altro'; +$labels['aclread'] = 'Lettura'; +$labels['aclwrite'] = 'Scrittura'; +$labels['acldelete'] = 'Elimina'; +$labels['shortacll'] = 'Ricerca'; +$labels['shortaclr'] = 'Lettura'; +$labels['shortacls'] = 'Mantieni'; +$labels['shortaclw'] = 'Scrivi'; +$labels['shortacli'] = 'Inserisci'; +$labels['shortaclp'] = 'Invio'; +$labels['shortaclc'] = 'Crea'; +$labels['shortaclk'] = 'Crea'; +$labels['shortacld'] = 'Elimina'; +$labels['shortaclt'] = 'Elimina'; +$labels['shortacle'] = 'Elimina'; +$labels['shortaclx'] = 'Elimina cartella'; +$labels['shortacla'] = 'Amministra'; +$labels['shortacln'] = 'Annota'; +$labels['shortaclother'] = 'Altro'; +$labels['shortaclread'] = 'Lettura'; +$labels['shortaclwrite'] = 'Scrittura'; +$labels['shortacldelete'] = 'Elimina'; +$labels['longacll'] = 'La cartella è visibile sulle liste e può essere sottoscritta'; +$labels['longaclr'] = 'Questa cartella può essere aperta in lettura'; +$labels['longacls'] = 'Il flag Messaggio Visto può essere cambiato'; +$labels['longaclw'] = 'I flag dei messaggi e le keywords possono essere cambiati, ad esclusione di Visto ed Eliminato'; +$labels['longacli'] = 'I messaggi possono essere scritti o copiati nella cartella'; +$labels['longaclp'] = 'I messaggi possono essere inviati a questa cartella'; +$labels['longaclc'] = 'Possono essere create (o rinominata) cartelle direttamente in questa cartella.'; +$labels['longaclk'] = 'Possono essere create (o rinominata) cartelle direttamente in questa cartella.'; +$labels['longacld'] = 'Il flag Messaggio Eliminato può essere cambiato'; +$labels['longaclt'] = 'Il flag Messaggio Eliminato può essere cambiato'; +$labels['longacle'] = 'I messaggi possono essere cancellati'; +$labels['longaclx'] = 'La cartella può essere eliminata o rinominata'; +$labels['longacla'] = 'I diritti di accesso della cartella possono essere cambiati'; +$labels['longacln'] = 'I metadati (annotazioni) dei messaggi condivisi possono essere modificati'; +$labels['longaclfull'] = 'Controllo completo incluso cartella di amministrazione'; +$labels['longaclread'] = 'Questa cartella può essere aperta in lettura'; +$labels['longaclwrite'] = 'I messaggi possono essere marcati, scritti o copiati nella cartella'; +$labels['longacldelete'] = 'I messaggi possono essere eliminati'; +$labels['longaclother'] = 'Altri diritti di accesso'; +$labels['ariasummaryacltable'] = 'Elenco dei diritti di accesso'; +$labels['arialabelaclactions'] = 'Lista azioni'; +$labels['arialabelaclform'] = 'Modulo di accesso'; +$messages['deleting'] = 'Sto eliminando i diritti di accesso...'; +$messages['saving'] = 'Sto salvando i diritti di accesso...'; +$messages['updatesuccess'] = 'I diritti d\'accesso sono stati cambiati'; +$messages['deletesuccess'] = 'I diritti d\'accesso sono stati eliminati'; +$messages['createsuccess'] = 'I diritti d\'accesso sono stati aggiunti'; +$messages['updateerror'] = 'Impossibile aggiornare i diritti d\'accesso'; +$messages['deleteerror'] = 'Impossibile eliminare i diritti d\'accesso'; +$messages['createerror'] = 'Impossibile aggiungere i diritti d\'accesso'; +$messages['deleteconfirm'] = 'Sei sicuro, vuoi rimuovere i diritti d\'accesso degli utenti selezionati?'; +$messages['norights'] = 'Nessun diritto specificato!'; +$messages['nouser'] = 'Lo username non è stato specificato!'; +?> diff --git a/data/web/rc/plugins/acl/localization/ja_JP.inc b/data/web/rc/plugins/acl/localization/ja_JP.inc new file mode 100644 index 0000000000000000000000000000000000000000..52c5940e65e41967b42eb44402ad6de16564338e --- /dev/null +++ b/data/web/rc/plugins/acl/localization/ja_JP.inc @@ -0,0 +1,98 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = '共有'; +$labels['myrights'] = 'アクセス権'; +$labels['username'] = 'ユーザー:'; +$labels['advanced'] = '詳細なモード'; +$labels['newuser'] = '項目を追加'; +$labels['editperms'] = '編集の権限'; +$labels['actions'] = 'アクセス権の動作...'; +$labels['anyone'] = '(誰でも)すべてのユーザー'; +$labels['anonymous'] = 'ゲスト(匿名)'; +$labels['identifier'] = '識別子'; +$labels['acll'] = '検索'; +$labels['aclr'] = 'メッセージを読む'; +$labels['acls'] = '既読の状態を保持'; +$labels['aclw'] = '書き込みフラッグ'; +$labels['acli'] = '挿入(中に複製)'; +$labels['aclp'] = '投稿'; +$labels['aclc'] = 'サブフォルダを作成'; +$labels['aclk'] = 'サブフォルダを作成'; +$labels['acld'] = 'メッセージを削除'; +$labels['aclt'] = 'メッセージを削除'; +$labels['acle'] = '抹消'; +$labels['aclx'] = 'フォルダーを削除'; +$labels['acla'] = '管理'; +$labels['acln'] = 'メッセージに注釈'; +$labels['aclfull'] = '完全な制御'; +$labels['aclother'] = 'その他'; +$labels['aclread'] = '読み込み'; +$labels['aclwrite'] = '書き込み'; +$labels['acldelete'] = '削除'; +$labels['shortacll'] = '検索'; +$labels['shortaclr'] = '読み込み'; +$labels['shortacls'] = '保持'; +$labels['shortaclw'] = '書き込み'; +$labels['shortacli'] = '挿入'; +$labels['shortaclp'] = '投稿'; +$labels['shortaclc'] = '作成'; +$labels['shortaclk'] = '作成'; +$labels['shortacld'] = '削除'; +$labels['shortaclt'] = '削除'; +$labels['shortacle'] = '抹消'; +$labels['shortaclx'] = 'フォルダーの削除'; +$labels['shortacla'] = '管理'; +$labels['shortacln'] = '注釈'; +$labels['shortaclother'] = 'その他'; +$labels['shortaclread'] = '読み込み'; +$labels['shortaclwrite'] = '書き込み'; +$labels['shortacldelete'] = '削除'; +$labels['longacll'] = 'フォルダーをリストに見えるようにして登録可能:'; +$labels['longaclr'] = 'フォルダーを読むことを可能'; +$labels['longacls'] = 'メッセージの既読のフラッグの変更を可能'; +$labels['longaclw'] = '既読と削除のフラッグを除く、メッセージのフラッグとキーワードの変更を可能'; +$labels['longacli'] = 'メッセージに書き込みとフォルダーへの複製を可能'; +$labels['longaclp'] = 'メッセージをこのフォルダーに投稿を可能'; +$labels['longaclc'] = 'このフォルダーの直下にフォルダーの作成と名前の変更を可能'; +$labels['longaclk'] = 'このフォルダーの直下にフォルダーの作成と名前の変更を可能'; +$labels['longacld'] = 'メッセージの削除フラッグの変更を可能'; +$labels['longaclt'] = 'メッセージの削除フラッグの変更を可能'; +$labels['longacle'] = 'メッセージの抹消を可能'; +$labels['longaclx'] = 'このフォルダーの削除や名前の変更を可能'; +$labels['longacla'] = 'フォルダーのアクセス権の変更を可能'; +$labels['longacln'] = 'メッセージの共有されるメタデータ(注釈)の変更を可能'; +$labels['longaclfull'] = 'フォルダーの管理を含めた完全な制御を可能'; +$labels['longaclread'] = 'フォルダーを読むことを可能'; +$labels['longaclwrite'] = 'メッセージにマークの設定、書き込み、フォルダーに複製を可能'; +$labels['longacldelete'] = 'メッセージの削除を可能'; +$labels['longaclother'] = '他のアクセス権'; +$labels['ariasummaryacltable'] = 'アクセス権の一覧'; +$labels['arialabelaclactions'] = '動作を一覧'; +$labels['arialabelaclform'] = 'アクセス権の欄'; +$messages['deleting'] = 'アクセス権を削除中...'; +$messages['saving'] = 'アクセス権を保存中...'; +$messages['updatesuccess'] = 'アクセス権を変更しました。'; +$messages['deletesuccess'] = 'アクセス権を削除しました。'; +$messages['createsuccess'] = 'アクセス権を追加しました。'; +$messages['updateerror'] = 'アクセス権を更新できません。'; +$messages['deleteerror'] = 'アクセス権を削除できません。'; +$messages['createerror'] = 'アクセス権を追加できません。'; +$messages['deleteconfirm'] = '選択したユーザーのアクセス件を本当に削除したいですか?'; +$messages['norights'] = '何の権限も指定されていません!'; +$messages['nouser'] = 'ユーザー名を指定していません!'; +?> diff --git a/data/web/rc/plugins/acl/localization/ka_GE.inc b/data/web/rc/plugins/acl/localization/ka_GE.inc new file mode 100644 index 0000000000000000000000000000000000000000..064a3946b571509a7c83c273e01bcac5d7ec3248 --- /dev/null +++ b/data/web/rc/plugins/acl/localization/ka_GE.inc @@ -0,0 +1,21 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['aclread'] = 'წაკითხვა'; +$labels['shortaclr'] = 'წაკითხვა'; +$labels['shortaclread'] = 'წაკითხვა'; +?> diff --git a/data/web/rc/plugins/acl/localization/km_KH.inc b/data/web/rc/plugins/acl/localization/km_KH.inc new file mode 100644 index 0000000000000000000000000000000000000000..8310d4e8108de51a8fa6b7661ebdba17434efe5b --- /dev/null +++ b/data/web/rc/plugins/acl/localization/km_KH.inc @@ -0,0 +1,74 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'ការ​ចែក​រំលែក'; +$labels['myrights'] = 'សិទ្ធិ​ចូល'; +$labels['username'] = 'អ្នក​ប្រើ៖'; +$labels['advanced'] = 'បែប​កម្រិត​ខ្ពស់'; +$labels['newuser'] = 'បន្ថែម​ធាតុ'; +$labels['actions'] = 'សកម្មភាព​សិទ្ធិ​ចូល...'; +$labels['anyone'] = 'អ្នក​ប្រើ​ទាំង​អស់ (នរណា​ម្នាក់)'; +$labels['anonymous'] = 'ភ្ញៀវ (អនាមិក)'; +$labels['acll'] = 'ស្វែងរក'; +$labels['aclr'] = 'អាន​សារ'; +$labels['acli'] = 'បញ្ចូល (ចម្លង​មក​ដាក់)'; +$labels['aclp'] = 'ប្រកាស'; +$labels['aclc'] = 'បង្កើត​ថត​រង'; +$labels['aclk'] = 'បង្កើត​ថត​រង'; +$labels['acld'] = 'លុប​សារ'; +$labels['aclt'] = 'លុប​សារ'; +$labels['acle'] = 'ដកចេញ'; +$labels['aclx'] = 'លុប​ថត'; +$labels['acla'] = 'អភិបាល'; +$labels['aclfull'] = 'បញ្ជា​ទាំង​អស់'; +$labels['aclother'] = 'ផ្សេងៗ'; +$labels['aclread'] = 'អាន'; +$labels['aclwrite'] = 'សរសេរ'; +$labels['acldelete'] = 'លុប'; +$labels['shortacll'] = 'ស្វែងរក'; +$labels['shortaclr'] = 'អាន'; +$labels['shortacls'] = 'រក្សា'; +$labels['shortaclw'] = 'សរសេរ'; +$labels['shortacli'] = 'បញ្ចូល'; +$labels['shortaclp'] = 'ប្រកាស'; +$labels['shortaclc'] = 'បង្កើត'; +$labels['shortaclk'] = 'បង្កើត'; +$labels['shortacld'] = 'លុប'; +$labels['shortaclt'] = 'លុប'; +$labels['shortacle'] = 'ដកចេញ'; +$labels['shortaclx'] = 'ការ​លុប​ថត'; +$labels['shortacla'] = 'អភិបាល'; +$labels['shortaclother'] = 'ផ្សេងៗ'; +$labels['shortaclread'] = 'អាន'; +$labels['shortaclwrite'] = 'សរសេរ'; +$labels['shortacldelete'] = 'លុប'; +$labels['longaclr'] = 'ថត​នេះ​អាច​បើក​សម្រាប់​អាន'; +$labels['longacle'] = 'សារ​នេះ​អាច​ត្រូវ​បាន​ដក​ចេញ'; +$labels['longaclx'] = 'ថត​នេះ អាច​ត្រូវ​បាន​លុប ឬ​ ប្ដូរ​ឈ្មោះ'; +$labels['longacla'] = 'សិទ្ធិ​ចូល​ទៅ​កាន់​ថត​នេះ​អាច​ត្រូវ​បាន​​ផ្លាស់​ប្ដូរ​'; +$labels['longacldelete'] = 'សារ​នេះ​អាច​ត្រូវ​បាន​លុប'; +$messages['deleting'] = 'កំពុង​លុប​សិទ្ធិ​ចូល...'; +$messages['saving'] = 'រក្សា​ទុក​សិទ្ធិ​ចូល...'; +$messages['deletesuccess'] = 'លុប​សិទ្ធិ​ចូល​ដោយ​ជោគជ័យ​'; +$messages['createsuccess'] = 'បន្ថែម​សិទ្ធិ​ចូល​ដោយ​ជោគជ័យ'; +$messages['updateerror'] = 'មិន​អាច​ធ្វើ​បច្ចុប្បន្នភាព​សិទ្ធិ​ចូល'; +$messages['deleteerror'] = 'មិន​អាច​លុប​សិទ្ធិ​ចូល'; +$messages['createerror'] = 'មិន​អាច​បន្ថែម​សិទ្ធិ​ចូល'; +$messages['deleteconfirm'] = 'តើ​អ្នក​ពិត​ជា​ចង់​ដក​សិទ្ធ​ចូល​ពី​អ្នក​ប្រើប្រាស់​ដែល​បាន​រើស​មែនទេ?'; +$messages['norights'] = 'មិន​បាន​បញ្ជាក់​សិទ្ធិ​ច្បាស់​លាស់!'; +$messages['nouser'] = 'មិន​បាន​បញ្ជាក់​ឈ្មោះ​អ្នក​ប្រើ!'; +?> diff --git a/data/web/rc/plugins/acl/localization/ko_KR.inc b/data/web/rc/plugins/acl/localization/ko_KR.inc new file mode 100644 index 0000000000000000000000000000000000000000..60b4b302b6ff08a1b45565d55481de9ff38b7e94 --- /dev/null +++ b/data/web/rc/plugins/acl/localization/ko_KR.inc @@ -0,0 +1,98 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = '공유'; +$labels['myrights'] = '접근 권한'; +$labels['username'] = '사용자:'; +$labels['advanced'] = '고급 모드'; +$labels['newuser'] = '입력내용 추가'; +$labels['editperms'] = '권한 수정'; +$labels['actions'] = '접근 권한 동작...'; +$labels['anyone'] = '모든 사용자 (아무나)'; +$labels['anonymous'] = '방문자 (익명)'; +$labels['identifier'] = '식별자'; +$labels['acll'] = '조회'; +$labels['aclr'] = '읽은 메시지'; +$labels['acls'] = '읽은 상태 유지'; +$labels['aclw'] = '쓰기 깃발'; +$labels['acli'] = '삽입 (복사할 위치)'; +$labels['aclp'] = '게시'; +$labels['aclc'] = '하위 폴더 생성'; +$labels['aclk'] = '하위 폴더 생성'; +$labels['acld'] = '메시지 삭제'; +$labels['aclt'] = '메시지 삭제'; +$labels['acle'] = '영구 제거'; +$labels['aclx'] = '폴더 삭제'; +$labels['acla'] = '관리'; +$labels['acln'] = '메시지에 주석 추가'; +$labels['aclfull'] = '전체 제어 권한'; +$labels['aclother'] = '기타'; +$labels['aclread'] = '읽음'; +$labels['aclwrite'] = '쓰기'; +$labels['acldelete'] = '삭제'; +$labels['shortacll'] = '조회'; +$labels['shortaclr'] = '읽음'; +$labels['shortacls'] = '보관'; +$labels['shortaclw'] = '쓰기'; +$labels['shortacli'] = '삽입'; +$labels['shortaclp'] = '게시'; +$labels['shortaclc'] = '생성'; +$labels['shortaclk'] = '생성'; +$labels['shortacld'] = '삭제'; +$labels['shortaclt'] = '삭제'; +$labels['shortacle'] = '지움'; +$labels['shortaclx'] = '폴더 삭제'; +$labels['shortacla'] = '관리'; +$labels['shortacln'] = '주석 추가'; +$labels['shortaclother'] = '기타'; +$labels['shortaclread'] = '읽기'; +$labels['shortaclwrite'] = '쓱'; +$labels['shortacldelete'] = '삭제'; +$labels['longacll'] = '폴더가 목록에 나타나고 다음 사용자가 구독할 수 있음:'; +$labels['longaclr'] = '읽기 위해 폴더를 열 수 있음'; +$labels['longacls'] = '읽은 메시지 깃발이 변경될 수 있음'; +$labels['longaclw'] = '메시지 깃발 및 키워드를 변경할 수 있음, 다만 읽음 및 삭제됨은 제외됨'; +$labels['longacli'] = '메시지를 폴더에 복사하거나 작성할 수 있음'; +$labels['longaclp'] = '메시지가 이 폴더에 게시될 수 있음'; +$labels['longaclc'] = '이 폴더의 바로 아래에 폴더를 생성(또는 이름 변경)할 수 있음'; +$labels['longaclk'] = '이 폴더의 바로 아래에 폴더를 생성(또는 이름 변경)할 수 있음'; +$labels['longacld'] = '메시지 삭제 깃발이 변경될 수 있음'; +$labels['longaclt'] = '메시지 삭제 깃발이 변경될 수 있음'; +$labels['longacle'] = '메시지가 영구 제거될 수 있음'; +$labels['longaclx'] = '폴더를 삭제하거나 이름을 변경 할 수 있음'; +$labels['longacla'] = '폴더의 접근 권한을 변경할 수 있음'; +$labels['longacln'] = '공유된 메타데이터(주석)은 변경될 수 있습니다'; +$labels['longaclfull'] = '폴더 관리를 포함한 전체 제어 권한'; +$labels['longaclread'] = '폴더를 열어 읽을 수 있음'; +$labels['longaclwrite'] = '메시지를 표시하거나, 폴더로 이동 또는 복사할 수 있음'; +$labels['longacldelete'] = '메시지를 삭제할 수 있음'; +$labels['longaclother'] = '기타 접근 권한'; +$labels['ariasummaryacltable'] = '접근 권한 목록'; +$labels['arialabelaclactions'] = '목록 동작'; +$labels['arialabelaclform'] = '접근 권한 양식'; +$messages['deleting'] = '접근 권한을 삭제하는 중...'; +$messages['saving'] = '접근 권한을 저장하는 중...'; +$messages['updatesuccess'] = '접근 권한을 성공적으로 변경함'; +$messages['deletesuccess'] = '접근 권한을 성공적으로 삭제함.'; +$messages['createsuccess'] = '접근 권한을 성공적으로 추가함.'; +$messages['updateerror'] = '접근 권한을 업데이트 할 수 없음'; +$messages['deleteerror'] = '접근 권한을 삭제할 수 없음'; +$messages['createerror'] = '접근 권한을 추가할 수 없음'; +$messages['deleteconfirm'] = '정말로 선택한 사용자의 접근 권한을 삭제하시겠습니까?'; +$messages['norights'] = '지정된 권한이 없음!'; +$messages['nouser'] = '지정된 사용자명이 없음!'; +?> diff --git a/data/web/rc/plugins/acl/localization/ku.inc b/data/web/rc/plugins/acl/localization/ku.inc new file mode 100644 index 0000000000000000000000000000000000000000..7746462604a3558c9434efcc8878a0256b0ce0fa --- /dev/null +++ b/data/web/rc/plugins/acl/localization/ku.inc @@ -0,0 +1,89 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Parvekirin'; +$labels['myrights'] = 'Mafên Têketinê'; +$labels['username'] = 'Bikarhêner:'; +$labels['advanced'] = 'Moda pêşketî'; +$labels['newuser'] = 'Têketinek zêde bike'; +$labels['editperms'] = 'Destûrdayînan Sererast Bike'; +$labels['actions'] = 'Digihîje tevgerên çê..'; +$labels['anyone'] = 'Hemû bikarhêner (her kes)'; +$labels['anonymous'] = 'Mêvan (gelêrî)'; +$labels['identifier'] = 'Danasîner'; +$labels['acll'] = 'Lê bigere'; +$labels['aclr'] = 'Peyaman bixwîne'; +$labels['aclw'] = 'Alayan binivîse'; +$labels['acli'] = 'Têxe (Heman bike li)'; +$labels['aclp'] = 'Şandî'; +$labels['aclc'] = 'Bindosyeyan çêke'; +$labels['aclk'] = 'Bindosyeyan çêke'; +$labels['acld'] = 'Peyaman binivîse'; +$labels['aclt'] = 'Peyaman jê bibe'; +$labels['acle'] = 'Jê derxîne'; +$labels['aclx'] = 'Dosyeyê jê bibe'; +$labels['acla'] = 'Birêvebir'; +$labels['acln'] = 'Bi nîşeyan peyaman rave bike'; +$labels['aclfull'] = 'Tam venêrîn'; +$labels['aclother'] = 'Ên din'; +$labels['aclread'] = 'Bixwîne'; +$labels['aclwrite'] = 'Binivîse'; +$labels['acldelete'] = 'Jê bibe'; +$labels['shortacll'] = 'Lê bigere'; +$labels['shortaclr'] = 'Bixwîne'; +$labels['shortacls'] = 'Bihêle'; +$labels['shortaclw'] = 'Binivîse'; +$labels['shortacli'] = 'Tev bike'; +$labels['shortaclp'] = 'Şandî'; +$labels['shortaclc'] = 'Çêke'; +$labels['shortaclk'] = 'Çêke'; +$labels['shortacld'] = 'Jê bibe'; +$labels['shortaclt'] = 'Jê bibe'; +$labels['shortacle'] = 'Jê derxîne'; +$labels['shortaclx'] = 'Dosye-jêbirin'; +$labels['shortacla'] = 'Bikarhêner'; +$labels['shortacln'] = 'Bi nîşeyan rave bike'; +$labels['shortaclother'] = 'Ên din'; +$labels['shortaclread'] = 'Bixwîne'; +$labels['shortaclwrite'] = 'Binivîse'; +$labels['shortacldelete'] = 'Jê bibe'; +$labels['longaclr'] = 'Dosye ji bo xwendinê dikare bê vekirin'; +$labels['longacls'] = 'Alaya peyamên Dîtî dikare bête guhartin'; +$labels['longaclc'] = 'Dosye dikarin bin vê dosyeyê bêne çêkirin (an jî binavkirin)'; +$labels['longaclk'] = 'Dosye dikarin bin vê dosyeyê bêne çêkirin (an jî binavkirin)'; +$labels['longaclx'] = 'Dosye dikare bê jêbirin an jî binavkirin'; +$labels['longacla'] = 'Mafê gihîştina dosyeyê dikare bê guhartin'; +$labels['longaclfull'] = 'Tam venêrîn bi birêvebirina dosyeyê'; +$labels['longaclread'] = 'Dosye ji bo xwendinê dikare bê vekirin'; +$labels['longaclwrite'] = 'Peyam dikarin kopiyî dosyeyê bên kirin, nîşankirin, nivîsandin.'; +$labels['longacldelete'] = 'Hêmî peyam dikarin werin jêbirin'; +$labels['longaclother'] = 'Mafên din ên têketinê'; +$labels['ariasummaryacltable'] = 'Lîsteya mafên têketinê'; +$labels['arialabelaclactions'] = 'Tevgeran liste bike'; +$labels['arialabelaclform'] = 'Forma mafên têketinê'; +$messages['deleting'] = 'Mafên têketinê tên jêbirin...'; +$messages['saving'] = 'Mafên têketinê tên tomarkirin...'; +$messages['updatesuccess'] = 'Mafên têketinê bi serkeftin hatin guhartin'; +$messages['deletesuccess'] = 'Mafên têketinê bi serkeftin hatin jêbirin'; +$messages['createsuccess'] = 'Mafên têketinê bi serkeftin hatin tevkirin'; +$messages['updateerror'] = 'Nûkirina mafên têketinê bigire'; +$messages['deleteerror'] = 'Jêbirina mafên têketinê bigire'; +$messages['createerror'] = 'Tevkirina mafên têketinê bigire'; +$messages['deleteconfirm'] = 'Tu ewle yî, dixwazî mafên têketinê yên bikarhênerê(n) bijartî rakî?'; +$messages['norights'] = 'Tu maf nehat diyarkirin!'; +$messages['nouser'] = 'Tu bikarhêner nehat diyarkirin!'; +?> diff --git a/data/web/rc/plugins/acl/localization/ku_IQ.inc b/data/web/rc/plugins/acl/localization/ku_IQ.inc new file mode 100644 index 0000000000000000000000000000000000000000..bc80848b4e17783c12394f6248593802a16ace71 --- /dev/null +++ b/data/web/rc/plugins/acl/localization/ku_IQ.inc @@ -0,0 +1,26 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'هاوبەشکردن'; +$labels['username'] = 'بەکارهێنەر:'; +$labels['advanced'] = 'شێوازی پێشکەوتوو'; +$labels['shortaclc'] = 'دروستکردن'; +$labels['shortaclk'] = 'دروستکردن'; +$labels['shortacld'] = 'سڕینەوە'; +$labels['shortaclt'] = 'سڕینەوە'; +$labels['shortaclx'] = 'سڕینەوەی بوخچە'; +?> diff --git a/data/web/rc/plugins/acl/localization/lb_LU.inc b/data/web/rc/plugins/acl/localization/lb_LU.inc new file mode 100644 index 0000000000000000000000000000000000000000..ec48b199013996755dbed5fadc3561363ecc1f2b --- /dev/null +++ b/data/web/rc/plugins/acl/localization/lb_LU.inc @@ -0,0 +1,69 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Sharing'; +$labels['myrights'] = 'Zougrëffsrechter'; +$labels['username'] = 'Benotzer:'; +$labels['advanced'] = 'Avancéierte Modus'; +$labels['newuser'] = 'Element dobäisetzen'; +$labels['actions'] = 'Optioune fir d\'Zougrëffsrechter'; +$labels['anyone'] = 'All d\'Benotzer (jiddwereen)'; +$labels['anonymous'] = 'Gaascht (anonym)'; +$labels['identifier'] = 'Identifiant'; +$labels['acll'] = 'Noschloen'; +$labels['aclr'] = 'Messagë liesen'; +$labels['acls'] = 'Lies-Status behalen'; +$labels['acld'] = 'Messagë läschen'; +$labels['aclt'] = 'Messagë läschen'; +$labels['acle'] = 'Ausläschen'; +$labels['aclx'] = 'Dossier läschen'; +$labels['acla'] = 'Administréieren'; +$labels['aclfull'] = 'Voll Kontroll'; +$labels['aclother'] = 'Aner'; +$labels['aclread'] = 'Liesen'; +$labels['aclwrite'] = 'Schreiwen'; +$labels['acldelete'] = 'Läschen'; +$labels['shortacll'] = 'Noschloen'; +$labels['shortaclr'] = 'Liesen'; +$labels['shortacls'] = 'Halen'; +$labels['shortaclw'] = 'Schreiwen'; +$labels['shortacli'] = 'Drasetze'; +$labels['shortaclp'] = 'Schécken'; +$labels['shortaclc'] = 'Erstellen'; +$labels['shortaclk'] = 'Erstellen'; +$labels['shortacld'] = 'Läschen'; +$labels['shortaclt'] = 'Läschen'; +$labels['shortacle'] = 'Ausläschen'; +$labels['shortaclx'] = 'Dossier läschen'; +$labels['shortacla'] = 'Administréieren'; +$labels['shortaclother'] = 'Aner'; +$labels['shortaclread'] = 'Liesen'; +$labels['shortaclwrite'] = 'Schreiwen'; +$labels['shortacldelete'] = 'Läschen'; +$labels['longacldelete'] = 'Messagë kënne geläscht ginn'; +$messages['deleting'] = 'Zougrëffsrechter gi geläscht...'; +$messages['saving'] = 'Zougrëffsrechter gi gespäichert...'; +$messages['updatesuccess'] = 'Rechter erfollegräich geännert'; +$messages['deletesuccess'] = 'Rechter erfollegräich geläscht'; +$messages['createsuccess'] = 'Rechter erfollegräich dobäigesat'; +$messages['updateerror'] = 'D\'Zougrëffsrechter kënnen net aktualiséiert ginn'; +$messages['deleteerror'] = 'Rechter kënnen net geläscht ginn'; +$messages['createerror'] = 'Zougrëffsrechter kënnen net dobäigesat ginn'; +$messages['deleteconfirm'] = 'Bass du dir sécher, dass du d\'Zougrëffsrechter fir déi ausgewielte Benotzer wëlls ewechhuelen?'; +$messages['norights'] = 'Et goufe keng Rechter uginn! '; +$messages['nouser'] = 'Et gouf kee Benotzernumm uginn!'; +?> diff --git a/data/web/rc/plugins/acl/localization/lt_LT.inc b/data/web/rc/plugins/acl/localization/lt_LT.inc new file mode 100644 index 0000000000000000000000000000000000000000..cea41d6d999390817cfe9c87b3a4d6a8123c3786 --- /dev/null +++ b/data/web/rc/plugins/acl/localization/lt_LT.inc @@ -0,0 +1,98 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Dalinimasis'; +$labels['myrights'] = 'Prieigos teisės'; +$labels['username'] = 'Vartotojas:'; +$labels['advanced'] = 'Pažengusio vartotojo rėžimas'; +$labels['newuser'] = 'Pridėti įrašą'; +$labels['editperms'] = 'Tvarkyti leidimus'; +$labels['actions'] = 'Prieigos teisių veiksmai...'; +$labels['anyone'] = 'Visi vartotojai (bet kas)'; +$labels['anonymous'] = 'Svečias (anonimas)'; +$labels['identifier'] = 'Identifikatorius'; +$labels['acll'] = 'Paieška'; +$labels['aclr'] = 'Perskaityti pranešimus'; +$labels['acls'] = 'Palikti būseną "Žiūrėtas"'; +$labels['aclw'] = 'Įrašyti vėliavėles'; +$labels['acli'] = 'Įterpti (kopijuoti į)'; +$labels['aclp'] = 'Įrašas'; +$labels['aclc'] = 'Kurti poaplankius'; +$labels['aclk'] = 'Kurti poaplankius'; +$labels['acld'] = 'Ištrinti žinutes'; +$labels['aclt'] = 'Ištrinti žinutes'; +$labels['acle'] = 'Išbraukti'; +$labels['aclx'] = 'Ištrinti aplanką'; +$labels['acla'] = 'Valdyti'; +$labels['acln'] = 'Anotuoti laiškus'; +$labels['aclfull'] = 'Visiška kontrolė'; +$labels['aclother'] = 'Kita'; +$labels['aclread'] = 'Skaityti'; +$labels['aclwrite'] = 'Įrašyti'; +$labels['acldelete'] = 'Trinti'; +$labels['shortacll'] = 'Paieška'; +$labels['shortaclr'] = 'Skaityti'; +$labels['shortacls'] = 'Palikti'; +$labels['shortaclw'] = 'Įrašyti'; +$labels['shortacli'] = 'Įterpti'; +$labels['shortaclp'] = 'Įrašas'; +$labels['shortaclc'] = 'Sukurti'; +$labels['shortaclk'] = 'Sukurti'; +$labels['shortacld'] = 'Trinti'; +$labels['shortaclt'] = 'Trinti'; +$labels['shortacle'] = 'Išbraukti'; +$labels['shortaclx'] = 'Ištrinti aplanką'; +$labels['shortacla'] = 'Valdyti'; +$labels['shortacln'] = 'Anotuoti'; +$labels['shortaclother'] = 'Kita'; +$labels['shortaclread'] = 'Skaityti'; +$labels['shortaclwrite'] = 'Įrašyti'; +$labels['shortacldelete'] = 'Trinti'; +$labels['longacll'] = 'Aplankas yra matomas sąrašuose ir gali būti prenumeruojamas'; +$labels['longaclr'] = 'Aplanką galima peržiūrėti'; +$labels['longacls'] = 'Pranešimų vėliavėlė "Matyta" gali būti pakeista'; +$labels['longaclw'] = 'Pranešimų vėliavėlės ir raktažodžiai gali būti pakeisti, išskyrus "Matytas" ir "Ištrintas"'; +$labels['longacli'] = 'Pranešimai gali būti įrašyti arba nukopijuoti į aplanką'; +$labels['longaclp'] = 'Į šį aplanką galima dėti laiškus.'; +$labels['longaclc'] = 'Nauji aplankai gali būti kuriami (arba pervadinami) šioje direktorijoje'; +$labels['longaclk'] = 'Nauji aplankai gali būti kuriami (arba pervadinami) šioje direktorijoje'; +$labels['longacld'] = 'Pranešimų vėliavėlė "Ištrintas" gali būti pakeista'; +$labels['longaclt'] = 'Pranešimų vėliavėlė "Ištrintas" gali būti pakeista'; +$labels['longacle'] = 'Pranešimai gali būti išbraukti'; +$labels['longaclx'] = 'Aplankas gali būti pašalintas arba pervadintas'; +$labels['longacla'] = 'Aplanko prieigos teisės gali būti pakeistos'; +$labels['longacln'] = 'Bendrieji laiškų meta-duomenys (anotacijos) gali būti pakeisti'; +$labels['longaclfull'] = 'Visiška kontrolė įskaitant aplanko administravimą'; +$labels['longaclread'] = 'Aplanką galima peržiūrėti'; +$labels['longaclwrite'] = 'Pranešimai gali būti pažymėti, įrašyti arba nukopijuoti į aplanką'; +$labels['longacldelete'] = 'Pranešimai gali būti ištrinti'; +$labels['longaclother'] = 'Kitos prieigos teisės'; +$labels['ariasummaryacltable'] = 'Prieigos teisių sąrašas'; +$labels['arialabelaclactions'] = 'Rodyti veiksmus'; +$labels['arialabelaclform'] = 'Prieigos teisių forma'; +$messages['deleting'] = 'Panaikinamos prieigos teisės'; +$messages['saving'] = 'Išsaugomos prieigos teisės'; +$messages['updatesuccess'] = 'Prieigos teisės sėkmingai pakeistos'; +$messages['deletesuccess'] = 'Prieigos teisės sėkmingai panaikintos'; +$messages['createsuccess'] = 'Prieigos teisės sėkmingai pridėtos'; +$messages['updateerror'] = 'Nepavyko pakeisti prieigos teisių'; +$messages['deleteerror'] = 'Neįmanoma panaikinti prieigos teises'; +$messages['createerror'] = 'Neišeina pridėti prieigos teises'; +$messages['deleteconfirm'] = 'Ar jūs esate įsitikinę, jog norite panaikinti prieigos teises pažymėtiems vartotojams(-ui)?'; +$messages['norights'] = 'Nenurodytos jokios teisės!'; +$messages['nouser'] = 'Nenurodytas joks vartotojas!'; +?> diff --git a/data/web/rc/plugins/acl/localization/lv_LV.inc b/data/web/rc/plugins/acl/localization/lv_LV.inc new file mode 100644 index 0000000000000000000000000000000000000000..961be910c0f29ed3767c7603de51c49e60131d3d --- /dev/null +++ b/data/web/rc/plugins/acl/localization/lv_LV.inc @@ -0,0 +1,98 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Dalīšanās'; +$labels['myrights'] = 'Piekļuves tiesības'; +$labels['username'] = 'Lietotājs:'; +$labels['advanced'] = 'Paplašinātais režīms'; +$labels['newuser'] = 'Pievienot ierakstu'; +$labels['editperms'] = 'Rediģēt piejas'; +$labels['actions'] = 'Darbības ar piekļuves tiesībām...'; +$labels['anyone'] = 'Visi lietotāji (ikviens)'; +$labels['anonymous'] = 'Viesi (anonīmie)'; +$labels['identifier'] = 'Identifikators'; +$labels['acll'] = 'Atrast'; +$labels['aclr'] = 'Lasīt ziņojumus'; +$labels['acls'] = 'Paturēt "Redzētā" statusu'; +$labels['aclw'] = 'Saglabāt atzīmes'; +$labels['acli'] = 'Ievietot (Iekopēt)'; +$labels['aclp'] = 'Nosūtīt'; +$labels['aclc'] = 'Izveidot apakšmapes'; +$labels['aclk'] = 'Izveidot apakšmapes'; +$labels['acld'] = 'Dzēst ziņojumus'; +$labels['aclt'] = 'Dzēst ziņojumus'; +$labels['acle'] = 'Izdzēst'; +$labels['aclx'] = 'Dzēst mapi'; +$labels['acla'] = 'Pārvaldīt'; +$labels['acln'] = 'Anotēt e-pastus'; +$labels['aclfull'] = 'Pilna kontrole'; +$labels['aclother'] = 'Cits'; +$labels['aclread'] = 'Lasīt'; +$labels['aclwrite'] = 'Rakstīt'; +$labels['acldelete'] = 'Dzēst'; +$labels['shortacll'] = 'Atrast'; +$labels['shortaclr'] = 'Lasīt'; +$labels['shortacls'] = 'Paturēt'; +$labels['shortaclw'] = 'Rakstīt'; +$labels['shortacli'] = 'Ievietot'; +$labels['shortaclp'] = 'Nosūtīt'; +$labels['shortaclc'] = 'Izveidot'; +$labels['shortaclk'] = 'Izveidot'; +$labels['shortacld'] = 'Dzēst'; +$labels['shortaclt'] = 'Dzēst'; +$labels['shortacle'] = 'Izdzēst'; +$labels['shortaclx'] = 'Mapes dzēšana'; +$labels['shortacla'] = 'Pārvaldīt'; +$labels['shortacln'] = 'Anotēt'; +$labels['shortaclother'] = 'Cits'; +$labels['shortaclread'] = 'Lasīt'; +$labels['shortaclwrite'] = 'Rakstīt'; +$labels['shortacldelete'] = 'Dzēst'; +$labels['longacll'] = 'Mape ir redzama kopējā mapju sarakstā un var tikt abonēta'; +$labels['longaclr'] = 'Ši mape var tikt atvērta lasīšanai'; +$labels['longacls'] = 'Ziņojumu "Redzēts" atzīme var tik mainīta'; +$labels['longaclw'] = 'Ziņojumu atzīmes, izņemot "Redzēts" un "Dzēsts", un atslēgvārdi var tik mainīti'; +$labels['longacli'] = 'Ziņojumi var tikt ierakstīti vai pārkopēti uz šo mapi'; +$labels['longaclp'] = 'Vēstules var tikt ievietotas šajā mapē'; +$labels['longaclc'] = 'Zem šīs mapes pa tiešo var tikt izveidotas (vai pārsauktas) citas mapes'; +$labels['longaclk'] = 'Zem šīs mapes pa tiešo var tikt izveidotas (vai pārsauktas) citas mapes'; +$labels['longacld'] = 'Ziņojumu "Dzēst" atzīme var tikt mainīta'; +$labels['longaclt'] = 'Ziņojumu "Dzēst" atzīme var tikt mainīta'; +$labels['longacle'] = 'Vēstules var tikt izdzēstas'; +$labels['longaclx'] = 'Mape var tikt gan dzēsta, gan pārdēvēta'; +$labels['longacla'] = 'Mapes pieejas tiesības var tikt izmainītas'; +$labels['longacln'] = 'E-pastu koplietotie meta dati (anotācijas) var tikt mainīti'; +$labels['longaclfull'] = 'Pilna kontrole, iekļaujot arī mapju administrēšanu'; +$labels['longaclread'] = 'Mape var tikt atvērta lasīšanai'; +$labels['longaclwrite'] = 'Ziņojumi mapē var tikt gan atzīmēti, gan ierakstīti vai arī pārkopēti uz mapi'; +$labels['longacldelete'] = 'Vēstules var tikt izdzēstas'; +$labels['longaclother'] = 'Pieejas tiesības citiem'; +$labels['ariasummaryacltable'] = 'Pieejas tiesību saraksts'; +$labels['arialabelaclactions'] = 'Darbību saraksts'; +$labels['arialabelaclform'] = 'Pieejas tiesību forma'; +$messages['deleting'] = 'Dzēš piekļuves tiesības...'; +$messages['saving'] = 'Saglabā piekļuves tiesības...'; +$messages['updatesuccess'] = 'Piekļuves tiesības tika veiksmīgi samainītas'; +$messages['deletesuccess'] = 'Piekļuves tiesības tika veiksmīgi izdzēstas'; +$messages['createsuccess'] = 'Piekļuves tiesības tika veiksmīgi pievienotas'; +$messages['updateerror'] = 'Pieejas tiesības nomainīt neizdevās'; +$messages['deleteerror'] = 'Piekļuves tiesības izdzēst neizdevās'; +$messages['createerror'] = 'Piekļuves tiesības pievienot neizdevās'; +$messages['deleteconfirm'] = 'Vai tiešām atzīmētajiem lietotājiem noņemt piekļuves tiesības?'; +$messages['norights'] = 'Netika norādītas tiesības!'; +$messages['nouser'] = 'Netika norādīts lietotājvārds!'; +?> diff --git a/data/web/rc/plugins/acl/localization/mn_MN.inc b/data/web/rc/plugins/acl/localization/mn_MN.inc new file mode 100644 index 0000000000000000000000000000000000000000..4e736e75c49b064492818bc8be59d39895a4a03e --- /dev/null +++ b/data/web/rc/plugins/acl/localization/mn_MN.inc @@ -0,0 +1,49 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Хуваалцах'; +$labels['myrights'] = 'Нэвтрэлтийн зөвшөөрлүүд'; +$labels['username'] = 'Хэрэглэгч:'; +$labels['advanced'] = 'Дэлгэрэнгүй горим'; +$labels['newuser'] = 'Нэмэх'; +$labels['editperms'] = 'Зөвшөөрлүүдийг засах'; +$labels['actions'] = 'Нэвтрэлтийн зөвшөөрлийн үйлдлүүд...'; +$labels['anyone'] = 'Бүх хэрэглэгч (хүн бүр)'; +$labels['anonymous'] = '(Үл таних) зочин'; +$labels['identifier'] = 'Таних мэдээлэл'; +$labels['acll'] = 'Хайх'; +$labels['aclr'] = 'Зурвас унших'; +$labels['acls'] = 'Харсан төлөвт хадгалах'; +$labels['aclw'] = 'Тэмдэглэгээ хийх'; +$labels['acli'] = 'Оруулах (хуулж)'; +$labels['aclp'] = 'Бичлэг'; +$labels['aclc'] = 'Дэд хавтас үүсгэх'; +$labels['aclk'] = 'Дэд хавтас үүсгэх'; +$labels['acld'] = 'Захиануудыг устгах'; +$labels['aclt'] = 'Захиануудыг устгах'; +$labels['acle'] = 'Устгах'; +$labels['aclx'] = 'Хавтас устгах'; +$labels['acla'] = 'Зохицуулагч'; +$labels['acln'] = 'Тайлбар зурвас'; +$labels['aclfull'] = 'Бүрэн удирдлага'; +$labels['aclother'] = 'Бусад'; +$labels['aclread'] = 'Уншсан'; +$labels['aclwrite'] = 'Бичих'; +$labels['acldelete'] = 'Устгах'; +$labels['shortacll'] = 'Хайх'; +$labels['shortaclr'] = 'Унших'; +?> diff --git a/data/web/rc/plugins/acl/localization/nb_NO.inc b/data/web/rc/plugins/acl/localization/nb_NO.inc new file mode 100644 index 0000000000000000000000000000000000000000..a1af91f672fff67dc9a9bf27b29e45cb464b6a81 --- /dev/null +++ b/data/web/rc/plugins/acl/localization/nb_NO.inc @@ -0,0 +1,91 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Deling'; +$labels['myrights'] = 'Tilgangsrettigheter'; +$labels['username'] = 'Bruker:'; +$labels['advanced'] = 'Avansert modus'; +$labels['newuser'] = 'Legg til oppføring'; +$labels['editperms'] = 'Rediger tilgangsrettigheter'; +$labels['actions'] = 'Valg for tilgangsrettigheter.'; +$labels['anyone'] = 'Alle brukere (alle)'; +$labels['anonymous'] = 'Gjester (anonyme)'; +$labels['identifier'] = 'Identifikator'; +$labels['acll'] = 'Oppslag'; +$labels['aclr'] = 'Les meldinger'; +$labels['acls'] = 'Behold lesestatus'; +$labels['aclw'] = 'Lagre flagg'; +$labels['acli'] = 'Lim inn'; +$labels['aclp'] = 'Post'; +$labels['aclc'] = 'Opprett undermapper'; +$labels['aclk'] = 'Opprett undermapper'; +$labels['acld'] = 'Slett meldinger'; +$labels['aclt'] = 'Slett meldinger'; +$labels['acle'] = 'Slett fullstendig'; +$labels['aclx'] = 'Slett mappe'; +$labels['acla'] = 'Administrer'; +$labels['aclfull'] = 'Full kontroll'; +$labels['aclother'] = 'Annet'; +$labels['aclread'] = 'Les'; +$labels['aclwrite'] = 'Skriv'; +$labels['acldelete'] = 'Slett'; +$labels['shortacll'] = 'Oppslag'; +$labels['shortaclr'] = 'Les'; +$labels['shortacls'] = 'Behold'; +$labels['shortaclw'] = 'Skriv'; +$labels['shortacli'] = 'Sett inn'; +$labels['shortaclp'] = 'Post'; +$labels['shortaclc'] = 'Opprett'; +$labels['shortaclk'] = 'Opprett'; +$labels['shortacld'] = 'Slett'; +$labels['shortaclt'] = 'Slett'; +$labels['shortacle'] = 'Slett fullstendig'; +$labels['shortaclx'] = 'Slett mappe'; +$labels['shortacla'] = 'Administrer'; +$labels['shortaclother'] = 'Annet'; +$labels['shortaclread'] = 'Les'; +$labels['shortaclwrite'] = 'Skriv'; +$labels['shortacldelete'] = 'Slett'; +$labels['longacll'] = 'Mappen er synlig og kan abonneres på'; +$labels['longaclr'] = 'Mappen kan åpnes for lesing'; +$labels['longacls'] = 'Meldingenes lesestatusflagg kan endres'; +$labels['longaclw'] = 'Meldingsflagg og -nøkkelord kan endres, bortsett fra status for lesing og sletting'; +$labels['longacli'] = 'Meldinger kan lagres eller kopieres til mappen'; +$labels['longaclp'] = 'Meldinger kan postes til denne mappen'; +$labels['longaclc'] = 'Mapper kan opprettes (eller navnes om) direkte under denne mappen'; +$labels['longaclk'] = 'Mapper kan opprettes (eller navnes om) direkte under denne mappen'; +$labels['longacld'] = 'Meldingenes flagg for sletting kan endres'; +$labels['longaclt'] = 'Meldingenes flagg for sletting kan endres'; +$labels['longacle'] = 'Meldingen kan slettes for godt'; +$labels['longaclx'] = 'Mappen kan slettes eller gis nytt navn'; +$labels['longacla'] = 'Mappens tilgangsrettigheter kan endres'; +$labels['longaclfull'] = 'Full kontroll, inkludert mappeadministrasjon'; +$labels['longaclread'] = 'Mappen kan åpnes for lesing'; +$labels['longaclwrite'] = 'Meldinger kan merkes, lagres i eller flyttes til mappen'; +$labels['longacldelete'] = 'Meldingen kan slettes'; +$messages['deleting'] = 'Sletter tilgangsrettigheter'; +$messages['saving'] = 'Lagrer tilgangsrettigheter'; +$messages['updatesuccess'] = 'Tilgangsrettigheter ble endret'; +$messages['deletesuccess'] = 'Tilgangsrettigheter ble slettet'; +$messages['createsuccess'] = 'Tilgangsrettigheter ble lagt til'; +$messages['updateerror'] = 'Kunne ikke oppdatere tilgangsrettigheter'; +$messages['deleteerror'] = 'Kunne ikke fjerne tilgangsrettigheter'; +$messages['createerror'] = 'Kunne ikke legge til tilgangsrettigheter'; +$messages['deleteconfirm'] = 'Er du sikker på at du vil fjerne tilgangen til valgte brukere'; +$messages['norights'] = 'Ingen rettigheter er spesifisert!'; +$messages['nouser'] = 'Brukernavn er ikke spesifisert!'; +?> diff --git a/data/web/rc/plugins/acl/localization/nl_BE.inc b/data/web/rc/plugins/acl/localization/nl_BE.inc new file mode 100644 index 0000000000000000000000000000000000000000..69d4ad9efa3ecb9ec8a176313a3672cdfe9514c3 --- /dev/null +++ b/data/web/rc/plugins/acl/localization/nl_BE.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['aclother'] = 'Anders'; +$labels['shortaclother'] = 'Anders'; +?> diff --git a/data/web/rc/plugins/acl/localization/nl_NL.inc b/data/web/rc/plugins/acl/localization/nl_NL.inc new file mode 100644 index 0000000000000000000000000000000000000000..f820846bb54bf33393c653f14c4f931ea0092133 --- /dev/null +++ b/data/web/rc/plugins/acl/localization/nl_NL.inc @@ -0,0 +1,98 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Delen'; +$labels['myrights'] = 'Toegangsrechten'; +$labels['username'] = 'Gebruiker:'; +$labels['advanced'] = 'Geavanceerde modus'; +$labels['newuser'] = 'Item toevoegen'; +$labels['editperms'] = 'Rechten bewerken'; +$labels['actions'] = 'Toegangsrechtenopties...'; +$labels['anyone'] = 'Alle gebruikers (iedereen)'; +$labels['anonymous'] = 'Gasten (anoniem)'; +$labels['identifier'] = 'Identificatie'; +$labels['acll'] = 'Opzoeken'; +$labels['aclr'] = 'Berichten lezen'; +$labels['acls'] = 'Onthoud gelezen-status'; +$labels['aclw'] = 'Markeringen instellen'; +$labels['acli'] = 'Invoegen (kopiëren naar)'; +$labels['aclp'] = 'Plaatsen'; +$labels['aclc'] = 'Submappen aanmaken'; +$labels['aclk'] = 'Submappen aanmaken'; +$labels['acld'] = 'Berichten verwijderen'; +$labels['aclt'] = 'Berichten verwijderen'; +$labels['acle'] = 'Vernietigen'; +$labels['aclx'] = 'Map verwijderen'; +$labels['acla'] = 'Beheren'; +$labels['acln'] = 'Annoteer berichten'; +$labels['aclfull'] = 'Volledige toegang'; +$labels['aclother'] = 'Overig'; +$labels['aclread'] = 'Lezen'; +$labels['aclwrite'] = 'Schrijven'; +$labels['acldelete'] = 'Verwijderen'; +$labels['shortacll'] = 'Opzoeken'; +$labels['shortaclr'] = 'Lezen'; +$labels['shortacls'] = 'Behouden'; +$labels['shortaclw'] = 'Schrijven'; +$labels['shortacli'] = 'Invoegen'; +$labels['shortaclp'] = 'Plaatsen'; +$labels['shortaclc'] = 'Aanmaken'; +$labels['shortaclk'] = 'Aanmaken'; +$labels['shortacld'] = 'Verwijderen'; +$labels['shortaclt'] = 'Verwijderen'; +$labels['shortacle'] = 'Vernietigen'; +$labels['shortaclx'] = 'Map verwijderen'; +$labels['shortacla'] = 'Beheren'; +$labels['shortacln'] = 'Annoteren'; +$labels['shortaclother'] = 'Overig'; +$labels['shortaclread'] = 'Lezen'; +$labels['shortaclwrite'] = 'Schrijven'; +$labels['shortacldelete'] = 'Verwijderen'; +$labels['longacll'] = 'De map is zichtbaar in lijsten en het is mogelijk om te abonneren op deze map'; +$labels['longaclr'] = 'De map kan geopend worden om te lezen'; +$labels['longacls'] = 'De berichtmarkering \'Gelezen\' kan aangepast worden'; +$labels['longaclw'] = 'Berichtmarkeringen en labels kunnen aangepast worden, behalve \'Gelezen\' en \'Verwijderd\''; +$labels['longacli'] = 'Berichten kunnen opgesteld worden of gekopieerd worden naar deze map'; +$labels['longaclp'] = 'Berichten kunnen geplaatst worden in deze map'; +$labels['longaclc'] = 'Mappen kunnen aangemaakt of hernoemd worden rechtstreeks onder deze map'; +$labels['longaclk'] = 'Mappen kunnen aangemaakt of hernoemd worden rechtstreeks onder deze map'; +$labels['longacld'] = 'De berichtmarkering \'Verwijderd\' kan aangepast worden'; +$labels['longaclt'] = 'De berichtmarkering \'Verwijderd\' kan aangepast worden'; +$labels['longacle'] = 'Berichten kunnen vernietigd worden'; +$labels['longaclx'] = 'De map kan verwijderd of hernoemd worden'; +$labels['longacla'] = 'De toegangsrechten voor deze map kunnen veranderd worden'; +$labels['longacln'] = 'Gedeelde metadata (annotaties) van berichten kan aangepast worden'; +$labels['longaclfull'] = 'Volledige controle inclusief mappenbeheer'; +$labels['longaclread'] = 'De map kan geopend worden om te lezen'; +$labels['longaclwrite'] = 'Berichten kunnen gemarkeerd worden, opgesteld worden of gekopieerd worden naar deze map'; +$labels['longacldelete'] = 'Berichten kunnen verwijderd worden'; +$labels['longaclother'] = 'Overige toegangsrechten'; +$labels['ariasummaryacltable'] = 'Lijst van toegangsrechten'; +$labels['arialabelaclactions'] = 'Lijstacties'; +$labels['arialabelaclform'] = 'Formulier voor toegangsrechten'; +$messages['deleting'] = 'Toegangsrechten worden verwijderd...'; +$messages['saving'] = 'Toegangsrechten worden opgeslagen...'; +$messages['updatesuccess'] = 'Toegangsrechten succesvol veranderd'; +$messages['deletesuccess'] = 'Toegangsrechten succesvol verwijderd'; +$messages['createsuccess'] = 'Toegangsrechten succesvol toegevoegd'; +$messages['updateerror'] = 'Toegangsrechten kunnen niet bijgewerkt worden'; +$messages['deleteerror'] = 'Toegangsrechten kunnen niet verwijderd worden'; +$messages['createerror'] = 'Toegangsrechten kunnen niet toegevoegd worden'; +$messages['deleteconfirm'] = 'Weet u zeker dat u de toegangsrechten van de geselecteerde gebruiker(s) wilt verwijderen?'; +$messages['norights'] = 'Er zijn geen toegangsrechten opgegeven!'; +$messages['nouser'] = 'Er is geen gebruikersnaam opgegeven!'; +?> diff --git a/data/web/rc/plugins/acl/localization/nn_NO.inc b/data/web/rc/plugins/acl/localization/nn_NO.inc new file mode 100644 index 0000000000000000000000000000000000000000..e5af45b6d3d21431856b4ccac0a9e877abd7302d --- /dev/null +++ b/data/web/rc/plugins/acl/localization/nn_NO.inc @@ -0,0 +1,88 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Deling'; +$labels['myrights'] = 'Tilgangsrettar'; +$labels['username'] = 'Brukar:'; +$labels['newuser'] = 'Legg til oppføring'; +$labels['actions'] = 'Val for tilgangsrettar...'; +$labels['anyone'] = 'Alle brukarar (alle)'; +$labels['anonymous'] = 'Gjester (anonyme)'; +$labels['identifier'] = 'Identifikator'; +$labels['acll'] = 'Oppslag'; +$labels['aclr'] = 'Les meldingar'; +$labels['acls'] = 'Behald lesestatus'; +$labels['aclw'] = 'Skriveflagg'; +$labels['acli'] = 'Lim inn'; +$labels['aclp'] = 'Post'; +$labels['aclc'] = 'Opprett undermapper'; +$labels['aclk'] = 'Opprett undermapper'; +$labels['acld'] = 'Slett meldingar'; +$labels['aclt'] = 'Slett meldingar'; +$labels['acle'] = 'Slett fullstendig'; +$labels['aclx'] = 'Slett mappe'; +$labels['acla'] = 'Administrér'; +$labels['aclfull'] = 'Full kontroll'; +$labels['aclother'] = 'Anna'; +$labels['aclread'] = 'Les'; +$labels['aclwrite'] = 'Skriv'; +$labels['acldelete'] = 'Slett'; +$labels['shortacll'] = 'Oppslag'; +$labels['shortaclr'] = 'Les'; +$labels['shortacls'] = 'Behald'; +$labels['shortaclw'] = 'Skriv'; +$labels['shortacli'] = 'Sett inn'; +$labels['shortaclp'] = 'Post'; +$labels['shortaclc'] = 'Opprett'; +$labels['shortaclk'] = 'Opprett'; +$labels['shortacld'] = 'Slett'; +$labels['shortaclt'] = 'Slett'; +$labels['shortacle'] = 'Slett fullstendig'; +$labels['shortaclx'] = 'Slett mappe'; +$labels['shortacla'] = 'Administrér'; +$labels['shortaclother'] = 'Anna'; +$labels['shortaclread'] = 'Les'; +$labels['shortaclwrite'] = 'Skriv'; +$labels['shortacldelete'] = 'Slett'; +$labels['longacll'] = 'Mappa er synleg og kan abonnerast på'; +$labels['longaclr'] = 'Mappa kan opnast for lesing'; +$labels['longacls'] = 'Meldingane sine lesestatusflagg kan endrast'; +$labels['longaclw'] = 'Meldingsflagg og -nøkkelord kan endrast, bortsett frå status for lesing og sletting'; +$labels['longacli'] = 'Meldingar kan lagrast eller kopierast til mappa'; +$labels['longaclp'] = 'Meldingar kan postast til denne mappa'; +$labels['longaclc'] = 'Mapper kan opprettast (eller namnast om) direkte under denne mappa'; +$labels['longaclk'] = 'Mapper kan opprettast (eller namnast om) direkte under denne mappa'; +$labels['longacld'] = 'Meldingane sine flagg for sletting kan endrast'; +$labels['longaclt'] = 'Meldingane sine flagg for sletting kan endrast'; +$labels['longacle'] = 'Meldinga kan slettast for godt'; +$labels['longaclx'] = 'Mappa kan slettast eller få nytt namn'; +$labels['longacla'] = 'Mappa sine tilgangsrettar kan endrast'; +$labels['longaclfull'] = 'Full kontroll, inkludert mappeadministrasjon'; +$labels['longaclread'] = 'Mappa kan opnast for lesing'; +$labels['longaclwrite'] = 'Meldingar kan merkast, lagrast i eller flyttast til mappa'; +$labels['longacldelete'] = 'Meldinga kan slettast'; +$messages['deleting'] = 'Slettar tilgangsrettar…'; +$messages['saving'] = 'Lagrar tilgangsrettar…'; +$messages['updatesuccess'] = 'Tilgangsrettiar vart endra'; +$messages['deletesuccess'] = 'Tilgangsretter vart sletta'; +$messages['createsuccess'] = 'Tilgangsrettar vart legne til'; +$messages['deleteerror'] = 'Kunne ikkje fjerne tilgangsrettar'; +$messages['createerror'] = 'Kunne ikkje leggje til tilgangsrettar'; +$messages['deleteconfirm'] = 'Er du sikker på at du vil fjerne tilgangen til valde brukarar?'; +$messages['norights'] = 'Ingen rettar er spesifisert!'; +$messages['nouser'] = 'Brukarnamn er ikkje spesifisert!'; +?> diff --git a/data/web/rc/plugins/acl/localization/pl_PL.inc b/data/web/rc/plugins/acl/localization/pl_PL.inc new file mode 100644 index 0000000000000000000000000000000000000000..053873068ed3315cfeaa6b577a178c99d52a6eac --- /dev/null +++ b/data/web/rc/plugins/acl/localization/pl_PL.inc @@ -0,0 +1,98 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Udostępnianie'; +$labels['myrights'] = 'Prawa dostępu'; +$labels['username'] = 'Użytkownik:'; +$labels['advanced'] = 'Tryb zaawansowany'; +$labels['newuser'] = 'Dodaj rekord'; +$labels['editperms'] = 'Edytuj zezwolenia'; +$labels['actions'] = 'Akcje na prawach...'; +$labels['anyone'] = 'Wszyscy (anyone)'; +$labels['anonymous'] = 'Goście (anonymous)'; +$labels['identifier'] = 'Identyfikator'; +$labels['acll'] = 'Podgląd'; +$labels['aclr'] = 'Odczyt (Read)'; +$labels['acls'] = 'Zmiana stanu wiadomości (Keep)'; +$labels['aclw'] = 'Zmiana flag wiadomości (Write)'; +$labels['acli'] = 'Dodawanie/Kopiowanie do (Insert)'; +$labels['aclp'] = 'Wysyłanie'; +$labels['aclc'] = 'Tworzenie podfolderów (Create)'; +$labels['aclk'] = 'Tworzenie podfolderów (Create)'; +$labels['acld'] = 'Usuwanie wiadomości (Delete)'; +$labels['aclt'] = 'Usuwanie wiadomości (Delete)'; +$labels['acle'] = 'Porządkowanie'; +$labels['aclx'] = 'Usuwanie folderu (Delete)'; +$labels['acla'] = 'Administracja'; +$labels['acln'] = 'Adnotacje wiadomości'; +$labels['aclfull'] = 'Wszystkie'; +$labels['aclother'] = 'Pozostałe'; +$labels['aclread'] = 'Odczyt'; +$labels['aclwrite'] = 'Zapis'; +$labels['acldelete'] = 'Usuwanie'; +$labels['shortacll'] = 'Podgląd'; +$labels['shortaclr'] = 'Odczyt'; +$labels['shortacls'] = 'Zmiana'; +$labels['shortaclw'] = 'Zapis'; +$labels['shortacli'] = 'Dodawanie'; +$labels['shortaclp'] = 'Wysyłanie'; +$labels['shortaclc'] = 'Tworzenie'; +$labels['shortaclk'] = 'Tworzenie'; +$labels['shortacld'] = 'Usuwanie'; +$labels['shortaclt'] = 'Usuwanie'; +$labels['shortacle'] = 'Porządkowanie'; +$labels['shortaclx'] = 'Usuwanie folderu'; +$labels['shortacla'] = 'Administracja'; +$labels['shortacln'] = 'Adnotacje'; +$labels['shortaclother'] = 'Pozostałe'; +$labels['shortaclread'] = 'Odczyt'; +$labels['shortaclwrite'] = 'Zapis'; +$labels['shortacldelete'] = 'Usuwanie'; +$labels['longacll'] = 'Pozwala na subskrybowanie folderu i powoduje, że jest on widoczny na liście'; +$labels['longaclr'] = 'Folder może być otwarty w trybie do odczytu'; +$labels['longacls'] = 'Pozwala na zmienę stanu wiadomości'; +$labels['longaclw'] = 'Pozwala zmieniać wszystkie flagi wiadomości, oprócz "Przeczytano" i "Usunięto'; +$labels['longacli'] = 'Pozwala zapisywać wiadomości i kopiować do folderu'; +$labels['longaclp'] = 'Pozwala wysyłać wiadomości do folderu'; +$labels['longaclc'] = 'Pozwala tworzyć (lub zmieniać nazwę) podfoldery'; +$labels['longaclk'] = 'Pozwala tworzyć (lub zmieniać nazwę) podfoldery'; +$labels['longacld'] = 'Pozwala zmianiać flagę "Usunięto" wiadomości'; +$labels['longaclt'] = 'Pozwala zmianiać flagę "Usunięto" wiadomości'; +$labels['longacle'] = 'Pozwala na usuwanie wiadomości oznaczonych do usunięcia'; +$labels['longaclx'] = 'Pozwala na zmianę nazwy lub usunięcie folderu'; +$labels['longacla'] = 'Pozwala na zmiane praw dostępu do folderu'; +$labels['longacln'] = 'Pozwala na zmianę współdzielonych meta-danych wiadomości (adnotacji)'; +$labels['longaclfull'] = 'Pełna kontrola włącznie z administrowaniem folderem'; +$labels['longaclread'] = 'Folder może być otwarty w trybie do odczytu'; +$labels['longaclwrite'] = 'Wiadomości mogą być oznaczane, zapisywane i kopiowane do folderu'; +$labels['longacldelete'] = 'Wiadomości mogą być usuwane'; +$labels['longaclother'] = 'Inne prawa dostępu'; +$labels['ariasummaryacltable'] = 'Spis praw dostępu'; +$labels['arialabelaclactions'] = 'Lista działań'; +$labels['arialabelaclform'] = 'Formularz praw dostępu'; +$messages['deleting'] = 'Usuwanie praw dostępu...'; +$messages['saving'] = 'Zapisywanie praw dostępu...'; +$messages['updatesuccess'] = 'Pomyślnie zmieniono prawa dostępu'; +$messages['deletesuccess'] = 'Pomyślnie usunięto prawa dostępu'; +$messages['createsuccess'] = 'Pomyślnie dodano prawa dostępu'; +$messages['updateerror'] = 'Nie udało się zaktualizować praw dostępu'; +$messages['deleteerror'] = 'Nie udało się usunąć praw dostępu'; +$messages['createerror'] = 'Nie udało się dodać praw dostępu'; +$messages['deleteconfirm'] = 'Czy na pewno chcesz usunąć prawa wybranym użytkownikom?'; +$messages['norights'] = 'Nie wybrano praw dostępu!'; +$messages['nouser'] = 'Nie podano nazwy użytkownika!'; +?> diff --git a/data/web/rc/plugins/acl/localization/pt_BR.inc b/data/web/rc/plugins/acl/localization/pt_BR.inc new file mode 100644 index 0000000000000000000000000000000000000000..badb91f50bcddaa5698778055e0b0bef835699b3 --- /dev/null +++ b/data/web/rc/plugins/acl/localization/pt_BR.inc @@ -0,0 +1,98 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Compartilhamento'; +$labels['myrights'] = 'Permissões de Acesso'; +$labels['username'] = 'Usuário:'; +$labels['advanced'] = 'Modo avançado'; +$labels['newuser'] = 'Adicionar entrada'; +$labels['editperms'] = 'Editar permissões'; +$labels['actions'] = 'Ações de direito de acesso...'; +$labels['anyone'] = 'Todos os usuários (qualquer um)'; +$labels['anonymous'] = 'Convidados (anônimos)'; +$labels['identifier'] = 'Identificador'; +$labels['acll'] = 'Pesquisar'; +$labels['aclr'] = 'Ler mensagens'; +$labels['acls'] = 'Manter estado de enviado'; +$labels['aclw'] = 'Salvar marcadores'; +$labels['acli'] = 'Inserir (Cópia em)'; +$labels['aclp'] = 'Enviar'; +$labels['aclc'] = 'Criar subpastas'; +$labels['aclk'] = 'Criar subpastas'; +$labels['acld'] = 'Apagar mensagens'; +$labels['aclt'] = 'Apagar mensagens'; +$labels['acle'] = 'Expurgar'; +$labels['aclx'] = 'Excluir pasta'; +$labels['acla'] = 'Administrar'; +$labels['acln'] = 'Inserir anotações nas mensagens'; +$labels['aclfull'] = 'Controle total'; +$labels['aclother'] = 'Outro'; +$labels['aclread'] = 'Ler'; +$labels['aclwrite'] = 'Salvar'; +$labels['acldelete'] = 'Excluir'; +$labels['shortacll'] = 'Pesquisar'; +$labels['shortaclr'] = 'Ler'; +$labels['shortacls'] = 'Manter'; +$labels['shortaclw'] = 'Salvar'; +$labels['shortacli'] = 'Inserir'; +$labels['shortaclp'] = 'Enviar'; +$labels['shortaclc'] = 'Criar'; +$labels['shortaclk'] = 'Criar'; +$labels['shortacld'] = 'Excluir'; +$labels['shortaclt'] = 'Excluir'; +$labels['shortacle'] = 'Expurgar'; +$labels['shortaclx'] = 'Excluir pasta'; +$labels['shortacla'] = 'Administrar'; +$labels['shortacln'] = 'Anotar'; +$labels['shortaclother'] = 'Outro'; +$labels['shortaclread'] = 'Ler'; +$labels['shortaclwrite'] = 'Salvar'; +$labels['shortacldelete'] = 'Excluir'; +$labels['longacll'] = 'A pasta está visível nas listas e pode ser inscrita para'; +$labels['longaclr'] = 'A pasta pode ser aberta para leitura'; +$labels['longacls'] = 'Marcador de Mensagem Enviada pode ser modificadas'; +$labels['longaclw'] = 'Marcadores de mensagens e palavras-chave podem ser modificadas, exceto de Enviadas e Excluídas'; +$labels['longacli'] = 'As mensagens podem ser escritas ou copiadas para a pasta'; +$labels['longaclp'] = 'As mensagens podem ser enviadas para esta pasta'; +$labels['longaclc'] = 'As pastas podem ser criadas (ou renomeadas) diretamente sob esta pasta'; +$labels['longaclk'] = 'As pastas podem ser criadas (ou renomeadas) diretamente sob esta pasta'; +$labels['longacld'] = 'O marcador de Mensagens Excluídas podem ser modificadas'; +$labels['longaclt'] = 'O marcador de Mensagens Excluídas podem ser modificadas'; +$labels['longacle'] = 'As mensagens podem ser expurgadas'; +$labels['longaclx'] = 'A pasta pode ser apagada ou renomeada'; +$labels['longacla'] = 'As permissões de acesso da pasta podem ser alteradas'; +$labels['longacln'] = 'Metadados compartilhados das mensagens (anotações) podem ser alterados'; +$labels['longaclfull'] = 'Controle total incluindo a pasta de administração'; +$labels['longaclread'] = 'A pasta pode ser aberta para leitura'; +$labels['longaclwrite'] = 'As mensagens podem ser marcadas, salvas ou copiadas para a pasta'; +$labels['longacldelete'] = 'Mensagens podem ser apagadas'; +$labels['longaclother'] = 'Outras permissões de acesso'; +$labels['ariasummaryacltable'] = 'Lista de permissões de acesso'; +$labels['arialabelaclactions'] = 'Lista de ações'; +$labels['arialabelaclform'] = 'Formulário de permissões de acesso'; +$messages['deleting'] = 'Apagando permissões de acesso...'; +$messages['saving'] = 'Salvando permissões de acesso...'; +$messages['updatesuccess'] = 'Permissões de acesso alteradas com sucesso'; +$messages['deletesuccess'] = 'Permissões de acesso apagadas com sucesso'; +$messages['createsuccess'] = 'Permissões de acesso adicionadas com sucesso'; +$messages['updateerror'] = 'Não foi possível atualizar as permissões de acesso'; +$messages['deleteerror'] = 'Não foi possível apagar as permissões de acesso'; +$messages['createerror'] = 'Não foi possível adicionar as permissões de acesso'; +$messages['deleteconfirm'] = 'Tem certeza que deseja remover as permissões de acesso do(s) usuário(s) delecionado(s)?'; +$messages['norights'] = 'Não foram definidas permissões!'; +$messages['nouser'] = 'Nome de usuário não especificado!'; +?> diff --git a/data/web/rc/plugins/acl/localization/pt_PT.inc b/data/web/rc/plugins/acl/localization/pt_PT.inc new file mode 100644 index 0000000000000000000000000000000000000000..745f36bef4b5f435a4aef366b4f0ca22320075bf --- /dev/null +++ b/data/web/rc/plugins/acl/localization/pt_PT.inc @@ -0,0 +1,98 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Partilhar'; +$labels['myrights'] = 'Permissões de acesso'; +$labels['username'] = 'Utilizador:'; +$labels['advanced'] = 'Modo avançado'; +$labels['newuser'] = 'Adicionar entrada'; +$labels['editperms'] = 'Editar permissões'; +$labels['actions'] = 'Acções de permissão de acesso...'; +$labels['anyone'] = 'Todos os utilizadores (todos)'; +$labels['anonymous'] = 'Convidados (anónimo)'; +$labels['identifier'] = 'Identificador'; +$labels['acll'] = 'Pesquisar'; +$labels['aclr'] = 'Ler mensagens'; +$labels['acls'] = 'Manter estado Visto'; +$labels['aclw'] = 'Guardar marcadores'; +$labels['acli'] = 'Inserir (Copiar para)'; +$labels['aclp'] = 'Publicar'; +$labels['aclc'] = 'Criar subpastas'; +$labels['aclk'] = 'Criar subpastas'; +$labels['acld'] = 'Eliminar mensagens'; +$labels['aclt'] = 'Eliminar mensagens'; +$labels['acle'] = 'Purgar'; +$labels['aclx'] = 'Eliminar pasta'; +$labels['acla'] = 'Administrar'; +$labels['acln'] = 'Anotar mensagens'; +$labels['aclfull'] = 'Controlo total'; +$labels['aclother'] = 'Outro'; +$labels['aclread'] = 'Ler'; +$labels['aclwrite'] = 'Escrever'; +$labels['acldelete'] = 'Eliminar'; +$labels['shortacll'] = 'Pesquisar'; +$labels['shortaclr'] = 'Ler'; +$labels['shortacls'] = 'Manter'; +$labels['shortaclw'] = 'Escrever'; +$labels['shortacli'] = 'Inserir'; +$labels['shortaclp'] = 'Publicar'; +$labels['shortaclc'] = 'Criar'; +$labels['shortaclk'] = 'Criar'; +$labels['shortacld'] = 'Eliminar'; +$labels['shortaclt'] = 'Eliminar'; +$labels['shortacle'] = 'Purgar'; +$labels['shortaclx'] = 'Eliminar pasta'; +$labels['shortacla'] = 'Administrar'; +$labels['shortacln'] = 'Anotar'; +$labels['shortaclother'] = 'Outro'; +$labels['shortaclread'] = 'Ler'; +$labels['shortaclwrite'] = 'Escrever'; +$labels['shortacldelete'] = 'Eliminar'; +$labels['longacll'] = 'A pasta está visível em listas e pode subscrita'; +$labels['longaclr'] = 'A pasta pode ser aberta para leitura'; +$labels['longacls'] = 'O marcador Mensagens Vistas pode ser alterado'; +$labels['longaclw'] = 'Marcadores de mensagens e palavras-chave podem ser alterados, excepto Vistas e Eliminadas'; +$labels['longacli'] = 'As mensagens podem ser escritas ou copiadas para a pasta'; +$labels['longaclp'] = 'As mensagens podem ser publicadas para esta pasta'; +$labels['longaclc'] = 'As pastas podem ser criadas (ou renomeadas) directamente debaixo desta pasta'; +$labels['longaclk'] = 'As pastas podem ser criadas (ou renomeadas) directamente debaixo desta pasta'; +$labels['longacld'] = 'O marcador Apagar Mensagens pode ser alterado'; +$labels['longaclt'] = 'O marcador Apagar Mensagens pode ser alterado'; +$labels['longacle'] = 'As mensagens podem ser purgadas'; +$labels['longaclx'] = 'A pasta pode ser eliminada ou renomeada'; +$labels['longacla'] = 'As permissões de acesso da pasta podem ser alteradas'; +$labels['longacln'] = 'Mensagens de metadados (anotações) partilhadas podem ser alteradas'; +$labels['longaclfull'] = 'Controlo total incluindo administração de pastas'; +$labels['longaclread'] = 'A pasta pode ser aberta para leitura'; +$labels['longaclwrite'] = 'As mensagens podem ser marcadas, guardadas ou copiadas para a pasta'; +$labels['longacldelete'] = 'As mensagens podem ser eliminadas'; +$labels['longaclother'] = 'Outros direitos de acesso'; +$labels['ariasummaryacltable'] = 'Lista de direitos de acesso'; +$labels['arialabelaclactions'] = 'Lista de acções'; +$labels['arialabelaclform'] = 'Formulário de direitos de acesso'; +$messages['deleting'] = 'A eliminar permissões de acesso...'; +$messages['saving'] = 'A guardar permissões de acesso...'; +$messages['updatesuccess'] = 'Permissões de acesso alteradas com sucesso'; +$messages['deletesuccess'] = 'Permissões de acesso eliminadas com sucesso'; +$messages['createsuccess'] = 'Permissões de acesso adicionadas com sucesso'; +$messages['updateerror'] = 'Não foi possível actualizar os direitos de acesso'; +$messages['deleteerror'] = 'Não foi possível eliminar permissões de acesso'; +$messages['createerror'] = 'Não foi possível adicionar permissões de acesso'; +$messages['deleteconfirm'] = 'Tem a certeza que pretende remover as permissões de acesso do(s) utilizador(es) seleccionado(s)?'; +$messages['norights'] = 'Não foram especificadas quaisquer permissões!'; +$messages['nouser'] = 'Não foi especificado nenhum nome de utilizador!'; +?> diff --git a/data/web/rc/plugins/acl/localization/ro_RO.inc b/data/web/rc/plugins/acl/localization/ro_RO.inc new file mode 100644 index 0000000000000000000000000000000000000000..7db891aaf6aee034ce58ed4951713f49b1019653 --- /dev/null +++ b/data/web/rc/plugins/acl/localization/ro_RO.inc @@ -0,0 +1,94 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Partajare'; +$labels['myrights'] = 'Drepturi de acces'; +$labels['username'] = 'Utilizator:'; +$labels['advanced'] = 'Modul avansat'; +$labels['newuser'] = 'Adăugare intrare'; +$labels['editperms'] = 'Editare permisiuni'; +$labels['actions'] = 'Acțiunea drepturilor de acces...'; +$labels['anyone'] = 'Toți utilizatori (oricare)'; +$labels['anonymous'] = 'Vizitator'; +$labels['identifier'] = 'Identificator'; +$labels['acll'] = 'Caută'; +$labels['aclr'] = 'Citire mesaje'; +$labels['acls'] = 'Menține starea citirii'; +$labels['aclw'] = 'Indicator scriere'; +$labels['acli'] = 'Inserare (copiere în)'; +$labels['aclp'] = 'Postează'; +$labels['aclc'] = 'Creează subdirectoare'; +$labels['aclk'] = 'Creează subdirectoare'; +$labels['acld'] = 'Ștergere mesaje'; +$labels['aclt'] = 'Ștergere mesaje'; +$labels['acle'] = 'Elimină'; +$labels['aclx'] = 'Ștergere dosar'; +$labels['acla'] = 'Administrează'; +$labels['acln'] = 'Adnoteaza mesajele'; +$labels['aclfull'] = 'Control complet'; +$labels['aclother'] = 'Altul'; +$labels['aclread'] = 'Citeşte'; +$labels['aclwrite'] = 'Scrie'; +$labels['acldelete'] = 'Șterge'; +$labels['shortacll'] = 'Caută'; +$labels['shortaclr'] = 'Citeşte'; +$labels['shortacls'] = 'Păstrează'; +$labels['shortaclw'] = 'Scrie'; +$labels['shortacli'] = 'Inserează'; +$labels['shortaclp'] = 'Postează'; +$labels['shortaclc'] = 'Creează'; +$labels['shortaclk'] = 'Creează'; +$labels['shortacld'] = 'Șterge'; +$labels['shortaclt'] = 'Șterge'; +$labels['shortacle'] = 'Elimină'; +$labels['shortaclx'] = 'Ștergere dosar'; +$labels['shortacla'] = 'Administrează'; +$labels['shortacln'] = 'Adnotă'; +$labels['shortaclother'] = 'Altul'; +$labels['shortaclread'] = 'Citeşte'; +$labels['shortaclwrite'] = 'Scrie'; +$labels['shortacldelete'] = 'Șterge'; +$labels['longacll'] = 'Dosarul este vizibil pe liste și se poate subscrie la acesta'; +$labels['longaclr'] = 'Dosarul se poate deschide pentru citire'; +$labels['longacls'] = 'Indicatorul de Văzut a fost schimbat'; +$labels['longaclw'] = 'Indicatoarele și cuvintele cheie ale mesajelor se pot schimba cu excepția Văzut și Șters'; +$labels['longacli'] = 'Mesajul se poate scrie sau copia într-un dosar'; +$labels['longaclp'] = 'Mesajele se pot trimite către acest dosar'; +$labels['longaclc'] = 'Dosarele se pot crea (sau redenumi) direct sub acest dosar'; +$labels['longaclk'] = 'Dosarele se pot crea (sau redenumi) direct sub acest dosar'; +$labels['longacld'] = 'Indicatorul de Șters al mesajelor se poate modifica'; +$labels['longaclt'] = 'Indicatorul de Șters al mesajelor se poate modifica'; +$labels['longacle'] = 'Mesajele se pot elimina'; +$labels['longaclx'] = 'Dosarul se poate șterge sau redenumi'; +$labels['longacla'] = 'Drepturile de acces la dosar se pot schimba'; +$labels['longacln'] = 'Metadatele (adnotarile) impartite ale mesajelor pot fi schimbate'; +$labels['longaclfull'] = 'Control complet include și administrare dosar'; +$labels['longaclread'] = 'Dosarul se poate deschide pentru citire'; +$labels['longaclwrite'] = 'Mesajul se poate marca, scrie sau copia într-un dosar'; +$labels['longacldelete'] = 'Mesajele se pot șterge'; +$messages['deleting'] = 'Șterg drepturile de access...'; +$messages['saving'] = 'Salvez drepturi accesare...'; +$messages['updatesuccess'] = 'Drepturile de acces au fost schimbate cu succes'; +$messages['deletesuccess'] = 'Drepturile de acces au fost șterse cu succes'; +$messages['createsuccess'] = 'Drepturile de acces au fost adăugate cu succes'; +$messages['updateerror'] = 'Nu s-au putut actualiza drepturile de acces'; +$messages['deleteerror'] = 'Nu s-au putut șterge drepturile de acces'; +$messages['createerror'] = 'Nu s-au putut adăuga drepturi de acces'; +$messages['deleteconfirm'] = 'Sunteți sigur că doriți să ștergeți drepturile de acces la utilizatorul (ii) selectați?'; +$messages['norights'] = 'Nu au fost specificate drepturi!'; +$messages['nouser'] = 'Nu a fost specificat niciun utilizator!'; +?> diff --git a/data/web/rc/plugins/acl/localization/ru_RU.inc b/data/web/rc/plugins/acl/localization/ru_RU.inc new file mode 100644 index 0000000000000000000000000000000000000000..0b5d626a2ccc9b5c464466f7d8592f30c0b9cd09 --- /dev/null +++ b/data/web/rc/plugins/acl/localization/ru_RU.inc @@ -0,0 +1,98 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Совместный доступ'; +$labels['myrights'] = 'Права доступа'; +$labels['username'] = 'Пользователь:'; +$labels['advanced'] = 'Экспертный режим'; +$labels['newuser'] = 'Добавить поле'; +$labels['editperms'] = 'Редактировать права'; +$labels['actions'] = 'Действия с правами доступа...'; +$labels['anyone'] = 'Все пользователи (любые)'; +$labels['anonymous'] = 'Гости (анонимные)'; +$labels['identifier'] = 'Идентификатор'; +$labels['acll'] = 'Просмотр'; +$labels['aclr'] = 'Чтение сообщений'; +$labels['acls'] = 'Сохранение состояния Прочитано'; +$labels['aclw'] = 'Запись флагов'; +$labels['acli'] = 'Вставка (копирование в...)'; +$labels['aclp'] = 'Отправить'; +$labels['aclc'] = 'Создание вложенных папок'; +$labels['aclk'] = 'Создание вложенных папок'; +$labels['acld'] = 'Удаление сообщений'; +$labels['aclt'] = 'Удаление сообщений'; +$labels['acle'] = 'Уничтожение сообщений'; +$labels['aclx'] = 'Удаление папки'; +$labels['acla'] = 'Администрировать'; +$labels['acln'] = 'Комментировать сообщения'; +$labels['aclfull'] = 'Полный доступ'; +$labels['aclother'] = 'Другое'; +$labels['aclread'] = 'Чтение'; +$labels['aclwrite'] = 'Запись'; +$labels['acldelete'] = 'Удаление'; +$labels['shortacll'] = 'Поиск'; +$labels['shortaclr'] = 'Чтение'; +$labels['shortacls'] = 'Прочитано'; +$labels['shortaclw'] = 'Запись'; +$labels['shortacli'] = 'Вставить'; +$labels['shortaclp'] = 'Отправить'; +$labels['shortaclc'] = 'Создать'; +$labels['shortaclk'] = 'Создать'; +$labels['shortacld'] = 'Удаление'; +$labels['shortaclt'] = 'Удаление'; +$labels['shortacle'] = 'Уничтожение'; +$labels['shortaclx'] = 'Удаление папки'; +$labels['shortacla'] = 'Администрировать'; +$labels['shortacln'] = 'Комментировать'; +$labels['shortaclother'] = 'Другое'; +$labels['shortaclread'] = 'Чтение'; +$labels['shortaclwrite'] = 'Запись'; +$labels['shortacldelete'] = 'Удаление'; +$labels['longacll'] = 'Папка видима в списках и доступна для подписки'; +$labels['longaclr'] = 'Эта папка может быть открыта для чтения'; +$labels['longacls'] = 'Флаг Прочитано может быть изменен'; +$labels['longaclw'] = 'Флаги и ключевые слова, кроме Прочитано и Удалено, могут быть изменены'; +$labels['longacli'] = 'Сообщения могут быть записаны или скопированы в папку'; +$labels['longaclp'] = 'Сообщения могут быть отправлены в эту папку'; +$labels['longaclc'] = 'Подпапки могут быть созданы или переименованы прямо в этой папке'; +$labels['longaclk'] = 'Подпапки могут быть созданы или переименованы прямо в этой папке'; +$labels['longacld'] = 'Флаг Удалено может быть изменен'; +$labels['longaclt'] = 'Флаг Удалено может быть изменен'; +$labels['longacle'] = 'Сообщения могут быть уничтожены'; +$labels['longaclx'] = 'Эта папка может быть переименована или удалена'; +$labels['longacla'] = 'Права доступа к папке могут быть изменены'; +$labels['longacln'] = 'Совместные медаданные сообщений (комментарии) могут быть изменены'; +$labels['longaclfull'] = 'Полный доступ, включая управление папкой'; +$labels['longaclread'] = 'Эта папка может быть открыта для чтения'; +$labels['longaclwrite'] = 'Сообщения можно помечать, записывать или копировать в папку'; +$labels['longacldelete'] = 'Сообщения можно удалять'; +$labels['longaclother'] = 'Прочие права доступа'; +$labels['ariasummaryacltable'] = 'Список прав доступа'; +$labels['arialabelaclactions'] = 'Список действий'; +$labels['arialabelaclform'] = 'Форма прав доступа'; +$messages['deleting'] = 'Удаление прав доступа...'; +$messages['saving'] = 'Сохранение прав доступа...'; +$messages['updatesuccess'] = 'Права доступа успешно изменены'; +$messages['deletesuccess'] = 'Права доступа успешно удалены'; +$messages['createsuccess'] = 'Успешно добавлены права доступа'; +$messages['updateerror'] = 'Невозможно обновить права доступа'; +$messages['deleteerror'] = 'Невозможно удалить права доступа'; +$messages['createerror'] = 'Невозможно добавить права доступа'; +$messages['deleteconfirm'] = 'Вы уверены в том, что хотите удалить права доступа выбранных пользователей?'; +$messages['norights'] = 'Права доступа не установлены!'; +$messages['nouser'] = 'Не определено имя пользователя!'; +?> diff --git a/data/web/rc/plugins/acl/localization/sk_SK.inc b/data/web/rc/plugins/acl/localization/sk_SK.inc new file mode 100644 index 0000000000000000000000000000000000000000..6acc03ee413c8c556fbed27f4be8fdb31a4dc83d --- /dev/null +++ b/data/web/rc/plugins/acl/localization/sk_SK.inc @@ -0,0 +1,98 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Zdieľanie'; +$labels['myrights'] = 'Prístupové oprávnenia'; +$labels['username'] = 'Používateľ:'; +$labels['advanced'] = 'Režim pre pokročilých'; +$labels['newuser'] = 'Pridať záznam'; +$labels['editperms'] = 'Upraviť oprávnenia'; +$labels['actions'] = 'Prístupové práva pre akcie...'; +$labels['anyone'] = 'Všetci užívatelia (ktokoľvek)'; +$labels['anonymous'] = 'Hostia (anonymní)'; +$labels['identifier'] = 'Identifikátor'; +$labels['acll'] = 'Vyhľadať'; +$labels['aclr'] = 'Čítať správy'; +$labels['acls'] = 'Ponechať ako prečítané'; +$labels['aclw'] = 'Príznaky pre zápis'; +$labels['acli'] = 'Vložiť (Skopírovať do)'; +$labels['aclp'] = 'Odoslať na'; +$labels['aclc'] = 'Vytvoriť podpriečinky'; +$labels['aclk'] = 'Vytvoriť podpriečinky'; +$labels['acld'] = 'Vymazať správy'; +$labels['aclt'] = 'Vymazať správy'; +$labels['acle'] = 'Vyčistiť'; +$labels['aclx'] = 'Vymazať priečinok'; +$labels['acla'] = 'Spravovať'; +$labels['acln'] = 'Označiť správy poznámkou'; +$labels['aclfull'] = 'Úplný prístup'; +$labels['aclother'] = 'Iné'; +$labels['aclread'] = 'Čítanie'; +$labels['aclwrite'] = 'Zápis'; +$labels['acldelete'] = 'Odstránenie'; +$labels['shortacll'] = 'Vyhľadať'; +$labels['shortaclr'] = 'Čítanie'; +$labels['shortacls'] = 'Ponechať'; +$labels['shortaclw'] = 'Zápis'; +$labels['shortacli'] = 'Vložiť'; +$labels['shortaclp'] = 'Odoslať na'; +$labels['shortaclc'] = 'Vytvoriť'; +$labels['shortaclk'] = 'Vytvoriť'; +$labels['shortacld'] = 'Vymazať'; +$labels['shortaclt'] = 'Vymazať'; +$labels['shortacle'] = 'Vyčistiť'; +$labels['shortaclx'] = 'Vymazať priečinok'; +$labels['shortacla'] = 'Spravovať'; +$labels['shortacln'] = 'Označiť poznámkou'; +$labels['shortaclother'] = 'Iné'; +$labels['shortaclread'] = 'Čítanie'; +$labels['shortaclwrite'] = 'Zápis'; +$labels['shortacldelete'] = 'Odstránenie'; +$labels['longacll'] = 'Priečinok je v zoznamoch viditeľný a dá sa k nemu prihlásiť'; +$labels['longaclr'] = 'Prečinok je možné otvoriť na čítanie'; +$labels['longacls'] = 'Príznak "Prečítané" je možné zmeniť'; +$labels['longaclw'] = 'Príznaky správ a kľúčové slová je možné zmeniť, okrem "Prečítané" a "Vymazané"'; +$labels['longacli'] = 'Do tohto priečinka je možné zapisovať alebo kopírovať správy'; +$labels['longaclp'] = 'Do tohto priečinka je možné publikovať správy'; +$labels['longaclc'] = 'Priečinky je možné vytvárať (alebo premenovávať) priamo v tomto priečinku'; +$labels['longaclk'] = 'Priečinky je možné vytvárať (alebo premenovávať) priamo v tomto priečinku'; +$labels['longacld'] = 'Príznak správ "Vymazané" je možné zmeniť'; +$labels['longaclt'] = 'Príznak správ "Vymazané" je možné zmeniť'; +$labels['longacle'] = 'Správy je možné vyčistiť'; +$labels['longaclx'] = 'Priečinok je možné vymazať alebo premenovať'; +$labels['longacla'] = 'Prístupové oprávnenia k tomuto priečinku je možné zmeniť'; +$labels['longacln'] = 'Meta-dáta (poznámky) zdieľané medzi správami, je možné zmeniť'; +$labels['longaclfull'] = 'Úplný prístup, vrátane správy priečinka'; +$labels['longaclread'] = 'Prečinok je možné otvoriť na čítanie'; +$labels['longaclwrite'] = 'Správy je možné označiť, zapísať alebo skopírovať do prečinka'; +$labels['longacldelete'] = 'Správy je možné vymazať'; +$labels['longaclother'] = 'Iné prístupové oprávnenia'; +$labels['ariasummaryacltable'] = 'Zoznam prístupových oprávnení'; +$labels['arialabelaclactions'] = 'Zoznam akcií'; +$labels['arialabelaclform'] = 'Formulár pre prístupové oprávnenia'; +$messages['deleting'] = 'Odstraňovanie prístupových oprávnení...'; +$messages['saving'] = 'Ukladanie prístupových oprávnení...'; +$messages['updatesuccess'] = 'Prístupové oprávnenia boli úspešne zmenené'; +$messages['deletesuccess'] = 'Prístupové oprávnenia boli úspešne vymazané'; +$messages['createsuccess'] = 'Prístupové oprávnenia boli úspešne pridané'; +$messages['updateerror'] = 'Nemožno aktualizovať prístupové oprávnenia'; +$messages['deleteerror'] = 'Prístupové oprávnenia sa nepodarilo vymazať'; +$messages['createerror'] = 'Prístupové oprávnenia sa nepodarilo pridať'; +$messages['deleteconfirm'] = 'Naozaj chcete odstrániť prístupové oprávnenia vybraného používateľa?'; +$messages['norights'] = 'Neboli určené žiadne oprávnenia!'; +$messages['nouser'] = 'Nebolo určené žiadne meno používateľa!'; +?> diff --git a/data/web/rc/plugins/acl/localization/sl_SI.inc b/data/web/rc/plugins/acl/localization/sl_SI.inc new file mode 100644 index 0000000000000000000000000000000000000000..aef0ad5845cf2acb9ee4a2fa999eae0caf3df4b1 --- /dev/null +++ b/data/web/rc/plugins/acl/localization/sl_SI.inc @@ -0,0 +1,98 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Skupna raba'; +$labels['myrights'] = 'Pravice dostopa'; +$labels['username'] = 'Uporabnik:'; +$labels['advanced'] = 'Napredni način'; +$labels['newuser'] = 'Dodaj vnos'; +$labels['editperms'] = 'Uredi pravice'; +$labels['actions'] = 'Nastavitve pravic dostopa'; +$labels['anyone'] = 'Vsi uporabniki'; +$labels['anonymous'] = 'Gosti'; +$labels['identifier'] = 'Označevalnik'; +$labels['acll'] = 'Iskanje'; +$labels['aclr'] = 'Prebrana sporočila'; +$labels['acls'] = 'Ohrani status \'Prebrano\''; +$labels['aclw'] = 'Označi pisanje sporočila'; +$labels['acli'] = 'Vstavi (Kopiraj v)'; +$labels['aclp'] = 'Objava'; +$labels['aclc'] = 'Ustvari podmape'; +$labels['aclk'] = 'Ustvari podmape'; +$labels['acld'] = 'Izbriši sporočila'; +$labels['aclt'] = 'Izbriši sporočila'; +$labels['acle'] = 'Izbriši'; +$labels['aclx'] = 'Izbriši mapo'; +$labels['acla'] = 'Uredi'; +$labels['acln'] = 'Komentarji'; +$labels['aclfull'] = 'Popolno upravljanje'; +$labels['aclother'] = 'Ostalo'; +$labels['aclread'] = 'Preberi'; +$labels['aclwrite'] = 'Sestavi'; +$labels['acldelete'] = 'Izbriši'; +$labels['shortacll'] = 'Iskanje'; +$labels['shortaclr'] = 'Preberi'; +$labels['shortacls'] = 'Ohrani'; +$labels['shortaclw'] = 'Sestavi'; +$labels['shortacli'] = 'Vstavi'; +$labels['shortaclp'] = 'Objava'; +$labels['shortaclc'] = 'Ustvari'; +$labels['shortaclk'] = 'Ustvari'; +$labels['shortacld'] = 'Izbriši'; +$labels['shortaclt'] = 'Izbriši'; +$labels['shortacle'] = 'Izbriši'; +$labels['shortaclx'] = 'Izbriši mapo'; +$labels['shortacla'] = 'Uredi'; +$labels['shortacln'] = 'Dodaj komentar'; +$labels['shortaclother'] = 'Ostalo'; +$labels['shortaclread'] = 'Preberi'; +$labels['shortaclwrite'] = 'Sestavi'; +$labels['shortacldelete'] = 'Izbriši'; +$labels['longacll'] = 'Mapa je vidna na seznamih in jo lahko naročite'; +$labels['longaclr'] = 'Mapa je na voljo za branje'; +$labels['longacls'] = 'Oznaka \'Prebrano sporočilo\' je lahko spremenjena'; +$labels['longaclw'] = 'Oznake sporočil in ključne besede je mogoče spremeniti, z izjemo oznak "Prebrano" in "Izbrisano'; +$labels['longacli'] = 'Sporočilo je lahko poslano ali kopirano v mapo'; +$labels['longaclp'] = 'Sporočilo je lahko poslano v to mapo'; +$labels['longaclc'] = 'V tej mapi so lahko ustvarjene (ali preimenovane) podmape'; +$labels['longaclk'] = 'V tej mapi so lahko ustvarjene (ali preimenovane) podmape'; +$labels['longacld'] = 'Oznako sporočila \'Izbrisano\' je mogoče spremeniti'; +$labels['longaclt'] = 'Oznako sporočila \'Izbrisano\' je mogoče spremeniti'; +$labels['longacle'] = 'Sporočila so lahko izbrisana'; +$labels['longaclx'] = 'Mapa je lahko izbrisana ali preimenovana'; +$labels['longacla'] = 'Pravice na mapi so lahko spremenjene'; +$labels['longacln'] = 'Metapodatke (komentarjev), ki so v skupni rabi, je mogoče spremeniti'; +$labels['longaclfull'] = 'Popolno upravljanje, vključno z urejanjem map'; +$labels['longaclread'] = 'Mapa je na voljo za branje'; +$labels['longaclwrite'] = 'Sporočila je mogoče označiti, sestaviti ali kopirati v mapo'; +$labels['longacldelete'] = 'Sporočila so lahko izbrisana'; +$labels['longaclother'] = 'Ostale pravice dostopa'; +$labels['ariasummaryacltable'] = 'Seznam pravic dostopa'; +$labels['arialabelaclactions'] = 'Prikaži možnosti'; +$labels['arialabelaclform'] = 'Obrazec za nastavitve pravic dostopa'; +$messages['deleting'] = 'Brisanje pravic'; +$messages['saving'] = 'Shranjevanje pravic'; +$messages['updatesuccess'] = 'Pravice so bile uspešno spremenjene'; +$messages['deletesuccess'] = 'Pravice so bile uspešno izbrisane'; +$messages['createsuccess'] = 'Pravice so bile uspešno dodane'; +$messages['updateerror'] = 'Pravic ni mogoče posodobiti'; +$messages['deleteerror'] = 'Pravic ni mogoče izbrisati'; +$messages['createerror'] = 'Pravic ni bilo mogoče dodati'; +$messages['deleteconfirm'] = 'Ste prepričani, da želite odstraniti pravice dostopa za izbrane uporabnike?'; +$messages['norights'] = 'Pravic niste določili'; +$messages['nouser'] = 'Niste določili uporabnišlega imena'; +?> diff --git a/data/web/rc/plugins/acl/localization/sq_AL.inc b/data/web/rc/plugins/acl/localization/sq_AL.inc new file mode 100644 index 0000000000000000000000000000000000000000..41ecc95668766297ffbb3aa7e35e50841b08b4f6 --- /dev/null +++ b/data/web/rc/plugins/acl/localization/sq_AL.inc @@ -0,0 +1,96 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['myrights'] = 'Të drejta Hyrjeje'; +$labels['username'] = 'Përdorues:'; +$labels['advanced'] = 'Mënyra e përparuar'; +$labels['newuser'] = 'Shtoni zë'; +$labels['editperms'] = 'Përpunoni leje'; +$labels['actions'] = 'Veprime të drejtash hyrjeje…'; +$labels['anyone'] = 'Krejt përdoruesit (cilido)'; +$labels['anonymous'] = 'Mysafirë (në mënyrë anonime)'; +$labels['identifier'] = 'Identifikues'; +$labels['acll'] = 'Kërkim'; +$labels['aclr'] = 'Lexoni mesazhe'; +$labels['acls'] = 'Mbaje gjendjen i Parë'; +$labels['acli'] = 'Fut (Kopje te)'; +$labels['aclp'] = 'Postim'; +$labels['aclc'] = 'Krijo nëndosje'; +$labels['aclk'] = 'Krijo nëndosje'; +$labels['acld'] = 'Fshiji mesazhet'; +$labels['aclt'] = 'Fshiji mesazhet'; +$labels['acle'] = 'Spastroje'; +$labels['aclx'] = 'Fshije dosjen'; +$labels['acla'] = 'Administroni'; +$labels['acln'] = 'Shto shënime te mesazhet'; +$labels['aclfull'] = 'Kontroll i plotë'; +$labels['aclother'] = 'Tjetër'; +$labels['aclread'] = 'Leximi'; +$labels['aclwrite'] = 'Shkrimi'; +$labels['acldelete'] = 'Fshije'; +$labels['shortacll'] = 'Kërkim'; +$labels['shortaclr'] = 'Leximi'; +$labels['shortacls'] = 'Mbaje'; +$labels['shortaclw'] = 'Shkrimi'; +$labels['shortacli'] = 'Fut'; +$labels['shortaclp'] = 'Posto'; +$labels['shortaclc'] = 'Krijoje'; +$labels['shortaclk'] = 'Krijoje'; +$labels['shortacld'] = 'Fshije'; +$labels['shortaclt'] = 'Fshije'; +$labels['shortacle'] = 'Spastro'; +$labels['shortaclx'] = 'Fshirje dosjeje'; +$labels['shortacla'] = 'Administro'; +$labels['shortacln'] = 'Shto shënim'; +$labels['shortaclother'] = 'Tjetër'; +$labels['shortaclread'] = 'Leximi'; +$labels['shortaclwrite'] = 'Shkrimi'; +$labels['shortacldelete'] = 'Fshirjeje'; +$labels['longacll'] = 'Dosja është e dukshme në lista dhe në të mund të pajtoheni'; +$labels['longaclr'] = 'Dosja mund të hapet për lexim'; +$labels['longacls'] = 'Mund të ndryshohet shenja Mesazhe të Parë'; +$labels['longaclw'] = 'Mund të ndryshohen shenjat dhe fjalëkyçet për mesazhet, hiq të Parë dhe të Fshirë'; +$labels['longacli'] = 'Mesazhet mund të shkruhen ose kopjohen në dosje'; +$labels['longaclp'] = 'Mesazhet mund të postohen te kjo dosje'; +$labels['longaclc'] = 'Dosjet mund të krijohen (ose riemërtohen) drejt e nën këtë dosje'; +$labels['longaclk'] = 'Dosjet mund të krijohen (ose riemërtohen) drejt e nën këtë dosje'; +$labels['longacld'] = 'Mund të ndryshohet shenja Mesazhe të Fshirë'; +$labels['longaclt'] = 'Mund të ndryshohet shenja Mesazhe të Parë'; +$labels['longacle'] = 'Mesazhet mund të spastrohen'; +$labels['longaclx'] = 'Dosja mund të fshihet ose riemërtohet'; +$labels['longacla'] = 'Mund të ndryshohen të drejta hyrjeje te dosja'; +$labels['longacln'] = 'Mund të ndryshohen tejtëdhëna të përbashkëta (shënime) mesazhesh'; +$labels['longaclfull'] = 'Kontroll i plotë, përfshi administrim dosjesh'; +$labels['longaclread'] = 'Dosja mund të hapet për lexim'; +$labels['longaclwrite'] = 'Mesazheve mund t’u vihet shenjë, shkruhen ose kopjohen te dosja'; +$labels['longacldelete'] = 'Mesazhet mund të fshihen'; +$labels['longaclother'] = 'Të tjera të drejta hyrjesh'; +$labels['ariasummaryacltable'] = 'Listë të drejtash hyrjeje'; +$labels['arialabelaclactions'] = 'Paraqit veprime'; +$labels['arialabelaclform'] = 'Formular të drejtash hyrjeje'; +$messages['deleting'] = 'Po fshihen të drejta hyrjeje…'; +$messages['saving'] = 'Po ruhen të drejtash hyrjeje…'; +$messages['updatesuccess'] = 'U ndryshuan me sukses të drejta hyrjeje'; +$messages['deletesuccess'] = 'U fshinë me sukses të drejta hyrjeje'; +$messages['createsuccess'] = 'U shtuan me sukses të drejta hyrjeje'; +$messages['updateerror'] = 'I pazoti të përditësojë të drejta hyrjeje'; +$messages['deleteerror'] = 'I pazoti të fshijë të drejta hyrjeje'; +$messages['createerror'] = 'I pazoti të shtojë të drejta hyrjeje'; +$messages['deleteconfirm'] = 'Jeni i sigurt, doni t’i hiqni të drejta hyrjeje përdoruesit(ve) të përzgjedhur?'; +$messages['norights'] = 'Nuk janë specifikuar të drejta!'; +$messages['nouser'] = 'Nuk është specifikuar emër përdoruesi!'; +?> diff --git a/data/web/rc/plugins/acl/localization/sr_CS.inc b/data/web/rc/plugins/acl/localization/sr_CS.inc new file mode 100644 index 0000000000000000000000000000000000000000..38e335a3c5ccb0f56e1f6eb5fa9e561dda78fda6 --- /dev/null +++ b/data/web/rc/plugins/acl/localization/sr_CS.inc @@ -0,0 +1,52 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Дељење'; +$labels['myrights'] = 'Права приступа'; +$labels['username'] = 'Корисник:'; +$labels['advanced'] = 'Напредни режим'; +$labels['newuser'] = 'Додај унос'; +$labels['editperms'] = 'Уреди дозволе'; +$labels['actions'] = 'Радње права приступа...'; +$labels['anyone'] = 'Сви корисници (било ко)'; +$labels['anonymous'] = 'Гости (анонимно)'; +$labels['identifier'] = 'Идентификатор'; +$labels['acll'] = 'Потражи'; +$labels['aclr'] = 'Прочитане поруке'; +$labels['acls'] = 'Очувај стање прегледаности'; +$labels['acli'] = 'Убаци (копирај у)'; +$labels['aclc'] = 'Направи потфасцикле'; +$labels['aclk'] = 'Направи потфасцикле'; +$labels['acld'] = 'Обриши поруке'; +$labels['aclt'] = 'Обриши поруке'; +$labels['aclx'] = 'Обриши фасциклу'; +$labels['acla'] = 'Администрирај'; +$labels['aclfull'] = 'Пуна контрола'; +$labels['aclother'] = 'Друго'; +$labels['aclread'] = 'Читање'; +$labels['aclwrite'] = 'Упис'; +$labels['acldelete'] = 'Обриши'; +$labels['shortacll'] = 'Потражи'; +$labels['shortaclr'] = 'Прочитана'; +$labels['shortacls'] = 'Задржи'; +$labels['shortaclw'] = 'Пиши'; +$labels['shortacli'] = 'Убаци'; +$labels['shortaclother'] = 'Друго'; +$labels['shortaclread'] = 'Читање'; +$labels['shortaclwrite'] = 'Упис'; +$labels['shortacldelete'] = 'Брисање'; +?> diff --git a/data/web/rc/plugins/acl/localization/sv_SE.inc b/data/web/rc/plugins/acl/localization/sv_SE.inc new file mode 100644 index 0000000000000000000000000000000000000000..eebc39cc9050f5e9c6d2f769ae4f0e0b58f4e1ad --- /dev/null +++ b/data/web/rc/plugins/acl/localization/sv_SE.inc @@ -0,0 +1,98 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Utdelning'; +$labels['myrights'] = 'Åtkomsträttigheter'; +$labels['username'] = 'Användare:'; +$labels['advanced'] = 'Avancerat läge'; +$labels['newuser'] = 'Lägg till'; +$labels['editperms'] = 'Ändra rättigheter'; +$labels['actions'] = 'Hantera åtkomsträttigheter...'; +$labels['anyone'] = 'Alla användare (vem som helst)'; +$labels['anonymous'] = 'Gäster (anonyma)'; +$labels['identifier'] = 'Identifikation'; +$labels['acll'] = 'Uppslagning'; +$labels['aclr'] = 'Läs meddelanden'; +$labels['acls'] = 'Behåll status Läst'; +$labels['aclw'] = 'Skriv flaggor'; +$labels['acli'] = 'Infoga (kopiera in)'; +$labels['aclp'] = 'Posta'; +$labels['aclc'] = 'Skapa underkataloger'; +$labels['aclk'] = 'Skapa underkataloger'; +$labels['acld'] = 'Ta bort meddelanden'; +$labels['aclt'] = 'Ta bort meddelanden'; +$labels['acle'] = 'Utplåna'; +$labels['aclx'] = 'Ta bort katalog'; +$labels['acla'] = 'Administrera'; +$labels['acln'] = 'Kommentera meddelanden'; +$labels['aclfull'] = 'Full kontroll'; +$labels['aclother'] = 'Övrig'; +$labels['aclread'] = 'Läs'; +$labels['aclwrite'] = 'Skriv'; +$labels['acldelete'] = 'Ta bort'; +$labels['shortacll'] = 'Uppslagning'; +$labels['shortaclr'] = 'Läs'; +$labels['shortacls'] = 'Behåll'; +$labels['shortaclw'] = 'Skriv'; +$labels['shortacli'] = 'Infoga'; +$labels['shortaclp'] = 'Posta'; +$labels['shortaclc'] = 'Skapa'; +$labels['shortaclk'] = 'Skapa'; +$labels['shortacld'] = 'Ta bort'; +$labels['shortaclt'] = 'Ta bort'; +$labels['shortacle'] = 'Utplåna'; +$labels['shortaclx'] = 'Ta bort katalog'; +$labels['shortacla'] = 'Administrera'; +$labels['shortacln'] = 'Kommentera'; +$labels['shortaclother'] = 'Övrig'; +$labels['shortaclread'] = 'Läs'; +$labels['shortaclwrite'] = 'Skriv'; +$labels['shortacldelete'] = 'Ta bort'; +$labels['longacll'] = 'Katalogen är synlig i listor och den kan prenumereras på'; +$labels['longaclr'] = 'Katalogen kan öppnas för läsning'; +$labels['longacls'] = 'Meddelandeflagga Läst kan ändras'; +$labels['longaclw'] = 'Meddelandeflaggor och nyckelord kan ändras, undantaget Läst och Borttagen'; +$labels['longacli'] = 'Meddelanden kan skrivas eller kopieras till katalogen'; +$labels['longaclp'] = 'Meddelanden kan postas till denna katalog'; +$labels['longaclc'] = 'Kataloger kan skapas (eller ges annat namn) direkt i denna katalog'; +$labels['longaclk'] = 'Kataloger kan skapas (eller ges annat namn) direkt i denna katalog'; +$labels['longacld'] = 'Meddelandeflagga Borttaget kan ändras'; +$labels['longaclt'] = 'Meddelandeflagga Borttaget kan ändras'; +$labels['longacle'] = 'Meddelanden kan utplånas'; +$labels['longaclx'] = 'Katalogen kan tas bort eller ges annat namn'; +$labels['longacla'] = 'Katalogens åtkomsträttigheter kan ändras'; +$labels['longacln'] = 'Delad information om meddelanden (kommentarer) kan ändras'; +$labels['longaclfull'] = 'Full kontroll inklusive katalogadministration'; +$labels['longaclread'] = 'Katalogen kan öppnas för läsning'; +$labels['longaclwrite'] = 'Meddelanden kan märkas, skrivas eller kopieras till katalogen'; +$labels['longacldelete'] = 'Meddelanden kan tas bort'; +$labels['longaclother'] = 'Övriga åtkomsträttigheter'; +$labels['ariasummaryacltable'] = 'Lista med åtkomsträttigheter'; +$labels['arialabelaclactions'] = 'Hantera listor'; +$labels['arialabelaclform'] = 'Formulär för åtkomsträttigheter'; +$messages['deleting'] = 'Tar bort åtkomsträttigheter...'; +$messages['saving'] = 'Sparar åtkomsträttigheter...'; +$messages['updatesuccess'] = 'Åtkomsträttigheterna är ändrade'; +$messages['deletesuccess'] = 'Åtkomsträttigheterna är borttagna'; +$messages['createsuccess'] = 'Åtkomsträttigheterna är tillagda'; +$messages['updateerror'] = 'Åtkomsträttigheterna kunde inte ändras'; +$messages['deleteerror'] = 'Åtkomsträttigheterna kunde inte tas bort'; +$messages['createerror'] = 'Åtkomsträttigheterna kunde inte läggas till'; +$messages['deleteconfirm'] = 'Vill du verkligen ta bort åtkomsträttigheterna för markerade användare?'; +$messages['norights'] = 'Inga åtkomsträttigheter angavs!'; +$messages['nouser'] = 'Inget användarnamn angavs!'; +?> diff --git a/data/web/rc/plugins/acl/localization/th_TH.inc b/data/web/rc/plugins/acl/localization/th_TH.inc new file mode 100644 index 0000000000000000000000000000000000000000..2b346b621cda86e94ae9eff5af38d5f87f9c0f81 --- /dev/null +++ b/data/web/rc/plugins/acl/localization/th_TH.inc @@ -0,0 +1,49 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'การแชร์ข้อมูล'; +$labels['myrights'] = 'สิทธิ์การเข้าใช้'; +$labels['username'] = 'ผู้ใช้งาน:'; +$labels['newuser'] = 'เพิ่มรายการ'; +$labels['anyone'] = 'ผู้ใช้งานทั้งหมด (ใครก็ได้)'; +$labels['anonymous'] = 'ผู้เยี่ยมชม (คนแปลกหน้า)'; +$labels['aclr'] = 'อ่านข้อความ'; +$labels['acli'] = 'แทรก (คัดลอกไปไว้)'; +$labels['aclp'] = 'โพสต์'; +$labels['aclc'] = 'สร้างโฟลเดอร์ย่อย'; +$labels['aclk'] = 'สร้างโฟลเดอร์ย่อย'; +$labels['acld'] = 'ลบข้อความ'; +$labels['aclt'] = 'ลบข้อความ'; +$labels['aclx'] = 'ลบโฟลเดอร์'; +$labels['aclother'] = 'อื่นๆ'; +$labels['aclread'] = 'อ่าน'; +$labels['aclwrite'] = 'เขียน'; +$labels['acldelete'] = 'ลบ'; +$labels['shortaclr'] = 'อ่าน'; +$labels['shortaclw'] = 'เขียน'; +$labels['shortacli'] = 'แทรก'; +$labels['shortaclp'] = 'โพสต์'; +$labels['shortaclc'] = 'สร้าง'; +$labels['shortaclk'] = 'สร้าง'; +$labels['shortacld'] = 'ลบ'; +$labels['shortaclt'] = 'ลบ'; +$labels['shortaclx'] = 'ลบโฟลเดอร์'; +$labels['shortaclother'] = 'อื่นๆ'; +$labels['shortaclread'] = 'อ่าน'; +$labels['shortaclwrite'] = 'เขียน'; +$labels['shortacldelete'] = 'ลบ'; +?> diff --git a/data/web/rc/plugins/acl/localization/ti.inc b/data/web/rc/plugins/acl/localization/ti.inc new file mode 100644 index 0000000000000000000000000000000000000000..1af3a19261bf27f61932e96d9224aac185331fd3 --- /dev/null +++ b/data/web/rc/plugins/acl/localization/ti.inc @@ -0,0 +1,66 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'ንኻልእ'; +$labels['myrights'] = 'መሰላት በዓል ዋና'; +$labels['username'] = 'በዓል ዋና'; +$labels['newuser'] = 'እታዎ ክውስኽ'; +$labels['actions'] = 'ንጥፈታት መብት ተጠቃማይነት'; +$labels['anyone'] = 'ኩሉም በዓልቲ ዋናታት(ዝኾነ ሰብ)'; +$labels['anonymous'] = 'ጋሻ(ሽም አልቦ)'; +$labels['identifier'] = 'መለለዪ'; +$labels['acll'] = 'አለሻ'; +$labels['aclr'] = 'ዝተነበቡ መልእኽታት'; +$labels['acls'] = 'ተራእዩ ብዝብል ይጽናሕ'; +$labels['aclw'] = 'ምልክታት ምጽሓፍ'; +$labels['acli'] = 'ሸጉጥ(አብ..መንጎ አቐምጥ)'; +$labels['aclp'] = 'ጠቅዕ'; +$labels['aclc'] = 'ማህደር ፍጠር'; +$labels['aclk'] = 'ክፍለማህደር ፍጠር'; +$labels['acld'] = 'መልእኽታት አጥፍእ'; +$labels['aclt'] = 'መልእኽታት አጥፍእ'; +$labels['acle'] = 'ንሓዋሩ አጥፍእ'; +$labels['aclx'] = 'ማህደር አጥፍእ'; +$labels['acla'] = 'ተቖፃፀር'; +$labels['aclfull'] = 'ምሉእ ቑጽፅር'; +$labels['aclother'] = 'ካሊእ'; +$labels['aclread'] = 'ከንብብ'; +$labels['aclwrite'] = 'ክጽሕፍ'; +$labels['acldelete'] = 'ይጥፈአለይ'; +$labels['shortacll'] = 'አለሻ'; +$labels['shortaclr'] = 'ዝተነበበ'; +$labels['shortacls'] = 'ይፅናሕ'; +$labels['shortaclw'] = 'ይጽሓፍ'; +$labels['shortacli'] = 'ይሸጎጥ'; +$labels['shortaclp'] = 'ይጠቃዕ'; +$labels['shortaclc'] = 'ይፈጠር'; +$labels['shortaclk'] = 'ይፈጠር'; +$labels['shortacld'] = 'ይጥፋእ'; +$labels['shortaclt'] = 'ይጥፋእ'; +$labels['shortacle'] = 'ንሓዋሩ ይጥፋእ'; +$labels['shortaclx'] = 'ዝጠፍእ ማህደር'; +$labels['shortacla'] = 'ክቆፃፀር'; +$labels['shortaclother'] = 'ካሊእ'; +$labels['shortaclread'] = 'ከንብብ'; +$labels['shortaclwrite'] = 'ክጽሕፍ'; +$labels['shortacldelete'] = 'ይጥፋእ'; +$labels['longaclr'] = 'ማህደር ተኸፊቱ ክንበብ ይኽእል'; +$labels['longacls'] = 'ተራእዩ ዝብል መልእኽቲ ዕላም ክለወጥ ይኽእል'; +$labels['longaclw'] = 'ዕላማትን መፍትሕ ቃላትን መልኽትታት ክልወጡ ይኽእሉ, ብዘይካ ዝተረኣዩን ዝጠፍኡን'; +$labels['longacli'] = 'መልእኽቲ ናብዚ ማህደር ክጽሓፍ ወይ ክቕዳሕ ይኽእል'; +$labels['longaclp'] = 'መልእኽቲ ናብዚ ማህደር ክኣቱ ይኽእል'; +?> diff --git a/data/web/rc/plugins/acl/localization/tr_TR.inc b/data/web/rc/plugins/acl/localization/tr_TR.inc new file mode 100644 index 0000000000000000000000000000000000000000..b13ac8555f8da3a1d3c63de92df7ed9809d2858e --- /dev/null +++ b/data/web/rc/plugins/acl/localization/tr_TR.inc @@ -0,0 +1,98 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Paylaşım'; +$labels['myrights'] = 'Erişim İzinleri'; +$labels['username'] = 'Kullanıcı:'; +$labels['advanced'] = 'Gelişmiş kip'; +$labels['newuser'] = 'Kayıt ekle'; +$labels['editperms'] = 'İzinleri düzenle'; +$labels['actions'] = 'Erişim izinleri işlemleri...'; +$labels['anyone'] = 'Tüm kullanıcılar (kim olursa)'; +$labels['anonymous'] = 'Ziyaretçiler (isimsiz)'; +$labels['identifier'] = 'Tanımlayıcı'; +$labels['acll'] = 'Arama'; +$labels['aclr'] = 'İletileri oku'; +$labels['acls'] = 'Okundu durumu korunsun'; +$labels['aclw'] = 'Yazma işaretleri'; +$labels['acli'] = 'Ekle (kopyala)'; +$labels['aclp'] = 'Gönder'; +$labels['aclc'] = 'Alt klasörler oluştur'; +$labels['aclk'] = 'Alt klasörler oluştur'; +$labels['acld'] = 'İletileri sil'; +$labels['aclt'] = 'İletileri sil'; +$labels['acle'] = 'Sil'; +$labels['aclx'] = 'Klasörü sil'; +$labels['acla'] = 'Yönet'; +$labels['acln'] = 'İletilere not ekle'; +$labels['aclfull'] = 'Tam denetim'; +$labels['aclother'] = 'Diğer'; +$labels['aclread'] = 'Oku'; +$labels['aclwrite'] = 'Yaz'; +$labels['acldelete'] = 'Sil'; +$labels['shortacll'] = 'Arama'; +$labels['shortaclr'] = 'Oku'; +$labels['shortacls'] = 'Koru'; +$labels['shortaclw'] = 'Yaz'; +$labels['shortacli'] = 'Ekle'; +$labels['shortaclp'] = 'Gönder'; +$labels['shortaclc'] = 'Oluştur'; +$labels['shortaclk'] = 'Oluştur'; +$labels['shortacld'] = 'Sil'; +$labels['shortaclt'] = 'Sil'; +$labels['shortacle'] = 'Sil'; +$labels['shortaclx'] = 'Klasörü sil'; +$labels['shortacla'] = 'Yönet'; +$labels['shortacln'] = 'Not ekle'; +$labels['shortaclother'] = 'Diğer'; +$labels['shortaclread'] = 'Oku'; +$labels['shortaclwrite'] = 'Yaz'; +$labels['shortacldelete'] = 'Sil'; +$labels['longacll'] = 'Klasör listesinde görülebilir ve abone olunabilir'; +$labels['longaclr'] = 'Klasör okunmak üzere açılabilir'; +$labels['longacls'] = 'İletilerin Okundu işareti değiştirilebilir'; +$labels['longaclw'] = 'Okundu ve Silindi işaretleri dışındaki işaret ve anahtar sözcükler değiştirilebilir'; +$labels['longacli'] = 'Klasöre iletiler yazılabilir ya da kopyalanabilir'; +$labels['longaclp'] = 'İletiler bu klasöre gönderilebilir'; +$labels['longaclc'] = 'Klasörler doğrudan bu klasör altında oluşturulabilir (ya da yeniden adlandırılabilir).'; +$labels['longaclk'] = 'Klasörler doğrudan bu klasör altında oluşturulabilir (ya da yeniden adlandırılabilir).'; +$labels['longacld'] = 'İleti Silindi işareti değiştirilebilir'; +$labels['longaclt'] = 'İleti Silindi işareti değiştirilebilir'; +$labels['longacle'] = 'İletiler silinebilir'; +$labels['longaclx'] = 'Klasör silinebilir ya da yeniden adlandırılabilir'; +$labels['longacla'] = 'Klasör erişim izinleri değiştirilebilir'; +$labels['longacln'] = 'İletilerin paylaşılan üst verileri (notlar) değiştirilebilir'; +$labels['longaclfull'] = 'Klasör yönetimi dahil tam denetim'; +$labels['longaclread'] = 'Klasör okunmak üzere açılabilir'; +$labels['longaclwrite'] = 'Klasöre iletiler işaretlenebilir, yazılabilir ya da kopyalanabilir'; +$labels['longacldelete'] = 'İletiler silinebilir'; +$labels['longaclother'] = 'Diğer erişim izinleri'; +$labels['ariasummaryacltable'] = 'Erişim izinleri listesi'; +$labels['arialabelaclactions'] = 'İşlem listesi'; +$labels['arialabelaclform'] = 'Erişim izinleri formu'; +$messages['deleting'] = 'Erişim izinleri siliniyor...'; +$messages['saving'] = 'Erişim izinleri kaydediliyor...'; +$messages['updatesuccess'] = 'Erişim izinleri değiştirildi'; +$messages['deletesuccess'] = 'Erişim izinleri silindi'; +$messages['createsuccess'] = 'Erişim izinleri eklendi'; +$messages['updateerror'] = 'Erişim izinleri güncellenemedi'; +$messages['deleteerror'] = 'Erişim izinleri silinemedi'; +$messages['createerror'] = 'Erişim izinleri eklenemedi'; +$messages['deleteconfirm'] = 'Seçilmiş kullanıcılar için erişim izinlerini silmek istediğinize emin misiniz?'; +$messages['norights'] = 'Herhangi bir izin belirtilmemiş!'; +$messages['nouser'] = 'Herhangi bir kullanıcı belirtilmemiş!'; +?> diff --git a/data/web/rc/plugins/acl/localization/tzl.inc b/data/web/rc/plugins/acl/localization/tzl.inc new file mode 100644 index 0000000000000000000000000000000000000000..a4841200eeccaf508152b2f095dee1d8d53063d6 --- /dev/null +++ b/data/web/rc/plugins/acl/localization/tzl.inc @@ -0,0 +1,24 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['username'] = 'Uçeir:'; +$labels['anonymous'] = 'Gästs (anonimös)'; +$labels['acldelete'] = 'Zeletarh'; +$labels['shortacld'] = 'Zeletarh'; +$labels['shortaclt'] = 'Zeletarh'; +$labels['shortacldelete'] = 'Zeletarh'; +?> diff --git a/data/web/rc/plugins/acl/localization/uk_UA.inc b/data/web/rc/plugins/acl/localization/uk_UA.inc new file mode 100644 index 0000000000000000000000000000000000000000..4b86548612a8bde2d2ef16b87d72041ec744f88e --- /dev/null +++ b/data/web/rc/plugins/acl/localization/uk_UA.inc @@ -0,0 +1,98 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Поширення'; +$labels['myrights'] = 'Права доступу'; +$labels['username'] = 'Користувач:'; +$labels['advanced'] = 'Розширений режим'; +$labels['newuser'] = 'Додати запис'; +$labels['editperms'] = 'Редагувати дозволи'; +$labels['actions'] = 'Дії з правами доступу…'; +$labels['anyone'] = 'Усі користувачі (будь-хто)'; +$labels['anonymous'] = 'Гості (аноніми)'; +$labels['identifier'] = 'Ідентифікатор'; +$labels['acll'] = 'Пошук'; +$labels['aclr'] = 'Прочитані повідомлення'; +$labels['acls'] = 'Зберегти статус «Прочитано»'; +$labels['aclw'] = 'Прапорці написання'; +$labels['acli'] = 'Вставити (Копіювати в)'; +$labels['aclp'] = 'Допис'; +$labels['aclc'] = 'Створити підтеки'; +$labels['aclk'] = 'Створити підтеки'; +$labels['acld'] = 'Вилучити повідомлення'; +$labels['aclt'] = 'Вилучити повідомлення'; +$labels['acle'] = 'Викреслити'; +$labels['aclx'] = 'Вилучити теку'; +$labels['acla'] = 'Адмініструвати'; +$labels['acln'] = 'Анотувати повідомлення'; +$labels['aclfull'] = 'Повний контроль'; +$labels['aclother'] = 'Інше'; +$labels['aclread'] = 'Читати'; +$labels['aclwrite'] = 'Писати'; +$labels['acldelete'] = 'Вилучити'; +$labels['shortacll'] = 'Пошук'; +$labels['shortaclr'] = 'Читати'; +$labels['shortacls'] = 'Залишити'; +$labels['shortaclw'] = 'Писати'; +$labels['shortacli'] = 'Вставити'; +$labels['shortaclp'] = 'Дописати'; +$labels['shortaclc'] = 'Створити'; +$labels['shortaclk'] = 'Створити'; +$labels['shortacld'] = 'Вилучити'; +$labels['shortaclt'] = 'Вилучити'; +$labels['shortacle'] = 'Викреслити'; +$labels['shortaclx'] = 'Вилучити теку'; +$labels['shortacla'] = 'Адмініструвати'; +$labels['shortacln'] = 'Анотувати'; +$labels['shortaclother'] = 'Інше'; +$labels['shortaclread'] = 'Читати'; +$labels['shortaclwrite'] = 'Писати'; +$labels['shortacldelete'] = 'Вилучити'; +$labels['longacll'] = 'Тека видима у списках і на неї можна підписатись'; +$labels['longaclr'] = 'Теку можна відкрити для читання'; +$labels['longacls'] = 'Прапорець «Прочитано» на повідомленнях можна змінити'; +$labels['longaclw'] = 'Прапорці і ключові слова повідомлень можна змінити, окрім «Прочитано» і «Вилучено»'; +$labels['longacli'] = 'Повідомлення можна записати або копіювати у теку'; +$labels['longaclp'] = 'Повідомлення можна публікувати в цю теку'; +$labels['longaclc'] = 'Теки можна створювати (чи перейменовувати) прямо під цією текою'; +$labels['longaclk'] = 'Теки можна створювати (чи перейменовувати) прямо під цією текою'; +$labels['longacld'] = 'Прапорець «Вилучено» на повідомленнях можна змінити'; +$labels['longaclt'] = 'Прапорець «Вилучено» на повідомленнях можна змінити'; +$labels['longacle'] = 'Повідомлення можна викреслити'; +$labels['longaclx'] = 'Теку можна вилучити чи перейменувати'; +$labels['longacla'] = 'Права доступу до теки можна змінити'; +$labels['longacln'] = 'Поширені метадані (анотації) повідомлень можна змінити'; +$labels['longaclfull'] = 'Повний контроль, включно з адмініструванням тек'; +$labels['longaclread'] = 'Теку можна відкрити для читання'; +$labels['longaclwrite'] = 'Повідомлення можна позначити, записати або копіювати у теку'; +$labels['longacldelete'] = 'Повідомлення можна вилучити'; +$labels['longaclother'] = 'Інші права доступу'; +$labels['ariasummaryacltable'] = 'Список прав доступу'; +$labels['arialabelaclactions'] = 'Перелічити дії'; +$labels['arialabelaclform'] = 'Форма прав доступу'; +$messages['deleting'] = 'Вилучення прав доступу…'; +$messages['saving'] = 'Збереження прав доступу…'; +$messages['updatesuccess'] = 'Права доступу успішно змінені'; +$messages['deletesuccess'] = 'Права доступу успішно вилучені'; +$messages['createsuccess'] = 'Права доступу успішно додані'; +$messages['updateerror'] = 'Не вдалося оновити права доступу'; +$messages['deleteerror'] = 'Не вдалося вилучити права доступу'; +$messages['createerror'] = 'Не вдалося додати права доступу'; +$messages['deleteconfirm'] = 'Ви дійсно хочете вилучити права доступу обраного користувача(-ів)?'; +$messages['norights'] = 'Жодних прав не вказано!'; +$messages['nouser'] = 'Жодного імені користувача не вказано!'; +?> diff --git a/data/web/rc/plugins/acl/localization/vi_VN.inc b/data/web/rc/plugins/acl/localization/vi_VN.inc new file mode 100644 index 0000000000000000000000000000000000000000..c6ce2fd44370c7c344686418f07e7db7e6aa1e5b --- /dev/null +++ b/data/web/rc/plugins/acl/localization/vi_VN.inc @@ -0,0 +1,98 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = 'Chia sẻ'; +$labels['myrights'] = 'Quyền truy cập'; +$labels['username'] = 'Người dùng:'; +$labels['advanced'] = 'Chế độ tính năng cao hơn'; +$labels['newuser'] = 'Thêm bài viết'; +$labels['editperms'] = 'Sửa đổi quyền sử dụng'; +$labels['actions'] = 'Các thao tác quyền truy cập'; +$labels['anyone'] = 'Tất cả người dùng (bất kỳ ai)'; +$labels['anonymous'] = 'Khách (nặc danh)'; +$labels['identifier'] = 'Định danh'; +$labels['acll'] = 'Tìm kiếm'; +$labels['aclr'] = 'Đọc thư'; +$labels['acls'] = 'Giữ trạng thái đã xem qua'; +$labels['aclw'] = 'Cờ đánh dấu cho mục viết'; +$labels['acli'] = 'Chèn thêm (sao chép vào)'; +$labels['aclp'] = 'Đăng bài'; +$labels['aclc'] = 'Tạo giữ liệu con'; +$labels['aclk'] = 'Tạo giữ liệu con'; +$labels['acld'] = 'Xóa thư'; +$labels['aclt'] = 'Xóa thư'; +$labels['acle'] = 'Thải bỏ'; +$labels['aclx'] = 'Xóa giữ liệu'; +$labels['acla'] = 'Quản lý'; +$labels['acln'] = 'Thông tin chú thích'; +$labels['aclfull'] = 'Quản lý toàn bộ'; +$labels['aclother'] = 'Loại khác'; +$labels['aclread'] = 'Đọc'; +$labels['aclwrite'] = 'Viết'; +$labels['acldelete'] = 'Xoá'; +$labels['shortacll'] = 'Tìm kiếm'; +$labels['shortaclr'] = 'Đọc'; +$labels['shortacls'] = 'Giữ'; +$labels['shortaclw'] = 'Viết'; +$labels['shortacli'] = 'Chèn'; +$labels['shortaclp'] = 'Đăng bài'; +$labels['shortaclc'] = 'Tạo mới'; +$labels['shortaclk'] = 'Tạo mới'; +$labels['shortacld'] = 'Xoá'; +$labels['shortaclt'] = 'Xoá'; +$labels['shortacle'] = 'Thải bỏ'; +$labels['shortaclx'] = 'Giữ liệu được xóa'; +$labels['shortacla'] = 'Quản lý'; +$labels['shortacln'] = 'Chú thích'; +$labels['shortaclother'] = 'Loại khác'; +$labels['shortaclread'] = 'Đọc'; +$labels['shortaclwrite'] = 'Viết'; +$labels['shortacldelete'] = 'Xoá'; +$labels['longacll'] = 'Thư mục đã được hiển thị và có thể đăng ký sử dụng'; +$labels['longaclr'] = 'Thư mục có thể được mở để đọc'; +$labels['longacls'] = 'Cờ đánh dấu thư đã xem qua có thể thay đổi'; +$labels['longaclw'] = 'Cờ thư và từ khóa có thể thay đổi, ngoại trừ đã xem qua và bị xóa'; +$labels['longacli'] = 'Thư có thể được ghi hoặc sao chép vào giữ liệu'; +$labels['longaclp'] = 'Thư có thể bỏ vào trong giữ liệu này'; +$labels['longaclc'] = 'Các giữ liệu có thể được tạo (hoặc đặt lại tên) trực tiếp dưới giữ liệu này'; +$labels['longaclk'] = 'Các giữ liệu có thể được tạo (hoặc đặt lại tên) trực tiếp dưới giữ liệu này'; +$labels['longacld'] = 'Cờ đánh dấu thư xóa có thể thay đổi'; +$labels['longaclt'] = 'Cờ đánh dấu thư xóa có thể thay đổi'; +$labels['longacle'] = 'Thư có thể thải bỏ'; +$labels['longaclx'] = 'Giữ liệu có thể xóa được hoặc đặt lại tên'; +$labels['longacla'] = 'Quyên truy cập giữ liệu có thể thay đổi'; +$labels['longacln'] = 'Dữ liệu thông tin (chú thích) của thư có thể thay đổi'; +$labels['longaclfull'] = 'Quản lý toàn bộ bao gồm cả sự thi hành giữ liệu'; +$labels['longaclread'] = 'Giữ liệu có thể được mở để đọc'; +$labels['longaclwrite'] = 'Thư có thể được đánh dấu, ghi hoăc sao chép vào giữ liệu'; +$labels['longacldelete'] = 'Thư có thể bị xóa'; +$labels['longaclother'] = 'Quyền truy cập khác'; +$labels['ariasummaryacltable'] = 'Danh sách quyền truy cập'; +$labels['arialabelaclactions'] = 'Danh sách hành động'; +$labels['arialabelaclform'] = 'Bảng khai quyền truy cập'; +$messages['deleting'] = 'Xóa quyền truy cập...'; +$messages['saving'] = 'Lưu quyền truy cập...'; +$messages['updatesuccess'] = 'Thay đổi quyền truy cập thành công...'; +$messages['deletesuccess'] = 'Xóa quyền truy cập thành công...'; +$messages['createsuccess'] = 'Thêm quyền truy cập thành công...'; +$messages['updateerror'] = 'Không thể cập nhật quyền truy cập'; +$messages['deleteerror'] = 'Khôngthể xóa quyền truy cập'; +$messages['createerror'] = 'Không thể thêm quyền truy cập'; +$messages['deleteconfirm'] = 'Bạn có chắc là muốn xóa bỏ quyền truy cập của người dùng được chọn?'; +$messages['norights'] = 'Chưa có quyền nào được chỉ định!'; +$messages['nouser'] = 'Chưa có tên truy nhập được chỉ định!'; +?> diff --git a/data/web/rc/plugins/acl/localization/zh_CN.inc b/data/web/rc/plugins/acl/localization/zh_CN.inc new file mode 100644 index 0000000000000000000000000000000000000000..ea6a83c8ac59bcd2a4332e6f67266811b49f0aa4 --- /dev/null +++ b/data/web/rc/plugins/acl/localization/zh_CN.inc @@ -0,0 +1,98 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = '共享'; +$labels['myrights'] = '访问权限'; +$labels['username'] = '用户:'; +$labels['advanced'] = '高级模式'; +$labels['newuser'] = '新增条目'; +$labels['editperms'] = '编辑权限'; +$labels['actions'] = '权限设置...'; +$labels['anyone'] = '所有用户(任何人)'; +$labels['anonymous'] = '来宾(匿名)'; +$labels['identifier'] = '标识符'; +$labels['acll'] = '查找'; +$labels['aclr'] = '读取消息'; +$labels['acls'] = '保存已读状态'; +$labels['aclw'] = '写入标志'; +$labels['acli'] = '插入(复制至)'; +$labels['aclp'] = '发送'; +$labels['aclc'] = '创建子文件夹'; +$labels['aclk'] = '创建子文件夹'; +$labels['acld'] = '删除消息'; +$labels['aclt'] = '删除消息'; +$labels['acle'] = '清除'; +$labels['aclx'] = '删除文件夹'; +$labels['acla'] = '管理'; +$labels['acln'] = '注释消息'; +$labels['aclfull'] = '全部控制'; +$labels['aclother'] = '其它'; +$labels['aclread'] = '读取'; +$labels['aclwrite'] = '写入'; +$labels['acldelete'] = '删除'; +$labels['shortacll'] = '查找'; +$labels['shortaclr'] = '读取'; +$labels['shortacls'] = '保存'; +$labels['shortaclw'] = '写入'; +$labels['shortacli'] = '插入'; +$labels['shortaclp'] = '发送'; +$labels['shortaclc'] = '新建'; +$labels['shortaclk'] = '新建'; +$labels['shortacld'] = '删除'; +$labels['shortaclt'] = '删除'; +$labels['shortacle'] = '清除'; +$labels['shortaclx'] = '删除文件夹'; +$labels['shortacla'] = '管理'; +$labels['shortacln'] = '注释'; +$labels['shortaclother'] = '其他'; +$labels['shortaclread'] = '读取'; +$labels['shortaclwrite'] = '写入'; +$labels['shortacldelete'] = '删除'; +$labels['longacll'] = '该文件夹在列表上可见且可被订阅'; +$labels['longaclr'] = '该文件夹可被打开阅读'; +$labels['longacls'] = '已读消息标识可以改变'; +$labels['longaclw'] = '除已读和删除表示外其他消息标识可以改变'; +$labels['longacli'] = '消息可被标记,撰写或复制至文件夹中'; +$labels['longaclp'] = '消息可以发到此文件夹'; +$labels['longaclc'] = '文件夹可被创建(或改名)于现有目录下'; +$labels['longaclk'] = '文件夹可直接在此目录下创建(或改名)'; +$labels['longacld'] = '消息已删除标识可以改变'; +$labels['longaclt'] = '消息已删除标识可以改变'; +$labels['longacle'] = '消息可被清除'; +$labels['longaclx'] = '该文件夹可被删除或重命名'; +$labels['longacla'] = '文件夹访问权限可被修改'; +$labels['longacln'] = '消息共享元数据(注释)可以改变'; +$labels['longaclfull'] = '完全控制,包括文件夹管理'; +$labels['longaclread'] = '该文件夹可被打开阅读'; +$labels['longaclwrite'] = '消息可被标记,撰写或复制至文件夹中'; +$labels['longacldelete'] = '信息可被删除'; +$labels['longaclother'] = '其他访问权限'; +$labels['ariasummaryacltable'] = '访问权限列表'; +$labels['arialabelaclactions'] = '列出操作'; +$labels['arialabelaclform'] = '访问权限从'; +$messages['deleting'] = '删除访问权限中…'; +$messages['saving'] = '保存访问权限中…'; +$messages['updatesuccess'] = '成功修改访问权限'; +$messages['deletesuccess'] = '成功删除访问权限'; +$messages['createsuccess'] = '成功添加访问权限'; +$messages['updateerror'] = '无法更新访问权限'; +$messages['deleteerror'] = '无法删除访问权限'; +$messages['createerror'] = '无法添加访问权限'; +$messages['deleteconfirm'] = '您确定要移除选中用户的访问权限吗?'; +$messages['norights'] = '没有已指定的权限!'; +$messages['nouser'] = '没有已指定的用户名!'; +?> diff --git a/data/web/rc/plugins/acl/localization/zh_TW.inc b/data/web/rc/plugins/acl/localization/zh_TW.inc new file mode 100644 index 0000000000000000000000000000000000000000..d9c5d9770955edc6d7a7d861cf5f8b82cc66252e --- /dev/null +++ b/data/web/rc/plugins/acl/localization/zh_TW.inc @@ -0,0 +1,89 @@ +.inc | + | | + | Localization file of the Roundcube Webmail ACL plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-acl/ +*/ +$labels['sharing'] = '分享'; +$labels['myrights'] = '存取權限'; +$labels['username'] = '使用者:'; +$labels['newuser'] = '新增項目'; +$labels['actions'] = '權限設定'; +$labels['anyone'] = '所有使用者 (anyone)'; +$labels['anonymous'] = '訪客 (anonymous)'; +$labels['identifier'] = '識別'; +$labels['acll'] = '尋找'; +$labels['aclr'] = '讀取訊息'; +$labels['acls'] = '保持上線狀態'; +$labels['aclw'] = '寫入標幟'; +$labels['acli'] = '插入(複製到這裡)'; +$labels['aclp'] = '發表'; +$labels['aclc'] = '建立子資料夾'; +$labels['aclk'] = '建立子資料夾'; +$labels['acld'] = '刪除訊息'; +$labels['aclt'] = '刪除訊息'; +$labels['acle'] = '刪去'; +$labels['aclx'] = '刪除資料夾'; +$labels['acla'] = '管理者'; +$labels['aclfull'] = '完全控制'; +$labels['aclother'] = '其它'; +$labels['aclread'] = '讀取'; +$labels['aclwrite'] = '寫入'; +$labels['acldelete'] = '刪除'; +$labels['shortacll'] = '尋找'; +$labels['shortaclr'] = '讀取'; +$labels['shortacls'] = '保存'; +$labels['shortaclw'] = '寫入'; +$labels['shortacli'] = '插入'; +$labels['shortaclp'] = '發表'; +$labels['shortaclc'] = '建立'; +$labels['shortaclk'] = '建立'; +$labels['shortacld'] = '刪除'; +$labels['shortaclt'] = '刪除'; +$labels['shortacle'] = '刪去'; +$labels['shortaclx'] = '資料夾刪除'; +$labels['shortacla'] = '管理者'; +$labels['shortaclother'] = '其它'; +$labels['shortaclread'] = '讀取'; +$labels['shortaclwrite'] = '寫入'; +$labels['shortacldelete'] = '刪除'; +$labels['longacll'] = '此資料夾權限可以訂閱和瀏覽'; +$labels['longaclr'] = '資料夾能被打開與讀取'; +$labels['longacls'] = '能修改訊息標幟'; +$labels['longaclw'] = '內容旗標和關鍵字可以變更,不包含已檢視和刪除的'; +$labels['longacli'] = '訊息能寫入或複製到資料夾'; +$labels['longaclp'] = '訊息能被投遞到這個資料夾'; +$labels['longaclc'] = '這個資料夾之下可以建子資料夾(或重新命名)'; +$labels['longaclk'] = '這個資料夾之下可以建子資料夾(或重新命名)'; +$labels['longacld'] = '能修改訊息刪除標幟'; +$labels['longaclt'] = '能修改訊息刪除標幟'; +$labels['longacle'] = '能抹除訊息'; +$labels['longaclx'] = '資料夾能被刪除或重新命名'; +$labels['longacla'] = '能變更資料夾權限'; +$labels['longaclfull'] = '完全控制包含資料夾管理'; +$labels['longaclread'] = '資料夾能被打開與讀取'; +$labels['longaclwrite'] = '信件可以被標記、編寫或複製到資料夾'; +$labels['longacldelete'] = '訊息能被刪除'; +$messages['deleting'] = '刪除權限...'; +$messages['saving'] = '儲存權限...'; +$messages['updatesuccess'] = '權限變更完成'; +$messages['deletesuccess'] = '權限刪除完成'; +$messages['createsuccess'] = '權限新增完成'; +$messages['updateerror'] = '無法更新權限'; +$messages['deleteerror'] = '無法刪除權限'; +$messages['createerror'] = '無法新增權限'; +$messages['deleteconfirm'] = '您確定要刪除所選取使用者的權限嗎?'; +$messages['norights'] = '沒有指定任何權限'; +$messages['nouser'] = '沒有指定用戶名稱'; +?> diff --git a/data/web/rc/plugins/acl/skins/classic/acl.css b/data/web/rc/plugins/acl/skins/classic/acl.css new file mode 100644 index 0000000000000000000000000000000000000000..977432a235012dc3ba9377a9cfd9440391e65ae2 --- /dev/null +++ b/data/web/rc/plugins/acl/skins/classic/acl.css @@ -0,0 +1,98 @@ +#aclmanager +{ + position: relative; + border: 1px solid #999; + min-height: 302px; +} + +#aclcontainer +{ + overflow-x: auto; +} + +#acltable +{ + width: 100%; + border-collapse: collapse; + background-color: #F9F9F9; +} + +#acltable td +{ + width: 1%; + white-space: nowrap; +} + +#acltable thead td +{ + padding: 0 4px 0 2px; +} + +#acltable tbody td +{ + text-align: center; + padding: 2px; + border-bottom: 1px solid #999999; + cursor: default; +} + +#acltable tbody td.user +{ + width: 96%; + text-align: left; + overflow: hidden; + text-overflow: ellipsis; + -o-text-overflow: ellipsis; +} + +#acltable tbody td.partial +{ + background: url(images/partial.png?v=05d7.389) center no-repeat; +} + +#acltable tbody td.enabled +{ + background: url(images/enabled.png?v=9d9a.674) center no-repeat; +} + +#acltable tr.selected td +{ + color: #FFFFFF; + background-color: #CC3333; +} + +#acltable tr.unfocused td +{ + color: #FFFFFF; + background-color: #929292; +} + +#acladvswitch +{ + position: absolute; + right: 4px; + text-align: right; + line-height: 22px; +} + +#acladvswitch input +{ + vertical-align: middle; +} + +#acladvswitch span +{ + display: block; +} + +#aclform +{ + display: none; +} + +#aclform div +{ + padding: 0; + text-align: center; + clear: both; +} diff --git a/data/web/rc/plugins/acl/skins/classic/acl.min.css b/data/web/rc/plugins/acl/skins/classic/acl.min.css new file mode 100644 index 0000000000000000000000000000000000000000..8faea4f26dfc8c372822de6dd2ec2ed83b8ab97b --- /dev/null +++ b/data/web/rc/plugins/acl/skins/classic/acl.min.css @@ -0,0 +1 @@ +#aclmanager{position:relative;border:1px solid #999;min-height:302px}#aclcontainer{overflow-x:auto}#acltable{width:100%;border-collapse:collapse;background-color:#f9f9f9}#acltable td{width:1%;white-space:nowrap}#acltable thead td{padding:0 4px 0 2px}#acltable tbody td{text-align:center;padding:2px;border-bottom:1px solid #999;cursor:default}#acltable tbody td.user{width:96%;text-align:left;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}#acltable tbody td.partial{background:url(images/partial.png?v=05d7.389) center no-repeat}#acltable tbody td.enabled{background:url(images/enabled.png?v=9d9a.674) center no-repeat}#acltable tr.selected td{color:#fff;background-color:#c33}#acltable tr.unfocused td{color:#fff;background-color:#929292}#acladvswitch{position:absolute;right:4px;text-align:right;line-height:22px}#acladvswitch input{vertical-align:middle}#acladvswitch span{display:block}#aclform{display:none}#aclform div{padding:0;text-align:center;clear:both} \ No newline at end of file diff --git a/data/web/rc/plugins/acl/skins/classic/images/enabled.png b/data/web/rc/plugins/acl/skins/classic/images/enabled.png new file mode 100644 index 0000000000000000000000000000000000000000..98215f68ccf339c5c27541c3b34c08abc75073e0 Binary files /dev/null and b/data/web/rc/plugins/acl/skins/classic/images/enabled.png differ diff --git a/data/web/rc/plugins/acl/skins/classic/images/partial.png b/data/web/rc/plugins/acl/skins/classic/images/partial.png new file mode 100644 index 0000000000000000000000000000000000000000..12023f0575df28da28817de3234c595e0db00d13 Binary files /dev/null and b/data/web/rc/plugins/acl/skins/classic/images/partial.png differ diff --git a/data/web/rc/plugins/acl/skins/classic/templates/table.html b/data/web/rc/plugins/acl/skins/classic/templates/table.html new file mode 100644 index 0000000000000000000000000000000000000000..f19998cf4cefcd2afe922e178cf9fbf7e6dc6925 --- /dev/null +++ b/data/web/rc/plugins/acl/skins/classic/templates/table.html @@ -0,0 +1,46 @@ + + +
    +
    + +
    +
    + + +
    +
    + +
    +
      +
    • +
    • + +
    • + +
    +
    + +
    +
    + +
    +
    + +
    +
    + + diff --git a/data/web/rc/plugins/acl/skins/larry/acl.css b/data/web/rc/plugins/acl/skins/larry/acl.css new file mode 100644 index 0000000000000000000000000000000000000000..06cafa304192b78f6f0b305229dd3794bbc42566 --- /dev/null +++ b/data/web/rc/plugins/acl/skins/larry/acl.css @@ -0,0 +1,124 @@ +#aclcontainer +{ + overflow-x: auto; + border: 1px solid #CCDDE4; + background-color: #D9ECF4; + height: 272px; + box-shadow: none; +} + +#acllist-content +{ + position: relative; + height: 230px; + background-color: white; +} + +#acllist-footer +{ + position: relative; +} + +#acltable +{ + width: 100%; + border-collapse: collapse; + border: none; +} + +#acltable th, +#acltable td +{ + white-space: nowrap; + text-align: center; +} + +#acltable thead tr th +{ + font-size: 11px; + font-weight: bold; +} + +#acltable tbody td +{ + text-align: center; + height: 16px; + cursor: default; +} + +#acltable thead tr > .user +{ + width: 30%; + border-left: none; +} + +#acltable.advanced thead tr > .user { + width: 25%; +} + +#acltable tbody td.user +{ + text-align: left; +} + +#acltable tbody td.partial +{ + background-image: url(images/partial.png?v=05d7.389); + background-position: center; + background-repeat: no-repeat; +} + +#acltable tbody td.enabled +{ + background-image: url(images/enabled.png?v=9d9a.674); + background-position: center; + background-repeat: no-repeat; +} + +#acltable tbody tr.selected td.partial +{ + background-color: #019bc6; + background-image: url(images/partial.png?v=05d7.389), -moz-linear-gradient(top, #019bc6 0%, #017cb4 100%); + background-image: url(images/partial.png?v=05d7.389), -webkit-gradient(linear, left top, left bottom, color-stop(0%,#019bc6), color-stop(100%,#017cb4)); + background-image: url(images/partial.png?v=05d7.389), -o-linear-gradient(top, #019bc6 0%, #017cb4 100%); + background-image: url(images/partial.png?v=05d7.389), -ms-linear-gradient(top, #019bc6 0%, #017cb4 100%); + background-image: url(images/partial.png?v=05d7.389), linear-gradient(top, #019bc6 0%, #017cb4 100%); +} + +#acltable tbody tr.selected td.enabled +{ + background-color: #019bc6; + background-image: url(images/enabled.png?v=9d9a.674), -moz-linear-gradient(top, #019bc6 0%, #017cb4 100%); + background-image: url(images/enabled.png?v=9d9a.674), -webkit-gradient(linear, left top, left bottom, color-stop(0%,#019bc6), color-stop(100%,#017cb4)); + background-image: url(images/enabled.png?v=9d9a.674), -o-linear-gradient(top, #019bc6 0%, #017cb4 100%); + background-image: url(images/enabled.png?v=9d9a.674), -ms-linear-gradient(top, #019bc6 0%, #017cb4 100%); + background-image: url(images/enabled.png?v=9d9a.674), linear-gradient(top, #019bc6 0%, #017cb4 100%); +} + +#aclform +{ + display: none; +} + +#aclform div +{ + padding: 0; + text-align: center; + clear: both; +} + +#aclform ul +{ + list-style: none; + margin: 0.2em; + padding: 0; +} + +#aclform ul li label +{ + margin-left: 0.5em; +} + +ul.toolbarmenu li span.delete { + background-position: 0 -1509px; +} diff --git a/data/web/rc/plugins/acl/skins/larry/acl.min.css b/data/web/rc/plugins/acl/skins/larry/acl.min.css new file mode 100644 index 0000000000000000000000000000000000000000..97edab211c5eed304b352fbaebff6b941a017e15 --- /dev/null +++ b/data/web/rc/plugins/acl/skins/larry/acl.min.css @@ -0,0 +1 @@ +#aclcontainer{overflow-x:auto;border:1px solid #ccdde4;background-color:#d9ecf4;height:272px;box-shadow:none}#acllist-content{position:relative;height:230px;background-color:white}#acllist-footer{position:relative}#acltable{width:100%;border-collapse:collapse;border:0}#acltable th,#acltable td{white-space:nowrap;text-align:center}#acltable thead tr th{font-size:11px;font-weight:bold}#acltable tbody td{text-align:center;height:16px;cursor:default}#acltable thead tr>.user{width:30%;border-left:0}#acltable.advanced thead tr>.user{width:25%}#acltable tbody td.user{text-align:left}#acltable tbody td.partial{background-image:url(images/partial.png?v=05d7.389);background-position:center;background-repeat:no-repeat}#acltable tbody td.enabled{background-image:url(images/enabled.png?v=9d9a.674);background-position:center;background-repeat:no-repeat}#acltable tbody tr.selected td.partial{background-color:#019bc6;background-image:url(images/partial.png?v=05d7.389),-moz-linear-gradient(top,#019bc6 0,#017cb4 100%);background-image:url(images/partial.png?v=05d7.389),-webkit-gradient(linear,left top,left bottom,color-stop(0,#019bc6),color-stop(100%,#017cb4));background-image:url(images/partial.png?v=05d7.389),-o-linear-gradient(top,#019bc6 0,#017cb4 100%);background-image:url(images/partial.png?v=05d7.389),-ms-linear-gradient(top,#019bc6 0,#017cb4 100%);background-image:url(images/partial.png?v=05d7.389),linear-gradient(top,#019bc6 0,#017cb4 100%)}#acltable tbody tr.selected td.enabled{background-color:#019bc6;background-image:url(images/enabled.png?v=9d9a.674),-moz-linear-gradient(top,#019bc6 0,#017cb4 100%);background-image:url(images/enabled.png?v=9d9a.674),-webkit-gradient(linear,left top,left bottom,color-stop(0,#019bc6),color-stop(100%,#017cb4));background-image:url(images/enabled.png?v=9d9a.674),-o-linear-gradient(top,#019bc6 0,#017cb4 100%);background-image:url(images/enabled.png?v=9d9a.674),-ms-linear-gradient(top,#019bc6 0,#017cb4 100%);background-image:url(images/enabled.png?v=9d9a.674),linear-gradient(top,#019bc6 0,#017cb4 100%)}#aclform{display:none}#aclform div{padding:0;text-align:center;clear:both}#aclform ul{list-style:none;margin:.2em;padding:0}#aclform ul li label{margin-left:.5em}ul.toolbarmenu li span.delete{background-position:0 -1509px} \ No newline at end of file diff --git a/data/web/rc/plugins/acl/skins/larry/images/enabled.png b/data/web/rc/plugins/acl/skins/larry/images/enabled.png new file mode 100644 index 0000000000000000000000000000000000000000..98215f68ccf339c5c27541c3b34c08abc75073e0 Binary files /dev/null and b/data/web/rc/plugins/acl/skins/larry/images/enabled.png differ diff --git a/data/web/rc/plugins/acl/skins/larry/images/partial.png b/data/web/rc/plugins/acl/skins/larry/images/partial.png new file mode 100644 index 0000000000000000000000000000000000000000..12023f0575df28da28817de3234c595e0db00d13 Binary files /dev/null and b/data/web/rc/plugins/acl/skins/larry/images/partial.png differ diff --git a/data/web/rc/plugins/acl/skins/larry/templates/table.html b/data/web/rc/plugins/acl/skins/larry/templates/table.html new file mode 100644 index 0000000000000000000000000000000000000000..a4399ab9887a1c4e10350062c2e3afb352ffd9ca --- /dev/null +++ b/data/web/rc/plugins/acl/skins/larry/templates/table.html @@ -0,0 +1,30 @@ +
    +
    +

    + +
    + +
    + + + +
    +

    +
    + +
    +
    + +
    +
    diff --git a/data/web/rc/plugins/acl/tests/Acl.php b/data/web/rc/plugins/acl/tests/Acl.php new file mode 100644 index 0000000000000000000000000000000000000000..56ae3b5bbef84ef214ac5b479271d99717d2c937 --- /dev/null +++ b/data/web/rc/plugins/acl/tests/Acl.php @@ -0,0 +1,23 @@ +api); + + $this->assertInstanceOf('acl', $plugin); + $this->assertInstanceOf('rcube_plugin', $plugin); + } +} + diff --git a/data/web/rc/plugins/additional_message_headers/additional_message_headers.php b/data/web/rc/plugins/additional_message_headers/additional_message_headers.php new file mode 100644 index 0000000000000000000000000000000000000000..4db93ee69d0315bdf00aa7dd0fdee40aae2ec2d3 --- /dev/null +++ b/data/web/rc/plugins/additional_message_headers/additional_message_headers.php @@ -0,0 +1,37 @@ + 'My-Very-Own-Webmail'); + * + * @author Ziba Scott + * @website http://roundcube.net + */ +class additional_message_headers extends rcube_plugin +{ + function init() + { + $this->add_hook('message_before_send', array($this, 'message_headers')); + } + + function message_headers($args) + { + $this->load_config(); + + $rcube = rcube::get_instance(); + + // additional email headers + $additional_headers = $rcube->config->get('additional_message_headers', array()); + + if (!empty($additional_headers)) { + $args['message']->headers($additional_headers, true); + } + + return $args; + } +} diff --git a/data/web/rc/plugins/additional_message_headers/composer.json b/data/web/rc/plugins/additional_message_headers/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..aa72c7c53e4de3d8e4af6bd08fff2d172f50c0e9 --- /dev/null +++ b/data/web/rc/plugins/additional_message_headers/composer.json @@ -0,0 +1,24 @@ +{ + "name": "roundcube/additional_message_headers", + "type": "roundcube-plugin", + "description": "Very simple plugin which will add additional headers to or remove them from outgoing messages.", + "license": "GPLv2", + "version": "1.2.1", + "authors": [ + { + "name": "Ziba Scott", + "email": "email@example.org", + "role": "Lead" + } + ], + "repositories": [ + { + "type": "composer", + "url": "http://plugins.roundcube.net" + } + ], + "require": { + "php": ">=5.3.0", + "roundcube/plugin-installer": ">=0.1.3" + } +} diff --git a/data/web/rc/plugins/additional_message_headers/config.inc.php.dist b/data/web/rc/plugins/additional_message_headers/config.inc.php.dist new file mode 100644 index 0000000000000000000000000000000000000000..904681349b44f80aed7f29804cf0ce26c8ff7a2b --- /dev/null +++ b/data/web/rc/plugins/additional_message_headers/config.inc.php.dist @@ -0,0 +1,14 @@ + diff --git a/data/web/rc/plugins/additional_message_headers/tests/AdditionalMessageHeaders.php b/data/web/rc/plugins/additional_message_headers/tests/AdditionalMessageHeaders.php new file mode 100644 index 0000000000000000000000000000000000000000..55e8c441e69e10d476413d4f2c266ea438c91cff --- /dev/null +++ b/data/web/rc/plugins/additional_message_headers/tests/AdditionalMessageHeaders.php @@ -0,0 +1,23 @@ +api); + + $this->assertInstanceOf('additional_message_headers', $plugin); + $this->assertInstanceOf('rcube_plugin', $plugin); + } +} + diff --git a/data/web/rc/plugins/archive/archive.js b/data/web/rc/plugins/archive/archive.js new file mode 100644 index 0000000000000000000000000000000000000000..23611beeac50c35d171ac3589d75e0af090f4260 --- /dev/null +++ b/data/web/rc/plugins/archive/archive.js @@ -0,0 +1,64 @@ +/** + * Archive plugin script + * @version 3.0 + * + * @licstart The following is the entire license notice for the + * JavaScript code in this file. + * + * Copyright (c) 2012-2016, The Roundcube Dev Team + * + * The JavaScript code in this page is free software: you can redistribute it + * and/or modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation, either version 3 of + * the License, or (at your option) any later version. + * + * @licend The above is the entire license notice + * for the JavaScript code in this file. + */ + +function rcmail_archive(prop) +{ + if (rcmail_is_archive()) + return; + + var post_data = rcmail.selection_post_data(); + + // exit if selection is empty + if (!post_data._uid) + return; + + rcmail.show_contentframe(false); + + // Disable message command buttons until a message is selected + rcmail.enable_command(rcmail.env.message_commands, false); + rcmail.enable_command('plugin.archive', false); + + // let the server sort the messages to the according subfolders + rcmail.with_selected_messages('move', post_data, null, 'plugin.move2archive'); +} + +function rcmail_is_archive() +{ + // check if current folder is an archive folder or one of its children + return rcmail.env.mailbox == rcmail.env.archive_folder + || rcmail.env.mailbox.startsWith(rcmail.env.archive_folder + rcmail.env.delimiter); +} + +// callback for app-onload event +if (window.rcmail) { + rcmail.addEventListener('init', function(evt) { + // register command (directly enable in message view mode) + rcmail.register_command('plugin.archive', rcmail_archive, rcmail.env.uid && !rcmail_is_archive()); + + // add event-listener to message list + if (rcmail.message_list) + rcmail.message_list.addEventListener('select', function(list) { + rcmail.enable_command('plugin.archive', list.get_selection().length > 0 && !rcmail_is_archive()); + }); + + // set css style for archive folder + var li; + if (rcmail.env.archive_folder && (li = rcmail.get_folder_li(rcmail.env.archive_folder, '', true))) + $(li).addClass('archive'); + }); +} diff --git a/data/web/rc/plugins/archive/archive.min.js b/data/web/rc/plugins/archive/archive.min.js new file mode 100644 index 0000000000000000000000000000000000000000..04ea9bbc493f647d0780fbd3aeaa7e7b05eaf53f --- /dev/null +++ b/data/web/rc/plugins/archive/archive.min.js @@ -0,0 +1,19 @@ +/** + * Archive plugin script + * @version 3.0 + * + * @licstart The following is the entire license notice for the + * JavaScript code in this file. + * + * Copyright (c) 2012-2016, The Roundcube Dev Team + * + * The JavaScript code in this page is free software: you can redistribute it + * and/or modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation, either version 3 of + * the License, or (at your option) any later version. + * + * @licend The above is the entire license notice + * for the JavaScript code in this file. + */ +function rcmail_archive(a){rcmail_is_archive()||(a=rcmail.selection_post_data(),a._uid&&(rcmail.show_contentframe(!1),rcmail.enable_command(rcmail.env.message_commands,!1),rcmail.enable_command("plugin.archive",!1),rcmail.with_selected_messages("move",a,null,"plugin.move2archive")))}function rcmail_is_archive(){return rcmail.env.mailbox==rcmail.env.archive_folder||rcmail.env.mailbox.startsWith(rcmail.env.archive_folder+rcmail.env.delimiter)} +window.rcmail&&rcmail.addEventListener("init",function(a){rcmail.register_command("plugin.archive",rcmail_archive,rcmail.env.uid&&!rcmail_is_archive());rcmail.message_list&&rcmail.message_list.addEventListener("select",function(a){rcmail.enable_command("plugin.archive",0task == 'mail' && ($rcmail->action == '' || $rcmail->action == 'show') + && ($archive_folder = $rcmail->config->get('archive_mbox')) + ) { + $skin_path = $this->local_skin_path(); + if (is_file($this->home . "/$skin_path/archive.css")) { + $this->include_stylesheet("$skin_path/archive.css"); + } + + $this->include_script('archive.js'); + $this->add_texts('localization', true); + $this->add_button( + array( + 'type' => 'link', + 'label' => 'buttontext', + 'command' => 'plugin.archive', + 'class' => 'button buttonPas archive disabled', + 'classact' => 'button archive', + 'width' => 32, + 'height' => 32, + 'title' => 'buttontitle', + 'domain' => $this->ID, + ), + 'toolbar'); + + // register hook to localize the archive folder + $this->add_hook('render_mailboxlist', array($this, 'render_mailboxlist')); + + // set env variables for client + $rcmail->output->set_env('archive_folder', $archive_folder); + $rcmail->output->set_env('archive_type', $rcmail->config->get('archive_type','')); + } + else if ($rcmail->task == 'mail') { + // handler for ajax request + $this->register_action('plugin.move2archive', array($this, 'move_messages')); + } + else if ($rcmail->task == 'settings') { + $this->add_hook('preferences_list', array($this, 'prefs_table')); + $this->add_hook('preferences_save', array($this, 'save_prefs')); + } + } + + /** + * Hook to give the archive folder a localized name in the mailbox list + */ + function render_mailboxlist($p) + { + $rcmail = rcmail::get_instance(); + $archive_folder = $rcmail->config->get('archive_mbox'); + $show_real_name = $rcmail->config->get('show_real_foldernames'); + + // set localized name for the configured archive folder + if ($archive_folder && !$show_real_name) { + if (isset($p['list'][$archive_folder])) { + $p['list'][$archive_folder]['name'] = $this->gettext('archivefolder'); + } + else { + // search in subfolders + $this->_mod_folder_name($p['list'], $archive_folder, $this->gettext('archivefolder')); + } + } + + return $p; + } + + /** + * Helper method to find the archive folder in the mailbox tree + */ + private function _mod_folder_name(&$list, $folder, $new_name) + { + foreach ($list as $idx => $item) { + if ($item['id'] == $folder) { + $list[$idx]['name'] = $new_name; + return true; + } + else if (!empty($item['folders'])) { + if ($this->_mod_folder_name($list[$idx]['folders'], $folder, $new_name)) { + return true; + } + } + } + + return false; + } + + /** + * Plugin action to move the submitted list of messages to the archive subfolders + * according to the user settings and their headers. + */ + function move_messages() + { + $rcmail = rcmail::get_instance(); + + // only process ajax requests + if (!$rcmail->output->ajax_call) { + return; + } + + $this->add_texts('localization'); + + $storage = $rcmail->get_storage(); + $delimiter = $storage->get_hierarchy_delimiter(); + $read_on_move = (bool) $rcmail->config->get('read_on_archive'); + $archive_type = $rcmail->config->get('archive_type', ''); + $archive_folder = $rcmail->config->get('archive_mbox'); + $archive_prefix = $archive_folder . $delimiter; + $current_mbox = rcube_utils::get_input_value('_mbox', rcube_utils::INPUT_POST); + $search_request = rcube_utils::get_input_value('_search', rcube_utils::INPUT_GPC); + $uids = rcube_utils::get_input_value('_uid', rcube_utils::INPUT_POST); + + // count messages before changing anything + if ($_POST['_from'] != 'show') { + $threading = (bool) $storage->get_threading(); + $old_count = $storage->count(null, $threading ? 'THREADS' : 'ALL'); + $old_pages = ceil($old_count / $storage->get_pagesize()); + } + + $count = 0; + + // this way response handler for 'move' action will be executed + $rcmail->action = 'move'; + $this->result = array( + 'reload' => false, + 'error' => false, + 'sources' => array(), + 'destinations' => array(), + ); + + foreach (rcmail::get_uids(null, null, $multifolder) as $mbox => $uids) { + if (!$archive_folder || strpos($mbox, $archive_prefix) === 0) { + $count = count($uids); + continue; + } + else if (!$archive_type || $archive_type == 'folder') { + $folder = $archive_folder; + + if ($archive_type == 'folder') { + // compose full folder path + $folder .= $delimiter . $mbox; + + // create archive subfolder if it doesn't yet exist + $this->subfolder_worker($folder); + } + + $count += $this->move_messages_worker($uids, $mbox, $folder, $read_on_move); + } + else { + if ($uids == '*') { + $index = $storage->index(null, rcmail_sort_column(), rcmail_sort_order()); + $uids = $index->get(); + } + + $messages = $storage->fetch_headers($mbox, $uids); + $execute = array(); + + foreach ($messages as $message) { + $subfolder = null; + switch ($archive_type) { + case 'year': + $subfolder = $rcmail->format_date($message->timestamp, 'Y'); + break; + + case 'month': + $subfolder = $rcmail->format_date($message->timestamp, 'Y') + . $delimiter . $rcmail->format_date($message->timestamp, 'm'); + break; + + case 'sender': + $from = $message->get('from'); + preg_match('/[\b<](.+@.+)[\b>]/i', $from, $m); + $subfolder = $m[1] ?: $this->gettext('unkownsender'); + + // replace reserved characters in folder name + $repl = $delimiter == '-' ? '_' : '-'; + $replacements[$delimiter] = $repl; + $replacements['.'] = $repl; // some IMAP server do not allow . characters + $subfolder = strtr($subfolder, $replacements); + break; + } + + // compose full folder path + $folder = $archive_folder . ($subfolder ? $delimiter . $subfolder : ''); + + $execute[$folder][] = $message->uid; + } + + foreach ($execute as $folder => $uids) { + // create archive subfolder if it doesn't yet exist + $this->subfolder_worker($folder); + + $count += $this->move_messages_worker($uids, $mbox, $folder, $read_on_move); + } + } + } + + if ($this->result['error']) { + if ($_POST['_from'] != 'show') { + $rcmail->output->command('list_mailbox'); + } + + $rcmail->output->show_message($this->gettext('archiveerror'), 'warning'); + $rcmail->output->send(); + } + + if (!empty($_POST['_refresh'])) { + // FIXME: send updated message rows instead of reloading the entire list + $rcmail->output->command('refresh_list'); + } + else { + $addrows = true; + } + + // refresh saved search set after moving some messages + if ($search_request && $rcmail->storage->get_search_set()) { + $_SESSION['search'] = $rcmail->storage->refresh_search(); + } + + if ($_POST['_from'] == 'show') { + if ($next = rcube_utils::get_input_value('_next_uid', rcube_utils::INPUT_GPC)) { + $rcmail->output->command('show_message', $next); + } + else { + $rcmail->output->command('command', 'list'); + } + + $rcmail->output->send(); + } + + $mbox = $storage->get_folder(); + $msg_count = $storage->count(null, $threading ? 'THREADS' : 'ALL'); + $exists = $storage->count($mbox, 'EXISTS', true); + $page_size = $storage->get_pagesize(); + $page = $storage->get_page(); + $pages = ceil($msg_count / $page_size); + $nextpage_count = $old_count - $page_size * $page; + $remaining = $msg_count - $page_size * ($page - 1); + + // jump back one page (user removed the whole last page) + if ($page > 1 && $remaining == 0) { + $page -= 1; + $storage->set_page($page); + $_SESSION['page'] = $page; + $jump_back = true; + } + + // update message count display + $rcmail->output->set_env('messagecount', $msg_count); + $rcmail->output->set_env('current_page', $page); + $rcmail->output->set_env('pagecount', $pages); + $rcmail->output->set_env('exists', $exists); + + // update mailboxlist + $unseen_count = $msg_count ? $storage->count($mbox, 'UNSEEN') : 0; + $old_unseen = rcmail_get_unseen_count($mbox); + $quota_root = $multifolder ? $this->result['sources'][0] : 'INBOX'; + + if ($old_unseen != $unseen_count) { + $rcmail->output->command('set_unread_count', $mbox, $unseen_count, ($mbox == 'INBOX')); + rcmail_set_unseen_count($mbox, $unseen_count); + } + + $rcmail->output->command('set_quota', $rcmail->quota_content(null, $quota_root)); + $rcmail->output->command('set_rowcount', rcmail_get_messagecount_text($msg_count), $mbox); + + if ($threading) { + $count = rcube_utils::get_input_value('_count', rcube_utils::INPUT_POST); + } + + // add new rows from next page (if any) + if ($addrows && $count && $uids != '*' && ($jump_back || $nextpage_count > 0)) { + $a_headers = $storage->list_messages($mbox, null, + rcmail_sort_column(), rcmail_sort_order(), $jump_back ? null : $count); + + rcmail_js_message_list($a_headers, false); + } + + if ($this->result['reload']) { + $rcmail->output->show_message($this->gettext('archivedreload'), 'confirmation'); + } + else { + $rcmail->output->show_message($this->gettext('archived'), 'confirmation'); + + if (!$read_on_move) { + foreach ($this->result['destinations'] as $folder) { + rcmail_send_unread_count($folder, true); + } + } + } + + // send response + $rcmail->output->send(); + } + + /** + * Move messages from one folder to another and mark as read if needed + */ + private function move_messages_worker($uids, $from_mbox, $to_mbox, $read_on_move) + { + $storage = rcmail::get_instance()->get_storage(); + + if ($read_on_move) { + // don't flush cache (4th argument) + $storage->set_flag($uids, 'SEEN', $from_mbox, true); + } + + // move message to target folder + if ($storage->move_message($uids, $to_mbox, $from_mbox)) { + if (!in_array($from_mbox, $this->result['sources'])) { + $this->result['sources'][] = $from_mbox; + } + if (!in_array($to_mbox, $this->result['destinations'])) { + $this->result['destinations'][] = $to_mbox; + } + + return count($uids); + } + + $this->result['error'] = true; + } + + /** + * Create archive subfolder if it doesn't yet exist + */ + private function subfolder_worker($folder) + { + $storage = rcmail::get_instance()->get_storage(); + $delimiter = $storage->get_hierarchy_delimiter(); + + if ($this->folders === null) { + $this->folders = $storage->list_folders('', $archive_folder . '*', 'mail', null, true); + } + + if (!in_array($folder, $this->folders)) { + $path = explode($delimiter, $folder); + + // we'll create all folders in the path + for ($i=0; $ifolders)) { + if ($storage->create_folder($_folder, true)) { + $this->result['reload'] = true; + $this->folders[] = $_folder; + } + } + } + } + } + + /** + * Hook to inject plugin-specific user settings + */ + function prefs_table($args) + { + global $CURR_SECTION; + + $this->add_texts('localization'); + + $rcmail = rcmail::get_instance(); + $dont_override = $rcmail->config->get('dont_override', array()); + + if ($args['section'] == 'folders' && !in_array('archive_mbox', $dont_override)) { + $mbox = $rcmail->config->get('archive_mbox'); + $type = $rcmail->config->get('archive_type'); + + // load folders list when needed + if ($CURR_SECTION) { + $select = $rcmail->folder_selector(array( + 'noselection' => '---', + 'realnames' => true, + 'maxlength' => 30, + 'folder_filter' => 'mail', + 'folder_rights' => 'w', + 'onchange' => "if ($(this).val() == 'INBOX') $(this).val('')", + )); + } + else { + $select = new html_select(); + } + + $args['blocks']['main']['options']['archive_mbox'] = array( + 'title' => $this->gettext('archivefolder'), + 'content' => $select->show($mbox, array('name' => "_archive_mbox")) + ); + + // add option for structuring the archive folder + $archive_type = new html_select(array('name' => '_archive_type', 'id' => 'ff_archive_type')); + $archive_type->add($this->gettext('none'), ''); + $archive_type->add($this->gettext('archivetypeyear'), 'year'); + $archive_type->add($this->gettext('archivetypemonth'), 'month'); + $archive_type->add($this->gettext('archivetypesender'), 'sender'); + $archive_type->add($this->gettext('archivetypefolder'), 'folder'); + + $args['blocks']['archive'] = array( + 'name' => rcube::Q($this->gettext('settingstitle')), + 'options' => array('archive_type' => array( + 'title' => $this->gettext('archivetype'), + 'content' => $archive_type->show($type) + ) + ) + ); + } + else if ($args['section'] == 'server' && !in_array('read_on_archive', $dont_override)) { + $chbox = new html_checkbox(array('name' => '_read_on_archive', 'id' => 'ff_read_on_archive', 'value' => 1)); + $args['blocks']['main']['options']['read_on_archive'] = array( + 'title' => $this->gettext('readonarchive'), + 'content' => $chbox->show($rcmail->config->get('read_on_archive') ? 1 : 0) + ); + } + + return $args; + } + + /** + * Hook to save plugin-specific user settings + */ + function save_prefs($args) + { + $rcmail = rcmail::get_instance(); + $dont_override = $rcmail->config->get('dont_override', array()); + + if ($args['section'] == 'folders' && !in_array('archive_mbox', $dont_override)) { + $args['prefs']['archive_type'] = rcube_utils::get_input_value('_archive_type', rcube_utils::INPUT_POST); + } + else if ($args['section'] == 'server' && !in_array('read_on_archive', $dont_override)) { + $args['prefs']['read_on_archive'] = (bool) rcube_utils::get_input_value('_read_on_archive', rcube_utils::INPUT_POST); + } + + return $args; + } +} diff --git a/data/web/rc/plugins/archive/composer.json b/data/web/rc/plugins/archive/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..b223d2eaa6b1353ba957408eaa8aaa00723e9e99 --- /dev/null +++ b/data/web/rc/plugins/archive/composer.json @@ -0,0 +1,29 @@ +{ + "name": "roundcube/archive", + "type": "roundcube-plugin", + "description": "This adds a button to move the selected messages to an archive folder. The folder (and the optional structure of subfolders) can be selected in the settings panel.", + "license": "GPLv3+", + "version": "3.0", + "authors": [ + { + "name": "Thomas Bruederli", + "email": "roundcube@gmail.com", + "role": "Lead" + }, + { + "name": "Aleksander Machniak", + "email": "alec@alec.pl", + "role": "Developer" + } + ], + "repositories": [ + { + "type": "composer", + "url": "http://plugins.roundcube.net" + } + ], + "require": { + "php": ">=5.3.0", + "roundcube/plugin-installer": ">=0.1.3" + } +} diff --git a/data/web/rc/plugins/archive/localization/ar_SA.inc b/data/web/rc/plugins/archive/localization/ar_SA.inc new file mode 100644 index 0000000000000000000000000000000000000000..395020d17550344b8fa3c9d16a0c027642bb8c80 --- /dev/null +++ b/data/web/rc/plugins/archive/localization/ar_SA.inc @@ -0,0 +1,31 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'الأرشيف'; +$labels['buttontitle'] = 'أرشف هذه الرسالة'; +$labels['archived'] = 'أُرشفت بنجاح'; +$labels['archivedreload'] = 'ارشفت بنجاح. اعد تحميل الصفحه لاضهار الملف المؤرشف'; +$labels['archiveerror'] = 'بعض الرسائل لايمكن ارشفتها'; +$labels['archivefolder'] = 'الأرشيف'; +$labels['settingstitle'] = 'الأرشيف'; +$labels['archivetype'] = 'تقسيم الأرشيف ب'; +$labels['archivetypeyear'] = 'السنة (مثال. الارشيف/2012)'; +$labels['archivetypemonth'] = 'الشهر (مثال. الارشيف/2012/06)'; +$labels['archivetypefolder'] = 'المجلد الاصلي'; +$labels['archivetypesender'] = 'ايميل المرسل'; +$labels['unkownsender'] = 'مجهول'; +?> diff --git a/data/web/rc/plugins/archive/localization/ast.inc b/data/web/rc/plugins/archive/localization/ast.inc new file mode 100644 index 0000000000000000000000000000000000000000..03083526b354620419a1f7d9d6cb7db8a562de8b --- /dev/null +++ b/data/web/rc/plugins/archive/localization/ast.inc @@ -0,0 +1,31 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Archivu'; +$labels['buttontitle'] = 'Archivar esti mensaxe'; +$labels['archived'] = 'Archiváu con ésitu'; +$labels['archivedreload'] = 'Archiváu con ésitu. Recarga la páxina pa ver les nueves carpetes d\'archivos.'; +$labels['archiveerror'] = 'Nun pudieron archivase dalgunos mensaxes'; +$labels['archivefolder'] = 'Archivu'; +$labels['settingstitle'] = 'Archivu'; +$labels['archivetype'] = 'Dividir l\'archivu por'; +$labels['archivetypeyear'] = 'Añu (p.ex. Archivu/2012)'; +$labels['archivetypemonth'] = 'Mes (p.ex. Archivu/2012/06)'; +$labels['archivetypefolder'] = 'Carpeta orixinal'; +$labels['archivetypesender'] = 'Corréu-e del remitente'; +$labels['unkownsender'] = 'desconocíu'; +?> diff --git a/data/web/rc/plugins/archive/localization/az_AZ.inc b/data/web/rc/plugins/archive/localization/az_AZ.inc new file mode 100644 index 0000000000000000000000000000000000000000..7db0a1ead365ca8b603b424e928f92f0951b54b9 --- /dev/null +++ b/data/web/rc/plugins/archive/localization/az_AZ.inc @@ -0,0 +1,31 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Arxiv'; +$labels['buttontitle'] = 'Mesajı arxivə göndər'; +$labels['archived'] = 'Arxivə göndərildi'; +$labels['archivedreload'] = 'Müvəffəqiyyətlə arxivləşdirildi. Yeni arxiv qovluqlarını görmək üçün səhifəni yeniləyin.'; +$labels['archiveerror'] = 'Bəzi məktublar arxivləşdirilə bilinmirlər'; +$labels['archivefolder'] = 'Arxiv'; +$labels['settingstitle'] = 'Arxiv'; +$labels['archivetype'] = 'Arxivi böl: '; +$labels['archivetypeyear'] = 'İl (məs. Arxiv/2012)'; +$labels['archivetypemonth'] = 'Ay (məs. Arxiv/2012/06)'; +$labels['archivetypefolder'] = 'Orijinal qovluq'; +$labels['archivetypesender'] = 'Göndərənin E-Poçtu'; +$labels['unkownsender'] = 'naməlum'; +?> diff --git a/data/web/rc/plugins/archive/localization/be_BE.inc b/data/web/rc/plugins/archive/localization/be_BE.inc new file mode 100644 index 0000000000000000000000000000000000000000..20a6ac0534074a31498188297f0f61d3685e90e5 --- /dev/null +++ b/data/web/rc/plugins/archive/localization/be_BE.inc @@ -0,0 +1,31 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Архіў'; +$labels['buttontitle'] = 'Перанесці ў архіў'; +$labels['archived'] = 'Перанесена ў архіў'; +$labels['archivedreload'] = 'Перанесена ў архіў. Перагрузіце старонку, каб пабачыць новыя архіўныя папкі.'; +$labels['archiveerror'] = 'Некаторыя паведамленні не могуць быць перанесены ў архіў'; +$labels['archivefolder'] = 'Архіў'; +$labels['settingstitle'] = 'Архіў'; +$labels['archivetype'] = 'Раздзяліць архіў паводле'; +$labels['archivetypeyear'] = 'года (прыкладам, Архіў/2012)'; +$labels['archivetypemonth'] = 'месяца (прыкладам, Архіў/2012/06)'; +$labels['archivetypefolder'] = 'Выточная папка'; +$labels['archivetypesender'] = 'Эл. пошта адпраўніка'; +$labels['unkownsender'] = 'невядомы'; +?> diff --git a/data/web/rc/plugins/archive/localization/bg_BG.inc b/data/web/rc/plugins/archive/localization/bg_BG.inc new file mode 100644 index 0000000000000000000000000000000000000000..9251fc6965fe53e10e65ecc31e286376e2abe98e --- /dev/null +++ b/data/web/rc/plugins/archive/localization/bg_BG.inc @@ -0,0 +1,32 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Архивирай'; +$labels['buttontitle'] = 'Архивиране на писмото'; +$labels['archived'] = 'Архивирането премина успешно'; +$labels['archivedreload'] = 'Успешно архивирано. Презаредете страницата за да видите архивираните папки.'; +$labels['archiveerror'] = 'Някои писма не бяха архивирани'; +$labels['archivefolder'] = 'Архивирай'; +$labels['settingstitle'] = 'Архив'; +$labels['archivetype'] = 'Раздели архива по'; +$labels['archivetypeyear'] = 'Година (пр. Архив/2012)'; +$labels['archivetypemonth'] = 'Месец (пр. Архив/2012/06)'; +$labels['archivetypefolder'] = 'Оригинална папка'; +$labels['archivetypesender'] = 'E-mail адрес на подател'; +$labels['unkownsender'] = 'неизвестно'; +$labels['readonarchive'] = 'Маркирай писмото като прочетено в архива'; +?> diff --git a/data/web/rc/plugins/archive/localization/br.inc b/data/web/rc/plugins/archive/localization/br.inc new file mode 100644 index 0000000000000000000000000000000000000000..83d66404a69feff4bbd046f6cafbdc496e3403ce --- /dev/null +++ b/data/web/rc/plugins/archive/localization/br.inc @@ -0,0 +1,31 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Diell'; +$labels['buttontitle'] = 'Diellaouiñ ar gemennadenn-mañ'; +$labels['archived'] = 'Diellaouet gant berzh'; +$labels['archivedreload'] = 'Diellaouet gant berzh. Adkargit ar bajenn da welet an teuliad dielloù nevez.'; +$labels['archiveerror'] = 'Ul lodenn eus ar c\'hemennadennoù n\'hallont ket bezañ diellaouet'; +$labels['archivefolder'] = 'Diell'; +$labels['settingstitle'] = 'Diell'; +$labels['archivetype'] = 'Rannañ an diell dre'; +$labels['archivetypeyear'] = 'Bloaz (sk: Diell/2012)'; +$labels['archivetypemonth'] = 'Miz (sk: Diell/2012/06)'; +$labels['archivetypefolder'] = 'Teuliad orin'; +$labels['archivetypesender'] = 'Postel ar c\'haser'; +$labels['unkownsender'] = 'dianav'; +?> diff --git a/data/web/rc/plugins/archive/localization/bs_BA.inc b/data/web/rc/plugins/archive/localization/bs_BA.inc new file mode 100644 index 0000000000000000000000000000000000000000..0e849d8939a7f2e035ca97ad2537a15911ff6a31 --- /dev/null +++ b/data/web/rc/plugins/archive/localization/bs_BA.inc @@ -0,0 +1,31 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Arhiva'; +$labels['buttontitle'] = 'Arhiviraj ovu poruku'; +$labels['archived'] = 'Arhiviranje uspješno'; +$labels['archivedreload'] = 'Uspješno arhivirano. Ponovo učitajte stranicu da biste vidjeli nove foldere za arhiviranje.'; +$labels['archiveerror'] = 'Neke poruke nisu mogle biti arhivirane'; +$labels['archivefolder'] = 'Arhiva'; +$labels['settingstitle'] = 'Arhiva'; +$labels['archivetype'] = 'Podijeli arhivu po'; +$labels['archivetypeyear'] = 'Godinama (npr. Arhiva/2012)'; +$labels['archivetypemonth'] = 'Mjesecima (npr Arhiva/2012/06)'; +$labels['archivetypefolder'] = 'Originalni folder'; +$labels['archivetypesender'] = 'Email pošiljaoca'; +$labels['unkownsender'] = 'nepoznato'; +?> diff --git a/data/web/rc/plugins/archive/localization/ca_ES.inc b/data/web/rc/plugins/archive/localization/ca_ES.inc new file mode 100644 index 0000000000000000000000000000000000000000..c62c9a9c92aeac9e4e91a41fa916f19193c1100f --- /dev/null +++ b/data/web/rc/plugins/archive/localization/ca_ES.inc @@ -0,0 +1,31 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Arxiva'; +$labels['buttontitle'] = 'Arxiva aquest missatge'; +$labels['archived'] = 'Arxivat correctament'; +$labels['archivedreload'] = 'Arxivat correctament. Recarregueu la pàgina per veure les noves carpetes de l\'arxiu.'; +$labels['archiveerror'] = 'Alguns missatges no s\'han pogut arxivar'; +$labels['archivefolder'] = 'Arxiu'; +$labels['settingstitle'] = 'Arxiu'; +$labels['archivetype'] = 'Divideix arxiu per'; +$labels['archivetypeyear'] = 'Any (p.ex. Arxiu/2012)'; +$labels['archivetypemonth'] = 'Mes (p.ex. Arxiu/2012/06)'; +$labels['archivetypefolder'] = 'Carpeta original'; +$labels['archivetypesender'] = 'Adreça del remitent'; +$labels['unkownsender'] = 'desconegut'; +?> diff --git a/data/web/rc/plugins/archive/localization/cs_CZ.inc b/data/web/rc/plugins/archive/localization/cs_CZ.inc new file mode 100644 index 0000000000000000000000000000000000000000..a4cf7a946c93467367f62fe2921e437c4f6d8f5b --- /dev/null +++ b/data/web/rc/plugins/archive/localization/cs_CZ.inc @@ -0,0 +1,31 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Archiv'; +$labels['buttontitle'] = 'Archivovat zprávu'; +$labels['archived'] = 'Úspěšně vloženo do archivu'; +$labels['archivedreload'] = 'Úspěšně archivovány. Obnovte stránku, abyste uviděli nové složky v archivu.'; +$labels['archiveerror'] = 'Některé zprávy nelze archivovat'; +$labels['archivefolder'] = 'Archiv'; +$labels['settingstitle'] = 'Archiv'; +$labels['archivetype'] = 'Rozdělit archiv podle'; +$labels['archivetypeyear'] = 'Rok (např. Archiv/2012)'; +$labels['archivetypemonth'] = 'Měsíc (např. Archiv/2012/06)'; +$labels['archivetypefolder'] = 'Původní složka'; +$labels['archivetypesender'] = 'E-mail odesílatele'; +$labels['unkownsender'] = 'neznámý'; +?> diff --git a/data/web/rc/plugins/archive/localization/cy_GB.inc b/data/web/rc/plugins/archive/localization/cy_GB.inc new file mode 100644 index 0000000000000000000000000000000000000000..6397d907e278a5e6b76ca5cb16139f3ec8de1d00 --- /dev/null +++ b/data/web/rc/plugins/archive/localization/cy_GB.inc @@ -0,0 +1,32 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Archif'; +$labels['buttontitle'] = 'Archifo\'r neges hwn'; +$labels['archived'] = 'Archifwyd yn llwyddiannus'; +$labels['archivedreload'] = 'Archifwyd yn llwyddiannus. Ail-lwythwch y dudalen i weld ffolderi archif newydd.'; +$labels['archiveerror'] = 'Nid oedd yn bosib archifo rhai negeseuon'; +$labels['archivefolder'] = 'Archif'; +$labels['settingstitle'] = 'Archif'; +$labels['archivetype'] = 'Rhannu archif gyda'; +$labels['archivetypeyear'] = 'Blwyddyn (e.g. Archif/2012)'; +$labels['archivetypemonth'] = 'Mis (e.g. Archif/2012/06)'; +$labels['archivetypefolder'] = 'Ffolder gwreiddiol'; +$labels['archivetypesender'] = 'Ebost anfonwr'; +$labels['unkownsender'] = 'anhysbys'; +$labels['readonarchive'] = 'Nodi\'r neges fel darllenwyd ar archif'; +?> diff --git a/data/web/rc/plugins/archive/localization/da_DK.inc b/data/web/rc/plugins/archive/localization/da_DK.inc new file mode 100644 index 0000000000000000000000000000000000000000..e2790644a1ee435e92c246c38e610a90d62bcb15 --- /dev/null +++ b/data/web/rc/plugins/archive/localization/da_DK.inc @@ -0,0 +1,32 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Arkiv'; +$labels['buttontitle'] = 'Arkivér denne besked'; +$labels['archived'] = 'Succesfuldt arkiveret.'; +$labels['archivedreload'] = 'Arkivering lykkedes. Genindlæs siden for at se den nye arkiv mappe.'; +$labels['archiveerror'] = 'Nogle meddelelser kunne ikke arkiveres'; +$labels['archivefolder'] = 'Arkiv'; +$labels['settingstitle'] = 'Arkiver'; +$labels['archivetype'] = 'Del arkiv med'; +$labels['archivetypeyear'] = 'År (f.eks. Arkiv/2012)'; +$labels['archivetypemonth'] = 'Måned (f.eks. Arkiv/2012/06)'; +$labels['archivetypefolder'] = 'Original mappe'; +$labels['archivetypesender'] = 'Afsenders email'; +$labels['unkownsender'] = 'ukendt'; +$labels['readonarchive'] = 'Marker denne meddelelse som læst i arkivet'; +?> diff --git a/data/web/rc/plugins/archive/localization/de_CH.inc b/data/web/rc/plugins/archive/localization/de_CH.inc new file mode 100644 index 0000000000000000000000000000000000000000..979965bf2ed9c7954973eb852580b46ba96d892d --- /dev/null +++ b/data/web/rc/plugins/archive/localization/de_CH.inc @@ -0,0 +1,32 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Archiv'; +$labels['buttontitle'] = 'Nachricht(en) archivieren'; +$labels['archived'] = 'Nachricht(en) erfolgreich archiviert'; +$labels['archivedreload'] = 'Nachrichten wurden archiviert. Laden Sie die Seite neu, um die neuen Archivordner zu sehen.'; +$labels['archiveerror'] = 'Einige Nachrichten konnten nicht archiviert werden'; +$labels['archivefolder'] = 'Archiv'; +$labels['settingstitle'] = 'Archiv'; +$labels['archivetype'] = 'Erstelle Unterordner nach'; +$labels['archivetypeyear'] = 'Jahr (z.B. Archiv/2012)'; +$labels['archivetypemonth'] = 'Monat (z.B. Archiv/2012/06)'; +$labels['archivetypefolder'] = 'Originalordner'; +$labels['archivetypesender'] = 'Absender'; +$labels['unkownsender'] = 'unbekannt'; +$labels['readonarchive'] = 'Nachrichten beim Archivieren als gelesen markieren'; +?> diff --git a/data/web/rc/plugins/archive/localization/de_DE.inc b/data/web/rc/plugins/archive/localization/de_DE.inc new file mode 100644 index 0000000000000000000000000000000000000000..77df41f0d2c35f8406eea733f36649fa2de34da5 --- /dev/null +++ b/data/web/rc/plugins/archive/localization/de_DE.inc @@ -0,0 +1,32 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Archiv'; +$labels['buttontitle'] = 'Nachricht archivieren'; +$labels['archived'] = 'Nachricht erfolgreich archiviert'; +$labels['archivedreload'] = 'Erfolgreich archiviert. Bitte die Seite aktualisieren, um die neuen Archivordner zu sehen.'; +$labels['archiveerror'] = 'Einige Nachrichten konnten nicht archiviert werden'; +$labels['archivefolder'] = 'Archiv'; +$labels['settingstitle'] = 'Archiv'; +$labels['archivetype'] = 'Archiv aufteilen nach'; +$labels['archivetypeyear'] = 'Jahr (z.B. Archiv/2012)'; +$labels['archivetypemonth'] = 'Monat (z.B. Archiv/2012/06)'; +$labels['archivetypefolder'] = 'Originalordner'; +$labels['archivetypesender'] = 'Absender-E-Mail'; +$labels['unkownsender'] = 'unbekannt'; +$labels['readonarchive'] = 'Nachricht im Archiv als gelesen markieren'; +?> diff --git a/data/web/rc/plugins/archive/localization/el_GR.inc b/data/web/rc/plugins/archive/localization/el_GR.inc new file mode 100644 index 0000000000000000000000000000000000000000..8b4ba339615f1dbe7cc9167d070404d31cf6162a --- /dev/null +++ b/data/web/rc/plugins/archive/localization/el_GR.inc @@ -0,0 +1,31 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Αρχειοθέτηση'; +$labels['buttontitle'] = 'Αρχειοθέτηση μηνύματος'; +$labels['archived'] = 'Αρχειοθετήθηκε με επιτυχία'; +$labels['archivedreload'] = 'Επιτυχής αρχειοθέτηση. Ανανεώστε την σελίδα για να δείτε τους νέους φακέλους αρχειοθέτησης. '; +$labels['archiveerror'] = 'Ορισμένα μηνύματα δεν ήταν δυνατό να αρχειοθετηθούν. '; +$labels['archivefolder'] = 'Αρχειοθέτηση'; +$labels['settingstitle'] = 'Αρχειοθέτηση'; +$labels['archivetype'] = 'Τμηματοποίηση αρχείου με βάση'; +$labels['archivetypeyear'] = 'Έτος (π.χ. Αρχείο/2012)'; +$labels['archivetypemonth'] = 'Μήνα (π.χ. Αρχείο/2012/06)'; +$labels['archivetypefolder'] = 'Αρχικός φάκελος'; +$labels['archivetypesender'] = 'Αποστολέας email'; +$labels['unkownsender'] = 'άγνωστο'; +?> diff --git a/data/web/rc/plugins/archive/localization/en_CA.inc b/data/web/rc/plugins/archive/localization/en_CA.inc new file mode 100644 index 0000000000000000000000000000000000000000..06b78fb2aed74f0cfe946d85d3f8b38b49079783 --- /dev/null +++ b/data/web/rc/plugins/archive/localization/en_CA.inc @@ -0,0 +1,31 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Archive'; +$labels['buttontitle'] = 'Archive this message'; +$labels['archived'] = 'Successfully archived'; +$labels['archivedreload'] = 'Successfully archived. Reload the page to see the new archive folders.'; +$labels['archiveerror'] = 'Some messages could not be archived'; +$labels['archivefolder'] = 'Archive'; +$labels['settingstitle'] = 'Archive'; +$labels['archivetype'] = 'Divide archive by'; +$labels['archivetypeyear'] = 'Year (e.g. Archive/2012)'; +$labels['archivetypemonth'] = 'Month (e.g. Archive/2012/06)'; +$labels['archivetypefolder'] = 'Original folder'; +$labels['archivetypesender'] = 'Sender email'; +$labels['unkownsender'] = 'unknown'; +?> diff --git a/data/web/rc/plugins/archive/localization/en_GB.inc b/data/web/rc/plugins/archive/localization/en_GB.inc new file mode 100644 index 0000000000000000000000000000000000000000..06b78fb2aed74f0cfe946d85d3f8b38b49079783 --- /dev/null +++ b/data/web/rc/plugins/archive/localization/en_GB.inc @@ -0,0 +1,31 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Archive'; +$labels['buttontitle'] = 'Archive this message'; +$labels['archived'] = 'Successfully archived'; +$labels['archivedreload'] = 'Successfully archived. Reload the page to see the new archive folders.'; +$labels['archiveerror'] = 'Some messages could not be archived'; +$labels['archivefolder'] = 'Archive'; +$labels['settingstitle'] = 'Archive'; +$labels['archivetype'] = 'Divide archive by'; +$labels['archivetypeyear'] = 'Year (e.g. Archive/2012)'; +$labels['archivetypemonth'] = 'Month (e.g. Archive/2012/06)'; +$labels['archivetypefolder'] = 'Original folder'; +$labels['archivetypesender'] = 'Sender email'; +$labels['unkownsender'] = 'unknown'; +?> diff --git a/data/web/rc/plugins/archive/localization/en_US.inc b/data/web/rc/plugins/archive/localization/en_US.inc new file mode 100644 index 0000000000000000000000000000000000000000..51bdb7b132dd5a26d6f07686d0d4f6089913bce5 --- /dev/null +++ b/data/web/rc/plugins/archive/localization/en_US.inc @@ -0,0 +1,35 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ + +$labels = array(); +$labels['buttontext'] = 'Archive'; +$labels['buttontitle'] = 'Archive this message'; +$labels['archived'] = 'Successfully archived'; +$labels['archivedreload'] = 'Successfully archived. Reload the page to see the new archive folders.'; +$labels['archiveerror'] = 'Some messages could not be archived'; +$labels['archivefolder'] = 'Archive'; +$labels['settingstitle'] = 'Archive'; +$labels['archivetype'] = 'Divide archive by'; +$labels['archivetypeyear'] = 'Year (e.g. Archive/2012)'; +$labels['archivetypemonth'] = 'Month (e.g. Archive/2012/06)'; +$labels['archivetypefolder'] = 'Original folder'; +$labels['archivetypesender'] = 'Sender email'; +$labels['unkownsender'] = 'unknown'; +$labels['readonarchive'] = 'Mark the message as read on archive'; + +?> diff --git a/data/web/rc/plugins/archive/localization/eo.inc b/data/web/rc/plugins/archive/localization/eo.inc new file mode 100644 index 0000000000000000000000000000000000000000..8b0105848c97f505786b7e30be29c6ab4da812c0 --- /dev/null +++ b/data/web/rc/plugins/archive/localization/eo.inc @@ -0,0 +1,22 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Arkivigi'; +$labels['buttontitle'] = 'Arkivigi ĉi tiun mesaĝon'; +$labels['archived'] = 'Sukcese arkivigita'; +$labels['archivefolder'] = 'Arkivo'; +?> diff --git a/data/web/rc/plugins/archive/localization/es_419.inc b/data/web/rc/plugins/archive/localization/es_419.inc new file mode 100644 index 0000000000000000000000000000000000000000..4d469aa96a741bd89af54a07399643b878cba71f --- /dev/null +++ b/data/web/rc/plugins/archive/localization/es_419.inc @@ -0,0 +1,31 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Archivar'; +$labels['buttontitle'] = 'Archivar este mensaje'; +$labels['archived'] = 'Archivado exitosamente'; +$labels['archivedreload'] = 'Archivado exitosamente. Recarga esta página para ver las nuevas carpetas'; +$labels['archiveerror'] = 'Algunos mensajes no pudieron ser archivados'; +$labels['archivefolder'] = 'Archivar'; +$labels['settingstitle'] = 'Archivar'; +$labels['archivetype'] = 'Dividir archivo por'; +$labels['archivetypeyear'] = 'Año (ej. Archivo/2012)'; +$labels['archivetypemonth'] = 'Mes (ej. Archivo/2012/06)'; +$labels['archivetypefolder'] = 'Carpeta original'; +$labels['archivetypesender'] = 'Remitente de correo electrónico'; +$labels['unkownsender'] = 'desconocido'; +?> diff --git a/data/web/rc/plugins/archive/localization/es_AR.inc b/data/web/rc/plugins/archive/localization/es_AR.inc new file mode 100644 index 0000000000000000000000000000000000000000..a55afeae8db4b22c267f374b14d749924b3e6aa4 --- /dev/null +++ b/data/web/rc/plugins/archive/localization/es_AR.inc @@ -0,0 +1,31 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Archivo'; +$labels['buttontitle'] = 'Archivar este mensaje'; +$labels['archived'] = 'Mensaje Archivado'; +$labels['archivedreload'] = 'Archivado satisfactoriamente. Recarga la página para ver las nuevas capetas archivadas.'; +$labels['archiveerror'] = 'Algunos mensajes no pudieron archivarse'; +$labels['archivefolder'] = 'Archivo'; +$labels['settingstitle'] = 'Archivo'; +$labels['archivetype'] = 'Separar archivo por'; +$labels['archivetypeyear'] = 'Año (ej. Archivo/2012)'; +$labels['archivetypemonth'] = 'Mes (ej. Archivo/2012/06)'; +$labels['archivetypefolder'] = 'Carpeta original'; +$labels['archivetypesender'] = 'Remitente del correo'; +$labels['unkownsender'] = 'desconocido'; +?> diff --git a/data/web/rc/plugins/archive/localization/es_ES.inc b/data/web/rc/plugins/archive/localization/es_ES.inc new file mode 100644 index 0000000000000000000000000000000000000000..9d6ff9831efb5fadb351bc9a6a169d85dc6f63f1 --- /dev/null +++ b/data/web/rc/plugins/archive/localization/es_ES.inc @@ -0,0 +1,32 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Archivo'; +$labels['buttontitle'] = 'Archivar este mensaje'; +$labels['archived'] = 'Archivado correctamente'; +$labels['archivedreload'] = 'Archivado correctamente. Recargue la página para ver las nuevas carpetas de archivo.'; +$labels['archiveerror'] = 'No se pudo archivar algunos mensajes'; +$labels['archivefolder'] = 'Archivo'; +$labels['settingstitle'] = 'Archivo'; +$labels['archivetype'] = 'Dividir el archivo por'; +$labels['archivetypeyear'] = 'Año (p.ej. Archivo/2012)'; +$labels['archivetypemonth'] = 'Mes (p.ej. Archivo/2012/06)'; +$labels['archivetypefolder'] = 'Bandeja original'; +$labels['archivetypesender'] = 'Correo electrónico del remitente'; +$labels['unkownsender'] = 'desconocido'; +$labels['readonarchive'] = 'Marcar el mensaje como leído al archivar'; +?> diff --git a/data/web/rc/plugins/archive/localization/et_EE.inc b/data/web/rc/plugins/archive/localization/et_EE.inc new file mode 100644 index 0000000000000000000000000000000000000000..c5c705474830e02730b0582ef371e489f3a19482 --- /dev/null +++ b/data/web/rc/plugins/archive/localization/et_EE.inc @@ -0,0 +1,31 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Arhiveeri'; +$labels['buttontitle'] = 'Arhiveeri see kiri'; +$labels['archived'] = 'Edukalt arhiveeritud'; +$labels['archivedreload'] = 'Arhiveerimine õnnestus. Uute arhiivi kaustada nägemiseks laadi leht uuesti.'; +$labels['archiveerror'] = 'Mõnda kirja ei õnnestusnud arhiveerida'; +$labels['archivefolder'] = 'Arhiiv'; +$labels['settingstitle'] = 'Arhiiv'; +$labels['archivetype'] = 'Jaga arhiiv'; +$labels['archivetypeyear'] = 'Aasta (nt. Arhiiv/2012)'; +$labels['archivetypemonth'] = 'Kuu (nt. Arhiiv/2012/06)'; +$labels['archivetypefolder'] = 'Esialgne kaust'; +$labels['archivetypesender'] = 'Saatja e-post'; +$labels['unkownsender'] = 'teadmata'; +?> diff --git a/data/web/rc/plugins/archive/localization/eu_ES.inc b/data/web/rc/plugins/archive/localization/eu_ES.inc new file mode 100644 index 0000000000000000000000000000000000000000..e8db2e16cfbe6c9914e2920ee0c54f84b3be4d06 --- /dev/null +++ b/data/web/rc/plugins/archive/localization/eu_ES.inc @@ -0,0 +1,31 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Gorde'; +$labels['buttontitle'] = 'Gorde mezu hau'; +$labels['archived'] = 'Ongi gorde da'; +$labels['archivedreload'] = 'Ongi gorde da. Freskatu orria fitxategi-karpeta berria ikusteko.'; +$labels['archiveerror'] = 'Mezu batzuk ezin dira gorde.'; +$labels['archivefolder'] = 'Gorde'; +$labels['settingstitle'] = 'Gorde'; +$labels['archivetype'] = 'Banatu honen arabera'; +$labels['archivetypeyear'] = 'Urtea (e.b. Archive/2012)'; +$labels['archivetypemonth'] = 'Hilabete (e.b. Archive/2012/06)'; +$labels['archivetypefolder'] = 'Jatorrizko karpeta'; +$labels['archivetypesender'] = 'Bidaltzailearen helbidea'; +$labels['unkownsender'] = 'ezezaguna'; +?> diff --git a/data/web/rc/plugins/archive/localization/fa_AF.inc b/data/web/rc/plugins/archive/localization/fa_AF.inc new file mode 100644 index 0000000000000000000000000000000000000000..347fdd675e8c28491c363ff200e0099c55a5870f --- /dev/null +++ b/data/web/rc/plugins/archive/localization/fa_AF.inc @@ -0,0 +1,26 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'ارشیو'; +$labels['buttontitle'] = 'ارشیو این پیام'; +$labels['archived'] = 'با موفقیت ارشیو شد'; +$labels['archivefolder'] = 'ارشیو'; +$labels['settingstitle'] = 'ارشیو'; +$labels['archivetypefolder'] = 'پوشه اصلی'; +$labels['archivetypesender'] = 'ایمیل فرستنده'; +$labels['unkownsender'] = 'نا شناس'; +?> diff --git a/data/web/rc/plugins/archive/localization/fa_IR.inc b/data/web/rc/plugins/archive/localization/fa_IR.inc new file mode 100644 index 0000000000000000000000000000000000000000..e5f6770058061cb50dc7879ba9cd3a95e52dae3e --- /dev/null +++ b/data/web/rc/plugins/archive/localization/fa_IR.inc @@ -0,0 +1,31 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'بایگانی'; +$labels['buttontitle'] = 'بایگانی این پیغام'; +$labels['archived'] = 'با موفقیت بایگانی شد'; +$labels['archivedreload'] = 'با کام‌یابی بایگانی شد. برای دیدن پوشه‌های بایگانی جدید صفحه را مجددا بارگذاری نمایید.'; +$labels['archiveerror'] = 'برخی از پیغام‌ها بایگانی نشدند.'; +$labels['archivefolder'] = 'بایگانی'; +$labels['settingstitle'] = 'بایگانی'; +$labels['archivetype'] = 'تقسیم بایگانی با'; +$labels['archivetypeyear'] = 'سال (به عنوان مثال بایگانی/۲۰۱۲)'; +$labels['archivetypemonth'] = 'ماه (به عنوان مثال بایگانی/۲۰۱۲/۰۶)'; +$labels['archivetypefolder'] = 'پوشه اصلی'; +$labels['archivetypesender'] = 'رایانامه فرستنده'; +$labels['unkownsender'] = 'ناشناخته'; +?> diff --git a/data/web/rc/plugins/archive/localization/fi_FI.inc b/data/web/rc/plugins/archive/localization/fi_FI.inc new file mode 100644 index 0000000000000000000000000000000000000000..5c1bc2779b141ec42fc93d1c9a6f700ee350f2ba --- /dev/null +++ b/data/web/rc/plugins/archive/localization/fi_FI.inc @@ -0,0 +1,32 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Arkistoi'; +$labels['buttontitle'] = 'Arkistoi viesti'; +$labels['archived'] = 'Arkistoitu onnistuneesti'; +$labels['archivedreload'] = 'Arkistointi onnistui. Päivitä sivu nähdäksesi uudet arkistokansiot.'; +$labels['archiveerror'] = 'Joidenkin viestien arkistointi epäonnistui'; +$labels['archivefolder'] = 'Arkistoi'; +$labels['settingstitle'] = 'Arkistoi'; +$labels['archivetype'] = 'Jaa arkisto'; +$labels['archivetypeyear'] = 'Vuodella (esim. Arkisto/2012)'; +$labels['archivetypemonth'] = 'Kuukaudella (esim. Arkisto/2012/06)'; +$labels['archivetypefolder'] = 'Alkuperäinen kansio'; +$labels['archivetypesender'] = 'Lähettäjän osoite'; +$labels['unkownsender'] = 'tuntematon'; +$labels['readonarchive'] = 'Merkitse viesti luetuksi arkistoon'; +?> diff --git a/data/web/rc/plugins/archive/localization/fo_FO.inc b/data/web/rc/plugins/archive/localization/fo_FO.inc new file mode 100644 index 0000000000000000000000000000000000000000..b7921fbb43a88360ea48b4eae5c6c0165b77e05f --- /dev/null +++ b/data/web/rc/plugins/archive/localization/fo_FO.inc @@ -0,0 +1,31 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Goym í skjalasavni'; +$labels['buttontitle'] = 'Goym hetta boð í skjalasavni'; +$labels['archived'] = 'Goymt í skjalasavn'; +$labels['archivedreload'] = 'Goymt í skjalasavn. Les inn aftur síðu fyri at síggja nýggjar mappur'; +$labels['archiveerror'] = 'Onkur boð kundu ikki leggjast í skjalagoymslu'; +$labels['archivefolder'] = 'Goym í skjalasavni'; +$labels['settingstitle'] = 'Goym í skjalasavni'; +$labels['archivetype'] = 'Deil skjalagoymslu við'; +$labels['archivetypeyear'] = 'Ár (t.d. Skjalagoymsla/2012)'; +$labels['archivetypemonth'] = 'Mánar(t.d. Skjalahgoymsla/2012/06)'; +$labels['archivetypefolder'] = 'Uppruna mappa'; +$labels['archivetypesender'] = 'Sendara teldupostur'; +$labels['unkownsender'] = 'ókent'; +?> diff --git a/data/web/rc/plugins/archive/localization/fr_FR.inc b/data/web/rc/plugins/archive/localization/fr_FR.inc new file mode 100644 index 0000000000000000000000000000000000000000..76ee184c9ad5855d63f5c2598b86363b7deedcdb --- /dev/null +++ b/data/web/rc/plugins/archive/localization/fr_FR.inc @@ -0,0 +1,32 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Archiver'; +$labels['buttontitle'] = 'Archiver ce courriel'; +$labels['archived'] = 'Archivé avec succès'; +$labels['archivedreload'] = 'Archivé avec succès. Recharger la page pour voir les nouveaux dossiers d\'archives.'; +$labels['archiveerror'] = 'Certains courriels n\'ont pas pu être archivés.'; +$labels['archivefolder'] = 'Archiver'; +$labels['settingstitle'] = 'Archiver'; +$labels['archivetype'] = 'Diviser l\'archive par'; +$labels['archivetypeyear'] = 'Année (ex. Archives/2012)'; +$labels['archivetypemonth'] = 'Mois (ex. Archives/2012/06)'; +$labels['archivetypefolder'] = 'Dossier original'; +$labels['archivetypesender'] = 'Courriel de l\'expéditeur'; +$labels['unkownsender'] = 'inconnu'; +$labels['readonarchive'] = 'Marquer le courriel comme lu lors de l\'archivage'; +?> diff --git a/data/web/rc/plugins/archive/localization/gl_ES.inc b/data/web/rc/plugins/archive/localization/gl_ES.inc new file mode 100644 index 0000000000000000000000000000000000000000..489e569057b10742f9de17344fb0c7311ad33de0 --- /dev/null +++ b/data/web/rc/plugins/archive/localization/gl_ES.inc @@ -0,0 +1,31 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Arquivo'; +$labels['buttontitle'] = 'Arquivar esta mensaxe'; +$labels['archived'] = 'Aquivouse a mensaxe'; +$labels['archivedreload'] = 'Arquivado correctamente. Recargua a páxina para ver os novos cartafoles de arquivado.'; +$labels['archiveerror'] = 'Non se puideron arquivar algunhas mensaxes'; +$labels['archivefolder'] = 'Arquivo'; +$labels['settingstitle'] = 'Arquivar'; +$labels['archivetype'] = 'Dividir o arquivo por'; +$labels['archivetypeyear'] = 'Ano (p.ex. Arquivo/2012)'; +$labels['archivetypemonth'] = 'Mes (p.ex. Arquivo/2012/06)'; +$labels['archivetypefolder'] = 'Cartafol orixe'; +$labels['archivetypesender'] = 'Enderezo da persoa remitente'; +$labels['unkownsender'] = 'descoñecido'; +?> diff --git a/data/web/rc/plugins/archive/localization/he_IL.inc b/data/web/rc/plugins/archive/localization/he_IL.inc new file mode 100644 index 0000000000000000000000000000000000000000..06fe416f7093714f702f913c24953fdd70d2cb3e --- /dev/null +++ b/data/web/rc/plugins/archive/localization/he_IL.inc @@ -0,0 +1,32 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'ארכיון'; +$labels['buttontitle'] = 'משלוח ההודעה לארכיב'; +$labels['archived'] = 'עדכון הארכיון הצליח'; +$labels['archivedreload'] = 'נשמר בהצלחה בארכיב. יש לרענו את הדף כדי לראות את התיקיות החדשות בארכיב.'; +$labels['archiveerror'] = 'לא ניתן היה להעביר לארכיב חלק מההודעות'; +$labels['archivefolder'] = 'ארכיון'; +$labels['settingstitle'] = 'ארכיב'; +$labels['archivetype'] = 'לחלק את הארכיב על ידי'; +$labels['archivetypeyear'] = 'שנה ( לדוגמה, ארכיב/2012/96 )'; +$labels['archivetypemonth'] = 'חודש ( לדוגמה, ארכיב/2012/96 )'; +$labels['archivetypefolder'] = 'תיקיה מקורית'; +$labels['archivetypesender'] = 'שולח ההודעה'; +$labels['unkownsender'] = 'לא ידוע'; +$labels['readonarchive'] = 'יש לסמן את ההודעה בארכיב כאילו נקראה'; +?> diff --git a/data/web/rc/plugins/archive/localization/hr_HR.inc b/data/web/rc/plugins/archive/localization/hr_HR.inc new file mode 100644 index 0000000000000000000000000000000000000000..4c8d1835d2f85fa889b2a9f3eeca9986ceb30119 --- /dev/null +++ b/data/web/rc/plugins/archive/localization/hr_HR.inc @@ -0,0 +1,31 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Arhiva'; +$labels['buttontitle'] = 'Arhiviraj poruku'; +$labels['archived'] = 'Uspješno arhivirano'; +$labels['archivedreload'] = 'Uspješno arhivirano. Osvježite stranicu kako biste vidjeli nove arhivske mape.'; +$labels['archiveerror'] = 'Neke poruke nije bilo moguće arhivirati'; +$labels['archivefolder'] = 'Arhiva'; +$labels['settingstitle'] = 'Arhiva'; +$labels['archivetype'] = 'Podijeli arhivu po'; +$labels['archivetypeyear'] = 'Godina (npr. Arhiva/2012)'; +$labels['archivetypemonth'] = 'Mjesec (e.g. Arhiva/2012/06)'; +$labels['archivetypefolder'] = 'Izvorna mapa'; +$labels['archivetypesender'] = 'E-mail adresa pošiljatelja'; +$labels['unkownsender'] = 'nepoznato'; +?> diff --git a/data/web/rc/plugins/archive/localization/hu_HU.inc b/data/web/rc/plugins/archive/localization/hu_HU.inc new file mode 100644 index 0000000000000000000000000000000000000000..c00b6b47d230fd84676c0733e3ea55f96883eb89 --- /dev/null +++ b/data/web/rc/plugins/archive/localization/hu_HU.inc @@ -0,0 +1,32 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Archiválás'; +$labels['buttontitle'] = 'Üzenet archiválása'; +$labels['archived'] = 'Sikeres archiválás'; +$labels['archivedreload'] = 'Az arhiválás sikeres. Frissitsd az oldalt, hogy lásd a létrejött arhivum mappákat.'; +$labels['archiveerror'] = 'Néhány üzenetet nem sikerült arhiválni'; +$labels['archivefolder'] = 'Archiválás'; +$labels['settingstitle'] = 'Archiválás'; +$labels['archivetype'] = 'Arhívum tovább bontása a következő szerint'; +$labels['archivetypeyear'] = 'Év ( pl Arhívum/2012)'; +$labels['archivetypemonth'] = 'Honap ( pl Arhívum/2012/06)'; +$labels['archivetypefolder'] = 'Eredeti mappa'; +$labels['archivetypesender'] = 'Feladó'; +$labels['unkownsender'] = 'ismeretlen'; +$labels['readonarchive'] = 'Üzenet olvasottként jelölése arhiváláskor'; +?> diff --git a/data/web/rc/plugins/archive/localization/hy_AM.inc b/data/web/rc/plugins/archive/localization/hy_AM.inc new file mode 100644 index 0000000000000000000000000000000000000000..adadb3b83648473b96e6ec8c25678637b2fe48ff --- /dev/null +++ b/data/web/rc/plugins/archive/localization/hy_AM.inc @@ -0,0 +1,31 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Արխիվ'; +$labels['buttontitle'] = 'Արխիվացնել այս հաղորդագրությունը'; +$labels['archived'] = 'Բարեհաջող արխիվացվեց'; +$labels['archivedreload'] = 'Բարեհաջող արխիվացվեց: Վերբեռնեք էջը նոր արխիվացված պանակները տեսնելու համար:'; +$labels['archiveerror'] = 'Որոշ հաղորդագրություններ հնարավոր չէ արխիվացնել'; +$labels['archivefolder'] = 'Արխիվ'; +$labels['settingstitle'] = 'Արխիվ'; +$labels['archivetype'] = 'Բաժանել արխիվը'; +$labels['archivetypeyear'] = 'Տարեթիվ (օր.՝ Արխիվ/2012)'; +$labels['archivetypemonth'] = 'Ամսաթիվ (օր.՝ Արխիվ/2012/06)'; +$labels['archivetypefolder'] = 'Առաջին պանակը'; +$labels['archivetypesender'] = 'Ուղարկողի էլ-փոստը'; +$labels['unkownsender'] = 'անհայտ'; +?> diff --git a/data/web/rc/plugins/archive/localization/ia.inc b/data/web/rc/plugins/archive/localization/ia.inc new file mode 100644 index 0000000000000000000000000000000000000000..aa0d43200f0728f0ae06c28ca9f926e61997f361 --- /dev/null +++ b/data/web/rc/plugins/archive/localization/ia.inc @@ -0,0 +1,31 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Archivar'; +$labels['buttontitle'] = 'Archivar iste message'; +$labels['archived'] = 'Archivate con successo'; +$labels['archivedreload'] = 'Archivate con successo. Recarga le pagina pro vider le nove dossieres de archivo.'; +$labels['archiveerror'] = 'Alcun messages non poteva esser archivate'; +$labels['archivefolder'] = 'Archivo'; +$labels['settingstitle'] = 'Archivo'; +$labels['archivetype'] = 'Divider le archivo per'; +$labels['archivetypeyear'] = 'Anno (p.ex. Archivo/2012)'; +$labels['archivetypemonth'] = 'Mense (p.ex. Archivo/2012/06)'; +$labels['archivetypefolder'] = 'Dossier original'; +$labels['archivetypesender'] = 'E-mail del expeditor'; +$labels['unkownsender'] = 'incognite'; +?> diff --git a/data/web/rc/plugins/archive/localization/id_ID.inc b/data/web/rc/plugins/archive/localization/id_ID.inc new file mode 100644 index 0000000000000000000000000000000000000000..8b5192f4ebfb6fa9d2dcaa39fb9552ab75ec3c84 --- /dev/null +++ b/data/web/rc/plugins/archive/localization/id_ID.inc @@ -0,0 +1,32 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Arsip'; +$labels['buttontitle'] = 'Arsipkan pesan ini'; +$labels['archived'] = 'Berhasil mengarsipkan'; +$labels['archivedreload'] = 'Berhasil diarsipkan. Reload halaman untuk melihat folder arsip baru.'; +$labels['archiveerror'] = 'Beberapa pesan tidak dapat diarsipkan'; +$labels['archivefolder'] = 'Arsip'; +$labels['settingstitle'] = 'Arsip'; +$labels['archivetype'] = 'Pisah arsip berdasarkan'; +$labels['archivetypeyear'] = 'Tahun (contoh: Arsip/2012)'; +$labels['archivetypemonth'] = 'Bulan (contoh: Arsip/2012/06)'; +$labels['archivetypefolder'] = 'Folder asli'; +$labels['archivetypesender'] = 'Email pengirim'; +$labels['unkownsender'] = 'Tidak dikenal'; +$labels['readonarchive'] = 'Tandai pesan telah dibaca di arsip'; +?> diff --git a/data/web/rc/plugins/archive/localization/it_IT.inc b/data/web/rc/plugins/archive/localization/it_IT.inc new file mode 100644 index 0000000000000000000000000000000000000000..63f72aea04f65ea249e977f31fa5153b27830ecc --- /dev/null +++ b/data/web/rc/plugins/archive/localization/it_IT.inc @@ -0,0 +1,32 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Archivio'; +$labels['buttontitle'] = 'Archivia questo messaggio'; +$labels['archived'] = 'Archiviato correttamente'; +$labels['archivedreload'] = 'Archiviata con successo. Ricarica la pagina per visualizzare le nuove cartelle.'; +$labels['archiveerror'] = 'Alcuni messaggi non possono essere archiviati'; +$labels['archivefolder'] = 'Archivio'; +$labels['settingstitle'] = 'Archivio'; +$labels['archivetype'] = 'Dividi archivio per'; +$labels['archivetypeyear'] = 'Anno (es. Archivio/2012)'; +$labels['archivetypemonth'] = 'Mese (es. Archivio/2012/06)'; +$labels['archivetypefolder'] = 'Cartella di origine'; +$labels['archivetypesender'] = 'Mittente email'; +$labels['unkownsender'] = 'sconosciuto'; +$labels['readonarchive'] = 'Segna i messaggi in archivio come letti'; +?> diff --git a/data/web/rc/plugins/archive/localization/ja_JP.inc b/data/web/rc/plugins/archive/localization/ja_JP.inc new file mode 100644 index 0000000000000000000000000000000000000000..8c894caae01865cea4aeb2e7da0b77e2cda48cce --- /dev/null +++ b/data/web/rc/plugins/archive/localization/ja_JP.inc @@ -0,0 +1,32 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'アーカイブ'; +$labels['buttontitle'] = 'このメッセージをアーカイブ'; +$labels['archived'] = 'アーカイブしました。'; +$labels['archivedreload'] = 'アーカイブしました。ページを再読み込みすると、新しいアーカイブのフォルダーを表示します。'; +$labels['archiveerror'] = 'アーカイブできないメッセージがありました'; +$labels['archivefolder'] = 'アーカイブ'; +$labels['settingstitle'] = 'アーカイブ'; +$labels['archivetype'] = 'アーカイブを分割: '; +$labels['archivetypeyear'] = '年 (例: アーカイブ/2012)'; +$labels['archivetypemonth'] = '月 (e.g. アーカイブ/2012/06)'; +$labels['archivetypefolder'] = '元のフォルダー'; +$labels['archivetypesender'] = '電子メールの送信者'; +$labels['unkownsender'] = '不明'; +$labels['readonarchive'] = 'アーカイブでメッセージを既読に設定'; +?> diff --git a/data/web/rc/plugins/archive/localization/km_KH.inc b/data/web/rc/plugins/archive/localization/km_KH.inc new file mode 100644 index 0000000000000000000000000000000000000000..24fe023577d63bfc63ed4ed3acd803007a27d853 --- /dev/null +++ b/data/web/rc/plugins/archive/localization/km_KH.inc @@ -0,0 +1,31 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'ប័ណ្ណសារ'; +$labels['buttontitle'] = 'ធ្វើ​សារ​នេះ​ជា​បណ្ណសារ'; +$labels['archived'] = 'ធ្វើ​ជា​បណ្ណសារ​បាន​សម្រេច'; +$labels['archivedreload'] = 'ធ្វើ​ជា​បណ្ណសារ​បាន​សម្រេច។ ផ្ទុក​ទំព័រ​ឡើង​វិញ ដើម្បី​មើល​ថត​បណ្ណសារ​ថ្មី។'; +$labels['archiveerror'] = 'សារ​ខ្លះ​មិន​អាច​ត្រូវ​បាន​ធ្វើ​ជា​បណ្ណសារ​ទេ'; +$labels['archivefolder'] = 'ប័ណ្ណសារ'; +$labels['settingstitle'] = 'បណ្ណសារ'; +$labels['archivetype'] = 'ចែក​បណ្ណសារ​តាម'; +$labels['archivetypeyear'] = 'ឆ្នាំ (ឧទា. បណ្ណសារ/2012)'; +$labels['archivetypemonth'] = 'ខែ (ឧទា. បណ្ណសារ/2012/06)'; +$labels['archivetypefolder'] = 'ថត​ដើម'; +$labels['archivetypesender'] = 'អ្នក​ផ្ញើ​អ៊ីមែល'; +$labels['unkownsender'] = 'មិន​ស្គាល់'; +?> diff --git a/data/web/rc/plugins/archive/localization/ko_KR.inc b/data/web/rc/plugins/archive/localization/ko_KR.inc new file mode 100644 index 0000000000000000000000000000000000000000..0e12389b415047f6b8b01ba743f6721caf79d6da --- /dev/null +++ b/data/web/rc/plugins/archive/localization/ko_KR.inc @@ -0,0 +1,32 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = '보관'; +$labels['buttontitle'] = '이 메시지를 보관함에 저장'; +$labels['archived'] = '성공적으로 보관함'; +$labels['archivedreload'] = '성공적으로 보관되었습니다. 페이지를 다시 불러와서 새로운 보관함 폴더를 확인하세요.'; +$labels['archiveerror'] = '일부 메시지가 보관되지 않음'; +$labels['archivefolder'] = '보관'; +$labels['settingstitle'] = '보관'; +$labels['archivetype'] = '보관된 메시지 정리 기준'; +$labels['archivetypeyear'] = '연도 (예: 보관/2012)'; +$labels['archivetypemonth'] = '월 (예: 보관/2012/06)'; +$labels['archivetypefolder'] = '원본 폴더'; +$labels['archivetypesender'] = '발송자 이메일'; +$labels['unkownsender'] = '알 수 없음'; +$labels['readonarchive'] = '편지 보관함에서 메시지를 읽음으로 표시'; +?> diff --git a/data/web/rc/plugins/archive/localization/ku.inc b/data/web/rc/plugins/archive/localization/ku.inc new file mode 100644 index 0000000000000000000000000000000000000000..0173c796143335fcd3e2ff3374611f319031db77 --- /dev/null +++ b/data/web/rc/plugins/archive/localization/ku.inc @@ -0,0 +1,31 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Arşîv'; +$labels['buttontitle'] = 'vê peyamê arşîv bike'; +$labels['archived'] = 'Bi serkeftin hat arşîvkirin'; +$labels['archivedreload'] = 'Bi serkeftin hat arşîvkirin. Rûpelê dîsa bar bike da dosyeyên arşîvê yên nû bibînî.'; +$labels['archiveerror'] = 'Hin peyam nehatin arşîvkirin.'; +$labels['archivefolder'] = 'Arşîv'; +$labels['settingstitle'] = 'Arşîv'; +$labels['archivetype'] = 'Arşîvê dabeşîne'; +$labels['archivetypeyear'] = 'Sal (wek Arşîv/2012)'; +$labels['archivetypemonth'] = 'Meh (wek Arşîv/2012/06)'; +$labels['archivetypefolder'] = 'Dosyeya resen'; +$labels['archivetypesender'] = 'Emaila şandyar'; +$labels['unkownsender'] = 'nenas'; +?> diff --git a/data/web/rc/plugins/archive/localization/ku_IQ.inc b/data/web/rc/plugins/archive/localization/ku_IQ.inc new file mode 100644 index 0000000000000000000000000000000000000000..1408ac072adedb82be8e9f7d663f50bb086cf393 --- /dev/null +++ b/data/web/rc/plugins/archive/localization/ku_IQ.inc @@ -0,0 +1,22 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'ئەرشیف'; +$labels['archivefolder'] = 'ئەرشیف'; +$labels['settingstitle'] = 'ئەرشیف'; +$labels['unkownsender'] = 'نەناسراو'; +?> diff --git a/data/web/rc/plugins/archive/localization/lb_LU.inc b/data/web/rc/plugins/archive/localization/lb_LU.inc new file mode 100644 index 0000000000000000000000000000000000000000..b72b185e7f749a94e784401d3fa4abd34f69c982 --- /dev/null +++ b/data/web/rc/plugins/archive/localization/lb_LU.inc @@ -0,0 +1,31 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Archivéieren'; +$labels['buttontitle'] = 'Dëse Message archivéieren'; +$labels['archived'] = 'Erfollegräich archivéiert'; +$labels['archivedreload'] = 'Erfollegräich archivéiert. Lued d\'Säit nei fir déi neisten Archiv-Dossieren ze gesinn.'; +$labels['archiveerror'] = 'Verschidde Messagë konnten net archivéiert ginn'; +$labels['archivefolder'] = 'Archiv'; +$labels['settingstitle'] = 'Archiv'; +$labels['archivetype'] = 'Archiv dividéieren duerch'; +$labels['archivetypeyear'] = 'Joer (z.B. Archiv/2013)'; +$labels['archivetypemonth'] = 'Mount (z.B. Archiv/2013/06)'; +$labels['archivetypefolder'] = 'Original-Dossier'; +$labels['archivetypesender'] = 'Sender-E-Mail'; +$labels['unkownsender'] = 'onbekannt'; +?> diff --git a/data/web/rc/plugins/archive/localization/lt_LT.inc b/data/web/rc/plugins/archive/localization/lt_LT.inc new file mode 100644 index 0000000000000000000000000000000000000000..2448596a204e1e943b54ac16a4d703ae2bb88079 --- /dev/null +++ b/data/web/rc/plugins/archive/localization/lt_LT.inc @@ -0,0 +1,31 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Archyvuoti'; +$labels['buttontitle'] = 'Perkelti šį laišką į archyvą'; +$labels['archived'] = 'Laiškas sėkmingai perkeltas į archyvą'; +$labels['archivedreload'] = 'Sėkmingai perkelta į archyvą. Iš naujo įkelkite puslapį, kad pamatytumėt pasikeitimus.'; +$labels['archiveerror'] = 'Į archyvą nepavyko perkelti keleto laiškų.'; +$labels['archivefolder'] = 'Archyvuoti'; +$labels['settingstitle'] = 'Archyvuoti'; +$labels['archivetype'] = 'Padalinti archyvą pagal'; +$labels['archivetypeyear'] = 'Metai (pvz. Archyvas/2012)'; +$labels['archivetypemonth'] = 'Mėnesis (pvz. Archyvas/2012/06)'; +$labels['archivetypefolder'] = 'Tikrasis aplankas'; +$labels['archivetypesender'] = 'Siuntėjo el. pašto adresas'; +$labels['unkownsender'] = 'nežinomas'; +?> diff --git a/data/web/rc/plugins/archive/localization/lv_LV.inc b/data/web/rc/plugins/archive/localization/lv_LV.inc new file mode 100644 index 0000000000000000000000000000000000000000..0bd04740a2a70f366890f90b6c1fb8b577edabea --- /dev/null +++ b/data/web/rc/plugins/archive/localization/lv_LV.inc @@ -0,0 +1,31 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Arhīvs'; +$labels['buttontitle'] = 'Arhivēt šo vēstuli'; +$labels['archived'] = 'Vēstule veiksmīgi arhivēta'; +$labels['archivedreload'] = 'Arhīvs veiksmīgi izveidots. Lai redzētu jaunās arhīva mapes, pārlādējiet lapu.'; +$labels['archiveerror'] = 'Dažas vēstules nebija iespējams arhivēt'; +$labels['archivefolder'] = 'Arhīvs'; +$labels['settingstitle'] = 'Arhīvs'; +$labels['archivetype'] = 'Sadalīt arhīvu pa'; +$labels['archivetypeyear'] = 'Gadiem (piem. Arhīvs/2012)'; +$labels['archivetypemonth'] = 'Mēnešiem (piem. Arhīvs/2012/06)'; +$labels['archivetypefolder'] = 'Sākotnējā mape'; +$labels['archivetypesender'] = 'Sūtītāja e-pasts'; +$labels['unkownsender'] = 'nezināms'; +?> diff --git a/data/web/rc/plugins/archive/localization/ml_IN.inc b/data/web/rc/plugins/archive/localization/ml_IN.inc new file mode 100644 index 0000000000000000000000000000000000000000..2e0d010dfba03c4061553fca314975325c21000f --- /dev/null +++ b/data/web/rc/plugins/archive/localization/ml_IN.inc @@ -0,0 +1,22 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'ശേഖരം'; +$labels['buttontitle'] = 'ഈ മെസ്സേജ് ശേഖരിക്കുക'; +$labels['archived'] = 'വിജയകരമായി ശേഖരിച്ചു'; +$labels['archivefolder'] = 'ശേഖരം'; +?> diff --git a/data/web/rc/plugins/archive/localization/mn_MN.inc b/data/web/rc/plugins/archive/localization/mn_MN.inc new file mode 100644 index 0000000000000000000000000000000000000000..7db80f15dc0ee7173cb315cd186770a48981e22a --- /dev/null +++ b/data/web/rc/plugins/archive/localization/mn_MN.inc @@ -0,0 +1,31 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Архив'; +$labels['buttontitle'] = 'Энэ зурвасыг архивлах'; +$labels['archived'] = 'Амжилттай архивлагдлаа'; +$labels['archivedreload'] = 'Амжилттай архивлагдлаа. Хуудсыг дахин дуудаж шинэ үүссэн архив хавтсыг харна уу.'; +$labels['archiveerror'] = 'Зарим зурвас архивлагдаж чадахгүй'; +$labels['archivefolder'] = 'Архив'; +$labels['settingstitle'] = 'Архив'; +$labels['archivetype'] = 'Архивыг дараахаар ялга: '; +$labels['archivetypeyear'] = 'Он (жиш: Архив/2012)'; +$labels['archivetypemonth'] = 'Сар (жиш: Архив/2012/06)'; +$labels['archivetypefolder'] = 'Жинхэнэ хавтас'; +$labels['archivetypesender'] = 'Илгээгчийн мэйл хаяг'; +$labels['unkownsender'] = 'мэдэгдэхгүй'; +?> diff --git a/data/web/rc/plugins/archive/localization/mr_IN.inc b/data/web/rc/plugins/archive/localization/mr_IN.inc new file mode 100644 index 0000000000000000000000000000000000000000..4e542881ba49e1b43a60427ed0d9fa1a1e073ca5 --- /dev/null +++ b/data/web/rc/plugins/archive/localization/mr_IN.inc @@ -0,0 +1,22 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'जतन केलेला'; +$labels['buttontitle'] = 'हा संदेश जतन करा'; +$labels['archived'] = 'यशस्वीरीत्या जतन केला'; +$labels['archivefolder'] = 'जतन केलेला'; +?> diff --git a/data/web/rc/plugins/archive/localization/nb_NO.inc b/data/web/rc/plugins/archive/localization/nb_NO.inc new file mode 100644 index 0000000000000000000000000000000000000000..b78fdd977ffdf3eac9d0a7605c1556838227e7bf --- /dev/null +++ b/data/web/rc/plugins/archive/localization/nb_NO.inc @@ -0,0 +1,31 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Arkiv'; +$labels['buttontitle'] = 'Arkiver meldingen'; +$labels['archived'] = 'Arkivert'; +$labels['archivedreload'] = 'Arkivering vellykket. Last inn siden på nytt for å se de nye arkivmappene.'; +$labels['archiveerror'] = 'Noen meldinger kunne ikke arkiveres'; +$labels['archivefolder'] = 'Arkiv'; +$labels['settingstitle'] = 'Arkiv'; +$labels['archivetype'] = 'Del arkiv etter'; +$labels['archivetypeyear'] = 'År (f.eks. Arkiv/2012)'; +$labels['archivetypemonth'] = 'Måned (f.eks. Arkiv/2012/06)'; +$labels['archivetypefolder'] = 'Opprinnelig mappe'; +$labels['archivetypesender'] = 'Avsender'; +$labels['unkownsender'] = 'ukjent'; +?> diff --git a/data/web/rc/plugins/archive/localization/nl_NL.inc b/data/web/rc/plugins/archive/localization/nl_NL.inc new file mode 100644 index 0000000000000000000000000000000000000000..e1bc1bc896ebf5e924dff3216c4f89e4710ca102 --- /dev/null +++ b/data/web/rc/plugins/archive/localization/nl_NL.inc @@ -0,0 +1,31 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Archief'; +$labels['buttontitle'] = 'Archiveer dit bericht'; +$labels['archived'] = 'Succesvol gearchiveerd'; +$labels['archivedreload'] = 'Succesvol gearchiveerd. Herlaad de pagina om de nieuwe archiefmappen te bekijken.'; +$labels['archiveerror'] = 'Sommige berichten kunnen niet gearchiveerd worden'; +$labels['archivefolder'] = 'Archief'; +$labels['settingstitle'] = 'Archiveren'; +$labels['archivetype'] = 'Archief opdelen in'; +$labels['archivetypeyear'] = 'Jaar (bijv. Archief/2012)'; +$labels['archivetypemonth'] = 'Maand (bijv. Archief/2012/06)'; +$labels['archivetypefolder'] = 'Originele map'; +$labels['archivetypesender'] = 'Afzender e-mail'; +$labels['unkownsender'] = 'onbekend'; +?> diff --git a/data/web/rc/plugins/archive/localization/nn_NO.inc b/data/web/rc/plugins/archive/localization/nn_NO.inc new file mode 100644 index 0000000000000000000000000000000000000000..5849b7bafa30e27ddcbb7cab389a6e6f290ab4d3 --- /dev/null +++ b/data/web/rc/plugins/archive/localization/nn_NO.inc @@ -0,0 +1,31 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Arkiver'; +$labels['buttontitle'] = 'Arkiver meldinga'; +$labels['archived'] = 'Arkivert'; +$labels['archivedreload'] = 'Arkivering vellukka. Last inn sida på nytt for å sjå dei nye arkivmappene.'; +$labels['archiveerror'] = 'Nokre meldingar kunne ikkje arkiverast'; +$labels['archivefolder'] = 'Arkiver'; +$labels['settingstitle'] = 'Arkiv'; +$labels['archivetype'] = 'Del arkiv etter'; +$labels['archivetypeyear'] = 'År (f.eks. Arkiv/2012)'; +$labels['archivetypemonth'] = 'Månad (f.eks. Arkiv/2012/06)'; +$labels['archivetypefolder'] = 'Opprinneleg mappe'; +$labels['archivetypesender'] = 'Avsendar'; +$labels['unkownsender'] = 'ukjent'; +?> diff --git a/data/web/rc/plugins/archive/localization/pl_PL.inc b/data/web/rc/plugins/archive/localization/pl_PL.inc new file mode 100644 index 0000000000000000000000000000000000000000..35c9ea9d2ad92e2160510ebce37daa687be42733 --- /dev/null +++ b/data/web/rc/plugins/archive/localization/pl_PL.inc @@ -0,0 +1,32 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Archiwum'; +$labels['buttontitle'] = 'Przenieś do archiwum'; +$labels['archived'] = 'Pomyślnie zarchiwizowano'; +$labels['archivedreload'] = 'Pomyślnie zarchiwizowano. Odśwież stronę aby zobaczyć nowe foldery.'; +$labels['archiveerror'] = 'Nie można zarchiwizować niektórych wiadomości'; +$labels['archivefolder'] = 'Archiwum'; +$labels['settingstitle'] = 'Archiwum'; +$labels['archivetype'] = 'Podziel archiwum wg'; +$labels['archivetypeyear'] = 'Roku (np. Archiwum/2012)'; +$labels['archivetypemonth'] = 'Miesiąca (np. Archiwum/2012/06)'; +$labels['archivetypefolder'] = 'Oryginalny folder'; +$labels['archivetypesender'] = 'E-mail nadawcy'; +$labels['unkownsender'] = 'nieznany'; +$labels['readonarchive'] = 'Podczas archiwizowania oznacz wiadomość jako przeczytaną'; +?> diff --git a/data/web/rc/plugins/archive/localization/pt_BR.inc b/data/web/rc/plugins/archive/localization/pt_BR.inc new file mode 100644 index 0000000000000000000000000000000000000000..a5b198b7c3a5bae78d60a79d35d276898796bffc --- /dev/null +++ b/data/web/rc/plugins/archive/localization/pt_BR.inc @@ -0,0 +1,32 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Arquivo'; +$labels['buttontitle'] = 'Arquivar esta mensagem'; +$labels['archived'] = 'Arquivada com sucesso'; +$labels['archivedreload'] = 'Arquivado com sucesso. Recarregue a página para ver as novas pastas de arquivo.'; +$labels['archiveerror'] = 'Algumas mensagens não puderam ser arquivadas'; +$labels['archivefolder'] = 'Arquivo'; +$labels['settingstitle'] = 'Arquivo'; +$labels['archivetype'] = 'Dividir arquivo por'; +$labels['archivetypeyear'] = 'Ano (isto é, Arquivo/2012)'; +$labels['archivetypemonth'] = 'Mês (isto é, Arquivo/2012/06)'; +$labels['archivetypefolder'] = 'Pasta original'; +$labels['archivetypesender'] = 'E-mail do remetente'; +$labels['unkownsender'] = 'desconhecido'; +$labels['readonarchive'] = 'Marcar a mensagem como lida ao arquivar'; +?> diff --git a/data/web/rc/plugins/archive/localization/pt_PT.inc b/data/web/rc/plugins/archive/localization/pt_PT.inc new file mode 100644 index 0000000000000000000000000000000000000000..bbcdeb7c450de13340c1145f4771c0e03886529e --- /dev/null +++ b/data/web/rc/plugins/archive/localization/pt_PT.inc @@ -0,0 +1,32 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Arquivo'; +$labels['buttontitle'] = 'Arquivar esta mensagem'; +$labels['archived'] = 'Arquivada com sucesso'; +$labels['archivedreload'] = 'Arquivado com sucesso. Recarregue a página para ver as novas pastas de arquivo.'; +$labels['archiveerror'] = 'Algumas mensagens não puderam ser arquivadas'; +$labels['archivefolder'] = 'Arquivo'; +$labels['settingstitle'] = 'Arquivo'; +$labels['archivetype'] = 'Dividir arquivo por'; +$labels['archivetypeyear'] = 'Ano (ex. Arquivo/2012)'; +$labels['archivetypemonth'] = 'Mês (ex. Arquivo/2012/06)'; +$labels['archivetypefolder'] = 'Pasta original'; +$labels['archivetypesender'] = 'E-mail do remetente'; +$labels['unkownsender'] = 'desconhecido'; +$labels['readonarchive'] = 'Marcar a mensagem como lida ao arquivar'; +?> diff --git a/data/web/rc/plugins/archive/localization/ro_RO.inc b/data/web/rc/plugins/archive/localization/ro_RO.inc new file mode 100644 index 0000000000000000000000000000000000000000..632b5bcbfab371efe70b66a27e8514793a7ee84a --- /dev/null +++ b/data/web/rc/plugins/archive/localization/ro_RO.inc @@ -0,0 +1,31 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Arhivă'; +$labels['buttontitle'] = 'Arhivează mesajul.'; +$labels['archived'] = 'Arhivare reuşită.'; +$labels['archivedreload'] = 'Arhivat cu succes. Reîncărcați pagina pentru a vedea noul dosar de arhivare.'; +$labels['archiveerror'] = 'Unele mesaje nu au putut fi arhivate'; +$labels['archivefolder'] = 'Arhivă'; +$labels['settingstitle'] = 'Arhivă'; +$labels['archivetype'] = 'Împarte arhiva pe'; +$labels['archivetypeyear'] = 'Ani (ex. Arhiva/2013)'; +$labels['archivetypemonth'] = 'Luni (ex. Arhiva/2013/06)'; +$labels['archivetypefolder'] = 'Dosar original'; +$labels['archivetypesender'] = 'E-mail expeditor'; +$labels['unkownsender'] = 'necunoscut'; +?> diff --git a/data/web/rc/plugins/archive/localization/ru_RU.inc b/data/web/rc/plugins/archive/localization/ru_RU.inc new file mode 100644 index 0000000000000000000000000000000000000000..5da94122e06f15b187058b51a1d64fcee0c3786f --- /dev/null +++ b/data/web/rc/plugins/archive/localization/ru_RU.inc @@ -0,0 +1,32 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Архив'; +$labels['buttontitle'] = 'Переместить выбранное в архив'; +$labels['archived'] = 'Перенесено в Архив'; +$labels['archivedreload'] = 'Успешно заархивировано. Обновите страницу, чтобы увидеть новые папки архива.'; +$labels['archiveerror'] = 'Некоторые сообщения не могут быть заархивированы'; +$labels['archivefolder'] = 'Архив'; +$labels['settingstitle'] = 'Архив'; +$labels['archivetype'] = 'Разделить архив по'; +$labels['archivetypeyear'] = 'Год (например, Архив/2012)'; +$labels['archivetypemonth'] = 'Месяц (например, Архив/2012/06)'; +$labels['archivetypefolder'] = 'Исходная папка'; +$labels['archivetypesender'] = 'Адрес отправителя'; +$labels['unkownsender'] = 'неизвестно'; +$labels['readonarchive'] = 'Помечать как прочитанное при архивировании'; +?> diff --git a/data/web/rc/plugins/archive/localization/si_LK.inc b/data/web/rc/plugins/archive/localization/si_LK.inc new file mode 100644 index 0000000000000000000000000000000000000000..a6807f534f88758cf1721aa2d657a1463e26c215 --- /dev/null +++ b/data/web/rc/plugins/archive/localization/si_LK.inc @@ -0,0 +1,22 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'සංරක්‍ෂණය'; +$labels['buttontitle'] = 'මෙම පණිවිඩය සංරක්‍ෂණය කරන්න'; +$labels['archived'] = 'සංරක්‍ෂණය සාර්ථකයි'; +$labels['archivefolder'] = 'සංරක්‍ෂණය'; +?> diff --git a/data/web/rc/plugins/archive/localization/sk_SK.inc b/data/web/rc/plugins/archive/localization/sk_SK.inc new file mode 100644 index 0000000000000000000000000000000000000000..b4c527f60f9d51e189a5b510f1f525c68cc84dc4 --- /dev/null +++ b/data/web/rc/plugins/archive/localization/sk_SK.inc @@ -0,0 +1,32 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Archivovať'; +$labels['buttontitle'] = 'Archivovať túto správu'; +$labels['archived'] = 'Úspešne uložené do archívu'; +$labels['archivedreload'] = 'Archivovanie bolo úspešne dokončené. Ak si chcete prezrieť nové archívne priečinky, obnovte stránku.'; +$labels['archiveerror'] = 'Niektoré správy nebolo možné archivovať'; +$labels['archivefolder'] = 'Archivovať'; +$labels['settingstitle'] = 'Archív'; +$labels['archivetype'] = 'Rozdeliť archív po'; +$labels['archivetypeyear'] = 'rokoch (napríklad Archív/2012)'; +$labels['archivetypemonth'] = 'mesiacoch (napríklad Archív/2012/06)'; +$labels['archivetypefolder'] = 'Pôvodný priečinok'; +$labels['archivetypesender'] = 'E-mailová adresa odosielateľa'; +$labels['unkownsender'] = 'neznámy'; +$labels['readonarchive'] = 'Pri archivovaní označiť správu ako prečítanú'; +?> diff --git a/data/web/rc/plugins/archive/localization/sl_SI.inc b/data/web/rc/plugins/archive/localization/sl_SI.inc new file mode 100644 index 0000000000000000000000000000000000000000..a270380742a89d74b2fc47984a4d100a0c7eb89c --- /dev/null +++ b/data/web/rc/plugins/archive/localization/sl_SI.inc @@ -0,0 +1,32 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Arhiv'; +$labels['buttontitle'] = 'Arhiviraj to sporočilo'; +$labels['archived'] = 'Sporočilo je bilo uspešno arhivirano'; +$labels['archivedreload'] = 'Uspešno shranjeno v arhiv. Za pregled map v Arhivu ponovno naložite stran.'; +$labels['archiveerror'] = 'Nekaterih sporočil ni bilo mogoče arhivirati'; +$labels['archivefolder'] = 'Arhiv'; +$labels['settingstitle'] = 'Arhiv'; +$labels['archivetype'] = 'Razdeli arhiv glede na'; +$labels['archivetypeyear'] = 'Leto (npr. Arhiv/2012)'; +$labels['archivetypemonth'] = 'Mesec (npr. Arhiv/2012/06)'; +$labels['archivetypefolder'] = 'Izvorna mapa'; +$labels['archivetypesender'] = 'Naslov pošiljatelja'; +$labels['unkownsender'] = 'neznan'; +$labels['readonarchive'] = 'Ob arhiviranju označi sporočilo kot prebrano'; +?> diff --git a/data/web/rc/plugins/archive/localization/sq_AL.inc b/data/web/rc/plugins/archive/localization/sq_AL.inc new file mode 100644 index 0000000000000000000000000000000000000000..d98e4f541d5af4951f8a1dbef2c37652c8c35253 --- /dev/null +++ b/data/web/rc/plugins/archive/localization/sq_AL.inc @@ -0,0 +1,32 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Arkivoje'; +$labels['buttontitle'] = 'Arkivoje këtë mesazh'; +$labels['archived'] = 'U arkivua me sukses'; +$labels['archivedreload'] = 'U arkivua me sukses. Ringarkoni faqen që të shihni dosjet e reja arkiv.'; +$labels['archiveerror'] = 'Ca nga mesazhet s’u arkivuan dot'; +$labels['archivefolder'] = 'Arkivoje'; +$labels['settingstitle'] = 'Arkivoje'; +$labels['archivetype'] = 'Ndaje arkivin sipas'; +$labels['archivetypeyear'] = 'Vit (p.sh. Arkiv/2012)'; +$labels['archivetypemonth'] = 'Muaj (p.sh. Arkiv/2012/06)'; +$labels['archivetypefolder'] = 'Dosje origjinale'; +$labels['archivetypesender'] = 'Email dërguesi'; +$labels['unkownsender'] = 'e panjohur'; +$labels['readonarchive'] = 'I vini shenjë si të lexuar mesazhit në arkiv'; +?> diff --git a/data/web/rc/plugins/archive/localization/sr_CS.inc b/data/web/rc/plugins/archive/localization/sr_CS.inc new file mode 100644 index 0000000000000000000000000000000000000000..a4c86a818e1c0cc951587a28ad64ce2bf335ac78 --- /dev/null +++ b/data/web/rc/plugins/archive/localization/sr_CS.inc @@ -0,0 +1,31 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Архивирај'; +$labels['buttontitle'] = 'Архивирај ову поруку'; +$labels['archived'] = 'Успешно архивирано'; +$labels['archivedreload'] = 'Успешно архивирано. Поново учитајте страну да видите нове архивиране фасцикле.'; +$labels['archiveerror'] = 'Неке поруке се нису могле архивирати'; +$labels['archivefolder'] = 'Архива'; +$labels['settingstitle'] = 'Архивирање'; +$labels['archivetype'] = 'Разврстај архиве по'; +$labels['archivetypeyear'] = 'години (нпр. Архива/2015)'; +$labels['archivetypemonth'] = 'месецу (нпр. Архива/2015/03)'; +$labels['archivetypefolder'] = 'изворној фасцикли'; +$labels['archivetypesender'] = 'адреси пошиљаоца'; +$labels['unkownsender'] = 'непознат'; +?> diff --git a/data/web/rc/plugins/archive/localization/sv_SE.inc b/data/web/rc/plugins/archive/localization/sv_SE.inc new file mode 100644 index 0000000000000000000000000000000000000000..6f6683a8a531ef45d424ec111b10b35bea4332f7 --- /dev/null +++ b/data/web/rc/plugins/archive/localization/sv_SE.inc @@ -0,0 +1,32 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Arkivera'; +$labels['buttontitle'] = 'Arkivera meddelande'; +$labels['archived'] = 'Meddelandet är arkiverat'; +$labels['archivedreload'] = 'Meddelandet är arkiverat. Ladda om sidan för att se de nya arkivkatalogerna.'; +$labels['archiveerror'] = 'Några meddelanden kunde inte arkiveras'; +$labels['archivefolder'] = 'Arkiv'; +$labels['settingstitle'] = 'Arkiv'; +$labels['archivetype'] = 'Uppdelning av arkiv'; +$labels['archivetypeyear'] = 'År (ex. Arkiv/2012)'; +$labels['archivetypemonth'] = 'Månad (ex. Arkiv/2012/06)'; +$labels['archivetypefolder'] = 'Ursprunglig katalog'; +$labels['archivetypesender'] = 'Avsändaradress'; +$labels['unkownsender'] = 'Okänd'; +$labels['readonarchive'] = 'Märk meddelande som läst vid arkivering'; +?> diff --git a/data/web/rc/plugins/archive/localization/tr_TR.inc b/data/web/rc/plugins/archive/localization/tr_TR.inc new file mode 100644 index 0000000000000000000000000000000000000000..b1be16c60829149b5fddefc75ef5d5db70c187ac --- /dev/null +++ b/data/web/rc/plugins/archive/localization/tr_TR.inc @@ -0,0 +1,32 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Arşivle'; +$labels['buttontitle'] = 'Bu iletiyi arşivle'; +$labels['archived'] = 'Arşivlendi.'; +$labels['archivedreload'] = 'Arşivlendi. Yeni arşiv klasörlerini görmek için sayfayı yenileyin.'; +$labels['archiveerror'] = 'Bazı iletiler arşivlenemedi'; +$labels['archivefolder'] = 'Arşiv'; +$labels['settingstitle'] = 'Arşiv'; +$labels['archivetype'] = 'Arşivleme şuna göre yapılsın'; +$labels['archivetypeyear'] = 'Yıl (Arşiv/2012)'; +$labels['archivetypemonth'] = 'Ay (Arşiv/2012/06)'; +$labels['archivetypefolder'] = 'Özgün dosya'; +$labels['archivetypesender'] = 'Gönderici adresi'; +$labels['unkownsender'] = 'bilinmeyen'; +$labels['readonarchive'] = 'Arşivdeki ileti okunmuş olarak işaretlensin'; +?> diff --git a/data/web/rc/plugins/archive/localization/tzl.inc b/data/web/rc/plugins/archive/localization/tzl.inc new file mode 100644 index 0000000000000000000000000000000000000000..e07f31da9eef306a7b246d900a2f0ad070dce7af --- /dev/null +++ b/data/web/rc/plugins/archive/localization/tzl.inc @@ -0,0 +1,19 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['unkownsender'] = 'inschì'; +?> diff --git a/data/web/rc/plugins/archive/localization/uk_UA.inc b/data/web/rc/plugins/archive/localization/uk_UA.inc new file mode 100644 index 0000000000000000000000000000000000000000..c669bfadbfcd55dee0e6fdc1d62eef7eaf7350a3 --- /dev/null +++ b/data/web/rc/plugins/archive/localization/uk_UA.inc @@ -0,0 +1,32 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Архів'; +$labels['buttontitle'] = 'Архівувати це повідомлення'; +$labels['archived'] = 'Перенесено в архів'; +$labels['archivedreload'] = 'Успішно заархівовано. Перезавантажте сторінку, щоб побачити нові теки з архівами.'; +$labels['archiveerror'] = 'Деякі повідомлення не вдалося заархівувати'; +$labels['archivefolder'] = 'Архів'; +$labels['settingstitle'] = 'Архів'; +$labels['archivetype'] = 'Розділити архів по'; +$labels['archivetypeyear'] = 'Рік (наприклад Архів/2012)'; +$labels['archivetypemonth'] = 'Місяць (наприклад Архів/2012/06)'; +$labels['archivetypefolder'] = 'Оригінальна тека'; +$labels['archivetypesender'] = 'Відправник email'; +$labels['unkownsender'] = 'невідомо'; +$labels['readonarchive'] = 'Позначити повідомлення як прочитане по архіву'; +?> diff --git a/data/web/rc/plugins/archive/localization/vi_VN.inc b/data/web/rc/plugins/archive/localization/vi_VN.inc new file mode 100644 index 0000000000000000000000000000000000000000..219f9ddf7a9f834b4f21efa68baec9fb17127f67 --- /dev/null +++ b/data/web/rc/plugins/archive/localization/vi_VN.inc @@ -0,0 +1,31 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = 'Lưu trữ'; +$labels['buttontitle'] = 'Lưu lại bức thư này'; +$labels['archived'] = 'Lưu lại thành công'; +$labels['archivedreload'] = 'Đã lưu thành công. Tải lại trang này để thấy các thư mục lưu trữ mới.'; +$labels['archiveerror'] = 'Một số thư không thể lưu lại được'; +$labels['archivefolder'] = 'Lưu trữ'; +$labels['settingstitle'] = 'Lưu trữ'; +$labels['archivetype'] = 'Chia bộ lưu trữ bởi'; +$labels['archivetypeyear'] = 'Năm (ví dụ: Lưu trữ/2012)'; +$labels['archivetypemonth'] = 'Tháng (ví dụ: Lưu trữ/2012/06)'; +$labels['archivetypefolder'] = 'Thư mục nguyên gốc'; +$labels['archivetypesender'] = 'Địa chỉ thư điện tử của người gửi'; +$labels['unkownsender'] = 'Không rõ'; +?> diff --git a/data/web/rc/plugins/archive/localization/zh_CN.inc b/data/web/rc/plugins/archive/localization/zh_CN.inc new file mode 100644 index 0000000000000000000000000000000000000000..24fbbf4e3a9ea8759eb2c556eb56a32303a5e7d3 --- /dev/null +++ b/data/web/rc/plugins/archive/localization/zh_CN.inc @@ -0,0 +1,31 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = '存档'; +$labels['buttontitle'] = '存档该信息'; +$labels['archived'] = '存档成功'; +$labels['archivedreload'] = '存档成功。请刷新本页以查看新的存档文件夹。'; +$labels['archiveerror'] = '部分信息无法存档'; +$labels['archivefolder'] = '存档'; +$labels['settingstitle'] = '存档'; +$labels['archivetype'] = '分类存档按'; +$labels['archivetypeyear'] = '年(例如 存档/2012)'; +$labels['archivetypemonth'] = '月(例如 存档/2012/06)'; +$labels['archivetypefolder'] = '原始文件夹'; +$labels['archivetypesender'] = '发件人邮件'; +$labels['unkownsender'] = '未知'; +?> diff --git a/data/web/rc/plugins/archive/localization/zh_TW.inc b/data/web/rc/plugins/archive/localization/zh_TW.inc new file mode 100644 index 0000000000000000000000000000000000000000..ae4b779e5d11a534db18cf86739acedd56ce9add --- /dev/null +++ b/data/web/rc/plugins/archive/localization/zh_TW.inc @@ -0,0 +1,31 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2016, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-archive/ +*/ +$labels['buttontext'] = '封存'; +$labels['buttontitle'] = '封存此信件'; +$labels['archived'] = '已成功封存'; +$labels['archivedreload'] = '封存動作完成.重新載入頁面瀏覽新的封存資料夾'; +$labels['archiveerror'] = '部分資訊無法完成封存'; +$labels['archivefolder'] = '封存'; +$labels['settingstitle'] = '封存'; +$labels['archivetype'] = '封存檔案切割方式'; +$labels['archivetypeyear'] = '年分(例如: 封存/2012)'; +$labels['archivetypemonth'] = '月份(例如: 封存/2012/06)'; +$labels['archivetypefolder'] = '原始資料夾'; +$labels['archivetypesender'] = '寄件者電子信箱'; +$labels['unkownsender'] = '未知'; +?> diff --git a/data/web/rc/plugins/archive/skins/classic/archive.css b/data/web/rc/plugins/archive/skins/classic/archive.css new file mode 100644 index 0000000000000000000000000000000000000000..fc5984b392d526308fc3fa423177f122cf676e8f --- /dev/null +++ b/data/web/rc/plugins/archive/skins/classic/archive.css @@ -0,0 +1,10 @@ + +#messagetoolbar a.button.archive { + text-indent: -5000px; + background: url(archive_act.png) 0 0 no-repeat; +} + +#mailboxlist li.mailbox.archive > a { + background-image: url(foldericon.png); + background-position: 5px 1px; +} diff --git a/data/web/rc/plugins/archive/skins/classic/archive.min.css b/data/web/rc/plugins/archive/skins/classic/archive.min.css new file mode 100644 index 0000000000000000000000000000000000000000..a837906b4c0517f871664d51c3e52496ba85b92f --- /dev/null +++ b/data/web/rc/plugins/archive/skins/classic/archive.min.css @@ -0,0 +1 @@ +#messagetoolbar a.button.archive{text-indent:-5000px;background:url(archive_act.png) 0 0 no-repeat}#mailboxlist li.mailbox.archive>a{background-image:url(foldericon.png);background-position:5px 1px} \ No newline at end of file diff --git a/data/web/rc/plugins/archive/skins/classic/archive_act.png b/data/web/rc/plugins/archive/skins/classic/archive_act.png new file mode 100644 index 0000000000000000000000000000000000000000..2a173586832e8f8c6dedafd79a93611dec8b5a61 Binary files /dev/null and b/data/web/rc/plugins/archive/skins/classic/archive_act.png differ diff --git a/data/web/rc/plugins/archive/skins/classic/archive_pas.png b/data/web/rc/plugins/archive/skins/classic/archive_pas.png new file mode 100644 index 0000000000000000000000000000000000000000..8de2085836b64805f5088a30526af04630d966aa Binary files /dev/null and b/data/web/rc/plugins/archive/skins/classic/archive_pas.png differ diff --git a/data/web/rc/plugins/archive/skins/classic/foldericon.png b/data/web/rc/plugins/archive/skins/classic/foldericon.png new file mode 100644 index 0000000000000000000000000000000000000000..ec0853c4420efb6317e4fc9c34ca17e9e451ac32 Binary files /dev/null and b/data/web/rc/plugins/archive/skins/classic/foldericon.png differ diff --git a/data/web/rc/plugins/archive/skins/larry/.gitignore b/data/web/rc/plugins/archive/skins/larry/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/data/web/rc/plugins/archive/tests/Archive.php b/data/web/rc/plugins/archive/tests/Archive.php new file mode 100644 index 0000000000000000000000000000000000000000..17fcdf7a19c486a72017d8b210a583e19e1f0784 --- /dev/null +++ b/data/web/rc/plugins/archive/tests/Archive.php @@ -0,0 +1,23 @@ +api); + + $this->assertInstanceOf('archive', $plugin); + $this->assertInstanceOf('rcube_plugin', $plugin); + } +} + diff --git a/data/web/rc/plugins/attachment_reminder/attachment_reminder.js b/data/web/rc/plugins/attachment_reminder/attachment_reminder.js new file mode 100644 index 0000000000000000000000000000000000000000..4626ce70323c5d5bbd5a833389ddb11055b1ed69 --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/attachment_reminder.js @@ -0,0 +1,83 @@ +/** + * Attachment Reminder plugin script + * + * @licstart The following is the entire license notice for the + * JavaScript code in this file. + * + * Copyright (c) 2013, The Roundcube Dev Team + * + * The JavaScript code in this page is free software: you can redistribute it + * and/or modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation, either version 3 of + * the License, or (at your option) any later version. + * + * @licend The above is the entire license notice + * for the JavaScript code in this file. + */ + +function rcmail_get_compose_message() +{ + var msg; + + if (window.tinyMCE && (ed = tinyMCE.get(rcmail.env.composebody))) { + msg = ed.getContent(); + msg = msg.replace(/]*>(.|[\r\n])*<\/blockquote>/gmi, ''); + } + else { + msg = $('#' + rcmail.env.composebody).val(); + msg = msg.replace(/^>.*$/gmi, ''); + } + + return msg; +}; + +function rcmail_check_message(msg) +{ + var i, rx, keywords = rcmail.get_label('keywords', 'attachment_reminder').split(",").concat([".doc", ".pdf"]); + + keywords = $.map(keywords, function(n) { return RegExp.escape(n); }); + rx = new RegExp('(' + keywords.join('|') + ')', 'i'); + + return msg.search(rx) != -1; +}; + +function rcmail_have_attachments() +{ + return rcmail.env.attachments && $('li', rcmail.gui_objects.attachmentlist).length; +}; + +function rcmail_attachment_reminder_dialog() +{ + var buttons = {}; + + buttons[rcmail.get_label('addattachment')] = function() { + $(this).remove(); + if (window.UI && UI.show_uploadform) // Larry skin + UI.show_uploadform(); + else if (window.rcmail_ui && rcmail_ui.show_popup) // classic skin + rcmail_ui.show_popup('uploadmenu', true); + }; + buttons[rcmail.get_label('send')] = function(e) { + $(this).remove(); + rcmail.env.attachment_reminder = true; + rcmail.command('send', '', e); + }; + + rcmail.env.attachment_reminder = false; + rcmail.show_popup_dialog(rcmail.get_label('attachment_reminder.forgotattachment'), '', buttons); +}; + + +if (window.rcmail) { + rcmail.addEventListener('beforesend', function(evt) { + var msg = rcmail_get_compose_message(), + subject = $('#compose-subject').val(); + + if (!rcmail.env.attachment_reminder && !rcmail_have_attachments() + && (rcmail_check_message(msg) || rcmail_check_message(subject)) + ) { + rcmail_attachment_reminder_dialog(); + return false; + } + }); +} diff --git a/data/web/rc/plugins/attachment_reminder/attachment_reminder.min.js b/data/web/rc/plugins/attachment_reminder/attachment_reminder.min.js new file mode 100644 index 0000000000000000000000000000000000000000..69242c43d2574225074e8aff23e043b9c139953f --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/attachment_reminder.min.js @@ -0,0 +1,20 @@ +/** + * Attachment Reminder plugin script + * + * @licstart The following is the entire license notice for the + * JavaScript code in this file. + * + * Copyright (c) 2013, The Roundcube Dev Team + * + * The JavaScript code in this page is free software: you can redistribute it + * and/or modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation, either version 3 of + * the License, or (at your option) any later version. + * + * @licend The above is the entire license notice + * for the JavaScript code in this file. + */ +function rcmail_get_compose_message(){var a;window.tinyMCE&&(ed=tinyMCE.get(rcmail.env.composebody))?(a=ed.getContent(),a=a.replace(/]*>(.|[\r\n])*<\/blockquote>/gmi,"")):(a=$("#"+rcmail.env.composebody).val(),a=a.replace(/^>.*$/gmi,""));return a}function rcmail_check_message(a){var b;b=rcmail.get_label("keywords","attachment_reminder").split(",").concat([".doc",".pdf"]);b=$.map(b,function(a){return RegExp.escape(a)});b=new RegExp("("+b.join("|")+")","i");return-1!=a.search(b)} +function rcmail_have_attachments(){return rcmail.env.attachments&&$("li",rcmail.gui_objects.attachmentlist).length} +function rcmail_attachment_reminder_dialog(){var a={};a[rcmail.get_label("addattachment")]=function(){$(this).remove();window.UI&&UI.show_uploadform?UI.show_uploadform():window.rcmail_ui&&rcmail_ui.show_popup&&rcmail_ui.show_popup("uploadmenu",!0)};a[rcmail.get_label("send")]=function(a){$(this).remove();rcmail.env.attachment_reminder=!0;rcmail.command("send","",a)};rcmail.env.attachment_reminder=!1;rcmail.show_popup_dialog(rcmail.get_label("attachment_reminder.forgotattachment"),"",a)} +window.rcmail&&rcmail.addEventListener("beforesend",function(a){a=rcmail_get_compose_message();var b=$("#compose-subject").val();if(!rcmail.env.attachment_reminder&&!rcmail_have_attachments()&&(rcmail_check_message(a)||rcmail_check_message(b)))return rcmail_attachment_reminder_dialog(),!1}); diff --git a/data/web/rc/plugins/attachment_reminder/attachment_reminder.php b/data/web/rc/plugins/attachment_reminder/attachment_reminder.php new file mode 100644 index 0000000000000000000000000000000000000000..74df25f61e47591bd5312688ef34b60f09d63618 --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/attachment_reminder.php @@ -0,0 +1,83 @@ + + * + * Copyright (C) 2013 Thomas Yu - Sian, Liu + * Copyright (C) 2013, Kolab Systems AG + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see + */ + +class attachment_reminder extends rcube_plugin +{ + public $task = 'mail|settings'; + public $noajax = true; + + + function init() + { + $rcmail = rcube::get_instance(); + + if ($rcmail->task == 'mail' && $rcmail->action == 'compose') { + if ($rcmail->config->get('attachment_reminder')) { + $this->include_script('attachment_reminder.js'); + $this->add_texts('localization/', array('keywords', 'forgotattachment')); + $rcmail->output->add_label('addattachment', 'send'); + } + } + + if ($rcmail->task == 'settings') { + $dont_override = $rcmail->config->get('dont_override', array()); + + if (!in_array('attachment_reminder', $dont_override)) { + $this->add_hook('preferences_list', array($this, 'prefs_list')); + $this->add_hook('preferences_save', array($this, 'prefs_save')); + } + } + } + + function prefs_list($args) + { + if ($args['section'] == 'compose') { + $this->add_texts('localization/'); + $reminder = rcube::get_instance()->config->get('attachment_reminder'); + $field_id = 'rcmfd_attachment_reminder'; + $checkbox = new html_checkbox(array('name' => '_attachment_reminder', 'id' => $field_id, 'value' => 1)); + + $args['blocks']['main']['options']['attachment_reminder'] = array( + 'title' => html::label($field_id, rcube::Q($this->gettext('reminderoption'))), + 'content' => $checkbox->show($reminder ? 1 : 0), + ); + } + + return $args; + } + + function prefs_save($args) + { + if ($args['section'] == 'compose') { + $dont_override = rcube::get_instance()->config->get('dont_override', array()); + if (!in_array('attachment_reminder', $dont_override)) { + $args['prefs']['attachment_reminder'] = !empty($_POST['_attachment_reminder']); + } + } + return $args; + } + +} diff --git a/data/web/rc/plugins/attachment_reminder/composer.json b/data/web/rc/plugins/attachment_reminder/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..62942ff2185552411bbc36f9a2250a8a90499802 --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/composer.json @@ -0,0 +1,29 @@ +{ + "name": "roundcube/attachment_reminder", + "type": "roundcube-plugin", + "description": "This Roundcube plugin reminds the user to attach a file if the composed message text indicates that there should be any.", + "license": "GPLv3+", + "version": "1.1", + "authors": [ + { + "name": "Aleksander Machniak", + "email": "alec@alec.pl", + "role": "Lead" + }, + { + "name": "Thomas Yu - Sian, Liu", + "email": "", + "role": "Lead" + } + ], + "repositories": [ + { + "type": "composer", + "url": "http://plugins.roundcube.net" + } + ], + "require": { + "php": ">=5.3.0", + "roundcube/plugin-installer": ">=0.1.3" + } +} diff --git a/data/web/rc/plugins/attachment_reminder/localization/ar_SA.inc b/data/web/rc/plugins/attachment_reminder/localization/ar_SA.inc new file mode 100644 index 0000000000000000000000000000000000000000..bb1ad0449e3410f51f585a65920d2e305ef03fa9 --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/ar_SA.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "هل نسيت إرفاق ملف؟"; +$messages['reminderoption'] = "تذكير حول المرفقات المنسية"; +$messages['keywords'] = "المرفقات,الملف,ارفاق,مرفق,ارفاق,مضمون,CV,صفحة المغلف"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/ast.inc b/data/web/rc/plugins/attachment_reminder/localization/ast.inc new file mode 100644 index 0000000000000000000000000000000000000000..910f3fe909033f200e1e570387602c2f52ea3c70 --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/ast.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "¿Escaecisti axuntar un ficheru?"; +$messages['reminderoption'] = "Recordar alrodiu d'axuntos escaecíos"; +$messages['keywords'] = "axuntu,ficheru,axuntar,axuntáu,axuntando,axuntao,axuntada,CV,carta de presentación"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/az_AZ.inc b/data/web/rc/plugins/attachment_reminder/localization/az_AZ.inc new file mode 100644 index 0000000000000000000000000000000000000000..5340c917e1cadf2441ba1b1687e5349a9f55d425 --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/az_AZ.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "Faylı əlavə etməyi unutdunuz?"; +$messages['reminderoption'] = "Unudulmuş qoşmalardan xəbərdar et"; +$messages['keywords'] = "qoşmalar,fayl,qoşma,qoşulub,qoşulur,qapalı,CV,qoşma məktub"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/be_BE.inc b/data/web/rc/plugins/attachment_reminder/localization/be_BE.inc new file mode 100644 index 0000000000000000000000000000000000000000..a920ccfa611ed935f76319014585b1e9cd363503 --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/be_BE.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "Забыліся далучыць файл?"; +$messages['reminderoption'] = "Напамінаць пра забытыя далучэнні"; +$messages['keywords'] = "далучэнне,файл,далучыць,далучаны,далучаецца,укладзены,CV,cover letter"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/bg_BG.inc b/data/web/rc/plugins/attachment_reminder/localization/bg_BG.inc new file mode 100644 index 0000000000000000000000000000000000000000..a882d6c94b22a3762202bab5d241a04fbb9cbc8b --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/bg_BG.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "Забравихте ли да прикрепите файл към съобщението?"; +$messages['reminderoption'] = "Напомняне за забравени прикачени файлове"; +$messages['keywords'] = "прикачен,прикрепен,прикачам,прикачвам,прикрепям,прикрепвам,файл,attachment,file,attach,attached,attaching,enclosed,CV,cover letter"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/br.inc b/data/web/rc/plugins/attachment_reminder/localization/br.inc new file mode 100644 index 0000000000000000000000000000000000000000..93eaace5e845c6ed422577ae28f447ee5ab8244b --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/br.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "Disonjet ho peus stagan er restr ?"; +$messages['reminderoption'] = "Adgalv war ar pezhiou stag disonjet"; +$messages['keywords'] = "pezh stag, restr, stagan, aman staget, stagit, ouzhpenan, CV, lizher youl"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/bs_BA.inc b/data/web/rc/plugins/attachment_reminder/localization/bs_BA.inc new file mode 100644 index 0000000000000000000000000000000000000000..1ec385dfaaad3ff425010cdead2e84fd2dd7009c --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/bs_BA.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "Da li ste zaboravili da dodate ovu datoteku?"; +$messages['reminderoption'] = "Napomene o zaboravljenim prilozima"; +$messages['keywords'] = "attachment,file,attach,attached,attaching,enclosed,CV,cover letter,prilog,biografija,popratno pismo,prilogu,popratnom pismu,datoteka,fajl"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/ca_ES.inc b/data/web/rc/plugins/attachment_reminder/localization/ca_ES.inc new file mode 100644 index 0000000000000000000000000000000000000000..ca22fbd413f6a41f86dd2b304c5a9ad3635ff796 --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/ca_ES.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "Us heu oblidat afegir un fitxer?"; +$messages['reminderoption'] = "Recordatori de fitxers adjunts oblidats"; +$messages['keywords'] = "adjunt,fitxer,adjuntar,adjuntat,adjuntant,CV,carta"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/cs_CZ.inc b/data/web/rc/plugins/attachment_reminder/localization/cs_CZ.inc new file mode 100644 index 0000000000000000000000000000000000000000..3d21664781bcee6c6c87f6ef777d4c7c32c20fd9 --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/cs_CZ.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "Nezapomněli jste připojit přílohu?"; +$messages['reminderoption'] = "Upozorňovat na zapomenuté přílohy"; +$messages['keywords'] = "příloha,přílohy,příloze,přílohu,přiloženém,připojeném,CV,životopis"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/cy_GB.inc b/data/web/rc/plugins/attachment_reminder/localization/cy_GB.inc new file mode 100644 index 0000000000000000000000000000000000000000..0ce8a9991d8aa7843bec4944f3341a354d71ddff --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/cy_GB.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "Wedi anghofio atodi ffeil?"; +$messages['reminderoption'] = "Atgoffa am atodiadau ar goll"; +$messages['keywords'] = "atodiad,atodi,atodaf,atodwyd,atodir,amgaedig,dogfen,llythyr,ffeil,attachment,file,attach,attached,attaching,enclosed,CV,cover letter,"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/da_DK.inc b/data/web/rc/plugins/attachment_reminder/localization/da_DK.inc new file mode 100644 index 0000000000000000000000000000000000000000..e41eafb36bb5e6f310a54f8ce4fcc62c75f69926 --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/da_DK.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "Glemte du at vedhæfte en fil?"; +$messages['reminderoption'] = "Påmind om glemt vedhæftning af filer"; +$messages['keywords'] = "vedhæftet fil,fil,vedhæft,vedhæftet,vedhæfter,lukket,CV,følgebrev"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/de_CH.inc b/data/web/rc/plugins/attachment_reminder/localization/de_CH.inc new file mode 100644 index 0000000000000000000000000000000000000000..9aca61e68709e1ae1d82dfb2ddec496c5221b787 --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/de_CH.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "Haben Sie möglicherweise vergessen eine Datei anzuhängen?"; +$messages['reminderoption'] = "Vor vergessenen Anhängen warnen"; +$messages['keywords'] = "anbei,anhang,angehängt,angefügt,beigefügt,beliegend"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/de_DE.inc b/data/web/rc/plugins/attachment_reminder/localization/de_DE.inc new file mode 100644 index 0000000000000000000000000000000000000000..ec5ea0a26d1425d2cad2f974fc93decb1e106d12 --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/de_DE.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "Haben Sie möglicherweise vergessen, eine Datei anzuhängen?"; +$messages['reminderoption'] = "An vergessene Anhänge erinnern"; +$messages['keywords'] = "anbei,im anhang,siehe anhang,angehängt,angefügt,beigefügt,beliegend"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/el_GR.inc b/data/web/rc/plugins/attachment_reminder/localization/el_GR.inc new file mode 100644 index 0000000000000000000000000000000000000000..11a3cb82246be4cff0e629cf4e104af0d0786350 --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/el_GR.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "Μήπως ξεχάσετε να επισυνάψετε αρχείο; "; +$messages['reminderoption'] = "Υπενθύμιση για συνημμένα"; +$messages['keywords'] = "συνημμένο, αρχείο, επισύναψη, συνημμένο, επισυνάπτοντας, εσωκλείοντας, βιογραφικό σημείωμα, συνοδευτική επιστολή"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/en_CA.inc b/data/web/rc/plugins/attachment_reminder/localization/en_CA.inc new file mode 100644 index 0000000000000000000000000000000000000000..730e206f7a7dc34e8125b582c9b3f387c9bf2805 --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/en_CA.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "Did you forget to attach a file?"; +$messages['reminderoption'] = "Remind about forgotten attachments"; +$messages['keywords'] = "attachment,file,attach,attached,attaching,enclosed,CV,cover letter"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/en_GB.inc b/data/web/rc/plugins/attachment_reminder/localization/en_GB.inc new file mode 100644 index 0000000000000000000000000000000000000000..730e206f7a7dc34e8125b582c9b3f387c9bf2805 --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/en_GB.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "Did you forget to attach a file?"; +$messages['reminderoption'] = "Remind about forgotten attachments"; +$messages['keywords'] = "attachment,file,attach,attached,attaching,enclosed,CV,cover letter"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/en_US.inc b/data/web/rc/plugins/attachment_reminder/localization/en_US.inc new file mode 100644 index 0000000000000000000000000000000000000000..488b0df37afc503f79247c10beb74a9e79893b0d --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/en_US.inc @@ -0,0 +1,22 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ + +$messages = array(); +$messages['forgotattachment'] = "Did you forget to attach a file?"; +$messages['reminderoption'] = "Remind about forgotten attachments"; +$messages['keywords'] = "attachment,file,attach,attached,attaching,enclosed,CV,cover letter"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/es_419.inc b/data/web/rc/plugins/attachment_reminder/localization/es_419.inc new file mode 100644 index 0000000000000000000000000000000000000000..0c9a33bfe91231bf250ddc7882563c914e4f2a36 --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/es_419.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "¿Has olvidado adjuntar un archivo?"; +$messages['reminderoption'] = "Recordar si olvido adjuntar archivos"; +$messages['keywords'] = "attachment,file,attach,attached,attaching,enclosed,CV,cover letter"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/es_AR.inc b/data/web/rc/plugins/attachment_reminder/localization/es_AR.inc new file mode 100644 index 0000000000000000000000000000000000000000..2a7418348695ca20f005d9a4e0af85e8d00769cf --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/es_AR.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "Has olvidado adjuntar un archivo?"; +$messages['reminderoption'] = "Recordar sobre archivos adjuntos olvidados"; +$messages['keywords'] = "adjunto,archivo,adjuntar,adjuntado,adjuntando,"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/es_ES.inc b/data/web/rc/plugins/attachment_reminder/localization/es_ES.inc new file mode 100644 index 0000000000000000000000000000000000000000..2e4ffdf286c36cd1740f4dc92f344b6fc248deff --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/es_ES.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "¿Olvidó adjuntar un fichero al mensaje?"; +$messages['reminderoption'] = "Recordatorio sobre adjuntos olvidados"; +$messages['keywords'] = "adjunto, archivo, adjuntar, unido, adjuntando, cerrado, CV, carta de presentación"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/et_EE.inc b/data/web/rc/plugins/attachment_reminder/localization/et_EE.inc new file mode 100644 index 0000000000000000000000000000000000000000..c8be2af6d69f77d965131617c2f376112cda22f4 --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/et_EE.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "Unustasid faili lisada?"; +$messages['reminderoption'] = "Tuleta mulle meelde kui unustasin manuse lisada"; +$messages['keywords'] = "manus,manuses,lisatud,lisasin,fail,file,failis,attachment,file,attach,attached,attaching,enclosed,CV,cover letter"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/eu_ES.inc b/data/web/rc/plugins/attachment_reminder/localization/eu_ES.inc new file mode 100644 index 0000000000000000000000000000000000000000..f658990e54578c4fee3a02d185c76f67a165cc77 --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/eu_ES.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "Ahaztu zaizu fitxategia eranstea?"; +$messages['reminderoption'] = "Ohartarazi ahaztutako erankinez"; +$messages['keywords'] = "eranskin,fitxategia,erantzi,erantzita,eransten,atxikita"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/fa_AF.inc b/data/web/rc/plugins/attachment_reminder/localization/fa_AF.inc new file mode 100644 index 0000000000000000000000000000000000000000..1c47737f16f213e49555eb338b9769785c6abc91 --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/fa_AF.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "آیا فراموش کردید که فایل را الصاق کرده اید؟"; +$messages['reminderoption'] = "یاد آوری درمورد ضمایم فراموش شده"; +$messages['keywords'] = "ضمیمه،فایل،ضمیمه کردن،ضمیمه شده،در حال ضمیمه کردن، الصاق شده،CV، عنوان نامه"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/fa_IR.inc b/data/web/rc/plugins/attachment_reminder/localization/fa_IR.inc new file mode 100644 index 0000000000000000000000000000000000000000..fd1c40117d1903d9a076a19d7b3d7e17dfb0715e --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/fa_IR.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "آیا شما پیوست کردن پرونده را فراموش کرده‌اید؟"; +$messages['reminderoption'] = "یادآوری فراموشی پیوست‌ها"; +$messages['keywords'] = "پیوست،پرونده،پیوست کردن، پیوست شده، CV"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/fi_FI.inc b/data/web/rc/plugins/attachment_reminder/localization/fi_FI.inc new file mode 100644 index 0000000000000000000000000000000000000000..a39d8b28d8aa029b6333df7a0025b65366c00b22 --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/fi_FI.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "Unohditko liittää tiedoston?"; +$messages['reminderoption'] = "Muistuta mahdollisesti unohtuneista liitteistä"; +$messages['keywords'] = "attachment,file,attach,attached,attaching,enclosed,CV,cover letter,liite,tiedosto,liitteenä,liitetiedosto,ansioluettelo"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/fo_FO.inc b/data/web/rc/plugins/attachment_reminder/localization/fo_FO.inc new file mode 100644 index 0000000000000000000000000000000000000000..260ec0361a838604970d070bcabd9cafecf68425 --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/fo_FO.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "Gloymdi tú at viðhefta ein fíl?"; +$messages['reminderoption'] = "Áminn um gloymdar viðheftingar"; +$messages['keywords'] = "viðhefting,fílur,heft,viðheft,heftir,lagt inní,CV,fylgi skriv"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/fr_FR.inc b/data/web/rc/plugins/attachment_reminder/localization/fr_FR.inc new file mode 100644 index 0000000000000000000000000000000000000000..999affccb70ef095a60d159be43f58430816d393 --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/fr_FR.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "Avez-vous oublié de joindre un fichier ?"; +$messages['reminderoption'] = "Rappel sur les pièces jointes oubliées"; +$messages['keywords'] = "pièce jointe,fichier,joindre,joins,joint,attaché,inclus,ci-inclus,CV, lettre d'accompagnement"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/gl_ES.inc b/data/web/rc/plugins/attachment_reminder/localization/gl_ES.inc new file mode 100644 index 0000000000000000000000000000000000000000..a45f63bd1626e1a693e878e07950f517f18121a0 --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/gl_ES.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "Esqueceches adxuntar un ficheiro?"; +$messages['reminderoption'] = "Lembrete de adxuntos esquecidos"; +$messages['keywords'] = "anexo, arquivo, engadir, anexo, anexando, pechado, CV, carta de presentación"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/he_IL.inc b/data/web/rc/plugins/attachment_reminder/localization/he_IL.inc new file mode 100644 index 0000000000000000000000000000000000000000..2c348afb66822f728096ef6e4fa731f4f8d0af4c --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/he_IL.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "האם שכחת לצרף קובץ?"; +$messages['reminderoption'] = "להזכיר לצרף נספח"; +$messages['keywords'] = "נספח,קובץ,לצרף,מצורף,מצרף,מצרפת,רצ\"ב,קו\"ח,קורות חיים"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/hr_HR.inc b/data/web/rc/plugins/attachment_reminder/localization/hr_HR.inc new file mode 100644 index 0000000000000000000000000000000000000000..4037b16e9617bfa758e06d1ea8ffc80ee4435632 --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/hr_HR.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "Jeste li zaboravili dodati privitak?"; +$messages['reminderoption'] = "Podsjeti na zaboravljen privitak"; +$messages['keywords'] = "privitak,datoteka,dodati,dodano,dodajem,u privitku,CV,motivacijsko pismo"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/hu_HU.inc b/data/web/rc/plugins/attachment_reminder/localization/hu_HU.inc new file mode 100644 index 0000000000000000000000000000000000000000..b76a8cf9bdc7ce73dcc62b88dbb25dd8e1beae5c --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/hu_HU.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "Nem felejtetted el a csatolandó file-t?"; +$messages['reminderoption'] = "Emlékeztessen a csatolandó csatolmányra"; +$messages['keywords'] = "csatolmány, file, csatolás, csatolt, csatolni, közrezárt, CV, kisérőlevél"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/ia.inc b/data/web/rc/plugins/attachment_reminder/localization/ia.inc new file mode 100644 index 0000000000000000000000000000000000000000..3b7af087d570d60015792abf118d19eeeaed086a --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/ia.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "Ha vos oblidate de attachar un file?"; +$messages['reminderoption'] = "Rememorar de attachamentos oblidate"; +$messages['keywords'] = "attachamento,file,attachar,attachate,attachante,annexo,annexe,annexate,CV,curriculo de vita"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/id_ID.inc b/data/web/rc/plugins/attachment_reminder/localization/id_ID.inc new file mode 100644 index 0000000000000000000000000000000000000000..e2a606aa2c19667580656534addeb8893c6d740a --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/id_ID.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "Apakah anda lupa melampirkan sebuah file?"; +$messages['reminderoption'] = "Ingatkan tentang lampiran yang terlupakan"; +$messages['keywords'] = "attachment,file,attach,attached,attaching,enclosed,CV,cover letter"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/it_IT.inc b/data/web/rc/plugins/attachment_reminder/localization/it_IT.inc new file mode 100644 index 0000000000000000000000000000000000000000..2a9772dcbf90e736c6b4599042ba228a601e0d52 --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/it_IT.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "Sembra che tu abbia dimenticato di allegare un file!\nPremere Annulla per inviare lo stesso.\nOK per tornare al messaggio senza inviare."; +$messages['reminderoption'] = "Ricorda per gli allegati dimenticati"; +$messages['keywords'] = "allegato,allegati,allegata,allegate,allega,allego,alleghi,attaccato,file,attachment,attach"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/ja_JP.inc b/data/web/rc/plugins/attachment_reminder/localization/ja_JP.inc new file mode 100644 index 0000000000000000000000000000000000000000..5ba55d446dd622f18dbda2fb6d07cf41cde4d095 --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/ja_JP.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "ファイルの添付を忘れていませんか?"; +$messages['reminderoption'] = "添付ファイルの付け忘れを確認"; +$messages['keywords'] = "添付,ファイル,添付ファイル,同封,添え状"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/km_KH.inc b/data/web/rc/plugins/attachment_reminder/localization/km_KH.inc new file mode 100644 index 0000000000000000000000000000000000000000..f6b207c1ab64ca6a3e326b06010599811b7cabc7 --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/km_KH.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "តើអ្នក​ភ្លេច​ភ្ជាប់​ឯកសារ​ឬ?"; +$messages['reminderoption'] = "រំលឹង​អំពី​ឯកសារ​ភ្ជាប់​ដែល​បាន​ភ្លេច"; +$messages['keywords'] = "attachment,file,attach,attached,attaching,enclosed,CV,cover letter"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/kn_IN.inc b/data/web/rc/plugins/attachment_reminder/localization/kn_IN.inc new file mode 100644 index 0000000000000000000000000000000000000000..e6aff0334317e6f8f38f3a5b52ae92ef0342a233 --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/kn_IN.inc @@ -0,0 +1,18 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "ನೀವು ಫೈಲ್ ಅಟ್ಯಾಚ್ ಮಾಡಲು ಮರೆತಿರುವಿರಾ?"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/ko_KR.inc b/data/web/rc/plugins/attachment_reminder/localization/ko_KR.inc new file mode 100644 index 0000000000000000000000000000000000000000..58391a8860aa77e27886278e387e2f55d3c4f15c --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/ko_KR.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "파일을 첨부하는 것을 잊으셨습니까?"; +$messages['reminderoption'] = "잊었던 첨부파일 추가에 대해 알림"; +$messages['keywords'] = "attachment,file,attach,attached,attaching,enclosed,CV,cover letter"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/ku.inc b/data/web/rc/plugins/attachment_reminder/localization/ku.inc new file mode 100644 index 0000000000000000000000000000000000000000..3101798848515a147e27b2551ff53349ecc2f1f4 --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/ku.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "Te ji bîr kir da pelekê pêve bikî?"; +$messages['reminderoption'] = "Pêvekên jibîrkirî bi bîr bixe"; +$messages['keywords'] = "pêvek, pel, pêve bike, pêvekirî, pêve dike, rapêçandî, CV, tîpa bergê"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/ku_IQ.inc b/data/web/rc/plugins/attachment_reminder/localization/ku_IQ.inc new file mode 100644 index 0000000000000000000000000000000000000000..e8e32cead2af4d3cf61eae8df782ce9913f404f6 --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/ku_IQ.inc @@ -0,0 +1,19 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "ئایا لەبیرت کرد پەڕگەیەک هاوپێچ بکەی؟"; +$messages['reminderoption'] = "بیرهێنانەوە دەربارەی هاوپێچە لەبیرکراوەکان"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/lb_LU.inc b/data/web/rc/plugins/attachment_reminder/localization/lb_LU.inc new file mode 100644 index 0000000000000000000000000000000000000000..f91f3d1295671cbaa9e1dd37cdc4132ca90293b1 --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/lb_LU.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "Hues du vergiess e Fichier drunzehänken?"; +$messages['reminderoption'] = "U vergiessen Unhäng erënneren"; +$messages['keywords'] = "Attachment,Fichier,Unhank,Unhang,Unhäng,ugehaangen,unhänken,attachment,file,attach,attached,attaching,enclosed,CV,cover letter,fichier joint"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/lt_LT.inc b/data/web/rc/plugins/attachment_reminder/localization/lt_LT.inc new file mode 100644 index 0000000000000000000000000000000000000000..a8ba0b8834fdd4d52cd9c2d6f255ea537c47dbb2 --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/lt_LT.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "Ar nepamiršote prisegti priedo?"; +$messages['reminderoption'] = "Priminti apie neprisegtus priedus"; +$messages['keywords'] = "priedas, byla, prisegti, prisegta, prisegama, uždaras, CV, laiškas"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/lv_LV.inc b/data/web/rc/plugins/attachment_reminder/localization/lv_LV.inc new file mode 100644 index 0000000000000000000000000000000000000000..ee4feeb2450dc83711f54eac2a650b5588075bd5 --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/lv_LV.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "Vai Jūs nepiemirsāt pievienot failu?"; +$messages['reminderoption'] = "Atgādināt par nepievienotajiem pielikumiem"; +$messages['keywords'] = "pielikums,fails,pievienot,pielikt,pievienots,pielikts,ievietot,ievietots,CV"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/ml_IN.inc b/data/web/rc/plugins/attachment_reminder/localization/ml_IN.inc new file mode 100644 index 0000000000000000000000000000000000000000..74c86c9233e3cd98a47577075d041591c3eb4ab8 --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/ml_IN.inc @@ -0,0 +1,19 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "താങ്കൾ ഒരു ഫയൽ ചേർക്കാൻ മറന്നുപോയി"; +$messages['reminderoption'] = "ചേർക്കാൻ മറന്നുപോയ ഫയലുകളെ പറ്റി ഓർമ്മപ്പെടുത്തുക"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/mn_MN.inc b/data/web/rc/plugins/attachment_reminder/localization/mn_MN.inc new file mode 100644 index 0000000000000000000000000000000000000000..1ba775f0117040dd43444ea27c2f220082a47dc6 --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/mn_MN.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "Та файл хавсаргахаа мартсан уу?"; +$messages['reminderoption'] = "Мартсан хавсралтуудыг сануулах"; +$messages['keywords'] = "хавсралт,файл,хавсралт,хавсаргагдсан,хавсаргаж байна,хасваргасан,анкет,танилцуулга"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/nb_NO.inc b/data/web/rc/plugins/attachment_reminder/localization/nb_NO.inc new file mode 100644 index 0000000000000000000000000000000000000000..1462837d54e6e42ead632fa74f7d887c8ba914dc --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/nb_NO.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "Glemte du å legge ved en fil?"; +$messages['reminderoption'] = "Gi meg en påminnelse om glemte vedlegg"; +$messages['keywords'] = "vedlegg, fil, legg ved, lagt ved, legger ved, lukket, CV, følgebrev"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/nl_NL.inc b/data/web/rc/plugins/attachment_reminder/localization/nl_NL.inc new file mode 100644 index 0000000000000000000000000000000000000000..293ad174f2282361f2fedd919b159273dc0e53f7 --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/nl_NL.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "Bent u vergeten het bestand bij te voegen?"; +$messages['reminderoption'] = "Herinner mij aan vergeten bijlagen"; +$messages['keywords'] = "attachment,bestand,bijgaand,bijgaande,brief,bijgevoegd,bijgesloten,CV,document,bijgesloten"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/pl_PL.inc b/data/web/rc/plugins/attachment_reminder/localization/pl_PL.inc new file mode 100644 index 0000000000000000000000000000000000000000..06cede5d993578f81b478896ddf6769072c811fd --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/pl_PL.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "Czy nie zapomniałeś załączyć pliku?"; +$messages['reminderoption'] = "Włącz przypominanie o brakującym załączniku"; +$messages['keywords'] = "załącznik,plik,załącz,CV"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/pt_BR.inc b/data/web/rc/plugins/attachment_reminder/localization/pt_BR.inc new file mode 100644 index 0000000000000000000000000000000000000000..4b61e951c20836b2ca545fd477ad961e1617a29f --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/pt_BR.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "Você esqueceu-se de anexar um arquivo?"; +$messages['reminderoption'] = "Alertar sobre o possível esquecimento de anexos"; +$messages['keywords'] = "anexo,arquivo,anexar,anexado,anexando,incluso,CV,currículo"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/pt_PT.inc b/data/web/rc/plugins/attachment_reminder/localization/pt_PT.inc new file mode 100644 index 0000000000000000000000000000000000000000..de2d04efd0d00770074a8ce45a7ba250d1113030 --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/pt_PT.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "Você esqueceu-se de anexar um ficheiro?"; +$messages['reminderoption'] = "Lembrar sobre anexos esquecidos"; +$messages['keywords'] = "anexo,ficheiro,anexar,anexado,a anexar,em anexo,currículo,carta de apresentação"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/ro_RO.inc b/data/web/rc/plugins/attachment_reminder/localization/ro_RO.inc new file mode 100644 index 0000000000000000000000000000000000000000..ff11539085fc022c4b3c35966fed51e95b30a75a --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/ro_RO.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "Ați uitat să atașati ?"; +$messages['reminderoption'] = "Adu-mi aminte de atașamente"; +$messages['keywords'] = "atașament,atasament,atas,atasat,ataș,attach,fisier,fișier,attach,atach,attache"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/ru_RU.inc b/data/web/rc/plugins/attachment_reminder/localization/ru_RU.inc new file mode 100644 index 0000000000000000000000000000000000000000..d592b1e3091b7edeba45e73fcdc5d84a4f83927d --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/ru_RU.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "Вы не забыли прикрепить файл?"; +$messages['reminderoption'] = "Напоминать о забытых вложениях"; +$messages['keywords'] = "вложение,файл, вложенный, прикрепленный,резюме,документ"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/sk_SK.inc b/data/web/rc/plugins/attachment_reminder/localization/sk_SK.inc new file mode 100644 index 0000000000000000000000000000000000000000..344d1e6a73d36da75ae448795d87169f5cc8e49f --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/sk_SK.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "Nezabudli ste pridať prílohu?"; +$messages['reminderoption'] = "Pripomenúť zabudnuté prílohy"; +$messages['keywords'] = "príloha,súbor,pripojiť,priložená,priložený,priložené,v prílohe,životopis,sprievodný list"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/sl_SI.inc b/data/web/rc/plugins/attachment_reminder/localization/sl_SI.inc new file mode 100644 index 0000000000000000000000000000000000000000..9531f8ed0ee043778866e76dd61b124f1683424b --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/sl_SI.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "Ste pozabili pripeti datoteko?"; +$messages['reminderoption'] = "Opozorilo za dodajanje priponk"; +$messages['keywords'] = "priponka,datoteka,pripeti,pripeta,pripenjati,priložen,priložiti,CV,spremno pismo"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/sq_AL.inc b/data/web/rc/plugins/attachment_reminder/localization/sq_AL.inc new file mode 100644 index 0000000000000000000000000000000000000000..aadc33d99335b9fc44c76bdcd77780194cbcf94c --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/sq_AL.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "Mos harruat të bashkëngjitni një kartelë?"; +$messages['reminderoption'] = "Kujtoji për bashkëngjitje të harruara"; +$messages['keywords'] = "bashkëngjitje,skedar,kartelë,bashkëngjite,bashkëngjitur,përfshirë,CV,letër shoqëruese"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/sr_CS.inc b/data/web/rc/plugins/attachment_reminder/localization/sr_CS.inc new file mode 100644 index 0000000000000000000000000000000000000000..8bcdd77f631cfb3255e5b4d0fb2998b327882ab8 --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/sr_CS.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "Да ли сте заборавили да приложите фајл?"; +$messages['reminderoption'] = "Подсетник на заборављене прилоге"; +$messages['keywords'] = "attachment,file,attach,attached,attaching,enclosed,CV,cover letter,прилог,фајл,приложи,приложен,прилажем,пропратно писмо"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/sv_SE.inc b/data/web/rc/plugins/attachment_reminder/localization/sv_SE.inc new file mode 100644 index 0000000000000000000000000000000000000000..744a9618e37749302e5641c98e108e38824803be --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/sv_SE.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "Glömde du att bifoga en fil?"; +$messages['reminderoption'] = "Påminn om glömda bilagor"; +$messages['keywords'] = "bilaga,fil,bifoga,bifogad,bifogar,infogad,CV,personligt brev"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/tr_TR.inc b/data/web/rc/plugins/attachment_reminder/localization/tr_TR.inc new file mode 100644 index 0000000000000000000000000000000000000000..c96e2f5c98c24565afc995a064886846bff54b51 --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/tr_TR.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "Dosya eklemeyi mi unuttunuz?"; +$messages['reminderoption'] = "Dosya ekleme unutulduysa hatırlatılsın"; +$messages['keywords'] = "ekleme,dosya,ek,eklenildi,ekleniliyor,ekteki,CV,mektup"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/uk_UA.inc b/data/web/rc/plugins/attachment_reminder/localization/uk_UA.inc new file mode 100644 index 0000000000000000000000000000000000000000..97e294733d8e19b82d8fffb23d1693ba7fb2ae68 --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/uk_UA.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "Ви забули прикріпити файл?"; +$messages['reminderoption'] = "Нагадати про забуте вкладення"; +$messages['keywords'] = "вкладення,файл,прикріпити,прикріплений,прикріплюю,вкладено,CV,супровідний лист"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/vi_VN.inc b/data/web/rc/plugins/attachment_reminder/localization/vi_VN.inc new file mode 100644 index 0000000000000000000000000000000000000000..b5604302b5bc482188ad1dff4494a7dcd604d549 --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/vi_VN.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "Bạn đã quên không đính kèm tệp tin?"; +$messages['reminderoption'] = "Nhắc về tệp tin đính kèm bị quên"; +$messages['keywords'] = "tệp đính kèm,tệp tin,đính kèm,đã đính kèm,đang đính kèm tập tin,đính kèm,CV,thư mở đầu"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/zh_CN.inc b/data/web/rc/plugins/attachment_reminder/localization/zh_CN.inc new file mode 100644 index 0000000000000000000000000000000000000000..6c44fe948a62d95d4b008a536779ef08cb02cff7 --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/zh_CN.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "您似乎忘记添加附件了,是否继续发送?"; +$messages['reminderoption'] = "忘记添加附件提醒"; +$messages['keywords'] = "attachment,file,attach,attached,attaching,enclosed,CV,cover letter"; diff --git a/data/web/rc/plugins/attachment_reminder/localization/zh_TW.inc b/data/web/rc/plugins/attachment_reminder/localization/zh_TW.inc new file mode 100644 index 0000000000000000000000000000000000000000..aaa91cd2434a9c0a99bcdea55328f8921065ea33 --- /dev/null +++ b/data/web/rc/plugins/attachment_reminder/localization/zh_TW.inc @@ -0,0 +1,20 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Archive plugin | + | Copyright (C) 2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ +*/ +$messages['forgotattachment'] = "您似乎忘記加入附件了,你確定要寄出?"; +$messages['reminderoption'] = "提醒加入附件"; +$messages['keywords'] = "附件,附加,附檔,附上,附加檔案"; diff --git a/data/web/rc/plugins/autologon/autologon.php b/data/web/rc/plugins/autologon/autologon.php new file mode 100644 index 0000000000000000000000000000000000000000..9c7d5b6fcdf5bbea0d6b7c1610fd14649f03d439 --- /dev/null +++ b/data/web/rc/plugins/autologon/autologon.php @@ -0,0 +1,48 @@ +add_hook('startup', array($this, 'startup')); + $this->add_hook('authenticate', array($this, 'authenticate')); + } + + function startup($args) + { + // change action to login + if (empty($_SESSION['user_id']) && !empty($_GET['_autologin']) && $this->is_localhost()) + $args['action'] = 'login'; + + return $args; + } + + function authenticate($args) + { + if (!empty($_GET['_autologin']) && $this->is_localhost()) { + $args['user'] = 'me'; + $args['pass'] = '******'; + $args['host'] = 'localhost'; + $args['cookiecheck'] = false; + $args['valid'] = true; + } + + return $args; + } + + function is_localhost() + { + return $_SERVER['REMOTE_ADDR'] == '::1' || $_SERVER['REMOTE_ADDR'] == '127.0.0.1'; + } + +} + diff --git a/data/web/rc/plugins/autologon/composer.json b/data/web/rc/plugins/autologon/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..c332d3bd7f1781e009a96d59f63bb00cd8b3b6e4 --- /dev/null +++ b/data/web/rc/plugins/autologon/composer.json @@ -0,0 +1,24 @@ +{ + "name": "roundcube/autologon", + "type": "roundcube-plugin", + "description": "Sample plugin to try out some hooks", + "license": "GPLv3+", + "version": "1.0", + "authors": [ + { + "name": "Thomas Bruederli", + "email": "roundcube@gmail.com", + "role": "Lead" + } + ], + "repositories": [ + { + "type": "composer", + "url": "http://plugins.roundcube.net" + } + ], + "require": { + "php": ">=5.3.0", + "roundcube/plugin-installer": ">=0.1.3" + } +} diff --git a/data/web/rc/plugins/autologon/tests/Autologon.php b/data/web/rc/plugins/autologon/tests/Autologon.php new file mode 100644 index 0000000000000000000000000000000000000000..f3f6b4206c594b110ee4b967bb98283f9fddbab7 --- /dev/null +++ b/data/web/rc/plugins/autologon/tests/Autologon.php @@ -0,0 +1,23 @@ +api); + + $this->assertInstanceOf('autologon', $plugin); + $this->assertInstanceOf('rcube_plugin', $plugin); + } +} + diff --git a/data/web/rc/plugins/database_attachments/composer.json b/data/web/rc/plugins/database_attachments/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..c3d6daca595f25671bb2d32a82d32529b43f46c0 --- /dev/null +++ b/data/web/rc/plugins/database_attachments/composer.json @@ -0,0 +1,30 @@ +{ + "name": "roundcube/database_attachments", + "type": "roundcube-plugin", + "description": "This plugin which provides database backed storage for temporary attachment file handling. The primary advantage of this plugin is its compatibility with round-robin dns multi-server Roundcube installations.", + "license": "GPLv2", + "version": "1.2", + "authors": [ + { + "name": "Aleksander Machniak", + "email": "alec@alec.pl", + "role": "Lead" + }, + { + "name": "Ziba Scott", + "email": "ziba@umich.edu", + "role": "Developer" + } + ], + "repositories": [ + { + "type": "composer", + "url": "http://plugins.roundcube.net" + } + ], + "require": { + "php": ">=5.3.0", + "roundcube/plugin-installer": ">=0.1.3", + "roundcube/filesystem_attachments": ">=1.0.0" + } +} diff --git a/data/web/rc/plugins/database_attachments/config.inc.php.dist b/data/web/rc/plugins/database_attachments/config.inc.php.dist new file mode 100644 index 0000000000000000000000000000000000000000..b47615b7908c1e3be6631c645ef7b59fc23c488c --- /dev/null +++ b/data/web/rc/plugins/database_attachments/config.inc.php.dist @@ -0,0 +1,16 @@ + diff --git a/data/web/rc/plugins/database_attachments/database_attachments.php b/data/web/rc/plugins/database_attachments/database_attachments.php new file mode 100644 index 0000000000000000000000000000000000000000..91335d4cf5bef174560188e3880cec8a46e03960 --- /dev/null +++ b/data/web/rc/plugins/database_attachments/database_attachments.php @@ -0,0 +1,187 @@ + + * @author Aleksander Machniak + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 + * as published by the Free Software Foundation. + * + * This program 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +if (class_exists('filesystem_attachments', false) && !defined('TESTS_DIR')) { + die("Configuration issue. There can be only one enabled plugin for attachments handling"); +} + +require_once INSTALL_PATH . 'plugins/filesystem_attachments/filesystem_attachments.php'; + +class database_attachments extends filesystem_attachments +{ + // Cache object + protected $cache; + + // A prefix for the cache key used in the session and in the key field of the cache table + const PREFIX = "ATTACH"; + + /** + * Save a newly uploaded attachment + */ + function upload($args) + { + $args['status'] = false; + + $cache = $this->get_cache(); + $key = $this->_key($args); + $data = file_get_contents($args['path']); + + if ($data === false) { + return $args; + } + + $data = base64_encode($data); + $status = $cache->write($key, $data); + + if ($status) { + $args['id'] = $key; + $args['status'] = true; + $args['path'] = null; + } + + return $args; + } + + /** + * Save an attachment from a non-upload source (draft or forward) + */ + function save($args) + { + $args['status'] = false; + + $cache = $this->get_cache(); + $key = $this->_key($args); + + if ($args['path']) { + $args['data'] = file_get_contents($args['path']); + + if ($args['data'] === false) { + return $args; + } + } + + $data = base64_encode($args['data']); + $status = $cache->write($key, $data); + + if ($status) { + $args['id'] = $key; + $args['status'] = true; + } + + return $args; + } + + /** + * Remove an attachment from storage + * This is triggered by the remove attachment button on the compose screen + */ + function remove($args) + { + $cache = $this->get_cache(); + $status = $cache->remove($args['id']); + + $args['status'] = true; + + return $args; + } + + /** + * When composing an html message, image attachments may be shown + * For this plugin, $this->get() will check the file and + * return it's contents + */ + function display($args) + { + return $this->get($args); + } + + /** + * When displaying or sending the attachment the file contents are fetched + * using this method. This is also called by the attachment_display hook. + */ + function get($args) + { + $cache = $this->get_cache(); + $data = $cache->read($args['id']); + + if ($data) { + $args['data'] = base64_decode($data); + $args['status'] = true; + } + + return $args; + } + + /** + * Delete all temp files associated with this user + */ + function cleanup($args) + { + // check if cache object exist, it may be empty on session_destroy (#1489726) + if ($cache = $this->get_cache()) { + $cache->remove($args['group'], true); + } + } + + /** + * Helper method to generate a unique key for the given attachment file + */ + protected function _key($args) + { + $uname = $args['path'] ?: $args['name']; + return $args['group'] . md5(time() . $uname . $_SESSION['user_id']); + } + + /** + * Initialize and return cache object + */ + protected function get_cache() + { + if (!$this->cache) { + $this->load_config(); + + $rcmail = rcube::get_instance(); + $ttl = 12 * 60 * 60; // default: 12 hours + $ttl = $rcmail->config->get('database_attachments_cache_ttl', $ttl); + $type = $rcmail->config->get('database_attachments_cache', 'db'); + $prefix = self::PREFIX; + + // Add session identifier to the prefix to prevent from removing attachments + // in other sessions of the same user (#1490542) + if ($id = session_id()) { + $prefix .= $id; + } + + // Init SQL cache (disable cache data serialization) + $this->cache = $rcmail->get_cache($prefix, $type, $ttl, false); + } + + return $this->cache; + } +} diff --git a/data/web/rc/plugins/database_attachments/tests/DatabaseAttachments.php b/data/web/rc/plugins/database_attachments/tests/DatabaseAttachments.php new file mode 100644 index 0000000000000000000000000000000000000000..15ea5f44eb7a071c5f1095f298fed2d73465f65c --- /dev/null +++ b/data/web/rc/plugins/database_attachments/tests/DatabaseAttachments.php @@ -0,0 +1,23 @@ +api); + + $this->assertInstanceOf('database_attachments', $plugin); + $this->assertInstanceOf('rcube_plugin', $plugin); + } +} + diff --git a/data/web/rc/plugins/debug_logger/composer.json b/data/web/rc/plugins/debug_logger/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..af7e1c1f84501f39cb41605c3139c97475e1386c --- /dev/null +++ b/data/web/rc/plugins/debug_logger/composer.json @@ -0,0 +1,24 @@ +{ + "name": "roundcube/debug_logger", + "type": "roundcube-plugin", + "description": "Enhanced logging for debugging purposes. It is not recommened to be enabled on production systems without testing because of the somewhat increased memory, cpu and disk i/o overhead.", + "license": "GPLv2", + "version": "1.0", + "authors": [ + { + "name": "Ziba Scott", + "email": "ziba@umich.edu", + "role": "Lead" + } + ], + "repositories": [ + { + "type": "composer", + "url": "http://plugins.roundcube.net" + } + ], + "require": { + "php": ">=5.3.0", + "roundcube/plugin-installer": ">=0.1.3" + } +} diff --git a/data/web/rc/plugins/debug_logger/debug_logger.php b/data/web/rc/plugins/debug_logger/debug_logger.php new file mode 100644 index 0000000000000000000000000000000000000000..98758ae3c1a74ba226716da68d36c8b61b2b4480 --- /dev/null +++ b/data/web/rc/plugins/debug_logger/debug_logger.php @@ -0,0 +1,149 @@ +plugins->init()): + * + * console("my test","start"); + * console("my message"); + * console("my sql calls","start"); + * console("cp -r * /dev/null","shell exec"); + * console("select * from example","sql"); + * console("select * from example","sql"); + * console("select * from example","sql"); + * console("end"); + * console("end"); + * + * + * logs/master (after reloading the main page): + * + * [17-Feb-2009 16:51:37 -0500] start: Task: mail. + * [17-Feb-2009 16:51:37 -0500] start: my test + * [17-Feb-2009 16:51:37 -0500] my message + * [17-Feb-2009 16:51:37 -0500] shell exec: cp -r * /dev/null + * [17-Feb-2009 16:51:37 -0500] start: my sql calls + * [17-Feb-2009 16:51:37 -0500] sql: select * from example + * [17-Feb-2009 16:51:37 -0500] sql: select * from example + * [17-Feb-2009 16:51:37 -0500] sql: select * from example + * [17-Feb-2009 16:51:37 -0500] end: my sql calls - 0.0018 seconds shell exec: 1, sql: 3, + * [17-Feb-2009 16:51:37 -0500] end: my test - 0.0055 seconds shell exec: 1, sql: 3, + * [17-Feb-2009 16:51:38 -0500] end: Task: mail. - 0.8854 seconds shell exec: 1, sql: 3, + * + * logs/sql (after reloading the main page): + * + * [17-Feb-2009 16:51:37 -0500] sql: select * from example + * [17-Feb-2009 16:51:37 -0500] sql: select * from example + * [17-Feb-2009 16:51:37 -0500] sql: select * from example + */ +class debug_logger extends rcube_plugin +{ + function init() + { + require_once(__DIR__ . '/runlog/runlog.php'); + $this->runlog = new runlog(); + + if(!rcmail::get_instance()->config->get('log_dir')){ + rcmail::get_instance()->config->set('log_dir',INSTALL_PATH.'logs'); + } + + $log_config = rcmail::get_instance()->config->get('debug_logger',array()); + + foreach($log_config as $type=>$file){ + $this->runlog->set_file(rcmail::get_instance()->config->get('log_dir').'/'.$file, $type); + } + + $start_string = ""; + $action = rcmail::get_instance()->action; + $task = rcmail::get_instance()->task; + if($action){ + $start_string .= "Action: ".$action.". "; + } + if($task){ + $start_string .= "Task: ".$task.". "; + } + $this->runlog->start($start_string); + + $this->add_hook('console', array($this, 'console')); + $this->add_hook('authenticate', array($this, 'authenticate')); + } + + function authenticate($args){ + $this->runlog->note('Authenticating '.$args['user'].'@'.$args['host']); + return $args; + } + + function console($args){ + $note = $args[0]; + $type = $args[1]; + + + if(!isset($args[1])){ + // This could be extended to detect types based on the + // file which called console. For now only rcube_imap/rcube_storage is supported + $bt = debug_backtrace(); + $file = $bt[3]['file']; + switch(basename($file)){ + case 'rcube_imap.php': + $type = 'imap'; + break; + case 'rcube_storage.php': + $type = 'storage'; + break; + default: + $type = FALSE; + break; + } + } + switch($note){ + case 'end': + $type = 'end'; + break; + } + + + switch($type){ + case 'start': + $this->runlog->start($note); + break; + case 'end': + $this->runlog->end(); + break; + default: + $this->runlog->note($note, $type); + break; + } + return $args; + } + + function __destruct() + { + if ($this->runlog) + $this->runlog->end(); + } +} diff --git a/data/web/rc/plugins/debug_logger/runlog/runlog.php b/data/web/rc/plugins/debug_logger/runlog/runlog.php new file mode 100644 index 0000000000000000000000000000000000000000..ae352bd583b0b152a3091a68d17639c7231e510b --- /dev/null +++ b/data/web/rc/plugins/debug_logger/runlog/runlog.php @@ -0,0 +1,233 @@ + + */ +class runlog { + + private $start_time = FALSE; + private $parent_stack = array(); + private $file_handles = array(); + private $indent = 0; + private $run_log = array(); + + public $print_to_console = FALSE; + public $threshold = 0; + public $tag_count = array(); + public $timestamp = "d-M-Y H:i:s O"; + public $max_line_size = 150; + + function runlog() + { + $this->start_time = microtime(true); + } + + public function start($name, $tag = false) + { + $this->run_log[] = array( + 'type' => 'start', + 'tag' => $tag, + 'index' => count($this->run_log), + 'value' => $name, + 'time' => microtime(true), + 'parents' => $this->parent_stack, + 'ended' => false, + ); + + $this->parent_stack[] = $name; + + $this->print_to_console("start: ".$name, $tag, 'start'); + $this->print_to_file("start: ".$name, $tag, 'start'); + $this->indent++; + } + + public function end() + { + $name = array_pop($this->parent_stack); + foreach ($this->run_log as $k => $entry) { + if ($entry['value'] == $name && $entry['type'] == 'start' && !$entry['ended']) { + $lastk = $k; + } + } + + $start = $this->run_log[$lastk]['time']; + $this->run_log[$lastk]['duration'] = microtime(true) - $start; + $this->run_log[$lastk]['ended'] = true; + $this->run_log[] = array( + 'type' => 'end', + 'tag' => $this->run_log[$lastk]['tag'], + 'index' => $lastk, + 'value' => $name, + 'time' => microtime(true), + 'duration' => microtime(true) - $start, + 'parents' => $this->parent_stack, + ); + + $this->indent--; + if ($this->run_log[$lastk]['duration'] >= $this->threshold) { + $tag_report = ""; + foreach($this->tag_count as $tag => $count){ + $tag_report .= "$tag: $count, "; + } + if (!empty($tag_report)) { +// $tag_report = "\n$tag_report\n"; + } + $end_txt = sprintf("end: $name - %0.4f seconds $tag_report", $this->run_log[$lastk]['duration']); + $this->print_to_console($end_txt, $this->run_log[$lastk]['tag'], 'end'); + $this->print_to_file($end_txt, $this->run_log[$lastk]['tag'], 'end'); + } + } + + public function increase_tag_count($tag) + { + if (!isset($this->tag_count[$tag])) { + $this->tag_count[$tag] = 0; + } + + $this->tag_count[$tag]++; + } + + public function get_text() + { + $text = ""; + foreach ($this->run_log as $entry){ + $text .= str_repeat(" ",count($entry['parents'])); + if ($entry['tag'] != 'text'){ + $text .= $entry['tag'].': '; + } + $text .= $entry['value']; + + if ($entry['tag'] == 'end') { + $text .= sprintf(" - %0.4f seconds", $entry['duration']); + } + + $text .= "\n"; + } + + return $text; + } + + public function set_file($filename, $tag = 'master') + { + if (!isset($this->file_handle[$tag])) { + $this->file_handles[$tag] = fopen($filename, 'a'); + if (!$this->file_handles[$tag]) { + trigger_error('Could not open file for writing: '.$filename); + } + } + } + + public function note($msg, $tag = false) + { + if ($tag) { + $this->increase_tag_count($tag); + } + if (is_array($msg)) { + $msg = '
    ' . print_r($msg, true) . '
    '; + } + $this->debug_messages[] = $msg; + $this->run_log[] = array( + 'type' => 'note', + 'tag' => $tag ?: 'text', + 'value' => htmlentities($msg), + 'time' => microtime(true), + 'parents' => $this->parent_stack, + ); + + $this->print_to_file($msg, $tag); + $this->print_to_console($msg, $tag); + } + + public function print_to_file($msg, $tag = false, $type = false) + { + if (!$tag) { + $file_handle_tag = 'master'; + } + else{ + $file_handle_tag = $tag; + } + + if ($file_handle_tag != 'master' && isset($this->file_handles[$file_handle_tag])) { + $buffer = $this->get_indent(); + $buffer .= "$msg\n"; + if (!empty($this->timestamp)) { + $buffer = sprintf("[%s] %s",date($this->timestamp, time()), $buffer); + } + fwrite($this->file_handles[$file_handle_tag], wordwrap($buffer, $this->max_line_size, "\n ")); + } + + if (isset($this->file_handles['master']) && $this->file_handles['master']) { + $buffer = $this->get_indent(); + if ($tag) { + $buffer .= "$tag: "; + } + $msg = str_replace("\n","",$msg); + $buffer .= "$msg"; + if (!empty($this->timestamp)) { + $buffer = sprintf("[%s] %s",date($this->timestamp, time()), $buffer); + } + if(strlen($buffer) > $this->max_line_size){ + $buffer = substr($buffer,0,$this->max_line_size - 3) . "..."; + } + fwrite($this->file_handles['master'], $buffer."\n"); + } + } + + public function print_to_console($msg, $tag = false) + { + if ($this->print_to_console) { + if (is_array($this->print_to_console)) { + if (in_array($tag, $this->print_to_console)) { + echo $this->get_indent(); + if ($tag) { + echo "$tag: "; + } + echo "$msg\n"; + } + } + else { + echo $this->get_indent(); + if ($tag) { + echo "$tag: "; + } + echo "$msg\n"; + } + } + } + + public function print_totals() + { + $totals = array(); + foreach ($this->run_log as $entry) { + if ($entry['type'] == 'start' && $entry['ended']) { + $totals[$entry['value']]['duration'] += $entry['duration']; + $totals[$entry['value']]['count'] += 1; + } + } + + if ($this->file_handle) { + foreach ($totals as $name => $details) { + fwrite($this->file_handle,$name.": ".number_format($details['duration'],4)."sec, ".$details['count']." calls \n"); + } + } + } + + private function get_indent() + { + $buf = ""; + for ($i = 0; $i < $this->indent; $i++) { + $buf .= " "; + } + return $buf; + } + + + function __destruct() + { + foreach ($this->file_handles as $handle) { + fclose($handle); + } + } +} diff --git a/data/web/rc/plugins/debug_logger/tests/DebugLogger.php b/data/web/rc/plugins/debug_logger/tests/DebugLogger.php new file mode 100644 index 0000000000000000000000000000000000000000..8dd0c03fea860a403a391aee384d0c885edbbf2a --- /dev/null +++ b/data/web/rc/plugins/debug_logger/tests/DebugLogger.php @@ -0,0 +1,23 @@ +api); + + $this->assertInstanceOf('debug_logger', $plugin); + $this->assertInstanceOf('rcube_plugin', $plugin); + } +} + diff --git a/data/web/rc/plugins/emoticons/composer.json b/data/web/rc/plugins/emoticons/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..72f160217cbdce913b04d520d94d059372f3a1c0 --- /dev/null +++ b/data/web/rc/plugins/emoticons/composer.json @@ -0,0 +1,29 @@ +{ + "name": "roundcube/emoticons", + "type": "roundcube-plugin", + "description": "Plugin that adds emoticons support.", + "license": "GPLv3+", + "version": "2.0", + "authors": [ + { + "name": "Thomas Bruederli", + "email": "roundcube@gmail.com", + "role": "Lead" + }, + { + "name": "Aleksander Machniak", + "email": "alec@alec.pl", + "role": "Developer" + } + ], + "repositories": [ + { + "type": "composer", + "url": "http://plugins.roundcube.net" + } + ], + "require": { + "php": ">=5.3.0", + "roundcube/plugin-installer": ">=0.1.3" + } +} diff --git a/data/web/rc/plugins/emoticons/config.inc.php.dist b/data/web/rc/plugins/emoticons/config.inc.php.dist new file mode 100644 index 0000000000000000000000000000000000000000..1af6f6763c37f9be06f7d09e1ad67c40aebbe0a5 --- /dev/null +++ b/data/web/rc/plugins/emoticons/config.inc.php.dist @@ -0,0 +1,7 @@ +add_hook('message_part_after', array($this, 'message_part_after')); + $this->add_hook('message_outgoing_body', array($this, 'message_outgoing_body')); + $this->add_hook('html2text', array($this, 'html2text')); + $this->add_hook('html_editor', array($this, 'html_editor')); + + if ($rcube->task == 'settings') { + $this->add_hook('preferences_list', array($this, 'preferences_list')); + $this->add_hook('preferences_save', array($this, 'preferences_save')); + } + } + + /** + * 'message_part_after' hook handler to replace common plain text emoticons + * with emoticon images () + */ + function message_part_after($args) + { + if ($args['type'] == 'plain') { + $this->load_config(); + + $rcube = rcube::get_instance(); + if (!$rcube->config->get('emoticons_display', false)) { + return $args; + } + + require_once __DIR__ . '/emoticons_engine.php'; + + $args['body'] = emoticons_engine::text2icons($args['body']); + } + + return $args; + } + + /** + * 'message_outgoing_body' hook handler to replace image emoticons from TinyMCE + * editor with image attachments. + */ + function message_outgoing_body($args) + { + if ($args['type'] == 'html') { + $this->load_config(); + + $rcube = rcube::get_instance(); + if (!$rcube->config->get('emoticons_compose', true)) { + return $args; + } + + require_once __DIR__ . '/emoticons_engine.php'; + + // look for "emoticon" images from TinyMCE and change their src paths to + // be file paths on the server instead of URL paths. + $images = emoticons_engine::replace($args['body']); + + // add these images as attachments to the MIME message + foreach ($images as $img_name => $img_file) { + $args['message']->addHTMLImage($img_file, 'image/gif', '', true, $img_name); + } + } + + return $args; + } + + /** + * 'html2text' hook handler to replace image emoticons from TinyMCE + * editor with plain text emoticons. + * + * This is executed on html2text action, i.e. when switching from HTML to text + * in compose window (or similiar place). Also when generating alternative + * text/plain part. + */ + function html2text($args) + { + $rcube = rcube::get_instance(); + + if ($rcube->action == 'html2text' || $rcube->action == 'send') { + $this->load_config(); + + if (!$rcube->config->get('emoticons_compose', true)) { + return $args; + } + + require_once __DIR__ . '/emoticons_engine.php'; + + $args['body'] = emoticons_engine::icons2text($args['body']); + } + + return $args; + } + + /** + * 'html_editor' hook handler, where we enable emoticons in TinyMCE + */ + function html_editor($args) + { + $rcube = rcube::get_instance(); + + $this->load_config(); + + if ($rcube->config->get('emoticons_compose', true)) { + $args['extra_plugins'][] = 'emoticons'; + $args['extra_buttons'][] = 'emoticons'; + } + + return $args; + } + + /** + * 'preferences_list' hook handler + */ + function preferences_list($args) + { + $rcube = rcube::get_instance(); + $dont_override = $rcube->config->get('dont_override', array()); + + if ($args['section'] == 'mailview' && !in_array('emoticons_display', $dont_override)) { + $this->load_config(); + $this->add_texts('localization'); + + $field_id = 'emoticons_display'; + $checkbox = new html_checkbox(array('name' => '_' . $field_id, 'id' => $field_id, 'value' => 1)); + + $args['blocks']['main']['options']['emoticons_display'] = array( + 'title' => $this->gettext('emoticonsdisplay'), + 'content' => $checkbox->show(intval($rcube->config->get('emoticons_display', false))) + ); + } + else if ($args['section'] == 'compose' && !in_array('emoticons_compose', $dont_override)) { + $this->load_config(); + $this->add_texts('localization'); + + $field_id = 'emoticons_compose'; + $checkbox = new html_checkbox(array('name' => '_' . $field_id, 'id' => $field_id, 'value' => 1)); + + $args['blocks']['main']['options']['emoticons_compose'] = array( + 'title' => $this->gettext('emoticonscompose'), + 'content' => $checkbox->show(intval($rcube->config->get('emoticons_compose', true))) + ); + } + + return $args; + } + + /** + * 'preferences_save' hook handler + */ + function preferences_save($args) + { + $rcube = rcube::get_instance(); + $dont_override = $rcube->config->get('dont_override', array()); + + if ($args['section'] == 'mailview' && !in_array('emoticons_display', $dont_override)) { + $args['prefs']['emoticons_display'] = rcube_utils::get_input_value('_emoticons_display', rcube_utils::INPUT_POST) ? true : false; + } + else if ($args['section'] == 'compose' && !in_array('emoticons_compose', $dont_override)) { + $args['prefs']['emoticons_compose'] = rcube_utils::get_input_value('_emoticons_compose', rcube_utils::INPUT_POST) ? true : false; + } + + return $args; + } +} diff --git a/data/web/rc/plugins/emoticons/emoticons_engine.php b/data/web/rc/plugins/emoticons/emoticons_engine.php new file mode 100644 index 0000000000000000000000000000000000000000..4d534cdc1285e4105f0ef3ed46c416a6f6e8f965 --- /dev/null +++ b/data/web/rc/plugins/emoticons/emoticons_engine.php @@ -0,0 +1,152 @@ + 'smiley-cool', + ':-#' => 'smiley-foot-in-mouth', + ':-*' => 'smiley-kiss', + ':-X' => 'smiley-sealed', + ':-P' => 'smiley-tongue-out', + ':-@' => 'smiley-yell', + ":'(" => 'smiley-cry', + ':-(' => 'smiley-frown', + ':-D' => 'smiley-laughing', + ':-)' => 'smiley-smile', + ':-S' => 'smiley-undecided', + ':-$' => 'smiley-embarassed', + 'O:-)' => 'smiley-innocent', + ':-|' => 'smiley-money-mouth', + ':-O' => 'smiley-surprised', + ';-)' => 'smiley-wink', + ); + + foreach ($emoticons as $idx => $file) { + // Cry + $file = preg_quote(self::IMG_PATH . $file . '.gif', '/'); + $search[] = '/]+\/>/i'; + $replace[] = $idx; + } + + return preg_replace($search, $replace, $html); + } + + /** + * Replace common plain text emoticons with empticon tags + * + * @param string $text Text + * + * @return string Converted text + */ + public static function text2icons($text) + { + // This is a lookbehind assertion which will exclude html entities + // E.g. situation when ";)" in "")" shouldn't be replaced by the icon + // It's so long because of assertion format restrictions + $entity = '(? self::img_tag('smiley-laughing.gif', ':D' ), + '/:-D/' => self::img_tag('smiley-laughing.gif', ':-D' ), + '/:\(/' => self::img_tag('smiley-frown.gif', ':(' ), + '/:-\(/' => self::img_tag('smiley-frown.gif', ':-(' ), + '/'.$entity.';\)/' => self::img_tag('smiley-wink.gif', ';)' ), + '/'.$entity.';-\)/' => self::img_tag('smiley-wink.gif', ';-)' ), + '/8\)/' => self::img_tag('smiley-cool.gif', '8)' ), + '/8-\)/' => self::img_tag('smiley-cool.gif', '8-)' ), + '/(? self::img_tag('smiley-surprised.gif', ':O' ), + '/(? self::img_tag('smiley-surprised.gif', ':-O' ), + '/(? self::img_tag('smiley-tongue-out.gif', ':P' ), + '/(? self::img_tag('smiley-tongue-out.gif', ':-P' ), + '/(? self::img_tag('smiley-yell.gif', ':@' ), + '/(? self::img_tag('smiley-yell.gif', ':-@' ), + '/O:\)/i' => self::img_tag('smiley-innocent.gif', 'O:)' ), + '/O:-\)/i' => self::img_tag('smiley-innocent.gif', 'O:-)' ), + '/(? self::img_tag('smiley-smile.gif', ':)' ), + '/(? self::img_tag('smiley-smile.gif', ':-)' ), + '/(? self::img_tag('smiley-embarassed.gif', ':$' ), + '/(? self::img_tag('smiley-embarassed.gif', ':-$' ), + '/(? self::img_tag('smiley-kiss.gif', ':*' ), + '/(? self::img_tag('smiley-kiss.gif', ':-*' ), + '/(? self::img_tag('smiley-undecided.gif', ':S' ), + '/(? self::img_tag('smiley-undecided.gif', ':-S' ), + ); + + return preg_replace(array_keys($map), array_values($map), $text); + } + + protected static function img_tag($ico, $title) + { + return html::img(array('src' => './' . self::IMG_PATH . $ico, 'title' => $title)); + } + + /** + * Replace emoticon icons 'src' attribute, so it can + * be replaced with real file by Mail_Mime. + * + * @param string &$html HTML content + * + * @return array List of image files + */ + public static function replace(&$html) + { + // Replace this: + // + // with this: + // + + $rcube = rcube::get_instance(); + $assets_dir = $rcube->config->get('assets_dir'); + $path = unslashify($assets_dir ?: INSTALL_PATH) . '/' . self::IMG_PATH; + $offset = 0; + $images = array(); + + // remove any null-byte characters before parsing + $html = preg_replace('/\x00/', '', $html); + + if (preg_match_all('# src=[\'"]([^\'"]+)#', $html, $matches, PREG_OFFSET_CAPTURE)) { + foreach ($matches[1] as $m) { + // find emoticon image tags + if (preg_match('#'. self::IMG_PATH . '(.*)$#', $m[0], $imatches)) { + $image_name = $imatches[1]; + + // sanitize image name so resulting attachment doesn't leave images dir + $image_name = preg_replace('/[^a-zA-Z0-9_\.\-]/i', '', $image_name); + $image_file = $path . $image_name; + + // Add the same image only once + $images[$image_name] = $image_file; + + $html = substr_replace($html, $image_file, $m[1] + $offset, strlen($m[0])); + $offset += strlen($image_file) - strlen($m[0]); + } + } + } + + return $images; + } +} diff --git a/data/web/rc/plugins/emoticons/localization/en_US.inc b/data/web/rc/plugins/emoticons/localization/en_US.inc new file mode 100644 index 0000000000000000000000000000000000000000..04b10964d9729f8c7ba5457d581b1dd7fcf76ae5 --- /dev/null +++ b/data/web/rc/plugins/emoticons/localization/en_US.inc @@ -0,0 +1,23 @@ +.inc | + | | + | Localization file of the Roundcube Webmail Emoticons plugin | + | Copyright (C) 2012-2015, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-emoticons/ +*/ + +$labels = array(); +$labels['emoticonsdisplay'] = 'Display emoticons in plain text messages'; +$labels['emoticonscompose'] = 'Enable emoticons'; + +?> diff --git a/data/web/rc/plugins/emoticons/tests/Emoticons.php b/data/web/rc/plugins/emoticons/tests/Emoticons.php new file mode 100644 index 0000000000000000000000000000000000000000..bc21ceb1d6f1f92f7f249d84e31fbc806c0c8e06 --- /dev/null +++ b/data/web/rc/plugins/emoticons/tests/Emoticons.php @@ -0,0 +1,22 @@ +api); + + $this->assertInstanceOf('emoticons', $plugin); + $this->assertInstanceOf('rcube_plugin', $plugin); + } +} diff --git a/data/web/rc/plugins/emoticons/tests/EmoticonsEngine.php b/data/web/rc/plugins/emoticons/tests/EmoticonsEngine.php new file mode 100644 index 0000000000000000000000000000000000000000..f343450e64e01b42473b97d5d365411e18399cfd --- /dev/null +++ b/data/web/rc/plugins/emoticons/tests/EmoticonsEngine.php @@ -0,0 +1,48 @@ + array('smiley-laughing.gif', ':D' ), + ':-D' => array('smiley-laughing.gif', ':-D' ), + ':(' => array('smiley-frown.gif', ':(' ), + ':-(' => array('smiley-frown.gif', ':-(' ), + '8)' => array('smiley-cool.gif', '8)' ), + '8-)' => array('smiley-cool.gif', '8-)' ), + ':O' => array('smiley-surprised.gif', ':O' ), + ':-O' => array('smiley-surprised.gif', ':-O' ), + ':P' => array('smiley-tongue-out.gif', ':P' ), + ':-P' => array('smiley-tongue-out.gif', ':-P' ), + ':@' => array('smiley-yell.gif', ':@' ), + ':-@' => array('smiley-yell.gif', ':-@' ), + 'O:)' => array('smiley-innocent.gif', 'O:)' ), + 'O:-)' => array('smiley-innocent.gif', 'O:-)' ), + ':)' => array('smiley-smile.gif', ':)' ), + ':-)' => array('smiley-smile.gif', ':-)' ), + ':$' => array('smiley-embarassed.gif', ':$' ), + ':-$' => array('smiley-embarassed.gif', ':-$' ), + ':*' => array('smiley-kiss.gif', ':*' ), + ':-*' => array('smiley-kiss.gif', ':-*' ), + ':S' => array('smiley-undecided.gif', ':S' ), + ':-S' => array('smiley-undecided.gif', ':-S' ), + ); + + foreach ($map as $body => $expected) { + $result = emoticons_engine::text2icons($body); + + $this->assertRegExp('/' . preg_quote($expected[0], '/') . '/', $result); + $this->assertRegExp('/title="' . preg_quote($expected[1], '/') . '"/', $result); + } + } +} diff --git a/data/web/rc/plugins/enigma/README b/data/web/rc/plugins/enigma/README new file mode 100644 index 0000000000000000000000000000000000000000..c1ae653e6a52eb5fc5d9d03d4b319883b8d936a3 --- /dev/null +++ b/data/web/rc/plugins/enigma/README @@ -0,0 +1,64 @@ +Enigma Plugin for Roundcube + +This plugin adds support for viewing and sending of signed and encrypted +messages in PGP (RFC 2440) and PGP/MIME (RFC 3156) format. + +The plugin uses gpg binary on the server and stores all keys +(including private keys of the users) on the server. +Encryption/decryption is done server-side. So, this plugin +is for users that trust the server. + + +Implemented features: +--------------------- ++ PGP: signatures verification ++ PGP: messages decryption ++ PGP: Sending of encrypted/signed messages ++ PGP: keys management UI (key import, export, delete) ++ PGP: key generation (client- or server-side) ++ Handling of PGP keys attached to incoming messages ++ User preferences to disable plugin features ++ Attaching public keys to email ++ Key server(s) support (search, import) + + +TODO: +----- +- Handling of big messages with temp files (? - security) +- Key info in contact details page (optional) +- Extended key management: + - disable, + - revoke, + - change expiration date, change passphrase, add photo, + - manage user IDs + - export private keys +- Generate revocation certs +- Search filter to see invalid/expired keys +- Key server(s) support (upload, refresh) +- Mark keys as trusted/untrasted, display appropriate message in verify/decrypt status +- Support for multi-server installations (store keys in sql database? probably impossible with GnuPG 2.1) +- Performance improvements: + - cache decrypted message key id so we can skip decryption if we have no password in session + - cache (last or successful only?) sig verification status to not verify on every msg preview (optional) +- S/MIME: Certs generation (?) +- S/MIME: Certs management +- S/MIME: signed messages verification +- S/MIME: encrypted messages decryption +- S/MIME: Sending signed/encrypted messages +- S/MIME: Handling of certs attached to incoming messages +- S/MIME: Certificate info in Contacts details page (optional) + + +KNOWN ISSUES: +------------- +There are some known issues with accepting key passphrases on various +system configurations. This is caused by issues in PinEntry handling. +Make sure that vendor/bin/crypt-gpg-pinentry works from command line. + +Possible reasons: +- non-working loader in shebang (#! /usr/bin/env php) + Make sure it works for the user the php scripts are executed upon + (i.e. apache, www-date, etc.) + +Note: pinentry is used with gpg >= 2.0 and <= 2.1.12. +Note: for server use GnuPG developers still recommend version 1.4. diff --git a/data/web/rc/plugins/enigma/composer.json b/data/web/rc/plugins/enigma/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..fa63a3d1983ef2d1a422fc86b9d27c68e7c4ef33 --- /dev/null +++ b/data/web/rc/plugins/enigma/composer.json @@ -0,0 +1,29 @@ +{ + "name": "roundcube/enigma", + "type": "roundcube-plugin", + "description": "Server-side PGP Encryption for Roundcube", + "license": "GPLv3+", + "version": "0.7", + "authors": [ + { + "name": "Aleksander Machniak", + "email": "alec@alec.pl", + "role": "Lead" + } + ], + "repositories": [ + { + "type": "pear", + "url": "http://pear.php.net/" + }, + { + "type": "composer", + "url": "http://plugins.roundcube.net" + } + ], + "require": { + "php": ">=5.3.0", + "roundcube/plugin-installer": "~0.1.6", + "pear-pear.php.net/crypt_gpg": "~1.6.0@beta" + } +} diff --git a/data/web/rc/plugins/enigma/config.inc.php.dist b/data/web/rc/plugins/enigma/config.inc.php.dist new file mode 100644 index 0000000000000000000000000000000000000000..aa4280f419b4d26a6ad6898d41c3fd6ce611f82a --- /dev/null +++ b/data/web/rc/plugins/enigma/config.inc.php.dist @@ -0,0 +1,62 @@ += 2.1. +$config['enigma_pgp_gpgconf'] = ''; + +// Enables signatures verification feature. +$config['enigma_signatures'] = true; + +// Enables messages decryption feature. +$config['enigma_decryption'] = true; + +// Enables messages encryption and signing feature. +$config['enigma_encryption'] = true; + +// Enable signing all messages by default +$config['enigma_sign_all'] = false; + +// Enable encrypting all messages by default +$config['enigma_encrypt_all'] = false; + +// Enable attaching a public key to all messages by default +$config['enigma_attach_pubkey'] = false; + +// Default for how long to store private key passwords (in minutes). +// When set to 0 passwords will be stored for the whole session. +$config['enigma_password_time'] = 5; + +// With this option you can lock composing options +// of the plugin forcing the user to use configured settings. +// The array accepts: 'sign', 'encrypt', 'pubkey'. +// +// For example, to force your users to sign every email, +// you should set: +// - enigma_sign_all = true +// - enigma_options_lock = array('sign') +// - dont_override = array('enigma_sign_all') +$config['enigma_options_lock'] = array(); diff --git a/data/web/rc/plugins/enigma/enigma.js b/data/web/rc/plugins/enigma/enigma.js new file mode 100644 index 0000000000000000000000000000000000000000..1c81963576b8e317eac0ddea653258208cfadc33 --- /dev/null +++ b/data/web/rc/plugins/enigma/enigma.js @@ -0,0 +1,625 @@ +/* Enigma Plugin */ + +window.rcmail && rcmail.addEventListener('init', function(evt) { + if (rcmail.env.task == 'settings') { + if (rcmail.gui_objects.keyslist) { + rcmail.keys_list = new rcube_list_widget(rcmail.gui_objects.keyslist, + {multiselect:true, draggable:false, keyboard:false}); + rcmail.keys_list + .addEventListener('select', function(o) { rcmail.enigma_keylist_select(o); }) + .addEventListener('keypress', function(o) { rcmail.enigma_keylist_keypress(o); }) + .init() + .focus(); + + rcmail.enigma_list(); + + rcmail.register_command('firstpage', function(props) { return rcmail.enigma_list_page('first'); }); + rcmail.register_command('previouspage', function(props) { return rcmail.enigma_list_page('previous'); }); + rcmail.register_command('nextpage', function(props) { return rcmail.enigma_list_page('next'); }); + rcmail.register_command('lastpage', function(props) { return rcmail.enigma_list_page('last'); }); + } + + if (rcmail.env.action == 'plugin.enigmakeys') { + rcmail.register_command('search', function(props) {return rcmail.enigma_search(props); }, true); + rcmail.register_command('reset-search', function(props) {return rcmail.enigma_search_reset(props); }, true); + rcmail.register_command('plugin.enigma-import', function() { rcmail.enigma_import(); }, true); + rcmail.register_command('plugin.enigma-import-search', function() { rcmail.enigma_import_search(); }, true); + rcmail.register_command('plugin.enigma-key-export', function() { rcmail.enigma_export(); }); + rcmail.register_command('plugin.enigma-key-export-selected', function() { rcmail.enigma_export(true); }); + rcmail.register_command('plugin.enigma-key-import', function() { rcmail.enigma_key_import(); }, true); + rcmail.register_command('plugin.enigma-key-delete', function(props) { return rcmail.enigma_delete(); }); + rcmail.register_command('plugin.enigma-key-create', function(props) { return rcmail.enigma_key_create(); }, true); + rcmail.register_command('plugin.enigma-key-save', function(props) { return rcmail.enigma_key_create_save(); }, true); + + rcmail.addEventListener('responseafterplugin.enigmakeys', function() { + rcmail.enable_command('plugin.enigma-key-export', rcmail.env.rowcount > 0); + }); + + if (rcmail.gui_objects.importform) { + // make sure Enter key in search input starts searching + // instead of submitting the form + $('#rcmimportsearch').keydown(function(e) { + if (e.which == 13) { + rcmail.enigma_import_search(); + return false; + } + }); + + $('input[type="button"]:first').focus(); + } + } + } + else if (rcmail.env.task == 'mail') { + if (rcmail.env.action == 'compose') { + rcmail.addEventListener('beforesend', function(props) { rcmail.enigma_beforesend_handler(props); }) + .addEventListener('beforesavedraft', function(props) { rcmail.enigma_beforesavedraft_handler(props); }); + + $('input,label', $('#enigmamenu')).mouseup(function(e) { + // don't close the menu on mouse click inside + e.stopPropagation(); + }); + + $('a.button.enigma').prop('tabindex', $('#messagetoolbar > a:first').prop('tabindex')); + } + + $.each(['encrypt', 'sign'], function() { + if (rcmail.env['enigma_force_' + this]) + $('[name="_enigma_' + this + '"]').prop('checked', true); + }); + + if (rcmail.env.enigma_password_request) { + rcmail.enigma_password_request(rcmail.env.enigma_password_request); + } + } +}); + + +/*********************************************************/ +/********* Enigma Settings/Keys/Certs UI *********/ +/*********************************************************/ + +// Display key(s) import form +rcube_webmail.prototype.enigma_key_import = function() +{ + this.enigma_loadframe('&_action=plugin.enigmakeys&_a=import'); +}; + +// Display key(s) generation form +rcube_webmail.prototype.enigma_key_create = function() +{ + this.enigma_loadframe('&_action=plugin.enigmakeys&_a=create'); +}; + +// Generate key(s) and submit them +rcube_webmail.prototype.enigma_key_create_save = function() +{ + var options, lock, users = [], + password = $('#key-pass').val(), + confirm = $('#key-pass-confirm').val(), + size = $('#key-size').val(); + + $('[name="identity[]"]:checked').each(function() { + users.push(this.value); + }); + + // validate the form + if (!password || !confirm) + return alert(this.get_label('enigma.formerror')); + + if (password != confirm) + return alert(this.get_label('enigma.passwordsdiffer')); + + if (!users.length) + return alert(this.get_label('enigma.noidentselected')); + + // generate keys + // use OpenPGP.js if browser supports required features + if (window.openpgp && window.crypto && (window.crypto.getRandomValues || window.crypto.subtle)) { + lock = this.set_busy(true, 'enigma.keygenerating'); + options = { + numBits: size, + userId: users, + passphrase: password + }; + + openpgp.generateKeyPair(options).then(function(keypair) { + // success + var post = {_a: 'import', _keys: keypair.privateKeyArmored, _generated: 1, + _passwd: password, _keyid: keypair.key.primaryKey.fingerprint}; + + // send request to server + rcmail.http_post('plugin.enigmakeys', post, lock); + }, function(error) { + // failure + rcmail.set_busy(false, null, lock); + rcmail.display_message(rcmail.get_label('enigma.keygenerateerror'), 'error'); + }); + } + else { + rcmail.display_message(rcmail.get_label('enigma.keygennosupport'), 'error'); + } +}; + +// Action executed after successful key generation and import +rcube_webmail.prototype.enigma_key_create_success = function() +{ + parent.rcmail.enigma_list(1); +}; + +// Delete key(s) +rcube_webmail.prototype.enigma_delete = function() +{ + var keys = this.keys_list.get_selection(); + + if (!keys.length || !confirm(this.get_label('enigma.keyremoveconfirm'))) + return; + + var lock = this.display_message(this.get_label('enigma.keyremoving'), 'loading'), + post = {_a: 'delete', _keys: keys}; + + // send request to server + this.http_post('plugin.enigmakeys', post, lock); +}; + +// Export key(s) +rcube_webmail.prototype.enigma_export = function(selected) +{ + var priv = false, + list = this.keys_list, + keys = selected ? list.get_selection().join(',') : '*', + args = {_keys: keys}; + + if (!keys.length) + return; + + // find out whether selected keys are private + if (keys == '*') + priv = true; + else + $.each(list.get_selection(), function() { + flags = $(list.rows[this].obj).data('flags'); + if (flags && flags.indexOf('p') >= 0) { + priv = true; + return false; + } + }); + + // ask the user about including private key in the export + if (priv) + return this.show_popup_dialog( + this.get_label('enigma.keyexportprompt'), + this.get_label('enigma.exportkeys'), + [{ + text: this.get_label('enigma.onlypubkeys'), + click: function(e) { + rcmail.enigma_export_submit(args); + $(this).remove(); + } + }, + { + text: this.get_label('enigma.withprivkeys'), + click: function(e) { + args._priv = 1; + rcmail.enigma_export_submit(args); + $(this).remove(); + } + }], + {width: 400} + ); + + this.enigma_export_submit(args); +}; + +// Sumbitting request for key(s) export +// Done this way to handle password input +rcube_webmail.prototype.enigma_export_submit = function(data) +{ + var id = 'keyexport-' + new Date().getTime(), + form = $('
    ').attr({target: id, method: 'post', style: 'display:none', + action: '?_action=plugin.enigmakeys&_task=settings&_a=export'}), + iframe = $('"}else"application/x-shockwave-flash"===c.source1mime?(l+='',c.poster&&(l+=''),l+=""):c.source1mime.indexOf("audio")!==-1?a.settings.audio_template_callback?l=a.settings.audio_template_callback(c):l+='":"script"===c.type?l+='':l=a.settings.video_template_callback?a.settings.video_template_callback(c):'"}return l};return{dataToHtml:a}}),s("h",tinymce.util.Promise),a("b",["g","h"],function(e,t){var n=function(e,n,r){var i={};return new t(function(t,o){var a=function(r){return r.html&&(i[e.source1]=r),t({url:e.source1,html:r.html?r.html:n(e)})};i[e.source1]?a(i[e.source1]):r({url:e.source1},a,o)})},r=function(e,n){return new t(function(t){t({html:n(e),url:e.source1})})},i=function(t){return function(n){return e.dataToHtml(t,n)}},o=function(e,t){var o=e.settings.media_url_resolver;return o?n(t,i(e),o):r(t,i(e))};return{getEmbedHtml:o}}),s("d",tinymce.Env),a("2",["6","7","4","b","c","d"],function(e,t,n,r,i,o){var a=o.ie&&o.ie<=8?"onChange":"onInput",s=function(e){return function(t){var n=t&&t.msg?"Media embed handler error: "+t.msg:"Media embed handler threw unknown error.";e.notificationManager.open({type:"error",text:n})}},l=function(e){var n=e.selection.getNode(),r=n.getAttribute("data-ephox-embed-iri");return r?{source1:r,"data-ephox-embed-iri":r}:n.getAttribute("data-mce-object")?t.htmlToData(e.settings.media_scripts,e.serializer.serialize(n,{selection:!0})):{}},c=function(e){var t=e.selection.getNode();if(t.getAttribute("data-mce-object"))return e.selection.getContent()},u=function(e,n){return function(r){var o=r.html;e.find("#embed").value(o);var a=i.extend(t.htmlToData(n.settings.media_scripts,o),{source1:r.url});e.fromJSON(a),h(e)}},d=function(e,t){var n,r,i=e.dom.select("img[data-mce-object]");for(n=0;n=0;r--)t[n]===i[r]&&i.splice(r,1);e.selection.select(i[0])},f=function(e){return function(){var t=this.toJSON();r.getEmbedHtml(e,t).then(function(n){var r=e.dom.select("img[data-mce-object]"),i=t.embed?t.embed:n.html;e.insertContent(i),d(e,r),e.nodeChanged()}).catch(s(e))}},h=function(e){var t=e.find("#width")[0],n=e.find("#height")[0];t&&n&&(t.state.set("oldVal",t.value()),n.state.set("oldVal",n.value()))},p=function(e,t){i.each(t,function(t,n){e.find("#"+n).value(t)})},m=function(e){var o,d,m=[{name:"source1",type:"filepicker",filetype:"media",size:40,autofocus:!0,label:"Source",onpaste:function(){setTimeout(function(){r.getEmbedHtml(e,o.toJSON()).then(u(o,e)).catch(s(e))},1)},onchange:function(t){r.getEmbedHtml(e,o.toJSON()).then(u(o,e)).catch(s(e)),p(o,t.meta)},onbeforecall:function(e){e.meta=o.toJSON()}}],g=function(e){var t=o.find("#width")[0],r=o.find("#height")[0],i=t.state.get("oldVal"),a=r.state.get("oldVal"),s=t.value(),l=r.value();o.find("#constrain")[0].checked()&&i&&a&&s&&l&&(e.control.name()===t.name()?(l=Math.round(s/i*l),isNaN(l)||r.value(l)):(s=Math.round(l/a*s),isNaN(s)||t.value(s))),d=o.toJSON(),o.find("#embed").value(n.updateHtml(d.embed,d)),h(o)};e.settings.media_alt_source!==!1&&m.push({name:"source2",type:"filepicker",filetype:"media",size:40,label:"Alternative source"}),e.settings.media_poster!==!1&&m.push({name:"poster",type:"filepicker",filetype:"image",size:40,label:"Poster"}),e.settings.media_dimensions!==!1&&m.push({type:"container",label:"Dimensions",layout:"flex",align:"center",spacing:5,items:[{name:"width",type:"textbox",maxLength:5,size:3,onchange:g,ariaLabel:"Width"},{type:"label",text:"x"},{name:"height",type:"textbox",maxLength:5,size:3,onchange:g,ariaLabel:"Height"},{name:"constrain",type:"checkbox",checked:!0,text:"Constrain proportions"}]}),d=l(e);var v={id:"mcemediasource",type:"textbox",flex:1,name:"embed",value:c(e),multiline:!0,label:"Source"},y=function(){d=i.extend({},t.htmlToData(e.settings.media_scripts,this.value())),this.parent().parent().fromJSON(d)};v[a]=y,o=e.windowManager.open({title:"Insert/edit video",data:d,bodyType:"tabpanel",body:[{title:"General",type:"form",items:m},{title:"Embed",type:"container",layout:"flex",direction:"column",align:"stretch",padding:10,spacing:10,items:[{type:"label",text:"Paste your embed code below:",forId:"mcemediasource"},v]}],onSubmit:f(e)}),h(o)};return{showDialog:m}}),a("3",["c","8","9","a"],function(e,t,n,r){var i=function(e,i){if(e.settings.media_filter_html===!1)return i;var o,a=new t;return new n({validate:!1,allow_conditional_comments:!1,special:"script,noscript",comment:function(e){a.comment(e)},cdata:function(e){a.cdata(e)},text:function(e,t){a.text(e,t)},start:function(t,n,r){if(o=!0,"script"!==t&&"noscript"!==t){for(var i=0;i]*>","gi")});var r=e.schema.getBoolAttrs();tinymce.each("webkitallowfullscreen mozallowfullscreen allowfullscreen".split(" "),function(e){r[e]={}}),e.parser.addNodeFilter("iframe,video,audio,object,embed,script",i.placeHolderConverter(e)),e.serializer.addAttributeFilter("data-mce-object",function(t,r){for(var i,o,a,s,l,c,u,d,f=t.length;f--;)if(i=t[f],i.parent){for(u=i.attr(r),o=new tinymce.html.Node(u,1),"audio"!==u&&"script"!==u&&(d=i.attr("class"),d&&d.indexOf("mce-preview-object")!==-1?o.attr({width:i.firstChild.attr("width"),height:i.firstChild.attr("height")}):o.attr({width:i.attr("width"),height:i.attr("height")})),o.attr({style:i.attr("style")}),s=i.attributes,a=s.length;a--;){var h=s[a].name;0===h.indexOf("data-mce-p-")&&o.attr(h.substr(11),s[a].value)}"script"===u&&o.attr("type","text/javascript"),l=i.attr("data-mce-html"),l&&(c=new tinymce.html.Node("#text",3),c.raw=!0,c.value=n.sanitize(e,unescape(l)),o.append(c)),i.replace(o)}})}),e.on("click keyup",function(){var t=e.selection.getNode();t&&e.dom.hasClass(t,"mce-preview-object")&&e.dom.getAttrib(t,"data-mce-selected")&&t.setAttribute("data-mce-selected","2")}),e.on("ObjectSelected",function(e){var t=e.target.getAttribute("data-mce-object");"audio"!==t&&"script"!==t||e.preventDefault()}),e.on("objectResized",function(e){var t,n=e.target;n.getAttribute("data-mce-object")&&(t=n.getAttribute("data-mce-html"),t&&(t=unescape(t),n.setAttribute("data-mce-html",escape(r.updateHtml(t,{width:e.width,height:e.height})))))}),this.showDialog=function(){t.showDialog(e)},e.addButton("media",{tooltip:"Insert/edit video",onclick:this.showDialog,stateSelector:["img[data-mce-object]","span[data-mce-object]","div[data-ephox-embed-iri]"]}),e.addMenuItem("media",{icon:"media",text:"Media",onclick:this.showDialog,context:"insert",prependToContext:!0}),e.on("setContent",function(){e.$("span.mce-preview-object").each(function(t,n){var r=e.$(n);0===r.find("span.mce-shim",n).length&&r.append('')})}),e.addCommand("mceMedia",this.showDialog)};return e.add("media",o),function(){}}),r("0")()}(); \ No newline at end of file diff --git a/data/web/rc/program/js/tinymce/plugins/nonbreaking/plugin.min.js b/data/web/rc/program/js/tinymce/plugins/nonbreaking/plugin.min.js new file mode 100644 index 0000000000000000000000000000000000000000..cae1aca4fdc403226c8bcb5e9356057ae98be909 --- /dev/null +++ b/data/web/rc/program/js/tinymce/plugins/nonbreaking/plugin.min.js @@ -0,0 +1 @@ +tinymce.PluginManager.add("nonbreaking",function(e){var t=e.getParam("nonbreaking_force_tab");if(e.addCommand("mceNonBreaking",function(){e.insertContent(e.plugins.visualchars&&e.plugins.visualchars.state?' ':" "),e.dom.setAttrib(e.dom.select("span.mce-nbsp"),"data-mce-bogus","1")}),e.addButton("nonbreaking",{title:"Nonbreaking space",cmd:"mceNonBreaking"}),e.addMenuItem("nonbreaking",{text:"Nonbreaking space",cmd:"mceNonBreaking",context:"insert"}),t){var n=+t>1?+t:3;e.on("keydown",function(t){if(9==t.keyCode){if(t.shiftKey)return;t.preventDefault();for(var r=0;r0?a.charAt(r-1):"";if('"'===i)return t;if(">"===i){var o=a.lastIndexOf("<",r);if(o!==-1){var l=a.substring(o,r);if(l.indexOf('contenteditable="false"')!==-1)return t}}return''+e.dom.encode("string"==typeof n[1]?n[1]:n[0])+""}var r=o.length,a=t.content,s=tinymce.trim(i);if("raw"!=t.format){for(;r--;)a=a.replace(o[r],n);t.content=a}}var r,i,o,a="contenteditable";r=" "+tinymce.trim(e.getParam("noneditable_editable_class","mceEditable"))+" ",i=" "+tinymce.trim(e.getParam("noneditable_noneditable_class","mceNonEditable"))+" ";var s=t(r),l=t(i);o=e.getParam("noneditable_regexp"),o&&!o.length&&(o=[o]),e.on("PreInit",function(){o&&e.on("BeforeSetContent",n),e.parser.addAttributeFilter("class",function(e){for(var t,n=e.length;n--;)t=e[n],s(t)?t.attr(a,"true"):l(t)&&t.attr(a,"false")}),e.serializer.addAttributeFilter(a,function(e){for(var t,n=e.length;n--;)t=e[n],(s(t)||l(t))&&(o&&t.attr("data-mce-content")?(t.name="#text",t.type=3,t.raw=!0,t.value=t.attr("data-mce-content")):t.attr(a,null))})})}); \ No newline at end of file diff --git a/data/web/rc/program/js/tinymce/plugins/pagebreak/plugin.min.js b/data/web/rc/program/js/tinymce/plugins/pagebreak/plugin.min.js new file mode 100644 index 0000000000000000000000000000000000000000..78fea042b69ecabc265dd93865ce57c9a512283f --- /dev/null +++ b/data/web/rc/program/js/tinymce/plugins/pagebreak/plugin.min.js @@ -0,0 +1 @@ +tinymce.PluginManager.add("pagebreak",function(e){var t="mce-pagebreak",n=e.getParam("pagebreak_separator",""),r=new RegExp(n.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g,function(e){return"\\"+e}),"gi"),i='';e.addCommand("mcePageBreak",function(){e.settings.pagebreak_split_block?e.insertContent("

    "+i+"

    "):e.insertContent(i)}),e.addButton("pagebreak",{title:"Page break",cmd:"mcePageBreak"}),e.addMenuItem("pagebreak",{text:"Page break",icon:"pagebreak",cmd:"mcePageBreak",context:"insert"}),e.on("ResolveName",function(n){"IMG"==n.target.nodeName&&e.dom.hasClass(n.target,t)&&(n.name="pagebreak")}),e.on("click",function(n){n=n.target,"IMG"===n.nodeName&&e.dom.hasClass(n,t)&&e.selection.select(n)}),e.on("BeforeSetContent",function(e){e.content=e.content.replace(r,i)}),e.on("PreInit",function(){e.serializer.addNodeFilter("img",function(t){for(var r,i,o=t.length;o--;)if(r=t[o],i=r.attr("class"),i&&i.indexOf("mce-pagebreak")!==-1){var a=r.parent;if(e.schema.getBlockElements()[a.name]&&e.settings.pagebreak_split_block){a.type=3,a.value=n,a.raw=!0,r.remove();continue}r.type=3,r.value=n,r.raw=!0}})})}); \ No newline at end of file diff --git a/data/web/rc/program/js/tinymce/plugins/paste/plugin.dev.js b/data/web/rc/program/js/tinymce/plugins/paste/plugin.dev.js new file mode 100644 index 0000000000000000000000000000000000000000..dd145fd4a2926b9ba543b0e64c4b0959ca178c3d --- /dev/null +++ b/data/web/rc/program/js/tinymce/plugins/paste/plugin.dev.js @@ -0,0 +1,143 @@ +/** + * Inline development version. Only to be used while developing since it uses document.write to load scripts. + */ + +/*jshint smarttabs:true, undef:true, latedef:true, curly:true, bitwise:true, camelcase:true */ +/*globals $code */ + +(function(exports) { + "use strict"; + + var html = "", baseDir; + var modules = {}, exposedModules = [], moduleCount = 0; + + var scripts = document.getElementsByTagName('script'); + for (var i = 0; i < scripts.length; i++) { + var src = scripts[i].src; + + if (src.indexOf('/plugin.dev.js') != -1) { + baseDir = src.substring(0, src.lastIndexOf('/')); + } + } + + function require(ids, callback) { + var module, defs = []; + + for (var i = 0; i < ids.length; ++i) { + module = modules[ids[i]] || resolve(ids[i]); + if (!module) { + throw 'module definition dependecy not found: ' + ids[i]; + } + + defs.push(module); + } + + callback.apply(null, defs); + } + + function resolve(id) { + if (exports.privateModules && id in exports.privateModules) { + return; + } + + var target = exports; + var fragments = id.split(/[.\/]/); + + for (var fi = 0; fi < fragments.length; ++fi) { + if (!target[fragments[fi]]) { + return; + } + + target = target[fragments[fi]]; + } + + return target; + } + + function register(id) { + var target = exports; + var fragments = id.split(/[.\/]/); + + for (var fi = 0; fi < fragments.length - 1; ++fi) { + if (target[fragments[fi]] === undefined) { + target[fragments[fi]] = {}; + } + + target = target[fragments[fi]]; + } + + target[fragments[fragments.length - 1]] = modules[id]; + } + + function define(id, dependencies, definition) { + var privateModules, i; + + if (typeof id !== 'string') { + throw 'invalid module definition, module id must be defined and be a string'; + } + + if (dependencies === undefined) { + throw 'invalid module definition, dependencies must be specified'; + } + + if (definition === undefined) { + throw 'invalid module definition, definition function must be specified'; + } + + require(dependencies, function() { + modules[id] = definition.apply(null, arguments); + }); + + if (--moduleCount === 0) { + for (i = 0; i < exposedModules.length; i++) { + register(exposedModules[i]); + } + } + + // Expose private modules for unit tests + if (exports.AMDLC_TESTS) { + privateModules = exports.privateModules || {}; + + for (id in modules) { + privateModules[id] = modules[id]; + } + + for (i = 0; i < exposedModules.length; i++) { + delete privateModules[exposedModules[i]]; + } + + exports.privateModules = privateModules; + } + + } + + function expose(ids) { + exposedModules = ids; + } + + function writeScripts() { + document.write(html); + } + + function load(path) { + html += '\n'; + moduleCount++; + } + + // Expose globally + exports.define = define; + exports.require = require; + + expose(["tinymce/pasteplugin/Utils"]); + + load('classes/Utils.js'); + load('classes/SmartPaste.js'); + load('classes/Clipboard.js'); + load('classes/WordFilter.js'); + load('classes/Quirks.js'); + load('classes/Plugin.js'); + + writeScripts(); +})(this); + +// $hash: f991045b4dd37405c0ee4fc0d6f2269c \ No newline at end of file diff --git a/data/web/rc/program/js/tinymce/plugins/paste/plugin.min.js b/data/web/rc/program/js/tinymce/plugins/paste/plugin.min.js new file mode 100644 index 0000000000000000000000000000000000000000..181382abf8035b60cb344b26a7dfb8f25197b158 --- /dev/null +++ b/data/web/rc/program/js/tinymce/plugins/paste/plugin.min.js @@ -0,0 +1 @@ +!function(e,t){"use strict";function n(e,t){for(var n,r=[],o=0;o/g]),o(s.parse(i)),l}function o(e){function t(e,t,n){return t||n?"\xa0":" "}return e=r(e,[/^[\s\S]*]*>\s*|\s*<\/body[^>]*>[\s\S]*$/g,/|/g,[/( ?)\u00a0<\/span>( ?)/g,t],/
    /g,/
    $/i])}function a(e){var t=0;return function(){return e+t++}}return{filter:r,innerText:i,trimHtml:o,createIdGenerator:a}}),r("tinymce/pasteplugin/SmartPaste",["tinymce/util/Tools"],function(e){var t=function(e){return/^https?:\/\/[\w\?\-\/+=.&%@~#]+$/i.test(e)},n=function(e){return t(e)&&/.(gif|jpe?g|png)$/.test(e)},r=function(e,t,n){return e.undoManager.extra(function(){n(e,t)},function(){e.insertContent('')}),!0},i=function(e,t,n){return e.undoManager.extra(function(){n(e,t)},function(){e.execCommand("mceInsertLink",!1,t)}),!0},o=function(e,n,r){return!(e.selection.isCollapsed()!==!1||!t(n))&&i(e,n,r)},a=function(e,t,i){return!!n(t)&&r(e,t,i)},s=function(e,t){return e.insertContent(t,{merge:e.settings.paste_merge_formats!==!1,paste:!0}),!0},l=function(t,n){e.each([o,a,s],function(e){return e(t,n,s)!==!0})},c=function(e,t){e.settings.smart_paste===!1?s(e,t):l(e,t)};return{isImageUrl:n,isAbsoluteUrl:t,insertContent:c}}),r("tinymce/pasteplugin/Clipboard",["tinymce/Env","tinymce/dom/RangeUtils","tinymce/util/VK","tinymce/pasteplugin/Utils","tinymce/pasteplugin/SmartPaste","tinymce/util/Delay"],function(e,t,n,r,i,o){return function(a){function s(e){var t,n=a.dom;if(t=a.fire("BeforePastePreProcess",{content:e}),t=a.fire("PastePreProcess",t),e=t.content,!t.isDefaultPrevented()){if(a.hasEventListeners("PastePostProcess")&&!t.isDefaultPrevented()){var r=n.add(a.getBody(),"div",{style:"display:none"},e);t=a.fire("PastePostProcess",{node:r}),n.remove(r),e=t.node.innerHTML}t.isDefaultPrevented()||i.insertContent(a,e)}}function l(e){e=a.dom.encode(e).replace(/\r\n/g,"\n");var t,n=a.dom.getParent(a.selection.getStart(),a.dom.isBlock),i=a.settings.forced_root_block;i&&(t=a.dom.createHTML(i,a.settings.forced_root_block_attrs),t=t.substr(0,t.length-3)+">"),n&&/^(PRE|DIV)$/.test(n.nodeName)||!i?e=r.filter(e,[[/\n/g,"
    "]]):(e=r.filter(e,[[/\n\n/g,"

    "+t],[/^(.*<\/p>)(

    )$/,t+"$1"],[/\n/g,"
    "]]),e.indexOf("

    ")!=-1&&(e=t+e)),s(e)}function c(){function t(e){var t,n,i,o=e.startContainer;if(t=e.getClientRects(),t.length)return t[0];if(e.collapsed&&1==o.nodeType){for(i=o.childNodes[_.startOffset];i&&3==i.nodeType&&!i.data.length;)i=i.nextSibling;if(i)return"BR"==i.tagName&&(n=r.doc.createTextNode("\ufeff"),i.parentNode.insertBefore(n,i),e=r.createRng(),e.setStartBefore(n),e.setEndAfter(n),t=e.getClientRects(),r.remove(n)),t.length?t[0]:void 0}}var n,r=a.dom,i=a.getBody(),o=a.dom.getViewPort(a.getWin()),s=o.y,l=20;if(_=a.selection.getRng(),a.inline&&(n=a.selection.getScrollContainer(),n&&n.scrollTop>0&&(s=n.scrollTop)),_.getClientRects){var c=t(_);if(c)l=s+(c.top-r.getPos(i).y);else{l=s;var u=_.startContainer;u&&(3==u.nodeType&&u.parentNode!=i&&(u=u.parentNode),1==u.nodeType&&(l=r.getPos(u,n||i).y))}}N=r.add(a.getBody(),"div",{id:"mcepastebin",contentEditable:!0,"data-mce-bogus":"all",style:"position: absolute; top: "+l+"px;width: 10px; height: 10px; overflow: hidden; opacity: 0"},A),(e.ie||e.gecko)&&r.setStyle(N,"left","rtl"==r.getStyle(i,"direction",!0)?65535:-65535),r.bind(N,"beforedeactivate focusin focusout",function(e){e.stopPropagation()}),N.focus(),a.selection.select(N,!0)}function u(){if(N){for(var e;e=a.dom.get("mcepastebin");)a.dom.remove(e),a.dom.unbind(e);_&&a.selection.setRng(_)}N=_=null}function d(){var e,t,n,r,i="";for(e=a.dom.select("div[id=mcepastebin]"),t=0;t0&&n.indexOf(B)==-1&&(t["text/plain"]=n)}if(e.types)for(var r=0;r')}else s('')}function y(e,t){function n(n){var r,i,o,a=!1;if(n)for(r=0;r0}function w(e){return n.metaKeyPressed(e)&&86==e.keyCode||e.shiftKey&&45==e.keyCode}function E(){function t(e,t,n){var i;return x(e,"text/html")?i=e["text/html"]:(i=d(),i==A&&(n=!0)),i=r.trimHtml(i),N&&N.firstChild&&"mcepastebin"===N.firstChild.id&&(n=!0),u(),i.length||(n=!0),n&&(i=x(e,"text/plain")&&i.indexOf("

    ")==-1?e["text/plain"]:r.innerText(i)),i==A?void(t||a.windowManager.alert("Please use Ctrl+V/Cmd+V keyboard shortcuts to paste contents.")):void(n?l(i):s(i))}function n(e){var t=e["text/plain"];return!!t&&0===t.indexOf("file://")}a.on("keydown",function(t){function n(e){w(e)&&!e.isDefaultPrevented()&&u()}if(w(t)&&!t.isDefaultPrevented()){if(S=t.shiftKey&&86==t.keyCode,S&&e.webkit&&navigator.userAgent.indexOf("Version/")!=-1)return;if(t.stopImmediatePropagation(),T=(new Date).getTime(),e.ie&&S)return t.preventDefault(),void a.fire("paste",{ieFake:!0});u(),c(),a.once("keyup",n),a.once("paste",function(){a.off("keyup",n)})}});var i=function(){return _||a.selection.getRng()};a.on("paste",function(n){var r=(new Date).getTime(),s=h(n),l=(new Date).getTime()-r,f=(new Date).getTime()-T-l<1e3,m="text"==k.pasteFormat||S;return S=!1,n.isDefaultPrevented()||b(n)?void u():!p(s)&&y(n,i())?void u():(f||n.preventDefault(),!e.ie||f&&!n.ieFake||(c(),a.dom.bind(N,"paste",function(e){e.stopPropagation()}),a.getDoc().execCommand("Paste",!1,null),s["text/html"]=d()),void(x(s,"text/html")?(n.preventDefault(),t(s,f,m)):o.setEditorTimeout(a,function(){t(s,f,m)},0)))}),a.on("dragstart dragend",function(e){R="dragstart"==e.type}),a.on("drop",function(e){var t,i;if(i=C(e),!e.isDefaultPrevented()&&!R&&(t=f(e.dataTransfer),(p(t)&&!n(t)||!y(e,i))&&i&&a.settings.paste_filter_drop!==!1)){var c=t["mce-internal"]||t["text/html"]||t["text/plain"];c&&(e.preventDefault(),o.setEditorTimeout(a,function(){a.undoManager.transact(function(){t["mce-internal"]&&a.execCommand("Delete"),a.selection.setRng(i),c=r.trimHtml(c),t["text/html"]?s(c):l(c)})}))}}),a.on("dragover dragend",function(e){a.settings.paste_data_images&&e.preventDefault()})}var N,_,S,k=this,T=0,R=!1,A="%MCEPASTEBIN%",B="data:text/mce-internal,",D=r.createIdGenerator("mceclip");k.pasteHtml=s,k.pasteText=l,k.pasteImageData=y,a.on("preInit",function(){E(),a.parser.addNodeFilter("img",function(t,n,r){function i(e){return e.data&&e.data.paste===!0}function o(t){t.attr("data-mce-object")||u===e.transparentSrc||t.remove()}function s(e){return 0===e.indexOf("webkit-fake-url")}function l(e){return 0===e.indexOf("data:")}if(!a.settings.paste_data_images&&i(r))for(var c=t.length;c--;){var u=t[c].attributes.map.src;u&&(s(u)?o(t[c]):!a.settings.allow_html_data_urls&&l(u)&&o(t[c]))}})})}}),r("tinymce/pasteplugin/WordFilter",["tinymce/util/Tools","tinymce/html/DomParser","tinymce/html/Schema","tinymce/html/Serializer","tinymce/html/Node","tinymce/pasteplugin/Utils"],function(e,t,n,r,i,o){function a(e){return/1&&a.attr("start",""+o),e.wrap(a)),e.name="li",s>u&&c&&c.lastChild.append(a),u=s,r(e),n(e,/^\u00a0+/),n(e,/^\s*([\u2022\u00b7\u00a7\u25CF]|\w+\.)/),n(e,/^\u00a0+/)}for(var a,c,u=1,d=[],f=e.firstChild;"undefined"!=typeof f&&null!==f;)if(d.push(f),f=f.walk(),null!==f)for(;"undefined"!=typeof f&&f.parent!==e;)f=f.walk();for(var h=0;h]+id="?docs-internal-[^>]*>/gi,""),g=g.replace(/
    /gi,""),p=u.paste_retain_style_properties,p&&(m=e.makeMap(p.split(/[, ]/))),u.paste_enable_default_filters!==!1&&a(d.content)){d.wordContent=!0,g=o.filter(g,[//gi,/<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|img|meta|link|style|\w:\w+)(?=[\s\/>]))[^>]*>/gi,[/<(\/?)s>/gi,"<$1strike>"],[/ /gi,"\xa0"],[/([\s\u00a0]*)<\/span>/gi,function(e,t){return t.length>0?t.replace(/./," ").slice(Math.floor(t.length/2)).split("").join("\xa0"):""}]]);var v=u.paste_word_valid_elements;v||(v="-strong/b,-em/i,-u,-span,-p,-ol,-ul,-li,-h1,-h2,-h3,-h4,-h5,-h6,-p/div,-a[href|name],sub,sup,strike,br,del,table[width],tr,td[colspan|rowspan|width],th[colspan|rowspan|width],thead,tfoot,tbody");var y=new n({valid_elements:v,valid_children:"-li[p]"});e.each(y.elements,function(e){e.attributes.class||(e.attributes.class={},e.attributesOrder.push("class")),e.attributes.style||(e.attributes.style={},e.attributesOrder.push("style"))});var b=new t({},y);b.addAttributeFilter("style",function(e){for(var t,n=e.length;n--;)t=e[n],t.attr("style",h(t,t.attr("style"))),"span"==t.name&&t.parent&&!t.attributes.length&&t.unwrap()}),b.addAttributeFilter("class",function(e){for(var t,n,r=e.length;r--;)t=e[r],n=t.attr("class"),/^(MsoCommentReference|MsoCommentText|msoDel)$/i.test(n)&&t.remove(),t.attr("class",null)}),b.addNodeFilter("del",function(e){for(var t=e.length;t--;)e[t].remove()}),b.addNodeFilter("a",function(e){for(var t,n,r,i=e.length;i--;)if(t=e[i],n=t.attr("href"),r=t.attr("name"),n&&n.indexOf("#_msocom_")!=-1)t.remove();else if(n&&0===n.indexOf("file://")&&(n=n.split("#")[1],n&&(n="#"+n)),n||r){if(r&&!/^_?(?:toc|edn|ftn)/i.test(r)){t.unwrap();continue}t.attr({href:n,name:r})}else t.unwrap()});var C=b.parse(g);u.paste_convert_word_fake_lists!==!1&&f(C),d.content=new r({validate:u.validate},y).serialize(C)}})}return c.isWordContent=a,c}),r("tinymce/pasteplugin/Quirks",["tinymce/Env","tinymce/util/Tools","tinymce/pasteplugin/WordFilter","tinymce/pasteplugin/Utils"],function(e,t,n,r){return function(i){function o(e){i.on("BeforePastePreProcess",function(t){t.content=e(t.content)})}function a(e){if(!n.isWordContent(e))return e;var o=[];t.each(i.schema.getBlockElements(),function(e,t){o.push(t)});var a=new RegExp("(?:
     [\\s\\r\\n]+|
    )*(<\\/?("+o.join("|")+")[^>]*>)(?:
     [\\s\\r\\n]+|
    )*","g");return e=r.filter(e,[[a,"$1"]]),e=r.filter(e,[[/

    /g,"

    "],[/
    /g," "],[/

    /g,"
    "]])}function s(e){if(n.isWordContent(e))return e;var t=i.settings.paste_webkit_styles;if(i.settings.paste_remove_styles_if_webkit===!1||"all"==t)return e;if(t&&(t=t.split(/[, ]/)),t){var r=i.dom,o=i.selection.getNode();e=e.replace(/(<[^>]+) style="([^"]*)"([^>]*>)/gi,function(e,n,i,a){var s=r.parseStyle(i,"span"),l={};if("none"===t)return n+a;for(var c=0;c]+) style="([^"]*)"([^>]*>)/gi,"$1$3");return e=e.replace(/(<[^>]+) data-mce-style="([^"]+)"([^>]*>)/gi,function(e,t,n,r){return t+' style="'+n+'"'+r})}e.webkit&&o(s),e.ie&&o(a)}}),r("tinymce/pasteplugin/Plugin",["tinymce/PluginManager","tinymce/pasteplugin/Clipboard","tinymce/pasteplugin/WordFilter","tinymce/pasteplugin/Quirks"],function(e,t,n,r){var i;e.add("paste",function(o){function a(){return i||o.settings.paste_plaintext_inform===!1}function s(){if("text"==c.pasteFormat)c.pasteFormat="html",o.fire("PastePlainTextToggle",{state:!1});else if(c.pasteFormat="text",o.fire("PastePlainTextToggle",{state:!0}),!a()){var e=o.translate("Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.");o.notificationManager.open({text:e,type:"info"}),i=!0}o.focus()}function l(){var e=this;e.active("text"===c.pasteFormat),o.on("PastePlainTextToggle",function(t){e.active(t.state)})}var c,u=this,d=o.settings;return/(^|[ ,])powerpaste([, ]|$)/.test(d.plugins)&&e.get("powerpaste")?void("undefined"!=typeof console&&console.log&&console.log("PowerPaste is incompatible with Paste plugin! Remove 'paste' from the 'plugins' option.")):(u.clipboard=c=new t(o),u.quirks=new r(o),u.wordFilter=new n(o),o.settings.paste_as_text&&(u.clipboard.pasteFormat="text"),d.paste_preprocess&&o.on("PastePreProcess",function(e){d.paste_preprocess.call(u,u,e)}),d.paste_postprocess&&o.on("PastePostProcess",function(e){d.paste_postprocess.call(u,u,e)}),o.addCommand("mceInsertClipboardContent",function(e,t){t.content&&u.clipboard.pasteHtml(t.content),t.text&&u.clipboard.pasteText(t.text)}),o.settings.paste_block_drop&&o.on("dragend dragover draggesture dragdrop drop drag",function(e){e.preventDefault(),e.stopPropagation()}),o.settings.paste_data_images||o.on("drop",function(e){var t=e.dataTransfer;t&&t.files&&t.files.length>0&&e.preventDefault()}),o.addCommand("mceTogglePlainTextPaste",s),o.addButton("pastetext",{icon:"pastetext",tooltip:"Paste as text",onclick:s,onPostRender:l}),void o.addMenuItem("pastetext",{text:"Paste as text",selectable:!0,active:c.pasteFormat,onclick:s,onPostRender:l}))})}),o(["tinymce/pasteplugin/Utils"])}(this); \ No newline at end of file diff --git a/data/web/rc/program/js/tinymce/plugins/preview/plugin.min.js b/data/web/rc/program/js/tinymce/plugins/preview/plugin.min.js new file mode 100644 index 0000000000000000000000000000000000000000..e02103b4aa1525f3905108eae6bed6cbdbb2e309 --- /dev/null +++ b/data/web/rc/program/js/tinymce/plugins/preview/plugin.min.js @@ -0,0 +1 @@ +tinymce.PluginManager.add("preview",function(e){var t=e.settings,n=!tinymce.Env.ie;e.addCommand("mcePreview",function(){e.windowManager.open({title:"Preview",width:parseInt(e.getParam("plugin_preview_width","650"),10),height:parseInt(e.getParam("plugin_preview_height","500"),10),html:'",buttons:{text:"Close",onclick:function(){this.parent().parent().close()}},onPostRender:function(){var r,i="";i+='',tinymce.each(e.contentCSS,function(t){i+=''});var o=t.body_id||"tinymce";o.indexOf("=")!=-1&&(o=e.getParam("body_id","","hash"),o=o[e.id]||o);var a=t.body_class||"";a.indexOf("=")!=-1&&(a=e.getParam("body_class","","hash"),a=a[e.id]||"");var s=' ',l=e.settings.directionality?' dir="'+e.settings.directionality+'"':"";if(r=""+i+'"+e.getContent()+s+"",n)this.getEl("body").firstChild.src="data:text/html;charset=utf-8,"+encodeURIComponent(r);else{var c=this.getEl("body").firstChild.contentWindow.document;c.open(),c.write(r),c.close()}}})}),e.addButton("preview",{title:"Preview",cmd:"mcePreview"}),e.addMenuItem("preview",{text:"Preview",cmd:"mcePreview",context:"view"})}); \ No newline at end of file diff --git a/data/web/rc/program/js/tinymce/plugins/print/plugin.min.js b/data/web/rc/program/js/tinymce/plugins/print/plugin.min.js new file mode 100644 index 0000000000000000000000000000000000000000..9f58535bfc1295825f6b511d16c2ee35ae47d5a4 --- /dev/null +++ b/data/web/rc/program/js/tinymce/plugins/print/plugin.min.js @@ -0,0 +1 @@ +tinymce.PluginManager.add("print",function(e){e.addCommand("mcePrint",function(){e.getWin().print()}),e.addButton("print",{title:"Print",cmd:"mcePrint"}),e.addShortcut("Meta+P","","mcePrint"),e.addMenuItem("print",{text:"Print",cmd:"mcePrint",icon:"print",shortcut:"Meta+P",context:"file"})}); \ No newline at end of file diff --git a/data/web/rc/program/js/tinymce/plugins/save/plugin.min.js b/data/web/rc/program/js/tinymce/plugins/save/plugin.min.js new file mode 100644 index 0000000000000000000000000000000000000000..7893bbc2276bb7ae558a85aea96c088a4f4015d3 --- /dev/null +++ b/data/web/rc/program/js/tinymce/plugins/save/plugin.min.js @@ -0,0 +1 @@ +tinymce.PluginManager.add("save",function(e){function t(){var t;if(t=tinymce.DOM.getParent(e.id,"form"),!e.getParam("save_enablewhendirty",!0)||e.isDirty())return tinymce.triggerSave(),e.getParam("save_onsavecallback")?(e.execCallback("save_onsavecallback",e),void e.nodeChanged()):void(t?(e.setDirty(!1),t.onsubmit&&!t.onsubmit()||("function"==typeof t.submit?t.submit():n(e.translate("Error: Form submit field collision."))),e.nodeChanged()):n(e.translate("Error: No form element found.")))}function n(t){e.notificationManager.open({text:t,type:"error"})}function r(){var t=tinymce.trim(e.startContent);return e.getParam("save_oncancelcallback")?void e.execCallback("save_oncancelcallback",e):(e.setContent(t),e.undoManager.clear(),void e.nodeChanged())}function i(){var t=this;e.on("nodeChange dirty",function(){t.disabled(e.getParam("save_enablewhendirty",!0)&&!e.isDirty())})}e.addCommand("mceSave",t),e.addCommand("mceCancel",r),e.addButton("save",{icon:"save",text:"Save",cmd:"mceSave",disabled:!0,onPostRender:i}),e.addButton("cancel",{text:"Cancel",icon:!1,cmd:"mceCancel",disabled:!0,onPostRender:i}),e.addShortcut("Meta+S","","mceSave")}); \ No newline at end of file diff --git a/data/web/rc/program/js/tinymce/plugins/searchreplace/plugin.min.js b/data/web/rc/program/js/tinymce/plugins/searchreplace/plugin.min.js new file mode 100644 index 0000000000000000000000000000000000000000..05ef03e3867751b110b48696d90b4527fa7066b1 --- /dev/null +++ b/data/web/rc/program/js/tinymce/plugins/searchreplace/plugin.min.js @@ -0,0 +1 @@ +!function(){function e(e){return e&&1==e.nodeType&&"false"===e.contentEditable}function t(t,n,r,i,o){function a(e,t){if(t=t||0,!e[0])throw"findAndReplaceDOMText cannot handle zero-length matches";var n=e.index;if(t>0){var r=e[t];if(!r)throw"Invalid capture group";n+=e[0].indexOf(r),e[0]=r}return[n,n+e[0].length,[e[0]]]}function s(t){var n;if(3===t.nodeType)return t.data;if(p[t.nodeName]&&!h[t.nodeName])return"";if(n="",e(t))return"\n";if((h[t.nodeName]||m[t.nodeName])&&(n+="\n"),t=t.firstChild)do n+=s(t);while(t=t.nextSibling);return n}function l(t,n,r){var i,o,a,s,l=[],c=0,u=t,d=n.shift(),f=0;e:for(;;){if((h[u.nodeName]||m[u.nodeName]||e(u))&&c++,3===u.nodeType&&(!o&&u.length+c>=d[1]?(o=u,s=d[1]-c):i&&l.push(u),!i&&u.length+c>d[0]&&(i=u,a=d[0]-c),c+=u.length),i&&o){if(u=r({startNode:i,startNodeIndex:a,endNode:o,endNodeIndex:s,innerNodes:l,match:d[2],matchIndex:f}),c-=o.length-s,i=null,o=null,l=[],d=n.shift(),f++,!d)break}else if(p[u.nodeName]&&!h[u.nodeName]||!u.firstChild){if(u.nextSibling){u=u.nextSibling;continue}}else if(!e(u)){u=u.firstChild;continue}for(;;){if(u.nextSibling){u=u.nextSibling;break}if(u.parentNode===t)break e;u=u.parentNode}}}function c(e){var t;if("function"!=typeof e){var n=e.nodeType?e:f.createElement(e);t=function(e,t){var r=n.cloneNode(!1);return r.setAttribute("data-mce-index",t),e&&r.appendChild(f.createTextNode(e)),r}}else t=e;return function(e){var n,r,i,o=e.startNode,a=e.endNode,s=e.matchIndex;if(o===a){var l=o;i=l.parentNode,e.startNodeIndex>0&&(n=f.createTextNode(l.data.substring(0,e.startNodeIndex)),i.insertBefore(n,l));var c=t(e.match[0],s);return i.insertBefore(c,l),e.endNodeIndex0}var u=this,d=-1;u.init=function(e){e.addMenuItem("searchreplace",{text:"Find and replace",shortcut:"Meta+F",onclick:n,separator:"before",context:"edit"}),e.addButton("searchreplace",{tooltip:"Find and replace",shortcut:"Meta+F",onclick:n}),e.addCommand("SearchReplace",n),e.shortcuts.add("Meta+F","",n)},u.find=function(e,t,n){e=e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),e=n?"\\b"+e+"\\b":e;var r=i(new RegExp(e,t?"g":"gi"));return r&&(d=-1,d=s(!0)),r},u.next=function(){var e=s(!0);e!==-1&&(d=e)},u.prev=function(){var e=s(!1);e!==-1&&(d=e)},u.replace=function(t,n,i){var s,f,h,p,m,g,v=d;for(n=n!==!1,h=e.getBody(),f=tinymce.grep(tinymce.toArray(h.getElementsByTagName("span")),c),s=0;sd&&f[s].setAttribute("data-mce-index",m-1)}return e.undoManager.add(),d=v,n?(g=a(v+1).length>0,u.next()):(g=a(v-1).length>0,u.prev()),!i&&g},u.done=function(t){var n,i,a,s;for(i=tinymce.toArray(e.getBody().getElementsByTagName("span")),n=0;n\n'; + moduleCount++; + } + + // Expose globally + exports.define = define; + exports.require = require; + + expose(["tinymce/spellcheckerplugin/DomTextMatcher"]); + + load('classes/DomTextMatcher.js'); + load('classes/Plugin.js'); + + writeScripts(); +})(this); + +// $hash: a894b80e97e733310c550dadb509e87a \ No newline at end of file diff --git a/data/web/rc/program/js/tinymce/plugins/spellchecker/plugin.min.js b/data/web/rc/program/js/tinymce/plugins/spellchecker/plugin.min.js new file mode 100644 index 0000000000000000000000000000000000000000..f6672d4dc07df14599e4872aa73349b88b3a7fcf --- /dev/null +++ b/data/web/rc/program/js/tinymce/plugins/spellchecker/plugin.min.js @@ -0,0 +1 @@ +!function(e,t){"use strict";function n(e,t){for(var n,r=[],o=0;o=l.end?(o=d,s=l.end-u):i&&c.push(d),!i&&d.length+u>l.start&&(i=d,a=l.start-u),u+=d.length),i&&o){if(d=r({startNode:i,startNodeIndex:a,endNode:o,endNodeIndex:s,innerNodes:c,match:l.text,matchIndex:f}),u-=o.length-s,i=null,o=null,c=[],l=n.shift(),f++,!l)break}else if(N[d.nodeName]&&!E[d.nodeName]||!d.firstChild){if(d.nextSibling){d=d.nextSibling;continue}}else if(!e(d)){d=d.firstChild;continue}for(;;){if(d.nextSibling){d=d.nextSibling;break}if(d.parentNode===t)break e;d=d.parentNode}}}function a(e){function t(t,n){var r=S[n];r.stencil||(r.stencil=e(r));var i=r.stencil.cloneNode(!1);return i.setAttribute("data-mce-index",n),t&&i.appendChild(k.doc.createTextNode(t)),i}return function(e){var n,r,i,o=e.startNode,a=e.endNode,s=e.matchIndex,l=k.doc;if(o===a){var c=o;i=c.parentNode,e.startNodeIndex>0&&(n=l.createTextNode(c.data.substring(0,e.startNodeIndex)),i.insertBefore(n,c));var u=t(e.match,s);return i.insertBefore(u,c),e.endNodeIndex0&&r.insertNode(n.dom.doc.createTextNode(t)),r}function C(){return S.splice(0,S.length),p(),this}var x,w,E,N,_,S=[],k=n.dom;return E=n.schema.getBlockElements(),N=n.schema.getWhiteSpaceElements(),_=n.schema.getShortEndedElements(),w=i(t),{text:w,matches:S,each:d,filter:u,reset:C,matchFromElement:m,elementFromMatch:g,find:h,add:v,wrap:f,unwrap:p,replace:b,rangeFromMatch:y,indexOf:c}}}),r("tinymce/spellcheckerplugin/Plugin",["tinymce/spellcheckerplugin/DomTextMatcher","tinymce/PluginManager","tinymce/util/Tools","tinymce/ui/Menu","tinymce/dom/DOMUtils","tinymce/util/XHR","tinymce/util/URI","tinymce/util/JSON"],function(e,t,n,r,i,o,a,s){t.add("spellchecker",function(l,c){function u(){return B.textMatcher||(B.textMatcher=new e(l.getBody(),l)),B.textMatcher}function d(e,t){var r=[];return n.each(t,function(e){r.push({selectable:!0,text:e.name,data:e.value})}),r}function f(e){for(var t in e)return!1;return!0}function h(e,t){var o=[],a=k[e];n.each(a,function(e){o.push({text:e,onclick:function(){l.insertContent(l.dom.encode(e)),l.dom.remove(t),y()}})}),o.push({text:"-"}),A&&o.push({text:"Add to Dictionary",onclick:function(){b(e,t)}}),o.push.apply(o,[{text:"Ignore",onclick:function(){C(e,t)}},{text:"Ignore all",onclick:function(){C(e,t,!0)}}]),R=new r({items:o,context:"contextmenu",onautohide:function(e){e.target.className.indexOf("spellchecker")!=-1&&e.preventDefault()},onhide:function(){R.remove(),R=null}}),R.renderTo(document.body);var s=i.DOM.getPos(l.getContentAreaContainer()),c=l.dom.getPos(t[0]),u=l.dom.getRoot();"BODY"==u.nodeName?(c.x-=u.ownerDocument.documentElement.scrollLeft||u.scrollLeft,c.y-=u.ownerDocument.documentElement.scrollTop||u.scrollTop):(c.x-=u.scrollLeft,c.y-=u.scrollTop),s.x+=c.x,s.y+=c.y,R.moveTo(s.x,s.y+t[0].offsetHeight)}function p(){return l.getParam("spellchecker_wordchar_pattern")||new RegExp('[^\\s!"#$%&()*+,-./:;<=>?@[\\]^_{|}`\xa7\xa9\xab\xae\xb1\xb6\xb7\xb8\xbb\xbc\xbd\xbe\xbf\xd7\xf7\xa4\u201d\u201c\u201e\xa0\u2002\u2003\u2009]+',"g")}function m(e,t,r,i){var u={method:e,lang:D.spellchecker_language},d="";u["addToDictionary"==e?"word":"text"]=t,n.each(u,function(e,t){d&&(d+="&"),d+=t+"="+encodeURIComponent(e)}),o.send({url:new a(c).toAbsolute(D.spellchecker_rpc_url),type:"post",content_type:"application/x-www-form-urlencoded",data:d,success:function(e){if(e=s.parse(e))e.error?i(e.error):r(e);else{var t=l.translate("Server response wasn't proper JSON.");i(t)}},error:function(){var e=l.translate("The spelling service was not found: (")+D.spellchecker_rpc_url+l.translate(")");i(e)}})}function g(e,t,n,r){var i=D.spellchecker_callback||m;i.call(B,e,t,n,r)}function v(){function e(e){l.notificationManager.open({text:e,type:"error"}),l.setProgressState(!1),x()}x()||(l.setProgressState(!0),g("spellcheck",u().text,_,e),l.focus())}function y(){l.dom.select("span.mce-spellchecker-word").length||x()}function b(e,t){l.setProgressState(!0),g("addToDictionary",e,function(){l.setProgressState(!1),l.dom.remove(t,!0),y()},function(e){l.notificationManager.open({text:e,type:"error"}),l.setProgressState(!1)})}function C(e,t,r){l.selection.collapse(),r?n.each(l.dom.select("span.mce-spellchecker-word"),function(t){t.getAttribute("data-mce-word")==e&&l.dom.remove(t,!0)}):l.dom.remove(t,!0),y()}function x(){if(u().reset(),B.textMatcher=null,T)return T=!1,l.fire("SpellcheckEnd"),!0}function w(e){var t=e.getAttribute("data-mce-index");return"number"==typeof t?""+t:t}function E(e){var t,r=[];if(t=n.toArray(l.getBody().getElementsByTagName("span")),t.length)for(var i=0;i0){var r=l.dom.createRng();r.setStartBefore(n[0]),r.setEndAfter(n[n.length-1]),l.selection.setRng(r),h(t.getAttribute("data-mce-word"),n)}}}),l.addMenuItem("spellchecker",{text:"Spellcheck",context:"tools",onclick:v,selectable:!0,onPostRender:function(){var e=this;e.active(T),l.on("SpellcheckStart SpellcheckEnd",function(){e.active(T)})}});var M={tooltip:"Spellcheck",onclick:v,onPostRender:function(){var e=this;l.on("SpellcheckStart SpellcheckEnd",function(){e.active(T)})}};S.length>1&&(M.type="splitbutton",M.menu=S,M.onshow=N,M.onselect=function(e){D.spellchecker_language=e.control.settings.data}),l.addButton("spellchecker",M),l.addCommand("mceSpellCheck",v),l.on("remove",function(){R&&(R.remove(),R=null)}),l.on("change",y),this.getTextMatcher=u,this.getWordCharPattern=p,this.markErrors=_,this.getLanguage=function(){return D.spellchecker_language},D.spellchecker_language=D.spellchecker_language||D.language||"en"})}),o(["tinymce/spellcheckerplugin/DomTextMatcher"])}(this); \ No newline at end of file diff --git a/data/web/rc/program/js/tinymce/plugins/tabfocus/plugin.min.js b/data/web/rc/program/js/tinymce/plugins/tabfocus/plugin.min.js new file mode 100644 index 0000000000000000000000000000000000000000..d310d0b889d47ce97eb85f7ec3c8cf6901ef7262 --- /dev/null +++ b/data/web/rc/program/js/tinymce/plugins/tabfocus/plugin.min.js @@ -0,0 +1 @@ +tinymce.PluginManager.add("tabfocus",function(e){function t(e){9!==e.keyCode||e.ctrlKey||e.altKey||e.metaKey||e.preventDefault()}function n(t){function n(n){function o(e){return"BODY"===e.nodeName||"hidden"!=e.type&&"none"!=e.style.display&&"hidden"!=e.style.visibility&&o(e.parentNode)}function l(e){return/INPUT|TEXTAREA|BUTTON/.test(e.tagName)&&tinymce.get(t.id)&&e.tabIndex!=-1&&o(e)}if(s=r.select(":input:enabled,*[tabindex]:not(iframe)"),i(s,function(t,n){if(t.id==e.id)return a=n,!1}),n>0){for(c=a+1;c=0;c--)if(l(s[c]))return s[c];return null}var a,s,l,c;if(!(9!==t.keyCode||t.ctrlKey||t.altKey||t.metaKey||t.isDefaultPrevented())&&(l=o(e.getParam("tab_focus",e.getParam("tabfocus_elements",":prev,:next"))),1==l.length&&(l[1]=l[0],l[0]=":prev"),s=t.shiftKey?":prev"==l[0]?n(-1):r.get(l[0]):":next"==l[1]?n(1):r.get(l[1]))){var u=tinymce.get(s.id||s.name);s.id&&u?u.focus():tinymce.util.Delay.setTimeout(function(){tinymce.Env.webkit||window.focus(),s.focus()},10),t.preventDefault()}}var r=tinymce.DOM,i=tinymce.each,o=tinymce.explode;e.on("init",function(){e.inline&&tinymce.DOM.setAttrib(e.getBody(),"tabIndex",null),e.on("keyup",t),tinymce.Env.gecko?e.on("keypress keydown",n):e.on("keydown",n)})}); \ No newline at end of file diff --git a/data/web/rc/program/js/tinymce/plugins/table/plugin.dev.js b/data/web/rc/program/js/tinymce/plugins/table/plugin.dev.js new file mode 100644 index 0000000000000000000000000000000000000000..cb5174c84c40da9adf7979b24a2759f5130eb329 --- /dev/null +++ b/data/web/rc/program/js/tinymce/plugins/table/plugin.dev.js @@ -0,0 +1,143 @@ +/** + * Inline development version. Only to be used while developing since it uses document.write to load scripts. + */ + +/*jshint smarttabs:true, undef:true, latedef:true, curly:true, bitwise:true, camelcase:true */ +/*globals $code */ + +(function(exports) { + "use strict"; + + var html = "", baseDir; + var modules = {}, exposedModules = [], moduleCount = 0; + + var scripts = document.getElementsByTagName('script'); + for (var i = 0; i < scripts.length; i++) { + var src = scripts[i].src; + + if (src.indexOf('/plugin.dev.js') != -1) { + baseDir = src.substring(0, src.lastIndexOf('/')); + } + } + + function require(ids, callback) { + var module, defs = []; + + for (var i = 0; i < ids.length; ++i) { + module = modules[ids[i]] || resolve(ids[i]); + if (!module) { + throw 'module definition dependecy not found: ' + ids[i]; + } + + defs.push(module); + } + + callback.apply(null, defs); + } + + function resolve(id) { + if (exports.privateModules && id in exports.privateModules) { + return; + } + + var target = exports; + var fragments = id.split(/[.\/]/); + + for (var fi = 0; fi < fragments.length; ++fi) { + if (!target[fragments[fi]]) { + return; + } + + target = target[fragments[fi]]; + } + + return target; + } + + function register(id) { + var target = exports; + var fragments = id.split(/[.\/]/); + + for (var fi = 0; fi < fragments.length - 1; ++fi) { + if (target[fragments[fi]] === undefined) { + target[fragments[fi]] = {}; + } + + target = target[fragments[fi]]; + } + + target[fragments[fragments.length - 1]] = modules[id]; + } + + function define(id, dependencies, definition) { + var privateModules, i; + + if (typeof id !== 'string') { + throw 'invalid module definition, module id must be defined and be a string'; + } + + if (dependencies === undefined) { + throw 'invalid module definition, dependencies must be specified'; + } + + if (definition === undefined) { + throw 'invalid module definition, definition function must be specified'; + } + + require(dependencies, function() { + modules[id] = definition.apply(null, arguments); + }); + + if (--moduleCount === 0) { + for (i = 0; i < exposedModules.length; i++) { + register(exposedModules[i]); + } + } + + // Expose private modules for unit tests + if (exports.AMDLC_TESTS) { + privateModules = exports.privateModules || {}; + + for (id in modules) { + privateModules[id] = modules[id]; + } + + for (i = 0; i < exposedModules.length; i++) { + delete privateModules[exposedModules[i]]; + } + + exports.privateModules = privateModules; + } + + } + + function expose(ids) { + exposedModules = ids; + } + + function writeScripts() { + document.write(html); + } + + function load(path) { + html += '\n'; + moduleCount++; + } + + // Expose globally + exports.define = define; + exports.require = require; + + load('classes/Utils.js'); + load('classes/SplitCols.js'); + load('classes/TableGrid.js'); + load('classes/Quirks.js'); + load('classes/CellSelection.js'); + load('classes/Dialogs.js'); + load('classes/ResizeBars.js'); + load('classes/Plugin.js'); + + writeScripts(); +})(this); + +// $hash: 2bba25eafbcfe7cf5d371219f4309dbe \ No newline at end of file diff --git a/data/web/rc/program/js/tinymce/plugins/table/plugin.min.js b/data/web/rc/program/js/tinymce/plugins/table/plugin.min.js new file mode 100644 index 0000000000000000000000000000000000000000..c7629c5687fe3340dae79d5363eb7a6bbee54864 --- /dev/null +++ b/data/web/rc/program/js/tinymce/plugins/table/plugin.min.js @@ -0,0 +1,2 @@ +!function(e,t){"use strict";function n(e,t){for(var n,r=[],a=0;a9)&&(t.hasChildNodes()||(t.innerHTML='
    '))}var n=function(e){return function(t,n){t&&(n=parseInt(n,10),1===n||0===n?t.removeAttribute(e,1):t.setAttribute(e,n,1))}},r=function(e){return function(t){return parseInt(t.getAttribute(e)||1,10)}};return{setColSpan:n("colSpan"),setRowSpan:n("rowspan"),getColSpan:r("colSpan"),getRowSpan:r("rowSpan"),setSpanVal:function(e,t,r){n(t)(e,r)},getSpanVal:function(e,t){return r(t)(e)},paddCell:t}}),r("tinymce/tableplugin/SplitCols",["tinymce/util/Tools","tinymce/tableplugin/Utils"],function(e,t){var n=function(e,t,n){return e[n]?e[n][t]:null},r=function(e,t,r){var i=n(e,t,r);return i?i.elm:null},i=function(e,t,i,o){var a,s,l=0,c=r(e,t,i);for(a=i;(o>0?a=0)&&(s=n(e,t,a),c===s.elm);a+=o)l++;return l},o=function(e,t,n){for(var r,i=e[n],o=t;o'),!1},"childNodes"),t=v(t,!1),g(t),s(t,"rowSpan",1),s(t,"colSpan",1),i?t.appendChild(i):r.paddCell(t),t}function _(){var e,t=ee.createRng();return o(ee.select("tr",c),function(e){0===e.cells.length&&ee.remove(e)}),0===ee.select("tr",c).length?(t.setStartBefore(c),t.setEndBefore(c),Z.setRng(t),void ee.remove(c)):(o(ee.select("thead,tbody,tfoot",c),function(e){0===e.rows.length&&ee.remove(e)}),p(),void(J&&(e=K[Math.min(K.length-1,J.y)],e&&(Z.select(e[Math.min(e.length-1,J.x)].elm,!0),Z.collapse(!0)))))}function S(e,t,n,r){var i,o,a,s,l;for(i=K[t][e].elm.parentNode,a=1;a<=n;a++)if(i=ee.getNext(i,"tr")){for(o=e;o>=0;o--)if(l=K[t+a][o].elm,l.parentNode==i){for(s=1;s<=r;s++)ee.insertAfter(N(l),l);break}if(o==-1)for(s=1;s<=r;s++)i.insertBefore(N(i.cells[0]),i.cells[0])}}function k(){o(K,function(e,t){o(e,function(e,n){var r,i,o;if(x(e)&&(e=e.elm,r=a(e,"colspan"),i=a(e,"rowspan"),r>1||i>1)){for(s(e,"rowSpan",1),s(e,"colSpan",1),o=0;on)&&r.push(e[i]);return r}function R(t){return e.grep(t,function(e){return e.real===!1})}function A(e){for(var t=[],n=0;n1&&(E=1),s(h,"colSpan",w),s(h,"rowSpan",E),f=l;f<=u;f++)for(d=a;d<=c;d++)K[f]&&K[f][d]&&(t=K[f][d].elm,t!=h&&(g=e.grep(t.childNodes),o(g,function(e){h.appendChild(e)}),g.length&&(g=e.grep(h.childNodes),v=0,o(g,function(e){"BR"==e.nodeName&&v++0&&K[n-1][l]&&(f=K[n-1][l].elm,h=a(f,"rowSpan"),h>1)){s(f,"rowSpan",h+1);continue}}else if(h=a(r,"rowspan"),h>1){s(r,"rowSpan",h+1);continue}d=N(r),s(d,"colSpan",r.colSpan),u.appendChild(d),i=r}u.hasChildNodes()&&(e?c.parentNode.insertBefore(u,c):ee.insertAfter(u,c))}}function P(e){var t,n;o(K,function(n){if(o(n,function(n,r){if(x(n)&&(t=r,e))return!1}),e)return!t}),o(K,function(r,i){var o,l,c;r[t]&&(o=r[t].elm,o!=n&&(c=a(o,"colspan"),l=a(o,"rowspan"),1==c?e?(o.parentNode.insertBefore(N(o),o),S(t,i,l-1,c)):(ee.insertAfter(N(o),o),S(t,i,l-1,c)):s(o,"colSpan",o.colSpan+1),n=o))})}function O(t){return e.grep(H(t),x)}function H(e){var t=[];return o(e,function(e){o(e,function(e){t.push(e)})}),t}function I(){var t=[];if(f(c)){if(1==K[0].length)return;if(O(K).length==H(K).length)return}o(K,function(n){o(n,function(n,r){x(n)&&e.inArray(t,r)===-1&&(o(K,function(e){var t,n=e[r].elm;t=a(n,"colSpan"),t>1?s(n,"colSpan",t-1):ee.remove(n)}),t.push(r))})}),_()}function F(){function e(e){var t,n;o(e.cells,function(e){var n=a(e,"rowSpan");n>1&&(s(e,"rowSpan",n-1),t=V(e),S(t.x,t.y,1,1))}),t=V(e.cells[0]),o(K[t.y],function(e){var t;e=e.elm,e!=n&&(t=a(e,"rowSpan"),t<=1?ee.remove(e):s(e,"rowSpan",t-1),n=e)})}var t;t=w(),f(c)&&t.length==c.rows.length||(o(t.reverse(),function(t){e(t)}),_())}function z(){var e=w();if(!f(c)||e.length!=c.rows.length)return ee.remove(e),_(),e}function U(){var e=w();return o(e,function(t,n){e[n]=v(t,!0)}),e}function W(t,n){var r,a,l;t&&(r=i.splitAt(K,J.x,J.y,n),a=r.row,e.each(r.cells,g),l=e.map(t,function(e){return e.cloneNode(!0)}),n||l.reverse(),o(l,function(e){var t,r,i=e.cells.length;for(m(e),t=0;te&&(e=i),r>t&&(t=r),n.real&&(o=n.colspan-1,a=n.rowspan-1,o&&i+o>e&&(e=i+o),a&&r+a>t&&(t=r+a)))})}),{x:e,y:t}}function j(e){var t,n,r,i,o,a,s,l,c,u;if(Q=V(e),J&&Q){for(t=Math.min(J.x,Q.x),n=Math.min(J.y,Q.y),r=Math.max(J.x,Q.x),i=Math.max(J.y,Q.y),o=r,a=i,u=n;u<=i;u++)for(c=t;c<=r;c++)e=K[u][c],e.real&&(s=e.colspan-1,l=e.rowspan-1,s&&c+s>o&&(o=c+s),l&&u+l>a&&(a=u+l));for(d(),u=n;u<=a;u++)for(c=t;c<=o;c++)K[u][c]&&ee.setAttrib(K[u][c].elm,"data-mce-selected","1")}}function Y(e,t){var n,r,i;n=V(e),r=n.y*G+n.x;do{if(r+=t,i=y(r%G,Math.floor(r/G)),!i)break;if(i.elm!=e)return Z.select(i.elm,!0),ee.isEmpty(i.elm)&&Z.collapse(!0),!0}while(i.elm==e);return!1}function X(t){if(J){var n=i.splitAt(K,J.x,J.y,t);e.each(n.cells,g)}}var K,G,J,Q,Z=l.selection,ee=Z.dom;c=c||ee.getParent(Z.getStart(!0),"table"),p(),u=u||ee.getParent(Z.getStart(!0),"th,td"),u&&(J=V(u),Q=q(),u=y(J.x,J.y)),e.extend(this,{deleteTable:E,split:k,merge:L,insertRow:M,insertCol:P,splitCols:X,deleteCols:I,deleteRows:F,cutRows:z,copyRows:U,pasteRows:W,getPos:V,setStartCell:$,setEndCell:j,moveRelIdx:Y,refresh:p})}}),r("tinymce/tableplugin/Quirks",["tinymce/util/VK","tinymce/util/Delay","tinymce/Env","tinymce/util/Tools","tinymce/tableplugin/Utils"],function(e,t,n,r,i){var o=r.each,a=i.getSpanVal;return function(s){function l(){function n(n){function r(e,t){var r=e?"previousSibling":"nextSibling",o=s.dom.getParent(t,"tr"),a=o[r];if(a)return v(s,t,a,e),n.preventDefault(),!0;var l=s.dom.getParent(o,"table"),d=o.parentNode,f=d.nodeName.toLowerCase();if("tbody"===f||f===(e?"tfoot":"thead")){var h=i(e,l,d,"tbody");if(null!==h)return c(e,h,t)}return u(e,o,r,l)}function i(e,t,n,r){var i=s.dom.select(">"+r,t),o=i.indexOf(n);if(e&&0===o||!e&&o===i.length-1)return l(e,t);if(o===-1){var a="thead"===n.tagName.toLowerCase()?0:i.length-1;return i[a]}return i[o+(e?-1:1)]}function l(e,t){var n=e?"thead":"tfoot",r=s.dom.select(">"+n,t);return 0!==r.length?r[0]:null}function c(e,t,r){var i=d(t,e);return i&&v(s,r,i,e),n.preventDefault(),!0}function u(e,t,i,o){var a=o[i];if(a)return f(a),!0;var l=s.dom.getParent(o,"td,th");if(l)return r(e,l,n);var c=d(t,!e);return f(c),n.preventDefault(),!1}function d(e,t){var n=e&&e[t?"lastChild":"firstChild"];return n&&"BR"===n.nodeName?s.dom.getParent(n,"td,th"):n}function f(e){s.selection.setCursorLocation(e,0)}function h(){return C==e.UP||C==e.DOWN}function p(e){var t=e.selection.getNode(),n=e.dom.getParent(t,"tr");return null!==n}function m(e){for(var t=0,n=e;n.previousSibling;)n=n.previousSibling,t+=a(n,"colspan");return t}function g(e,t){var n=0,r=0;return o(e.children,function(e,i){if(n+=a(e,"colspan"),r=i,n>t)return!1}),r}function v(e,t,n,r){var i=m(s.dom.getParent(t,"td,th")),o=g(n,i),a=n.childNodes[o],l=d(a,r);f(l||a)}function y(e){var t=s.selection.getNode(),n=s.dom.getParent(t,"td,th"),r=s.dom.getParent(e,"td,th");return n&&n!==r&&b(n,r)}function b(e,t){return s.dom.getParent(e,"TABLE")===s.dom.getParent(t,"TABLE")}var C=n.keyCode;if(h()&&p(s)){var x=s.selection.getNode();t.setEditorTimeout(s,function(){y(x)&&r(!n.shiftKey&&C===e.UP,x,n)},0)}}s.on("KeyDown",function(e){n(e)})}function c(){function e(e,t){var n,r=t.ownerDocument,i=r.createRange();return i.setStartBefore(t),i.setEnd(e.endContainer,e.endOffset),n=r.createElement("body"),n.appendChild(i.cloneContents()),0===n.innerHTML.replace(/<(br|img|object|embed|input|textarea)[^>]*>/gi,"-").replace(/<[^>]+>/g,"").length}s.on("KeyDown",function(t){var n,r,i=s.dom;37!=t.keyCode&&38!=t.keyCode||(n=s.selection.getRng(),r=i.getParent(n.startContainer,"table"),r&&s.getBody().firstChild==r&&e(n,r)&&(n=i.createRng(),n.setStartBefore(r),n.setEndBefore(r),s.selection.setRng(n),t.preventDefault()))})}function u(){s.on("KeyDown SetContent VisualAid",function(){var e;for(e=s.getBody().lastChild;e;e=e.previousSibling)if(3==e.nodeType){if(e.nodeValue.length>0)break}else if(1==e.nodeType&&("BR"==e.tagName||!e.getAttribute("data-mce-bogus")))break;e&&"TABLE"==e.nodeName&&(s.settings.forced_root_block?s.dom.add(s.getBody(),s.settings.forced_root_block,s.settings.forced_root_block_attrs,n.ie&&n.ie<10?" ":'
    '):s.dom.add(s.getBody(),"br",{"data-mce-bogus":"1"}))}),s.on("PreProcess",function(e){var t=e.node.lastChild;t&&("BR"==t.nodeName||1==t.childNodes.length&&("BR"==t.firstChild.nodeName||"\xa0"==t.firstChild.nodeValue))&&t.previousSibling&&"TABLE"==t.previousSibling.nodeName&&s.dom.remove(t)})}function d(){function e(e,t,n,r){var i,o,a,s=3,l=e.dom.getParent(t.startContainer,"TABLE");return l&&(i=l.parentNode),o=t.startContainer.nodeType==s&&0===t.startOffset&&0===t.endOffset&&r&&("TR"==n.nodeName||n==i),a=("TD"==n.nodeName||"TH"==n.nodeName)&&!r,o||a}function t(){var t=s.selection.getRng(),n=s.selection.getNode(),r=s.dom.getParent(t.startContainer,"TD,TH");if(e(s,t,n,r)){r||(r=n);for(var i=r.lastChild;i.lastChild;)i=i.lastChild;3==i.nodeType&&(t.setEnd(i,i.data.length),s.selection.setRng(t))}}s.on("KeyDown",function(){t()}),s.on("MouseDown",function(e){2!=e.button&&t()})}function f(){function t(e){s.selection.select(e,!0),s.selection.collapse(!0)}function n(e){s.$(e).empty(),i.paddCell(e)}s.on("keydown",function(i){if((i.keyCode==e.DELETE||i.keyCode==e.BACKSPACE)&&!i.isDefaultPrevented()){var o,a,l,c;if(o=s.dom.getParent(s.selection.getStart(),"table")){if(a=s.dom.select("td,th",o),l=r.grep(a,function(e){return!!s.dom.getAttrib(e,"data-mce-selected")}),0===l.length)return c=s.dom.getParent(s.selection.getStart(),"td,th"),void(s.selection.isCollapsed()&&c&&s.dom.isEmpty(c)&&(i.preventDefault(),n(c),t(c)));i.preventDefault(),s.undoManager.transact(function(){a.length==l.length?s.execCommand("mceTableDelete"):(r.each(l,n),t(l[0]))})}}})}f(),n.webkit&&(l(),d()),n.gecko&&(c(),u()),n.ie>9&&(c(),u())}}),r("tinymce/tableplugin/CellSelection",["tinymce/tableplugin/TableGrid","tinymce/dom/TreeWalker","tinymce/util/Tools"],function(e,t,n){return function(r,i){function o(e){r.getBody().style.webkitUserSelect="",(e||m)&&(r.$("td[data-mce-selected],th[data-mce-selected]").removeAttr("data-mce-selected"),m=!1)}function a(e,t){return!(!e||!t)&&e===p.getParent(t,"table")}function s(t){var n,o,s=t.target;if(!f&&!h&&s!==d&&(d=s,u&&c)){if(o=p.getParent(s,"td,th"),a(u,o)||(o=p.getParent(u,"td,th")),c===o&&!m)return;if(i(!0),a(u,o)){t.preventDefault(),l||(l=new e(r,u,c),r.getBody().style.webkitUserSelect="none"),l.setEndCell(o),m=!0,n=r.selection.getSel();try{n.removeAllRanges?n.removeAllRanges():n.empty()}catch(e){}}}}var l,c,u,d,f,h,p=r.dom,m=!0,g=function(){c=l=u=d=null,i(!1)};return r.on("SelectionChange",function(e){m&&e.stopImmediatePropagation()},!0),r.on("MouseDown",function(e){2==e.button||f||h||(o(),c=p.getParent(e.target,"td,th"),u=p.getParent(c,"table"))}),r.on("mouseover",s),r.on("remove",function(){p.unbind(r.getDoc(),"mouseover",s),o()}),r.on("MouseUp",function(){function e(e,r){var o=new t(e,e);do{if(3==e.nodeType&&0!==n.trim(e.nodeValue).length)return void(r?i.setStart(e,0):i.setEnd(e,e.nodeValue.length));if("BR"==e.nodeName)return void(r?i.setStartBefore(e):i.setEndBefore(e))}while(e=r?o.next():o.prev())}var i,o,a,s,u,d=r.selection;if(c){if(l&&(r.getBody().style.webkitUserSelect=""),o=p.select("td[data-mce-selected],th[data-mce-selected]"),o.length>0){i=p.createRng(),s=o[0],i.setStartBefore(s),i.setEndAfter(s),e(s,1),a=new t(s,p.getParent(o[0],"table"));do if("TD"==s.nodeName||"TH"==s.nodeName){if(!p.getAttrib(s,"data-mce-selected"))break;u=s}while(s=a.next());e(u),d.setRng(i)}r.nodeChanged(),g()}}),r.on("KeyUp Drop SetContent",function(e){o("setcontent"==e.type),g(),f=!1}),r.on("ObjectResizeStart ObjectResized",function(e){f="objectresized"!=e.type}),r.on("dragstart",function(){h=!0}),r.on("drop dragend",function(){h=!1}),{clear:o}}}),r("tinymce/tableplugin/Dialogs",["tinymce/util/Tools","tinymce/Env"],function(e,t){var n=e.each;return function(r){function i(){var e=r.settings.color_picker_callback;if(e)return function(){var t=this;e.call(r,function(e){t.value(e).fire("change")},t.value())}}function o(e){return{title:"Advanced",type:"form",defaults:{onchange:function(){d(e,this.parents().reverse()[0],"style"==this.name())}},items:[{label:"Style",name:"style",type:"textbox"},{type:"form",padding:0,formItemDefaults:{layout:"grid",alignH:["start","right"]},defaults:{size:7},items:[{label:"Border color",type:"colorbox",name:"borderColor",onaction:i()},{label:"Background color",type:"colorbox",name:"backgroundColor",onaction:i()}]}]}}function a(e){return e?e.replace(/px$/,""):""}function s(e){return/^[0-9]+$/.test(e)&&(e+="px"),e}function l(e){n("left center right".split(" "),function(t){r.formatter.remove("align"+t,{},e)})}function c(e){n("top middle bottom".split(" "),function(t){r.formatter.remove("valign"+t,{},e)})}function u(t,n,r){function i(t,r){return r=r||[],e.each(t,function(e){var t={text:e.text||e.title};e.menu?t.menu=i(e.menu):(t.value=e.value,n&&n(t)),r.push(t)}),r}return i(t,r||[])}function d(e,t,n){var r=t.toJSON(),i=e.parseStyle(r.style);n?(t.find("#borderColor").value(i["border-color"]||"")[0].fire("change"),t.find("#backgroundColor").value(i["background-color"]||"")[0].fire("change")):(i["border-color"]=r.borderColor,i["background-color"]=r.backgroundColor),t.find("#style").value(e.serializeStyle(e.parseStyle(e.serializeStyle(i))))}function f(e,t,n){var r=e.parseStyle(e.getAttrib(n,"style"));r["border-color"]&&(t.borderColor=r["border-color"]),r["background-color"]&&(t.backgroundColor=r["background-color"]),t.style=e.serializeStyle(r)}function h(e,t,r){var i=e.parseStyle(e.getAttrib(t,"style"));n(r,function(e){i[e.name]=e.value}),e.setAttrib(t,"style",e.serializeStyle(e.parseStyle(e.serializeStyle(i))))}var p=this;p.tableProps=function(){p.table(!0)},p.table=function(i){function c(){function n(e,t,r){if("TD"===e.tagName||"TH"===e.tagName)x.setStyle(e,t,r);else if(e.children)for(var i=0;i',m.insertBefore(i,m.firstChild)),l(m),w.align&&r.formatter.apply("align"+w.align,{},m),r.focus(),r.addVisual()})}function p(e,t){function n(e,n){for(var r=0;r1?m={width:"",height:"",scope:"",class:"",align:"",style:"",type:p.nodeName.toLowerCase()}:(m={width:a(v.getStyle(p,"width")||v.getAttrib(p,"width")),height:a(v.getStyle(p,"height")||v.getAttrib(p,"height")),scope:v.getAttrib(p,"scope"),class:v.getAttrib(p,"class")},m.type=p.nodeName.toLowerCase(),n("left center right".split(" "),function(e){r.formatter.matchNode(p,"align"+e)&&(m.align=e)}),n("top middle bottom".split(" "),function(e){r.formatter.matchNode(p,"valign"+e)&&(m.valign=e)}),f(v,m,p)),r.settings.table_cell_class_list&&(g={name:"class",type:"listbox",label:"Class",values:u(r.settings.table_cell_class_list,function(e){e.value&&(e.textStyle=function(){return r.formatter.getCssText({block:"td",classes:[e.value]})})})});var b={type:"form",layout:"flex",direction:"column",labelGapCalc:"children",padding:0,items:[{type:"form",layout:"grid",columns:2,labelGapCalc:!1,padding:0,defaults:{type:"textbox",maxWidth:50},items:[{label:"Width",name:"width"},{label:"Height",name:"height"},{label:"Cell type",name:"type",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"Cell",value:"td"},{text:"Header cell",value:"th"}]},{label:"Scope",name:"scope",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Row",value:"row"},{text:"Column",value:"col"},{text:"Row group",value:"rowgroup"},{text:"Column group",value:"colgroup"}]},{label:"H Align",name:"align",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},{label:"V Align",name:"valign",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Top",value:"top"},{text:"Middle",value:"middle"},{text:"Bottom",value:"bottom"}]}]},g]};r.settings.table_cell_advtab!==!1?r.windowManager.open({title:"Cell properties",bodyType:"tabpanel",data:m,body:[{title:"General",type:"form",items:b},o(v)],onsubmit:h}):r.windowManager.open({title:"Cell properties",data:m,body:b,onsubmit:h})}},p.row=function(){function t(e,t,n){(1===C.length||n)&&b.setAttrib(e,t,n)}function i(e,t,n){(1===C.length||n)&&b.setStyle(e,t,n)}function c(){var o,a,c;d(b,this),v=e.extend(v,this.toJSON()),r.undoManager.transact(function(){var e=v.type;n(C,function(n){t(n,"scope",v.scope),t(n,"style",v.style),t(n,"class",v.class),i(n,"height",s(v.height)),e!==n.parentNode.nodeName.toLowerCase()&&(o=b.getParent(n,"table"),a=n.parentNode,c=b.select(e,o)[0],c||(c=b.create(e),o.firstChild?o.insertBefore(c,o.firstChild):o.appendChild(c)),c.appendChild(n),a.hasChildNodes()||b.remove(a)),1===C.length&&l(n),v.align&&r.formatter.apply("align"+v.align,{},n)}),r.focus()})}var h,p,m,g,v,y,b=r.dom,C=[];h=r.dom.getParent(r.selection.getStart(),"table"),p=r.dom.getParent(r.selection.getStart(),"td,th"),n(h.rows,function(e){n(e.cells,function(t){if(b.getAttrib(t,"data-mce-selected")||t==p)return C.push(e),!1})}),m=C[0],m&&(C.length>1?v={height:"",scope:"",class:"",align:"",type:m.parentNode.nodeName.toLowerCase()}:(v={height:a(b.getStyle(m,"height")||b.getAttrib(m,"height")),scope:b.getAttrib(m,"scope"),class:b.getAttrib(m,"class")},v.type=m.parentNode.nodeName.toLowerCase(),n("left center right".split(" "),function(e){r.formatter.matchNode(m,"align"+e)&&(v.align=e)}),f(b,v,m)),r.settings.table_row_class_list&&(g={name:"class",type:"listbox",label:"Class",values:u(r.settings.table_row_class_list,function(e){e.value&&(e.textStyle=function(){return r.formatter.getCssText({block:"tr",classes:[e.value]})})})}),y={type:"form",columns:2,padding:0,defaults:{type:"textbox"},items:[{type:"listbox",name:"type",label:"Row type",text:"Header",maxWidth:null,values:[{text:"Header",value:"thead"},{text:"Body",value:"tbody"},{text:"Footer",value:"tfoot"}]},{type:"listbox",name:"align",label:"Alignment",text:"None",maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},{label:"Height",name:"height"},g]},r.settings.table_row_advtab!==!1?r.windowManager.open({title:"Row properties",data:v,bodyType:"tabpanel",body:[{title:"General",type:"form",items:y},o(b)],onsubmit:c}):r.windowManager.open({title:"Row properties",data:v,body:y,onsubmit:c}))}}}),r("tinymce/tableplugin/ResizeBars",["tinymce/util/Tools","tinymce/util/VK"],function(e,n){var r;return function(i){function o(e,t){return{index:e,y:i.dom.getPos(t).y}}function a(e,t){return{index:e,y:i.dom.getPos(t).y+t.offsetHeight}}function s(e,t){return{index:e,x:i.dom.getPos(t).x}}function l(e,t){return{index:e,x:i.dom.getPos(t).x+t.offsetWidth}}function c(){var e=i.getBody().dir;return"rtl"===e}function u(){return i.inline}function d(){return u?i.getBody().ownerDocument.body:i.getBody()}function f(e,t){return c()?l(e,t):s(e,t)}function h(e,t){return c()?s(e,t):l(e,t)}function p(e,t){return m(e,"width")/m(t,"width")*100}function m(e,t){var n=i.dom.getStyle(e,t,!0),r=parseInt(n,10);return r}function g(e){var t=m(e,"width"),n=m(e.parentElement,"width");return t/n*100}function v(e,t){var n=m(e,"width");return t/n*100}function y(e,t){var n=m(e.parentElement,"width");return t/n*100}function b(e,t,n){for(var r=[],i=1;i0?b(o,a,r):[],u=s.length>0?b(f,h,s):[];E(c,e.offsetWidth,l),N(u,e.offsetHeight,l)}function D(e,t,n,r){if(t<0||t>=e.length-1)return"";var i=e[t];if(i)i={value:i,delta:0};else for(var o=e.slice(0,t).reverse(),a=0;a0?i:o}function P(t,n,r){for(var i=R(t),o=e.map(i,function(e){return f(e.colIndex,e.element).x}),a=[],s=0;s1?D(o,s):M(i[s].element,n,r);c=c?c:we,a.push(c)}return a}function O(e){var t=L(e,"height"),n=parseInt(t,10);return V(t)&&(n=0),!isNaN(n)&&n>0?n:m(e,"height")}function H(t){for(var n=A(t),r=e.map(n,function(e){return o(e.rowIndex,e.element).y}),i=[],a=0;a1?D(r,a):O(n[a].element); +l=l?l:Ee,i.push(l)}return i}function I(t,n,r,i,o){function a(t){return e.map(t,function(){return 0})}function s(){var e;if(o)e=[100-d[0]];else{var t=Math.max(i,d[0]+r);e=[t-d[0]]}return e}function l(e,t){var n,o=a(d.slice(0,e)),s=a(d.slice(t+1));if(r>=0){var l=Math.max(i,d[t]-r);n=o.concat([r,l-d[t]]).concat(s)}else{var c=Math.max(i,d[e]+r),u=d[e]-c;n=o.concat([c-d[e],u]).concat(s)}return n}function c(e,t){var n,o=a(d.slice(0,t));if(r>=0)n=o.concat([r]);else{var s=Math.max(i,d[t]+r);n=o.concat([s-d[t]])}return n}var u,d=t.slice(0);return u=0===t.length?[]:1===t.length?s():0===n?l(0,1):n>0&&n=1&&q(r,t,e)}else if(ee(ce)){var a=parseInt(i.dom.getAttrib(ce,ge),10),s=i.dom.getPos(ce).y;e=parseInt(i.dom.getAttrib(ce,me),10),t=s-a,Math.abs(t)>=1&&j(r,t,e)}x(r),i.nodeChanged()}}function Q(e,t){le=le?le:K(),se=!0,i.dom.addClass(e,Ne),ce=e,G(le,t),i.dom.add(d(),le)}function Z(e){return i.dom.hasClass(e,ve)}function ee(e){return i.dom.hasClass(e,he)}function te(e){ue=ue!==t?ue:e.clientX;var n=e.clientX-ue;ue=e.clientX;var r=i.dom.getPos(ce).x;i.dom.setStyle(ce,"left",r+n+"px")}function ne(e){de=de!==t?de:e.clientY;var n=e.clientY-de;de=e.clientY;var r=i.dom.getPos(ce).y;i.dom.setStyle(ce,"top",r+n+"px")}function re(e){ue=t,Q(e,te)}function ie(e){de=t,Q(e,ne)}function oe(e){var t=e.target,n=i.getBody();if(i.$.contains(n,r)||r===n)if(Z(t)){e.preventDefault();var o=i.dom.getPos(t).x;i.dom.setAttrib(t,Ce,o),re(t)}else if(ee(t)){e.preventDefault();var a=i.dom.getPos(t).y;i.dom.setAttrib(t,ge,a),ie(t)}else C()}var ae,se,le,ce,ue,de,fe="mce-resize-bar",he="mce-resize-bar-row",pe="row-resize",me="data-row",ge="data-initial-top",ve="mce-resize-bar-col",ye="col-resize",be="data-col",Ce="data-initial-left",xe=4,we=10,Ee=10,Ne="mce-resize-bar-dragging",_e=new RegExp(/(\d+(\.\d+)?%)/),Se=new RegExp(/px|em/);return i.on("init",function(){i.dom.bind(d(),"mousedown",oe)}),i.on("ObjectResized",function(t){var n=t.target;if("TABLE"===n.nodeName){var r=[];e.each(n.rows,function(t){e.each(t.cells,function(e){var t=i.dom.getStyle(e,"width",!0);r.push({cell:e,width:t})})}),e.each(r,function(e){i.dom.setStyle(e.cell,"width",e.width),i.dom.setAttrib(e.cell,"width",null)})}}),i.on("mouseover",function(e){if(!se){var t=i.dom.getParent(e.target,"table");("TABLE"===e.target.nodeName||t)&&(r=t,x(t))}}),i.on("keydown",function(e){switch(e.keyCode){case n.LEFT:case n.RIGHT:case n.UP:case n.DOWN:C()}}),i.on("remove",function(){C(),i.dom.unbind(d(),"mousedown",oe)}),{adjustWidth:q,adjustHeight:j,clearBars:C,drawBars:B,determineDeltas:I,getTableGrid:S,getTableDetails:_,getWidths:P,getPixelHeights:H,isPercentageBasedSize:V,isPixelBasedSize:$,recalculateWidths:z,recalculateCellHeights:U,recalculateRowHeights:W}}}),r("tinymce/tableplugin/Plugin",["tinymce/tableplugin/TableGrid","tinymce/tableplugin/Quirks","tinymce/tableplugin/CellSelection","tinymce/tableplugin/Dialogs","tinymce/tableplugin/ResizeBars","tinymce/util/Tools","tinymce/dom/TreeWalker","tinymce/Env","tinymce/PluginManager"],function(e,t,n,r,i,o,a,s,l){function c(o){function a(e){return function(){o.execCommand(e)}}function l(e,t){var n,r,i,a;for(i='',n=0;n",r=0;r"+(s.ie&&s.ie<10?" ":"
    ")+"";i+=""}return i+="
    ",o.undoManager.transact(function(){o.insertContent(i),a=o.dom.get("__mce"),o.dom.setAttrib(a,"id",null),o.$("tr",a).each(function(e,t){o.fire("newrow",{node:t}),o.$("th,td",t).each(function(e,t){o.fire("newcell",{node:t})})}),o.dom.setAttribs(a,o.settings.table_default_attributes||{}),o.dom.setStyles(a,o.settings.table_default_styles||{})}),a}function c(e,t,n){function r(){var r,i,a,s={},l=0;i=o.dom.select("td[data-mce-selected],th[data-mce-selected]"),r=i[0],r||(r=o.selection.getStart()),n&&i.length>0?(u(i,function(e){return s[e.parentNode.parentNode.nodeName]=1}),u(s,function(e){l+=e}),a=1!==l):a=!o.dom.getParent(r,t),e.disabled(a),o.selection.selectorChanged(t,function(t){e.disabled(!t)})}o.initialized?r():o.on("init",r)}function d(){c(this,"table")}function f(){c(this,"td,th")}function h(){c(this,"td,th",!0)}function p(){var e="";e='';for(var t=0;t<10;t++){e+="";for(var n=0;n<10;n++)e+='';e+=""}return e+="
    ",e+=''}function m(e,t,n){var r,i,a,s,l,c=n.getEl().getElementsByTagName("table")[0],u=n.isRtl()||"tl-tr"==n.parent().rel;for(c.nextSibling.innerHTML=e+1+" x "+(t+1),u&&(e=9-e),i=0;i<10;i++)for(r=0;r<10;r++)s=c.rows[i].childNodes[r].firstChild,l=(u?r>=e:r<=e)&&i<=t,o.dom.toggleClass(s,"mce-active",l),l&&(a=s);return a.parentNode}function g(){o.addButton("tableprops",{title:"Table properties",onclick:N.tableProps,icon:"table"}),o.addButton("tabledelete",{title:"Delete table",onclick:a("mceTableDelete")}),o.addButton("tablecellprops",{title:"Cell properties",onclick:a("mceTableCellProps")}),o.addButton("tablemergecells",{title:"Merge cells",onclick:a("mceTableMergeCells")}),o.addButton("tablesplitcells",{title:"Split cell",onclick:a("mceTableSplitCells")}),o.addButton("tableinsertrowbefore",{title:"Insert row before",onclick:a("mceTableInsertRowBefore")}),o.addButton("tableinsertrowafter",{title:"Insert row after",onclick:a("mceTableInsertRowAfter")}),o.addButton("tabledeleterow",{title:"Delete row",onclick:a("mceTableDeleteRow")}),o.addButton("tablerowprops",{title:"Row properties",onclick:a("mceTableRowProps")}),o.addButton("tablecutrow",{title:"Cut row",onclick:a("mceTableCutRow")}),o.addButton("tablecopyrow",{title:"Copy row",onclick:a("mceTableCopyRow")}),o.addButton("tablepasterowbefore",{title:"Paste row before",onclick:a("mceTablePasteRowBefore")}),o.addButton("tablepasterowafter",{title:"Paste row after",onclick:a("mceTablePasteRowAfter")}),o.addButton("tableinsertcolbefore",{title:"Insert column before",onclick:a("mceTableInsertColBefore")}),o.addButton("tableinsertcolafter",{title:"Insert column after",onclick:a("mceTableInsertColAfter")}),o.addButton("tabledeletecol",{title:"Delete column",onclick:a("mceTableDeleteCol")})}function v(e){var t=o.dom.is(e,"table")&&o.getBody().contains(e);return t}function y(){var e=o.settings.table_toolbar;""!==e&&e!==!1&&(e||(e="tableprops tabledelete | tableinsertrowbefore tableinsertrowafter tabledeleterow | tableinsertcolbefore tableinsertcolafter tabledeletecol"),o.addContextToolbar(v,e))}function b(){return x}function C(e){x=e}var x,w,E=this,N=new r(o);!o.settings.object_resizing||o.settings.table_resize_bars===!1||o.settings.object_resizing!==!0&&"table"!==o.settings.object_resizing||(w=i(o)),o.settings.table_grid===!1?o.addMenuItem("inserttable",{text:"Table",icon:"table",context:"table",onclick:N.table}):o.addMenuItem("inserttable",{text:"Table",icon:"table",context:"table",ariaHideMenu:!0,onclick:function(e){e.aria&&(this.parent().hideAll(),e.stopImmediatePropagation(),N.table())},onshow:function(){m(0,0,this.menu.items()[0])},onhide:function(){var e=this.menu.items()[0].getEl().getElementsByTagName("a");o.dom.removeClass(e,"mce-active"),o.dom.addClass(e[0],"mce-active")},menu:[{type:"container",html:p(),onPostRender:function(){this.lastX=this.lastY=0},onmousemove:function(e){var t,n,r=e.target;"A"==r.tagName.toUpperCase()&&(t=parseInt(r.getAttribute("data-mce-x"),10),n=parseInt(r.getAttribute("data-mce-y"),10),(this.isRtl()||"tl-tr"==this.parent().rel)&&(t=9-t),t===this.lastX&&n===this.lastY||(m(t,n,e.control),this.lastX=t,this.lastY=n))},onclick:function(e){var t=this;"A"==e.target.tagName.toUpperCase()&&(e.preventDefault(),e.stopPropagation(),t.parent().cancel(),o.undoManager.transact(function(){l(t.lastX+1,t.lastY+1)}),o.addVisual())}}]}),o.addMenuItem("tableprops",{text:"Table properties",context:"table",onPostRender:d,onclick:N.tableProps}),o.addMenuItem("deletetable",{text:"Delete table",context:"table",onPostRender:d,cmd:"mceTableDelete"}),o.addMenuItem("cell",{separator:"before",text:"Cell",context:"table",menu:[{text:"Cell properties",onclick:a("mceTableCellProps"),onPostRender:f},{text:"Merge cells",onclick:a("mceTableMergeCells"),onPostRender:h},{text:"Split cell",onclick:a("mceTableSplitCells"),onPostRender:f}]}),o.addMenuItem("row",{text:"Row",context:"table",menu:[{text:"Insert row before",onclick:a("mceTableInsertRowBefore"),onPostRender:f},{text:"Insert row after",onclick:a("mceTableInsertRowAfter"),onPostRender:f},{text:"Delete row",onclick:a("mceTableDeleteRow"),onPostRender:f},{text:"Row properties",onclick:a("mceTableRowProps"),onPostRender:f},{text:"-"},{text:"Cut row",onclick:a("mceTableCutRow"),onPostRender:f},{text:"Copy row",onclick:a("mceTableCopyRow"),onPostRender:f},{text:"Paste row before",onclick:a("mceTablePasteRowBefore"),onPostRender:f},{text:"Paste row after",onclick:a("mceTablePasteRowAfter"),onPostRender:f}]}),o.addMenuItem("column",{text:"Column",context:"table",menu:[{text:"Insert column before",onclick:a("mceTableInsertColBefore"),onPostRender:f},{text:"Insert column after",onclick:a("mceTableInsertColAfter"),onPostRender:f},{text:"Delete column",onclick:a("mceTableDeleteCol"),onPostRender:f}]});var _=[];u("inserttable tableprops deletetable | cell row column".split(" "),function(e){"|"==e?_.push({text:"-"}):_.push(o.menuItems[e])}),o.addButton("table",{type:"menubutton",title:"Table",menu:_}),s.isIE||o.on("click",function(e){e=e.target,"TABLE"===e.nodeName&&(o.selection.select(e),o.nodeChanged())}),E.quirks=new t(o),o.on("Init",function(){E.cellSelection=new n(o,function(e){e&&w&&w.clearBars()}),E.resizeBars=w}),o.on("PreInit",function(){o.serializer.addAttributeFilter("data-mce-cell-padding,data-mce-border,data-mce-border-color",function(e,t){for(var n=e.length;n--;)e[n].attr(t,null)})}),u({mceTableSplitCells:function(e){e.split()},mceTableMergeCells:function(e){var t;t=o.dom.getParent(o.selection.getStart(),"th,td"),o.dom.select("td[data-mce-selected],th[data-mce-selected]").length?e.merge():N.merge(e,t)},mceTableInsertRowBefore:function(e){e.insertRow(!0)},mceTableInsertRowAfter:function(e){e.insertRow()},mceTableInsertColBefore:function(e){e.insertCol(!0)},mceTableInsertColAfter:function(e){e.insertCol()},mceTableDeleteCol:function(e){e.deleteCols()},mceTableDeleteRow:function(e){e.deleteRows()},mceTableCutRow:function(e){x=e.cutRows()},mceTableCopyRow:function(e){x=e.copyRows()},mceTablePasteRowBefore:function(e){e.pasteRows(x,!0)},mceTablePasteRowAfter:function(e){e.pasteRows(x)},mceSplitColsBefore:function(e){e.splitCols(!0)},mceSplitColsAfter:function(e){e.splitCols(!1)},mceTableDelete:function(e){w&&w.clearBars(),e.deleteTable()}},function(t,n){o.addCommand(n,function(){var n=new e(o);n&&(t(n),o.execCommand("mceRepaint"),E.cellSelection.clear())})}),u({mceInsertTable:N.table,mceTableProps:function(){N.table(!0)},mceTableRowProps:N.row,mceTableCellProps:N.cell},function(e,t){o.addCommand(t,function(t,n){e(n)})}),g(),y(),o.settings.table_tab_navigation!==!1&&o.on("keydown",function(t){var n,r,i;9==t.keyCode&&(n=o.dom.getParent(o.selection.getStart(),"th,td"),n&&(t.preventDefault(),r=new e(o),i=t.shiftKey?-1:1,o.undoManager.transact(function(){!r.moveRelIdx(n,i)&&i>0&&(r.insertRow(),r.refresh(),r.moveRelIdx(n,i))})))}),E.insertTable=l,E.setClipboardRows=C,E.getClipboardRows=b}var u=o.each;l.add("table",c)})}(this); \ No newline at end of file diff --git a/data/web/rc/program/js/tinymce/plugins/template/plugin.min.js b/data/web/rc/program/js/tinymce/plugins/template/plugin.min.js new file mode 100644 index 0000000000000000000000000000000000000000..4f5c62cb16f639f6b012ec6227974b4beb4f62a3 --- /dev/null +++ b/data/web/rc/program/js/tinymce/plugins/template/plugin.min.js @@ -0,0 +1 @@ +tinymce.PluginManager.add("template",function(e){function t(t){return function(){var n=e.settings.templates;return"function"==typeof n?void n(t):void("string"==typeof n?tinymce.util.XHR.send({url:n,success:function(e){t(tinymce.util.JSON.parse(e))}}):t(n))}}function n(t){function n(t){function n(t){if(t.indexOf("")==-1){var n="";tinymce.each(e.contentCSS,function(t){n+=''});var i=e.settings.body_class||"";i.indexOf("=")!=-1&&(i=e.getParam("body_class","","hash"),i=i[e.id]||""),t=""+n+''+t+""}t=o(t,"template_preview_replace_values");var a=r.find("iframe")[0].getEl().contentWindow.document;a.open(),a.write(t),a.close()}var a=t.control.value();a.url?tinymce.util.XHR.send({url:a.url,success:function(e){i=e,n(i)}}):(i=a.content,n(i)),r.find("#description")[0].text(t.control.value().description)}var r,i,s=[];if(!t||0===t.length){var l=e.translate("No templates defined.");return void e.notificationManager.open({text:l,type:"info"})}tinymce.each(t,function(e){s.push({selected:!s.length,text:e.title,value:{url:e.url,content:e.content,description:e.description}})}),r=e.windowManager.open({title:"Insert template",layout:"flex",direction:"column",align:"stretch",padding:15,spacing:10,items:[{type:"form",flex:0,padding:0,items:[{type:"container",label:"Templates",items:{type:"listbox",label:"Templates",name:"template",values:s,onselect:n}}]},{type:"label",name:"description",label:"Description",text:"\xa0"},{type:"iframe",flex:1,border:1}],onsubmit:function(){a(!1,i)},minWidth:Math.min(tinymce.DOM.getViewPort().w,e.getParam("template_popup_width",600)),minHeight:Math.min(tinymce.DOM.getViewPort().h,e.getParam("template_popup_height",500))}),r.find("listbox")[0].fire("select")}function r(t,n){function r(e,t){if(e=""+e,e.length0&&(l=u.create("div",null),l.appendChild(c[0].cloneNode(!0))),s(u.select("*",l),function(t){a(t,e.getParam("template_cdate_classes","cdate").replace(/\s+/g,"|"))&&(t.innerHTML=r(e.getParam("template_cdate_format",e.getLang("template.cdate_format")))),a(t,e.getParam("template_mdate_classes","mdate").replace(/\s+/g,"|"))&&(t.innerHTML=r(e.getParam("template_mdate_format",e.getLang("template.mdate_format")))),a(t,e.getParam("template_selected_content_classes","selcontent").replace(/\s+/g,"|"))&&(t.innerHTML=d)}),i(l),e.execCommand("mceInsertContent",!1,l.innerHTML),e.addVisual()}var s=tinymce.each;e.addCommand("mceInsertTemplate",a),e.addButton("template",{title:"Insert template",onclick:t(n)}),e.addMenuItem("template",{text:"Template",onclick:t(n),context:"insert"}),e.on("PreProcess",function(t){var n=e.dom;s(n.select("div",t.node),function(t){n.hasClass(t,"mceTmpl")&&(s(n.select("*",t),function(t){n.hasClass(t,e.getParam("template_mdate_classes","mdate").replace(/\s+/g,"|"))&&(t.innerHTML=r(e.getParam("template_mdate_format",e.getLang("template.mdate_format"))))}),i(t))})})}); \ No newline at end of file diff --git a/data/web/rc/program/js/tinymce/plugins/textcolor/plugin.min.js b/data/web/rc/program/js/tinymce/plugins/textcolor/plugin.min.js new file mode 100644 index 0000000000000000000000000000000000000000..938d1e05315d045d1a45810e5e48b384cb084e7c --- /dev/null +++ b/data/web/rc/program/js/tinymce/plugins/textcolor/plugin.min.js @@ -0,0 +1 @@ +tinymce.PluginManager.add("textcolor",function(e){function t(t){var n;return e.dom.getParents(e.selection.getStart(),function(e){var r;(r=e.style["forecolor"==t?"color":"background-color"])&&(n=r)}),n}function n(t){var n,r,i=[];for(r=["000000","Black","993300","Burnt orange","333300","Dark olive","003300","Dark green","003366","Dark azure","000080","Navy Blue","333399","Indigo","333333","Very dark gray","800000","Maroon","FF6600","Orange","808000","Olive","008000","Green","008080","Teal","0000FF","Blue","666699","Grayish blue","808080","Gray","FF0000","Red","FF9900","Amber","99CC00","Yellow green","339966","Sea green","33CCCC","Turquoise","3366FF","Royal blue","800080","Purple","999999","Medium gray","FF00FF","Magenta","FFCC00","Gold","FFFF00","Yellow","00FF00","Lime","00FFFF","Aqua","00CCFF","Sky blue","993366","Red violet","FFFFFF","White","FF99CC","Pink","FFCC99","Peach","FFFF99","Light yellow","CCFFCC","Pale green","CCFFFF","Pale cyan","99CCFF","Light sky blue","CC99FF","Plum"],r=e.settings.textcolor_map||r,r=e.settings[t+"_map"]||r,n=0;n
    '+(n?"×":"")+"
    "}var r,i,o,a,s,u,d,f,h=this,p=h._id,m=0;for(f=h.settings.origin,r=n(f),r.push({text:tinymce.translate("No color"),color:"transparent"}),o='',a=r.length-1,u=0;u",s=0;sa?o+="":(i=r[d],o+=t(i.color,i.text));o+=""}if(e.settings.color_picker_callback){for(o+='",o+="",s=0;st.start.length?-1:e.start.length',i="";return r+e.dom.encode(n)+i}function c(e){var t=u(e);return'
    '+t+"
    "}function u(e){var t,n,r,i,o="",c=a(e),u=s(c)-1;if(!c.length)return"";for(o+=l(e.headerTag,tinymce.translate("Table of Contents")),t=0;t";else for(n=u;n
  • ";if(o+=''+r.title+"",i!==r.level&&i)for(n=r.level;n>i;n--)o+="
  • ";else o+="
  • ",i||(o+="");u=r.level}return o}var d,f=e.$,h={depth:3,headerTag:"h2",className:"mce-toc"},p=function(e){var t=0;return function(){var n=(new Date).getTime().toString(32);return e+n+(t++).toString(32)}},m=p("mcetoc_");e.on("PreInit",function(){var n=e.settings,r=parseInt(n.toc_depth,10)||0;d={depth:r>=1&&r<=9?r:h.depth,headerTag:t(n.toc_header)?n.toc_header:h.headerTag,className:n.toc_class?e.dom.encode(n.toc_class):h.className}}),e.on("PreProcess",function(e){var t=f("."+d.className,e.node);t.length&&(t.removeAttr("contentEditable"),t.find("[contenteditable]").removeAttr("contentEditable"))}),e.on("SetContent",function(){var e=f("."+d.className);e.length&&(e.attr("contentEditable",!1),e.children(":first-child").attr("contentEditable",!0))});var g=function(t){return!t.length||e.dom.getParents(t[0],".mce-offscreen-selection").length>0};e.addCommand("mceInsertToc",function(){var t=f("."+d.className);g(t)?e.insertContent(c(d)):e.execCommand("mceUpdateToc")}),e.addCommand("mceUpdateToc",function(){var t=f("."+d.className);t.length&&e.undoManager.transact(function(){t.html(u(d))})}),e.addButton("toc",{tooltip:"Table of Contents",cmd:"mceInsertToc",icon:"toc",onPostRender:r}),e.addButton("tocupdate",{tooltip:"Update",cmd:"mceUpdateToc",icon:"reload"}),e.addContextToolbar(n,"tocupdate"),e.addMenuItem("toc",{text:"Table of Contents",context:"insert",cmd:"mceInsertToc",onPostRender:r})}); \ No newline at end of file diff --git a/data/web/rc/program/js/tinymce/plugins/visualblocks/css/visualblocks.css b/data/web/rc/program/js/tinymce/plugins/visualblocks/css/visualblocks.css new file mode 100644 index 0000000000000000000000000000000000000000..1a270892aab22196b30460aca9e6db9a5b27983c --- /dev/null +++ b/data/web/rc/program/js/tinymce/plugins/visualblocks/css/visualblocks.css @@ -0,0 +1,135 @@ +.mce-visualblocks p { + padding-top: 10px; + border: 1px dashed #BBB; + margin-left: 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7); +} + +.mce-visualblocks h1 { + padding-top: 10px; + border: 1px dashed #BBB; + margin-left: 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==); +} + +.mce-visualblocks h2 { + padding-top: 10px; + border: 1px dashed #BBB; + margin-left: 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==); +} + +.mce-visualblocks h3 { + padding-top: 10px; + border: 1px dashed #BBB; + margin-left: 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7); +} + +.mce-visualblocks h4 { + padding-top: 10px; + border: 1px dashed #BBB; + margin-left: 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==); +} + +.mce-visualblocks h5 { + padding-top: 10px; + border: 1px dashed #BBB; + margin-left: 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==); +} + +.mce-visualblocks h6 { + padding-top: 10px; + border: 1px dashed #BBB; + margin-left: 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==); +} + +.mce-visualblocks div:not([data-mce-bogus]) { + padding-top: 10px; + border: 1px dashed #BBB; + margin-left: 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7); +} + +.mce-visualblocks section { + padding-top: 10px; + border: 1px dashed #BBB; + margin: 0 0 1em 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=); +} + +.mce-visualblocks article { + padding-top: 10px; + border: 1px dashed #BBB; + margin: 0 0 1em 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7); +} + +.mce-visualblocks blockquote { + padding-top: 10px; + border: 1px dashed #BBB; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7); +} + +.mce-visualblocks address { + padding-top: 10px; + border: 1px dashed #BBB; + margin: 0 0 1em 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=); +} + +.mce-visualblocks pre { + padding-top: 10px; + border: 1px dashed #BBB; + margin-left: 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==); +} + +.mce-visualblocks figure { + padding-top: 10px; + border: 1px dashed #BBB; + margin: 0 0 1em 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7); +} + +.mce-visualblocks hgroup { + padding-top: 10px; + border: 1px dashed #BBB; + margin: 0 0 1em 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7); +} + +.mce-visualblocks aside { + padding-top: 10px; + border: 1px dashed #BBB; + margin: 0 0 1em 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=); +} + +.mce-visualblocks figcaption { + border: 1px dashed #BBB; +} + +.mce-visualblocks ul { + padding-top: 10px; + border: 1px dashed #BBB; + margin: 0 0 1em 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==) +} + +.mce-visualblocks ol { + padding-top: 10px; + border: 1px dashed #BBB; + margin: 0 0 1em 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==); +} + +.mce-visualblocks dl { + padding-top: 10px; + border: 1px dashed #BBB; + margin: 0 0 1em 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==); +} diff --git a/data/web/rc/program/js/tinymce/plugins/visualblocks/plugin.min.js b/data/web/rc/program/js/tinymce/plugins/visualblocks/plugin.min.js new file mode 100644 index 0000000000000000000000000000000000000000..e5810f455b8fc2bf8e2accce1a23983d1b3774c7 --- /dev/null +++ b/data/web/rc/program/js/tinymce/plugins/visualblocks/plugin.min.js @@ -0,0 +1 @@ +tinymce.PluginManager.add("visualblocks",function(e,t){function n(){var t=this;t.active(o),e.on("VisualBlocks",function(){t.active(e.dom.hasClass(e.getBody(),"mce-visualblocks"))})}var r,i,o;window.NodeList&&(e.addCommand("mceVisualBlocks",function(){var n,a=e.dom;r||(r=a.uniqueId(),n=a.create("link",{id:r,rel:"stylesheet",href:t+"/css/visualblocks.css"}),e.getDoc().getElementsByTagName("head")[0].appendChild(n)),e.on("PreviewFormats AfterPreviewFormats",function(t){o&&a.toggleClass(e.getBody(),"mce-visualblocks","afterpreviewformats"==t.type)}),a.toggleClass(e.getBody(),"mce-visualblocks"),o=e.dom.hasClass(e.getBody(),"mce-visualblocks"),i&&i.active(a.hasClass(e.getBody(),"mce-visualblocks")),e.fire("VisualBlocks")}),e.addButton("visualblocks",{title:"Show blocks",cmd:"mceVisualBlocks",onPostRender:n}),e.addMenuItem("visualblocks",{text:"Show blocks",cmd:"mceVisualBlocks",onPostRender:n,selectable:!0,context:"view",prependToContext:!0}),e.on("init",function(){e.settings.visualblocks_default_state&&e.execCommand("mceVisualBlocks",!1,null,{skip_focus:!0})}),e.on("remove",function(){e.dom.removeClass(e.getBody(),"mce-visualblocks")}))}); \ No newline at end of file diff --git a/data/web/rc/program/js/tinymce/plugins/visualchars/plugin.min.js b/data/web/rc/program/js/tinymce/plugins/visualchars/plugin.min.js new file mode 100644 index 0000000000000000000000000000000000000000..599db8be248310ebe36518791a0cae1c7eedd321 --- /dev/null +++ b/data/web/rc/program/js/tinymce/plugins/visualchars/plugin.min.js @@ -0,0 +1 @@ +tinymce.PluginManager.add("visualchars",function(e){function t(t){function n(e){return''+e+""}function o(){var e,t="";for(e in h)t+=e;return new RegExp("["+t+"]","g")}function a(){var e,t="";for(e in h)t&&(t+=","),t+="span.mce-"+h[e];return t}var s,l,c,u,d,f,h,p,m=e.getBody(),g=e.selection;if(h={"\xa0":"nbsp","\xad":"shy"},r=!r,i.state=r,e.fire("VisualChars",{state:r}),p=o(),t&&(f=g.getBookmark()),r)for(l=[],tinymce.walk(m,function(e){3==e.nodeType&&e.nodeValue&&p.test(e.nodeValue)&&l.push(e)},"childNodes"),c=0;c=0;c--)e.dom.remove(l[c],1);g.moveToBookmark(f)}function n(){var t=this;e.on("VisualChars",function(e){t.active(e.state)})}var r,i=this;e.addCommand("mceVisualChars",t),e.addButton("visualchars",{title:"Show invisible characters",cmd:"mceVisualChars",onPostRender:n}),e.addMenuItem("visualchars",{text:"Show invisible characters",cmd:"mceVisualChars",onPostRender:n,selectable:!0,context:"view",prependToContext:!0})}); \ No newline at end of file diff --git a/data/web/rc/program/js/tinymce/plugins/wordcount/plugin.min.js b/data/web/rc/program/js/tinymce/plugins/wordcount/plugin.min.js new file mode 100644 index 0000000000000000000000000000000000000000..34400c430b81c1665347937d543016d7b00098bc --- /dev/null +++ b/data/web/rc/program/js/tinymce/plugins/wordcount/plugin.min.js @@ -0,0 +1 @@ +!function(){var e={},t=function(t){for(var n=e[t],i=n.deps,o=n.defn,a=i.length,s=new Array(a),l=0;le.length-1&&0!==n)&&((o!==t.ALETTER||a!==t.ALETTER)&&(i=e[n+2],(o!==t.ALETTER||a!==t.MIDLETTER&&a!==t.MIDNUMLET||i!==t.ALETTER)&&(r=e[n-1],(o!==t.MIDLETTER&&o!==t.MIDNUMLET||a!==t.ALETTER||r!==t.ALETTER)&&((o!==t.NUMERIC&&o!==t.ALETTER||a!==t.NUMERIC&&a!==t.ALETTER)&&((o!==t.MIDNUM&&o!==t.MIDNUMLET||a!==t.NUMERIC||r!==t.NUMERIC)&&((o!==t.NUMERIC||a!==t.MIDNUM&&a!==t.MIDNUMLET||i!==t.NUMERIC)&&(o!==t.EXTEND&&o!==t.FORMAT&&r!==t.EXTEND&&r!==t.FORMAT&&a!==t.EXTEND&&a!==t.FORMAT&&((o!==t.CR||a!==t.LF)&&(o===t.NEWLINE||o===t.CR||o===t.LF||(a===t.NEWLINE||a===t.CR||a===t.LF||(o!==t.KATAKANA||a!==t.KATAKANA)&&((a!==t.EXTENDNUMLET||o!==t.ALETTER&&o!==t.NUMERIC&&o!==t.KATAKANA&&o!==t.EXTENDNUMLET)&&(o!==t.EXTENDNUMLET||a!==t.ALETTER&&a!==t.NUMERIC&&a!==t.KATAKANA))))))))))))};return{isWordBoundary:n}}),a("3",["4","5","6"],function(e,t,n){var r=e.EMPTY_STRING,i=e.WHITESPACE,o=e.PUNCTUATION,a=function(e,a){var s,l,c,u=0,d=t.classify(e),f=d.length,h=[],p=[];for(a||(a={}),a.ignoreCase&&(e=e.toLowerCase()),l=a.includePunctuation,c=a.includeWhitespace;u .@{prefix}-container-body { + margin-top: -15px; +} + +.@{prefix}-fieldset-title { + margin-left: 5px; + padding: 0 5px 0 5px; +} \ No newline at end of file diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/FitLayout.less b/data/web/rc/program/js/tinymce/skins/lightgray/FitLayout.less new file mode 100644 index 0000000000000000000000000000000000000000..8aa413a7d088a9bca2f5ce647a674def363c12c3 --- /dev/null +++ b/data/web/rc/program/js/tinymce/skins/lightgray/FitLayout.less @@ -0,0 +1,9 @@ +// FitLayout + +.@{prefix}-fit-layout { + .inline-block(); +} + +.@{prefix}-fit-layout-item { + position: absolute; +} diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/FloatPanel.less b/data/web/rc/program/js/tinymce/skins/lightgray/FloatPanel.less new file mode 100644 index 0000000000000000000000000000000000000000..b2cf28f1694e75b942a0e1419403b506c97d557e --- /dev/null +++ b/data/web/rc/program/js/tinymce/skins/lightgray/FloatPanel.less @@ -0,0 +1,69 @@ +// FloatPanel + +.@{prefix}-floatpanel { + position: absolute; + .box-shadow(@floatpanel-box-shadow); +} + +.@{prefix}-floatpanel.@{prefix}-fixed { + position: fixed; +} + +// Popover panel + +.@{prefix}-floatpanel .@{prefix}-arrow, +.@{prefix}-floatpanel .@{prefix}-arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.@{prefix}-floatpanel .@{prefix}-arrow { + border-width: @popover-arrow-outer-width; +} + +.@{prefix}-floatpanel .@{prefix}-arrow:after { + border-width: @popover-arrow-width; + content: ""; +} + +.@{prefix}-floatpanel.@{prefix}-popover { + .reset-gradient(); + .border-radius(6px); + .box-shadow(@floatpanel-box-shadow); + top: 0; + left: 0; + background: @popover-bg; + border: 1px solid @panel-border; + border: 1px solid @popover-arrow-outer; + + &.@{prefix}-bottom { + margin-top: @popover-arrow-width; + *margin-top: 0; + + & > .@{prefix}-arrow { + left: 50%; + margin-left: -@popover-arrow-outer-width; + border-top-width: 0; + border-bottom-color: @panel-border; + border-bottom-color: @popover-arrow-outer; + top: -@popover-arrow-outer-width; + + &:after { + top: 1px; + margin-left: -@popover-arrow-width; + border-top-width: 0; + border-bottom-color: @popover-arrow; + } + } + + &.@{prefix}-start { margin-left: -22px; } + &.@{prefix}-start > .@{prefix}-arrow { left: 20px; } + + &.@{prefix}-end { margin-left: 22px; } + &.@{prefix}-end > .@{prefix}-arrow { right: 10px; left: auto; } + } +} \ No newline at end of file diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/FlowLayout.less b/data/web/rc/program/js/tinymce/skins/lightgray/FlowLayout.less new file mode 100644 index 0000000000000000000000000000000000000000..ea8fe62d1e421f20b24f764d340feae3ac0d6479 --- /dev/null +++ b/data/web/rc/program/js/tinymce/skins/lightgray/FlowLayout.less @@ -0,0 +1,36 @@ +// FlowLayout + +.@{prefix}-flow-layout-item { + .inline-block(); +} + +.@{prefix}-flow-layout-item { + margin: @flow-layout-spacing 0 @flow-layout-spacing @flow-layout-spacing; +} + +.@{prefix}-flow-layout-item.@{prefix}-last { + margin-right: @flow-layout-spacing; +} + +.@{prefix}-flow-layout { + white-space: normal; +} + +.@{prefix}-tinymce-inline .@{prefix}-flow-layout { + white-space: nowrap; +} + +// RTL + +.@{prefix}-rtl .@{prefix}-flow-layout { + text-align: right; + direction: rtl; +} + +.@{prefix}-rtl .@{prefix}-flow-layout-item { + margin: @flow-layout-spacing @flow-layout-spacing @flow-layout-spacing 0; +} + +.@{prefix}-rtl .@{prefix}-flow-layout-item.@{prefix}-last { + margin-left: @flow-layout-spacing; +} diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/Icons.Ie7.less b/data/web/rc/program/js/tinymce/skins/lightgray/Icons.Ie7.less new file mode 100644 index 0000000000000000000000000000000000000000..f0b1957a0129413fa35738f69e5102e85a81d094 --- /dev/null +++ b/data/web/rc/program/js/tinymce/skins/lightgray/Icons.Ie7.less @@ -0,0 +1,136 @@ +/* Icons IE7 */ + +@font-face { + font-family: 'tinymce'; + src:url('fonts/tinymce.eot'); + src:url('fonts/tinymce.eot?#iefix') format('embedded-opentype'), + url('fonts/tinymce.woff') format('woff'), + url('fonts/tinymce.ttf') format('truetype'), + url('fonts/tinymce.svg#tinymce') format('svg'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'tinymce-small'; + src:url('fonts/tinymce-small.eot'); + src:url('fonts/tinymce-small.eot?#iefix') format('embedded-opentype'), + url('fonts/tinymce-small.woff') format('woff'), + url('fonts/tinymce-small.ttf') format('truetype'), + url('fonts/tinymce-small.svg#tinymce') format('svg'); + font-weight: normal; + font-style: normal; +} + +@iconSize: 16px; + +.@{prefix}-ico { + font-family: 'tinymce'; + font-style: normal; + font-weight: normal; + font-size: @iconSize; + line-height: 16px; + vertical-align: text-top; + -webkit-font-smoothing: antialiased; + + display: inline-block; + background: transparent center center; + width: 16px; + height: 16px; + color: @btn-text; + -ie7-icon: ' '; +} + +.@{prefix}-btn-small .@{prefix}-ico { + font-family: 'tinymce-small'; +} + +// .@{prefix}-i-checkbox needs to have zoom overridden since it's set by the gradient mixin +.@{prefix}-ico, i.@{prefix}-i-checkbox { + zoom: ~"expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = this.currentStyle['-ie7-icon'].substr(1, 1) + ' ')"; +} + +.@{prefix}-i-save { -ie7-icon: "\e000"; } +.@{prefix}-i-newdocument { -ie7-icon: "\e001"; } +.@{prefix}-i-fullpage { -ie7-icon: "\e002"; } +.@{prefix}-i-alignleft { -ie7-icon: "\e003"; } +.@{prefix}-i-aligncenter { -ie7-icon: "\e004"; } +.@{prefix}-i-alignright { -ie7-icon: "\e005"; } +.@{prefix}-i-alignjustify { -ie7-icon: "\e006"; } +.@{prefix}-i-alignnone { -ie7-icon: "\e003"; } +.@{prefix}-i-cut { -ie7-icon: "\e007"; } +.@{prefix}-i-paste { -ie7-icon: "\e008"; } +.@{prefix}-i-searchreplace { -ie7-icon: "\e009"; } +.@{prefix}-i-bullist { -ie7-icon: "\e00a"; } +.@{prefix}-i-numlist { -ie7-icon: "\e00b"; } +.@{prefix}-i-indent { -ie7-icon: "\e00c"; } +.@{prefix}-i-outdent { -ie7-icon: "\e00d"; } +.@{prefix}-i-blockquote { -ie7-icon: "\e00e"; } +.@{prefix}-i-undo { -ie7-icon: "\e00f"; } +.@{prefix}-i-redo { -ie7-icon: "\e010"; } +.@{prefix}-i-link { -ie7-icon: "\e011"; } +.@{prefix}-i-unlink { -ie7-icon: "\e012"; } +.@{prefix}-i-anchor { -ie7-icon: "\e013"; } +.@{prefix}-i-image { -ie7-icon: "\e014"; } +.@{prefix}-i-media { -ie7-icon: "\e015"; } +.@{prefix}-i-help { -ie7-icon: "\e016"; } +.@{prefix}-i-code { -ie7-icon: "\e017"; } +.@{prefix}-i-insertdatetime { -ie7-icon: "\e018"; } +.@{prefix}-i-preview { -ie7-icon: "\e019"; } +.@{prefix}-i-forecolor { -ie7-icon: "\e01a"; } +.@{prefix}-i-backcolor { -ie7-icon: "\e01a"; } +.@{prefix}-i-table { -ie7-icon: "\e01b"; } +.@{prefix}-i-hr { -ie7-icon: "\e01c"; } +.@{prefix}-i-removeformat { -ie7-icon: "\e01d"; } +.@{prefix}-i-subscript { -ie7-icon: "\e01e"; } +.@{prefix}-i-superscript { -ie7-icon: "\e01f"; } +.@{prefix}-i-charmap { -ie7-icon: "\e020"; } +.@{prefix}-i-emoticons { -ie7-icon: "\e021"; } +.@{prefix}-i-print { -ie7-icon: "\e022"; } +.@{prefix}-i-fullscreen { -ie7-icon: "\e023"; } +.@{prefix}-i-spellchecker { -ie7-icon: "\e024"; } +.@{prefix}-i-nonbreaking { -ie7-icon: "\e025"; } +.@{prefix}-i-template { -ie7-icon: "\e026"; } +.@{prefix}-i-pagebreak { -ie7-icon: "\e027"; } +.@{prefix}-i-restoredraft { -ie7-icon: "\e028"; } +.@{prefix}-i-untitled { -ie7-icon: "\e029"; } +.@{prefix}-i-bold { -ie7-icon: "\e02a"; } +.@{prefix}-i-italic { -ie7-icon: "\e02b"; } +.@{prefix}-i-underline { -ie7-icon: "\e02c"; } +.@{prefix}-i-strikethrough { -ie7-icon: "\e02d"; } +.@{prefix}-i-visualchars { -ie7-icon: "\e02e"; } +.@{prefix}-i-ltr { -ie7-icon: "\e02f"; } +.@{prefix}-i-rtl { -ie7-icon: "\e030"; } +.@{prefix}-i-copy { -ie7-icon: "\e031"; } +.@{prefix}-i-resize { -ie7-icon: "\e032"; } +.@{prefix}-i-browse { -ie7-icon: "\e034"; } +.@{prefix}-i-pastetext { -ie7-icon: "\e035"; } +.@{prefix}-i-rotateleft { -ie7-icon: "\eaa8"; } +.@{prefix}-i-rotateright { -ie7-icon: "\eaa9"; } +.@{prefix}-i-crop { -ie7-icon: "\ee78"; } +.@{prefix}-i-editimage { -ie7-icon: "\e914"; } +.@{prefix}-i-options { -ie7-icon: "\ec6a"; } +.@{prefix}-i-flipv { -ie7-icon: "\eaaa"; } +.@{prefix}-i-fliph { -ie7-icon: "\eaac"; } +.@{prefix}-i-zoomin { -ie7-icon: "\eb35"; } +.@{prefix}-i-zoomout { -ie7-icon: "\eb36"; } +.@{prefix}-i-sun { -ie7-icon: "\eccc"; } +.@{prefix}-i-moon { -ie7-icon: "\eccd"; } +.@{prefix}-i-arrowleft { -ie7-icon: "\edc0"; } +.@{prefix}-i-arrowright { -ie7-icon: "\edb8"; } +.@{prefix}-i-drop { -ie7-icon: "\e934"; } +.@{prefix}-i-contrast { -ie7-icon: "\ecd4"; } +.@{prefix}-i-sharpen { -ie7-icon: "\eba7"; } +.@{prefix}-i-palette { -ie7-icon: "\e92a"; } +.@{prefix}-i-resize2 { -ie7-icon: "\edf9"; } +.@{prefix}-i-orientation { -ie7-icon: "\e601"; } +.@{prefix}-i-invert { -ie7-icon: "\e602"; } +.@{prefix}-i-gamma { -ie7-icon: "\e600"; } +.@{prefix}-i-remove { -ie7-icon: "\ed6a"; } +.@{prefix}-i-codesample { -ie7-icon: "\e603"; } +.@{prefix}-i-checkbox, .@{prefix}-i-selected { + -ie7-icon: "\e033"; +} + +.@{prefix}-i-selected { visibility: hidden; } +.@{prefix}-i-backcolor { background: #BBB; } diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/Icons.less b/data/web/rc/program/js/tinymce/skins/lightgray/Icons.less new file mode 100644 index 0000000000000000000000000000000000000000..19b0c6c92b1ce4e4b9422282aef643fafc69d629 --- /dev/null +++ b/data/web/rc/program/js/tinymce/skins/lightgray/Icons.less @@ -0,0 +1,182 @@ +/* Icons */ + +@font-face { + font-family: 'tinymce'; + src:url('fonts/tinymce.eot'); + src:url('fonts/tinymce.eot?#iefix') format('embedded-opentype'), + url('fonts/tinymce.woff') format('woff'), + url('fonts/tinymce.ttf') format('truetype'), + url('fonts/tinymce.svg#tinymce') format('svg'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'tinymce-small'; + src:url('fonts/tinymce-small.eot'); + src:url('fonts/tinymce-small.eot?#iefix') format('embedded-opentype'), + url('fonts/tinymce-small.woff') format('woff'), + url('fonts/tinymce-small.ttf') format('truetype'), + url('fonts/tinymce-small.svg#tinymce') format('svg'); + font-weight: normal; + font-style: normal; +} + +@iconSize: 16px; + +.@{prefix}-ico { + font-family: 'tinymce', Arial; + font-style: normal; + font-weight: normal; + font-variant: normal; + font-size: @iconSize; + line-height: 16px; + speak: none; + vertical-align: text-top; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + + display: inline-block; + background: transparent center center; + background-size: cover; + width: 16px; + height: 16px; + color: @btn-text; +} + +.@{prefix}-btn-small .@{prefix}-ico { + font-family: 'tinymce-small', Arial; +} + +.@{prefix}-i-save:before { content: "\e000"; } +.@{prefix}-i-newdocument:before { content: "\e001"; } +.@{prefix}-i-fullpage:before { content: "\e002"; } +.@{prefix}-i-alignleft:before { content: "\e003"; } +.@{prefix}-i-aligncenter:before { content: "\e004"; } +.@{prefix}-i-alignright:before { content: "\e005"; } +.@{prefix}-i-alignjustify:before { content: "\e006"; } +.@{prefix}-i-alignnone:before { content: "\e003"; } +.@{prefix}-i-cut:before { content: "\e007"; } +.@{prefix}-i-paste:before { content: "\e008"; } +.@{prefix}-i-searchreplace:before { content: "\e009"; } +.@{prefix}-i-bullist:before { content: "\e00a"; } +.@{prefix}-i-numlist:before { content: "\e00b"; } +.@{prefix}-i-indent:before { content: "\e00c"; } +.@{prefix}-i-outdent:before { content: "\e00d"; } +.@{prefix}-i-blockquote:before { content: "\e00e"; } +.@{prefix}-i-undo:before { content: "\e00f"; } +.@{prefix}-i-redo:before { content: "\e010"; } +.@{prefix}-i-link:before { content: "\e011"; } +.@{prefix}-i-unlink:before { content: "\e012"; } +.@{prefix}-i-anchor:before { content: "\e013"; } +.@{prefix}-i-image:before { content: "\e014"; } +.@{prefix}-i-media:before { content: "\e015"; } +.@{prefix}-i-help:before { content: "\e016"; } +.@{prefix}-i-code:before { content: "\e017"; } +.@{prefix}-i-insertdatetime:before { content: "\e018"; } +.@{prefix}-i-preview:before { content: "\e019"; } +.@{prefix}-i-forecolor:before { content: "\e01a"; } +.@{prefix}-i-backcolor:before { content: "\e01a"; } +.@{prefix}-i-table:before { content: "\e01b"; } +.@{prefix}-i-hr:before { content: "\e01c"; } +.@{prefix}-i-removeformat:before { content: "\e01d"; } +.@{prefix}-i-subscript:before { content: "\e01e"; } +.@{prefix}-i-superscript:before { content: "\e01f"; } +.@{prefix}-i-charmap:before { content: "\e020"; } +.@{prefix}-i-emoticons:before { content: "\e021"; } +.@{prefix}-i-print:before { content: "\e022"; } +.@{prefix}-i-fullscreen:before { content: "\e023"; } +.@{prefix}-i-spellchecker:before { content: "\e024"; } +.@{prefix}-i-nonbreaking:before { content: "\e025"; } +.@{prefix}-i-template:before { content: "\e026"; } +.@{prefix}-i-pagebreak:before { content: "\e027"; } +.@{prefix}-i-restoredraft:before { content: "\e028"; } +.@{prefix}-i-bold:before { content: "\e02a"; } +.@{prefix}-i-italic:before { content: "\e02b"; } +.@{prefix}-i-underline:before { content: "\e02c"; } +.@{prefix}-i-strikethrough:before { content: "\e02d"; } +.@{prefix}-i-visualchars:before { content: "\e02e"; } +.@{prefix}-i-visualblocks:before { content: "\e02e"; } +.@{prefix}-i-ltr:before { content: "\e02f"; } +.@{prefix}-i-rtl:before { content: "\e030"; } +.@{prefix}-i-copy:before { content: "\e031"; } +.@{prefix}-i-resize:before { content: "\e032"; } +.@{prefix}-i-browse:before { content: "\e034"; } +.@{prefix}-i-pastetext:before { content: "\e035"; } +.@{prefix}-i-rotateleft:before { content: "\eaa8"; } +.@{prefix}-i-rotateright:before { content: "\eaa9"; } +.@{prefix}-i-crop:before { content: "\ee78"; } +.@{prefix}-i-editimage:before { content: "\e915"; } +.@{prefix}-i-options:before { content: "\ec6a"; } +.@{prefix}-i-flipv:before { content: "\eaaa"; } +.@{prefix}-i-fliph:before { content: "\eaac"; } +.@{prefix}-i-zoomin:before { content: "\eb35"; } +.@{prefix}-i-zoomout:before { content: "\eb36"; } +.@{prefix}-i-sun:before { content: "\eccc"; } +.@{prefix}-i-moon:before { content: "\eccd"; } +.@{prefix}-i-arrowleft:before { content: "\edc0"; } +.@{prefix}-i-arrowright:before { content: "\e93c"; } +.@{prefix}-i-drop:before { content: "\e935"; } +.@{prefix}-i-contrast:before { content: "\ecd4"; } +.@{prefix}-i-sharpen:before { content: "\eba7"; } +.@{prefix}-i-resize2:before { content: "\edf9"; } +.@{prefix}-i-orientation:before { content: "\e601"; } +.@{prefix}-i-invert:before { content: "\e602"; } +.@{prefix}-i-gamma:before { content: "\e600"; } +.@{prefix}-i-remove:before { content: "\ed6a"; } +.@{prefix}-i-tablerowprops:before { content: "\e604"; } +.@{prefix}-i-tablecellprops:before { content: "\e605"; } +.@{prefix}-i-table2:before { content: "\e606"; } +.@{prefix}-i-tablemergecells:before { content: "\e607"; } +.@{prefix}-i-tableinsertcolbefore:before { content: "\e608"; } +.@{prefix}-i-tableinsertcolafter:before { content: "\e609"; } +.@{prefix}-i-tableinsertrowbefore:before { content: "\e60a"; } +.@{prefix}-i-tableinsertrowafter:before { content: "\e60b"; } +.@{prefix}-i-tablesplitcells:before { content: "\e60d"; } +.@{prefix}-i-tabledelete:before { content: "\e60e"; } +.@{prefix}-i-tableleftheader:before { content: "\e62a"; } +.@{prefix}-i-tabletopheader:before { content: "\e62b"; } +.@{prefix}-i-tabledeleterow:before { content: "\e800"; } +.@{prefix}-i-tabledeletecol:before { content: "\e801"; } +.@{prefix}-i-codesample:before { content: "\e603"; } +.@{prefix}-i-fill:before { content: "\e902"; } +.@{prefix}-i-borderwidth:before { content: "\e903"; } +.@{prefix}-i-line:before { content: "\e904"; } +.@{prefix}-i-count:before { content: "\e905"; } +.@{prefix}-i-translate:before { content: "\e907"; } +.@{prefix}-i-drag:before { content: "\e908"; } +.@{prefix}-i-home:before { content: "\e90b"; } +.@{prefix}-i-upload:before { content: "\e914"; } +.@{prefix}-i-bubble:before { content: "\e91c"; } +.@{prefix}-i-user:before { content: "\e91d"; } +.@{prefix}-i-lock:before { content: "\e926"; } +.@{prefix}-i-unlock:before { content: "\e927"; } +.@{prefix}-i-settings:before { content: "\e928"; } +.@{prefix}-i-remove2:before { content: "\e92a"; } +.@{prefix}-i-menu:before { content: "\e92d"; } +.@{prefix}-i-warning:before { content: "\e930"; } +.@{prefix}-i-question:before { content: "\e931"; } +.@{prefix}-i-pluscircle:before { content: "\e932"; } +.@{prefix}-i-info:before { content: "\e933"; } +.@{prefix}-i-notice:before { content: "\e934"; } +.@{prefix}-i-arrowup:before { content: "\e93b"; } +.@{prefix}-i-arrowdown:before { content: "\e93d"; } +.@{prefix}-i-arrowup2:before { content: "\e93f"; } +.@{prefix}-i-arrowdown2:before { content: "\e940"; } +.@{prefix}-i-menu2:before { content: "\e941"; } +.@{prefix}-i-newtab:before { content: "\e961"; } +.@{prefix}-i-a11y:before { content: "\e900"; } +.@{prefix}-i-plus:before { content: "\e93a"; } +.@{prefix}-i-insert:before { content: "\e93a"; } +.@{prefix}-i-minus:before { content: "\e939"; } +.@{prefix}-i-books:before { content: "\e911"; } +.@{prefix}-i-reload:before { content: "\e906"; } +.@{prefix}-i-toc:before { content: "\e901"; } +.@{prefix}-i-checkmark:before { content: "\e033"; } +.@{prefix}-i-checkbox:before, .@{prefix}-i-selected:before { + content: "\e033"; +} + +.@{prefix}-i-insert { font-size: 14px; } +.@{prefix}-i-selected { visibility: hidden; } +i.@{prefix}-i-backcolor { text-shadow: none; background: @colorbtn-backcolor-bg; } diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/Iframe.less b/data/web/rc/program/js/tinymce/skins/lightgray/Iframe.less new file mode 100644 index 0000000000000000000000000000000000000000..4298a64b9dc0c7cdfee3eb674cb8e2f26b2c6bb1 --- /dev/null +++ b/data/web/rc/program/js/tinymce/skins/lightgray/Iframe.less @@ -0,0 +1,6 @@ +// Iframe + +.@{prefix}-iframe { + border: 0 solid @iframe-border; + width: 100%; height: 100%; +} diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/ImagePanel.less b/data/web/rc/program/js/tinymce/skins/lightgray/ImagePanel.less new file mode 100644 index 0000000000000000000000000000000000000000..3115452418e51a624ba7276756d726f56a02531b --- /dev/null +++ b/data/web/rc/program/js/tinymce/skins/lightgray/ImagePanel.less @@ -0,0 +1,25 @@ +// ImagePanel + +.@{prefix}-imagepanel { + overflow: auto; + background: black; +} + +.@{prefix}-imagepanel-bg { + position: absolute; + background: url('data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw=='); +} + +.@{prefix}-imagepanel img { + position: absolute; +} + +.@{prefix}-imagetool.@{prefix}-btn .@{prefix}-ico { + display: block; + width: 20px; + height: 20px; + text-align: center; + line-height: 20px; + font-size: 20px; + padding: 5px; +} diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/InfoBox.less b/data/web/rc/program/js/tinymce/skins/lightgray/InfoBox.less new file mode 100644 index 0000000000000000000000000000000000000000..3b46f50cd9f8735828d4aaf17f099352c6ca324d --- /dev/null +++ b/data/web/rc/program/js/tinymce/skins/lightgray/InfoBox.less @@ -0,0 +1,71 @@ +// InfoBox + +.@{prefix}-infobox { + .inline-block(); + text-shadow: @text-shadow; + overflow: hidden; + border: 1px solid red; + + div { + display: block; + margin: 5px; + + button { + position: absolute; + top: 50%; right: 4px; + cursor: pointer; + margin-top: -8px; + display: none; + } + + button:focus { + outline: 2px solid @btn-border-hover; + } + } +} + +.@{prefix}-infobox.@{prefix}-has-help { + div { + margin-right: 25px; + } + + button { + display: block; + } +} + +.@{prefix}-infobox.@{prefix}-success { + background: @infobox-success-bg; + border-color: @infobox-success-border; + + div { + color: @infobox-success-text; + } +} + +.@{prefix}-infobox.@{prefix}-warning { + background: @infobox-warning-bg; + border-color: @infobox-warning-border; + + div { + color: @infobox-warning-text; + } +} + +.@{prefix}-infobox.@{prefix}-error { + background: @infobox-error-bg; + border-color: @infobox-error-border; + + div { + color: @infobox-error-text; + } +} + +// RTL + +.@{prefix}-rtl .@{prefix}-infobox { + div { + text-align: right; + direction: rtl; + } +} diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/Label.less b/data/web/rc/program/js/tinymce/skins/lightgray/Label.less new file mode 100644 index 0000000000000000000000000000000000000000..08b35fd3bec5f808f766d336cab70635361e079d --- /dev/null +++ b/data/web/rc/program/js/tinymce/skins/lightgray/Label.less @@ -0,0 +1,38 @@ +// Label + +.@{prefix}-label { + .inline-block(); + text-shadow: @text-shadow; + overflow: hidden; +} + +.@{prefix}-label.@{prefix}-autoscroll { + overflow: auto; +} + +.@{prefix}-label.@{prefix}-disabled { + color: @text-disabled; +} + +.@{prefix}-label.@{prefix}-multiline { + white-space: pre-wrap; +} + +.@{prefix}-label.@{prefix}-success { + color: @text-success; +} + +.@{prefix}-label.@{prefix}-warning { + color: @text-warning; +} + +.@{prefix}-label.@{prefix}-error { + color: @text-error; +} + +// RTL + +.@{prefix}-rtl .@{prefix}-label { + text-align: right; + direction: rtl; +} diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/ListBox.less b/data/web/rc/program/js/tinymce/skins/lightgray/ListBox.less new file mode 100644 index 0000000000000000000000000000000000000000..23c7fa4d17bbfa623fe7f5d940e2a329f373a6ae --- /dev/null +++ b/data/web/rc/program/js/tinymce/skins/lightgray/ListBox.less @@ -0,0 +1,26 @@ +// ListBox + +.@{prefix}-listbox button { + text-align: left; + padding-right: 20px; + position: relative; +} + +.@{prefix}-listbox .@{prefix}-caret { + position: absolute; + margin-top: -2px; + right: 8px; + top: 50%; +} + +// RTL + +.@{prefix}-rtl .@{prefix}-listbox .@{prefix}-caret { + right: auto; + left: 8px; +} + +.@{prefix}-rtl .@{prefix}-listbox button { + padding-right: 10px; + padding-left: 20px; +} diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/Menu.less b/data/web/rc/program/js/tinymce/skins/lightgray/Menu.less new file mode 100644 index 0000000000000000000000000000000000000000..9c3cfd4f328f6fb13b8e9a5e2c44f457f8b61988 --- /dev/null +++ b/data/web/rc/program/js/tinymce/skins/lightgray/Menu.less @@ -0,0 +1,34 @@ +// Menu + +.@{prefix}-menu { + position: absolute; + left: 0; top: 0; + .reset-gradient(); + z-index: 1000; + padding: 5px 0 5px 0; + margin: @menu-margin; + min-width: 160px; + background: @menu-bg; + border: 1px solid mix(rgb(red(@menu-border), green(@menu-border), blue(@menu-border)), @panel-bg, round(alpha(@menu-border) * 200)); + border: 1px solid @menu-border; + z-index: 1002; + .border-radius(6px); + .box-shadow(0 5px 10px rgba(0,0,0,.2)); + max-height: 400px; + overflow: auto; + overflow-x: hidden; +} + +.@{prefix}-menu i { + display: none; +} + +.@{prefix}-menu-has-icons i { + display: inline-block; + *display: inline; +} + +.@{prefix}-menu-sub-tr-tl { margin: -6px 0 0 -1px; } +.@{prefix}-menu-sub-br-bl { margin: 6px 0 0 -1px; } +.@{prefix}-menu-sub-tl-tr { margin: -6px 0 0 1px; } +.@{prefix}-menu-sub-bl-br { margin: 6px 0 0 1px; } diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/MenuBar.less b/data/web/rc/program/js/tinymce/skins/lightgray/MenuBar.less new file mode 100644 index 0000000000000000000000000000000000000000..8bed61e3af4d08be2bb6099c1e0970be1a6c9193 --- /dev/null +++ b/data/web/rc/program/js/tinymce/skins/lightgray/MenuBar.less @@ -0,0 +1,32 @@ +/* MenuBar */ + +.@{prefix}-menubar .@{prefix}-menubtn { + border-color: transparent; + background: transparent; + .border-radius(0); + .box-shadow(none); + filter: none; +} + +.@{prefix}-menubar .@{prefix}-menubtn button { + color: @menubar-menubtn-text; +} + +.@{prefix}-menubar { + border: 1px solid @menubar-border; +} + +.@{prefix}-menubar .@{prefix}-menubtn button span { + color: @text; +} + +.@{prefix}-menubar .@{prefix}-caret { + border-top-color: @text; +} + +.@{prefix}-menubar .@{prefix}-menubtn:hover, .@{prefix}-menubar .@{prefix}-menubtn.@{prefix}-active, .@{prefix}-menubar .@{prefix}-menubtn:focus { + border-color: darken(@btn-bg, 20%); + background: @menu-bg; + filter: none; + .box-shadow(none); +} diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/MenuButton.less b/data/web/rc/program/js/tinymce/skins/lightgray/MenuButton.less new file mode 100644 index 0000000000000000000000000000000000000000..5ca3491cca3f3d872e399d80031cd273a2b9713f --- /dev/null +++ b/data/web/rc/program/js/tinymce/skins/lightgray/MenuButton.less @@ -0,0 +1,34 @@ +/* MenuButton */ + +.@{prefix}-menubtn button { + color: @btn-text; + //margin-right: 2px; + //line-height: @line-height; + //*line-height: @line-height - 4px; +} + +.@{prefix}-menubtn.@{prefix}-btn-small span { + font-size: @font-size - 2px; +} + +.@{prefix}-menubtn.@{prefix}-fixed-width span { + display: inline-block; + overflow-x: hidden; + text-overflow: ellipsis; + width: 90px; +} + +.@{prefix}-menubtn.@{prefix}-fixed-width.@{prefix}-btn-small span { + width: 70px; +} + +.@{prefix}-menubtn .@{prefix}-caret { + *margin-top: 6px; +} + +// RTL + +.@{prefix}-rtl .@{prefix}-menubtn button { + direction: rtl; + text-align: right; +} diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/MenuItem.less b/data/web/rc/program/js/tinymce/skins/lightgray/MenuItem.less new file mode 100644 index 0000000000000000000000000000000000000000..54e1d915c4e26f487aa1ae180526868ed38933b1 --- /dev/null +++ b/data/web/rc/program/js/tinymce/skins/lightgray/MenuItem.less @@ -0,0 +1,176 @@ +// MenuItem + +.@{prefix}-menu-item { + display: block; + padding: 6px 15px 6px 12px; + clear: both; + font-weight: normal; + line-height: 20px; + color: @menuitem-text; + white-space: nowrap; + cursor: pointer; + line-height: normal; + border-left: 4px solid transparent; + margin-bottom: 1px; +} + +.@{prefix}-menu-item .@{prefix}-ico, .@{prefix}-menu-item .@{prefix}-text { + color: @menuitem-text; +} + +.@{prefix}-menu-item.@{prefix}-disabled .@{prefix}-text, .@{prefix}-menu-item.@{prefix}-disabled .@{prefix}-ico { + color: mix(@menuitem-text, @menu-bg, 40%); +} + +.@{prefix}-menu-item:hover .@{prefix}-text, .@{prefix}-menu-item.@{prefix}-selected .@{prefix}-text, .@{prefix}-menu-item:focus .@{prefix}-text { + color: @menuitem-text-inverse; +} + +.@{prefix}-menu-item:hover .@{prefix}-ico, .@{prefix}-menu-item.@{prefix}-selected .@{prefix}-ico, .@{prefix}-menu-item:focus .@{prefix}-ico { + color: @menuitem-text-inverse; +} + +.@{prefix}-menu-item.@{prefix}-disabled:hover { + background: @menuitem-bg-disabled; +} + +.@{prefix}-menu-shortcut { + display: inline-block; + color: mix(@menuitem-text, @menu-bg, 40%); +} + +.@{prefix}-menu-shortcut { + .inline-block(); + padding: 0 15px 0 20px; +} + +.@{prefix}-menu-item:hover .@{prefix}-menu-shortcut, .@{prefix}-menu-item.@{prefix}-selected .@{prefix}-menu-shortcut, .@{prefix}-menu-item:focus .@{prefix}-menu-shortcut { + color: @menuitem-text-inverse; +} + +.@{prefix}-menu-item .@{prefix}-caret { + margin-top: 4px; + *margin-top: 3px; + margin-right: 6px; + border-top: 4px solid transparent; + border-bottom: 4px solid transparent; + border-left: 4px solid @menuitem-caret; +} + +.@{prefix}-menu-item.@{prefix}-selected .@{prefix}-caret, .@{prefix}-menu-item:focus .@{prefix}-caret, .@{prefix}-menu-item:hover .@{prefix}-caret { + border-left-color: @menuitem-caret-selected; +} + +.@{prefix}-menu-align .@{prefix}-menu-shortcut { + *margin-top: -2px; +} + +.@{prefix}-menu-align .@{prefix}-menu-shortcut, .@{prefix}-menu-align .@{prefix}-caret { + position: absolute; + right: 0; +} + +.@{prefix}-menu-item.@{prefix}-active i { + visibility: visible; +} + +.@{prefix}-menu-item-normal.@{prefix}-active { + background-color: @menuitem-bg-active; +} + +.@{prefix}-menu-item-preview.@{prefix}-active { + border-left: 5px solid @menuitem-preview-border-active; +} + +.@{prefix}-menu-item-normal.@{prefix}-active .@{prefix}-text { + color: @menuitem-text-active; +} + +.@{prefix}-menu-item-normal.@{prefix}-active:hover .@{prefix}-text, .@{prefix}-menu-item-normal.@{prefix}-active:hover .@{prefix}-ico { + color: @menuitem-text-inverse; +} + +.@{prefix}-menu-item-normal.@{prefix}-active:focus .@{prefix}-text, .@{prefix}-menu-item-normal.@{prefix}-active:focus .@{prefix}-ico { + color: @menuitem-text-inverse; +} + +.@{prefix}-menu-item:hover, .@{prefix}-menu-item.@{prefix}-selected, .@{prefix}-menu-item:focus { + text-decoration: none; + color: @menuitem-text-inverse; + .vertical-gradient(@menuitem-bg-selected, @menuitem-bg-selected-hlight); +} + +.@{prefix}-menu-item-link { + color: #093; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + + b { + color: #093; + } +} + +.@{prefix}-menu-item-ellipsis { + display: block; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; +} + +.@{prefix}-menu-item:hover *, .@{prefix}-menu-item.@{prefix}-selected *, .@{prefix}-menu-item:focus * { + color: @menuitem-text-inverse; +} + +div.@{prefix}-menu .@{prefix}-menu-item-sep, .@{prefix}-menu-item-sep:hover { + border: 0; + padding: 0; + height: 1px; + margin: 9px 1px; + overflow: hidden; + background: @menuitem-separator-top; + border-bottom: 1px solid @menuitem-separator-bottom; + cursor: default; + filter: none; +} + +div.@{prefix}-menu .@{prefix}-menu-item b { + font-weight: bold; +} + +.@{prefix}-menu-item-indent-1 { padding-left: 20px; } +.@{prefix}-menu-item-indent-2 { padding-left: 35px; } +.@{prefix}-menu-item-indent-2 { padding-left: 35px; } +.@{prefix}-menu-item-indent-3 { padding-left: 40px; } +.@{prefix}-menu-item-indent-4 { padding-left: 45px; } +.@{prefix}-menu-item-indent-5 { padding-left: 50px; } +.@{prefix}-menu-item-indent-6 { padding-left: 55px; } + +// RTL + +.@{prefix}-menu.@{prefix}-rtl { + direction: rtl; +} + +.@{prefix}-rtl .@{prefix}-menu-item { + text-align: right; + direction: rtl; + padding: 6px 12px 6px 15px; +} + +.@{prefix}-menu-align.@{prefix}-rtl .@{prefix}-menu-shortcut, .@{prefix}-menu-align.@{prefix}-rtl .@{prefix}-caret { + right: auto; + left: 0; +} + +.@{prefix}-rtl .@{prefix}-menu-item .@{prefix}-caret { + margin-left: 6px; + margin-right: 0; + border-right: 4px solid @menuitem-caret; + border-left: 0; +} + +.@{prefix}-rtl .@{prefix}-menu-item.@{prefix}-selected .@{prefix}-caret, .@{prefix}-rtl .@{prefix}-menu-item:focus .@{prefix}-caret, .@{prefix}-rtl .@{prefix}-menu-item:hover .@{prefix}-caret { + border-left-color: transparent; + border-right-color: @menuitem-caret-selected; +} diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/Mixins.less b/data/web/rc/program/js/tinymce/skins/lightgray/Mixins.less new file mode 100644 index 0000000000000000000000000000000000000000..6357ca453d6681684cfa835d7d3fe6fc52beeba3 --- /dev/null +++ b/data/web/rc/program/js/tinymce/skins/lightgray/Mixins.less @@ -0,0 +1,54 @@ +// Mixins + +.opacity(@opacity) { + opacity: @opacity; + @opacityie: @opacity * 100; + filter: ~"alpha(opacity=@{opacityie})"; + zoom: 1; +} + +.vertical-gradient(@startColor, @endColor) when (@has-gradients = true) { + background-color: mix(@startColor, @endColor, 60%); + background-image: -moz-linear-gradient(top, @startColor, @endColor); // FF 3.6+ + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@startColor), to(@endColor)); // Safari 4+, Chrome 2+ + background-image: -webkit-linear-gradient(top, @startColor, @endColor); // Safari 5.1+, Chrome 10+ + background-image: -o-linear-gradient(top, @startColor, @endColor); // Opera 11.10 + background-image: linear-gradient(to bottom, @startColor, @endColor); // Standard, IE10 + background-repeat: repeat-x; + filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)", argb(@startColor), argb(@endColor))); + zoom: 1; +} + +.vertical-gradient(@startColor, @endColor) when (@has-gradients = false) { + background-color: mix(@startColor, @endColor, 60%); +} + +.border-radius(@radius) when (@has-radius = true) { + -webkit-border-radius: @radius; + -moz-border-radius: @radius; + border-radius: @radius; +} + +.box-shadow(@shadowA, @shadowB:X, ...) when (@has-boxshadow = true) { + // Multiple shadow solution from http://toekneestuck.com/blog/2012/05/15/less-css-arguments-variable/ + @props: ~`"@{arguments}".replace(/[\[\]]|\,\sX/g, '')`; + -webkit-box-shadow: @props; + -moz-box-shadow: @props; + box-shadow: @props; +} + +.transition(@transition) { + -webkit-transition: @transition; + transition: @transition; +} + +.inline-block() { + display: inline-block; + *display: inline; + *zoom: 1; +} + +.reset-gradient() { + filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)")); + background: transparent; +} diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/Notification.less b/data/web/rc/program/js/tinymce/skins/lightgray/Notification.less new file mode 100644 index 0000000000000000000000000000000000000000..017a44297c150a004c39b1ea82fa578a988e9e05 --- /dev/null +++ b/data/web/rc/program/js/tinymce/skins/lightgray/Notification.less @@ -0,0 +1,142 @@ +// notification + +.@{prefix}-notification { + position: absolute; + background-color: @notification-bg; + padding: 5px; + margin-top: 5px; + border-width: 1px; + border-style: solid; + border-color: @notification-border; + transition: transform 100ms ease-in, opacity 150ms ease-in; + opacity: 0; +} + +.@{prefix}-notification.@{prefix}-in { + opacity: 1; +} + +.@{prefix}-notification-success { + background-color: @notification-success-bg; + border-color: @notification-success-border; +} + +.@{prefix}-notification-info { + background-color: @notification-info-bg; + border-color: @notification-info-border; +} + +.@{prefix}-notification-warning { + background-color: @notification-warning-bg; + border-color: @notification-warning-border; +} + +.@{prefix}-notification-error { + background-color: @notification-error-bg; + border-color: @notification-error-border; +} + +.@{prefix}-notification.@{prefix}-has-close { + padding-right: 15px; +} + +.@{prefix}-notification .@{prefix}-ico { + margin-top: 5px; +} + +.@{prefix}-notification-inner { + display: inline-block; + font-size: @notification-font-size; + margin: 5px 8px 4px 8px; + text-align: center; + white-space: normal; + color: @notification-info-text; +} + +.@{prefix}-notification-inner a { + text-decoration: underline; + cursor: pointer; +} + +.@{prefix}-notification .@{prefix}-progress { + margin-right: 8px; +} + +.@{prefix}-notification .@{prefix}-progress .@{prefix}-text { + margin-top: 5px; +} + +.@{prefix}-notification *, .@{prefix}-notification .@{prefix}-progress .@{prefix}-text { + color: @notification-text; +} + +.@{prefix}-notification .@{prefix}-progress .@{prefix}-bar-container { + border-color: @notification-border; +} + +.@{prefix}-notification .@{prefix}-progress .@{prefix}-bar-container .@{prefix}-bar { + background-color: @notification-text; +} + +.@{prefix}-notification-success *, .@{prefix}-notification-success .@{prefix}-progress .@{prefix}-text { + color: @notification-success-text; +} + +.@{prefix}-notification-success .@{prefix}-progress .@{prefix}-bar-container { + border-color: @notification-success-border; +} + +.@{prefix}-notification-success .@{prefix}-progress .@{prefix}-bar-container .@{prefix}-bar { + background-color: @notification-success-text; +} + +.@{prefix}-notification-info *, .@{prefix}-notification-info .@{prefix}-progress .@{prefix}-text { + color: @notification-info-text; +} + +.@{prefix}-notification-info .@{prefix}-progress .@{prefix}-bar-container { + border-color: @notification-info-border; +} + +.@{prefix}-notification-info .@{prefix}-progress .@{prefix}-bar-container .@{prefix}-bar { + background-color: @notification-info-text; +} + +.@{prefix}-notification-warning *, .@{prefix}-notification-warning .@{prefix}-progress .@{prefix}-text { + color: @notification-warning-text; +} + +.@{prefix}-notification-warning .@{prefix}-progress .@{prefix}-bar-container { + border-color: @notification-warning-border; +} + +.@{prefix}-notification-warning .@{prefix}-progress .@{prefix}-bar-container .@{prefix}-bar { + background-color: @notification-warning-text; +} + +.@{prefix}-notification-error *, .@{prefix}-notification-error .@{prefix}-progress .@{prefix}-text { + color: @notification-error-text; +} + +.@{prefix}-notification-error .@{prefix}-progress .@{prefix}-bar-container { + border-color: @notification-error-border; +} + +.@{prefix}-notification-error .@{prefix}-progress .@{prefix}-bar-container .@{prefix}-bar { + background-color: @notification-error-text; +} + +.@{prefix}-notification .@{prefix}-close { + position: absolute; + top: 6px; + right: 8px; + font-size: 20px; + font-weight: bold; + line-height: 20px; + color: @window-head-close; + cursor: pointer; + + // IE7 + height: 20px; + overflow: hidden; +} \ No newline at end of file diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/Panel.less b/data/web/rc/program/js/tinymce/skins/lightgray/Panel.less new file mode 100644 index 0000000000000000000000000000000000000000..5c425e97f583b0acb6e67cecd5ffec3acfa27b8b --- /dev/null +++ b/data/web/rc/program/js/tinymce/skins/lightgray/Panel.less @@ -0,0 +1,7 @@ +// Panel + +.@{prefix}-panel { + border: 0 solid mix(rgb(red(@panel-border), green(@panel-border), blue(@panel-border)), @panel-bg, 20%); + border: 0 solid @panel-border; + .vertical-gradient(@panel-bg, @panel-bg-hlight); +} diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/Path.less b/data/web/rc/program/js/tinymce/skins/lightgray/Path.less new file mode 100644 index 0000000000000000000000000000000000000000..04537cf689182434e351f21be474e9525fd989de --- /dev/null +++ b/data/web/rc/program/js/tinymce/skins/lightgray/Path.less @@ -0,0 +1,45 @@ +// Path + +.@{prefix}-path { + .inline-block(); + padding: 8px; + white-space: normal; +} + +.@{prefix}-path .@{prefix}-txt { + display: inline-block; + padding-right: 3px; +} + +.@{prefix}-path .@{prefix}-path-body { + display: inline-block; +} + +.@{prefix}-path-item { + .inline-block(); + cursor: pointer; + color: @path-text; +} + +.@{prefix}-path-item:hover { + text-decoration: underline; +} + +.@{prefix}-path-item:focus { + background: @path-bg-focus; + color: @path-text-focus; +} + +.@{prefix}-path .@{prefix}-divider { + display: inline; +} + +.@{prefix}-disabled .@{prefix}-path-item { + color: @text-disabled; +} + +// RTL + +.@{prefix}-rtl .@{prefix}-path { + direction: rtl; +} diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/Progress.less b/data/web/rc/program/js/tinymce/skins/lightgray/Progress.less new file mode 100644 index 0000000000000000000000000000000000000000..ae68d29fb3d93664607507099a9cf4e2f83c9c5d --- /dev/null +++ b/data/web/rc/program/js/tinymce/skins/lightgray/Progress.less @@ -0,0 +1,34 @@ +// Progress + +.@{prefix}-progress { + display: inline-block; + position: relative; + height: 20px; +} + +.@{prefix}-progress .@{prefix}-bar-container { + display: inline-block; + width: 100px; + height: 100%; + margin-right: 8px; + border: 1px solid @progress-border; + overflow: hidden; + .border-radius(4px); +} + +.@{prefix}-progress .@{prefix}-text { + display: inline-block; + margin-top: auto; + margin-bottom: auto; + font-size: 14px; + width: 40px; + color: @progress-text; +} + +.@{prefix}-bar { + display: block; + width: 0%; + height: 100%; + .vertical-gradient(@progress-bar-bg, @progress-bar-bg-hlight); + .transition(width .2s ease); +} diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/Radio.less b/data/web/rc/program/js/tinymce/skins/lightgray/Radio.less new file mode 100644 index 0000000000000000000000000000000000000000..c32d8aa655776a08ca45d751b5358d601950a4d5 --- /dev/null +++ b/data/web/rc/program/js/tinymce/skins/lightgray/Radio.less @@ -0,0 +1 @@ +// Radio - not implemented yet diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/Reset.less b/data/web/rc/program/js/tinymce/skins/lightgray/Reset.less new file mode 100644 index 0000000000000000000000000000000000000000..a25084199318876d19f702f6011792f4cc5bed00 --- /dev/null +++ b/data/web/rc/program/js/tinymce/skins/lightgray/Reset.less @@ -0,0 +1,32 @@ +// Reset + +.@{prefix}-container, .@{prefix}-container *, .@{prefix}-widget, .@{prefix}-widget *, .@{prefix}-reset { + margin: 0; padding: 0; border: 0; outline: 0; + vertical-align: top; background: transparent; + text-decoration: none; color: @text; + font-family: @font-family; + font-size: @font-size; text-shadow: none; float: none; + position: static; width: auto; height: auto; + white-space: nowrap; cursor: inherit; + -webkit-tap-highlight-color: transparent; + line-height: normal; font-weight: normal; + text-align: left; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + box-sizing: content-box; + direction: ltr; + max-width: none; +} + +.@{prefix}-widget button { + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.@{prefix}-container *[unselectable] { + -moz-user-select: none; + -webkit-user-select: none; + -o-user-select: none; + user-select: none; +} diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/ResizeHandle.less b/data/web/rc/program/js/tinymce/skins/lightgray/ResizeHandle.less new file mode 100644 index 0000000000000000000000000000000000000000..571f84d0bc0cc94b440507e5e3eb40a0d5310879 --- /dev/null +++ b/data/web/rc/program/js/tinymce/skins/lightgray/ResizeHandle.less @@ -0,0 +1,18 @@ +.@{prefix}-container-body .@{prefix}-resizehandle { + position: absolute; + right: 0; + bottom: 0; + width: 16px; + height: 16px; + visibility: visible; + cursor: s-resize; + margin: 0; +} + +.@{prefix}-container-body .@{prefix}-resizehandle-both { + cursor: se-resize; +} + +i.@{prefix}-i-resize { + color: @text; +} diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/Scrollable.less b/data/web/rc/program/js/tinymce/skins/lightgray/Scrollable.less new file mode 100644 index 0000000000000000000000000000000000000000..1559fffec56273e068c65a19057121799a57928b --- /dev/null +++ b/data/web/rc/program/js/tinymce/skins/lightgray/Scrollable.less @@ -0,0 +1,44 @@ +// Scrollbar + +.@{prefix}-scrollbar { + position: absolute; + width: 7px; + height: 100%; + top: 2px; + right: 2px; + .opacity(0.4); +} + +.@{prefix}-scrollbar-h { + top: auto; + right: auto; + left: 2px; + bottom: 2px; + width: 100%; + height: 7px; +} + +.@{prefix}-scrollbar-thumb { + position: absolute; + background-color: #000; + border: 1px solid #888; + border-color: rgba(85, 85, 85, .6); + width: 5px; + height: 100%; + .border-radius(7px); +} + +.@{prefix}-scrollbar-h .@{prefix}-scrollbar-thumb { + width: 100%; + height: 5px; +} + +.@{prefix}-scrollbar:hover, .@{prefix}-scrollbar.@{prefix}-active { + background-color: #AAA; + .opacity(0.6); + .border-radius(7px); +} + +.@{prefix}-scroll { + position: relative; +} diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/SelectBox.less b/data/web/rc/program/js/tinymce/skins/lightgray/SelectBox.less new file mode 100644 index 0000000000000000000000000000000000000000..972d7f5ebbc9f3c2f76b54075270c7c39ca873f5 --- /dev/null +++ b/data/web/rc/program/js/tinymce/skins/lightgray/SelectBox.less @@ -0,0 +1,6 @@ +// SelectBox + +.@{prefix}-selectbox { + background: @selectbox-bg; + border: 1px solid @selectbox-border; +} diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/Sidebar.less b/data/web/rc/program/js/tinymce/skins/lightgray/Sidebar.less new file mode 100644 index 0000000000000000000000000000000000000000..e9a616ebce41ba587afd115cb08fe9e5372109a2 --- /dev/null +++ b/data/web/rc/program/js/tinymce/skins/lightgray/Sidebar.less @@ -0,0 +1,49 @@ +// Sidebar + +.@{prefix}-edit-aria-container > .@{prefix}-container-body { + display: flex; + + .@{prefix}-edit-area { + flex: 1; + } + + .@{prefix}-sidebar > .@{prefix}-container-body { + display: flex; + align-items: stretch; + height: 100%; + } + + .@{prefix}-sidebar-panel { + min-width: 250px; + max-width: 250px; + position: relative; + + > .@{prefix}-container-body { + position: absolute; + width: 100%; height: 100%; + overflow: auto; + top: 0; left: 0; + } + } +} + +.@{prefix}-sidebar-toolbar { + border: 0 solid @panel-border; + border-left-width: 1px; + + .@{prefix}-btn.@{prefix}-active, .@{prefix}-btn.@{prefix}-active:hover { + border: 1px solid transparent; + border-color: @btn-primary-border; + .vertical-gradient(@btn-primary-bg, @btn-primary-bg-hlight); + + button, button i { + color: @btn-primary-text; + text-shadow: 1px 1px @btn-primary-text-shadow; + } + } +} + +.@{prefix}-sidebar-panel { + border: 0 solid @panel-border; + border-left-width: 1px; +} diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/Slider.less b/data/web/rc/program/js/tinymce/skins/lightgray/Slider.less new file mode 100644 index 0000000000000000000000000000000000000000..7d08895d1d9cc48d7896a6f71f6f8f0ba5d58775 --- /dev/null +++ b/data/web/rc/program/js/tinymce/skins/lightgray/Slider.less @@ -0,0 +1,33 @@ +// Slider + +.@{prefix}-slider { + .border-radius(3px); + border: 1px solid @slider-border; + background: @slider-bg; + width: 100px; + height: 10px; + position: relative; + display: block; +} + +.@{prefix}-slider.@{prefix}-vertical { + width: 10px; + height: 100px; +} + +.@{prefix}-slider-handle { + .border-radius(3px); + border: 1px solid @slider-handle-border; + background: @slider-handle-bg; + display: block; + width: 13px; + height: 13px; + position: absolute; + top: 0; left: 0; + margin-left: -1px; + margin-top: -2px; +} + +.@{prefix}-slider-handle:focus { + background: @slider-handle-bg-focus; +} diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/Spacer.less b/data/web/rc/program/js/tinymce/skins/lightgray/Spacer.less new file mode 100644 index 0000000000000000000000000000000000000000..1788fe38563db7628394d17f93c7e12b7d6b34e1 --- /dev/null +++ b/data/web/rc/program/js/tinymce/skins/lightgray/Spacer.less @@ -0,0 +1,5 @@ +// Spacer + +.@{prefix}-spacer { + visibility: hidden; +} diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/SplitButton.less b/data/web/rc/program/js/tinymce/skins/lightgray/SplitButton.less new file mode 100644 index 0000000000000000000000000000000000000000..e4094b375f1f5e4620009d4414024b37c7918cda --- /dev/null +++ b/data/web/rc/program/js/tinymce/skins/lightgray/SplitButton.less @@ -0,0 +1,49 @@ +// SplitButton + +.@{prefix}-splitbtn .@{prefix}-open { + border-left: 1px solid transparent; +} + +.@{prefix}-splitbtn:hover .@{prefix}-open { + border-left-color: darken(@btn-bg, 20%); +} + +.@{prefix}-splitbtn button when (@has-button-borders = false) { + padding-right: 6px; + padding-left: 6px; +} + +.@{prefix}-splitbtn button when (@has-button-borders = true) { + padding-right: 4px; + padding-left: 8px; +} + +.@{prefix}-splitbtn .@{prefix}-open { + padding-right: 4px; + padding-left: 4px; +} + +.@{prefix}-splitbtn .@{prefix}-open.@{prefix}-active { + .vertical-gradient(darken(@btn-bg, 10%), darken(@btn-bg-hlight, 5%)); + outline: 1px solid darken(@btn-bg, 20%); +} + +.@{prefix}-splitbtn.@{prefix}-btn-small .@{prefix}-open { + padding: 0 3px 0 3px; +} + +// RTL + +.@{prefix}-rtl .@{prefix}-splitbtn { + direction: rtl; + text-align: right; +} + +.@{prefix}-rtl .@{prefix}-splitbtn button { + padding-right: 4px; + padding-left: 4px; +} + +.@{prefix}-rtl .@{prefix}-splitbtn .@{prefix}-open { + border-left: 0; +} diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/StackLayout.less b/data/web/rc/program/js/tinymce/skins/lightgray/StackLayout.less new file mode 100644 index 0000000000000000000000000000000000000000..71c87324c4c7d4ed95924fe97741e6e9dfb25601 --- /dev/null +++ b/data/web/rc/program/js/tinymce/skins/lightgray/StackLayout.less @@ -0,0 +1,5 @@ +// StackLayout + +.@{prefix}-stack-layout-item { + display: block; +} diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/TabPanel.less b/data/web/rc/program/js/tinymce/skins/lightgray/TabPanel.less new file mode 100644 index 0000000000000000000000000000000000000000..2a6ad35132e455ec0953ea7a5b664e1b7f2567f3 --- /dev/null +++ b/data/web/rc/program/js/tinymce/skins/lightgray/TabPanel.less @@ -0,0 +1,44 @@ +// TabPanel + +.@{prefix}-tabs { + display: block; + border-bottom: 1px solid @tab-border; +} + +.@{prefix}-tabs, +.@{prefix}-tabs + .@{prefix}-container-body { + background: @tabs-bg; +} + +.@{prefix}-tab { + .inline-block(); + border: 1px solid @tab-border; + border-width: 0 1px 0 0; + background: @tab-bg; + padding: 8px; + text-shadow: @text-shadow; + height: 13px; + cursor: pointer; +} + +.@{prefix}-tab:hover { + background: @tab-bg-hover; +} + +.@{prefix}-tab.@{prefix}-active { + background: @tab-bg-active; + border-bottom-color: transparent; + margin-bottom: -1px; + height: 14px; +} + +// RTL + +.@{prefix}-rtl .@{prefix}-tabs { + text-align: right; + direction: rtl; +} + +.@{prefix}-rtl .@{prefix}-tab { + border-width: 0 0 0 1px; +} diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/TextBox.less b/data/web/rc/program/js/tinymce/skins/lightgray/TextBox.less new file mode 100644 index 0000000000000000000000000000000000000000..f783460f17f0edf70b65eaa9ceb93f80aaf97094 --- /dev/null +++ b/data/web/rc/program/js/tinymce/skins/lightgray/TextBox.less @@ -0,0 +1,41 @@ +// TextBox + +.@{prefix}-textbox { + background: @textbox-bg; + border: 1px solid @textbox-border; + .border-radius(3px); + .box-shadow(@textbox-box-shadow); + display: inline-block; + .transition(~"border linear .2s, box-shadow linear .2s"); + height: 28px; + resize: none; + padding: 0 4px 0 4px; + white-space: pre-wrap; + *white-space: pre; + color: @text; +} + +.@{prefix}-textbox:focus, .@{prefix}-textbox.@{prefix}-focus { + border-color: @textbox-border-focus; + .box-shadow(inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px fadeout(@textbox-border-focus, 15%)); +} + +.@{prefix}-placeholder .@{prefix}-textbox { + color: @textbox-text-placeholder; +} + +.@{prefix}-textbox.@{prefix}-multiline { + padding: 4px; + height: auto; +} + +.@{prefix}-textbox.@{prefix}-disabled { + color: mix(@text, @textbox-bg, 40%); +} + +// RTL + +.@{prefix}-rtl .@{prefix}-textbox { + text-align: right; + direction: rtl; +} diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/Throbber.less b/data/web/rc/program/js/tinymce/skins/lightgray/Throbber.less new file mode 100644 index 0000000000000000000000000000000000000000..6329c813f628fcba9b51bcd691753bb716837b7f --- /dev/null +++ b/data/web/rc/program/js/tinymce/skins/lightgray/Throbber.less @@ -0,0 +1,19 @@ +// Throbber + +.@{prefix}-throbber { + position: absolute; + top: 0; left: 0; + width: 100%; height: 100%; + .opacity(0.6); + background: @throbber-bg; +} + +.@{prefix}-throbber-inline { + position: static; + height: 50px; +} + +.@{prefix}-menu .@{prefix}-throbber-inline { + height: 25px; + background-size: contain; +} diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/TinyMCE.less b/data/web/rc/program/js/tinymce/skins/lightgray/TinyMCE.less new file mode 100644 index 0000000000000000000000000000000000000000..aad8584e3ebfb4c4e1895af5d1a1733531335cb0 --- /dev/null +++ b/data/web/rc/program/js/tinymce/skins/lightgray/TinyMCE.less @@ -0,0 +1,159 @@ +.@{prefix}-tinymce { + // Avoid FOUC + visibility: inherit !important; + position: relative; +} + +.@{prefix}-fullscreen { + border: 0; padding: 0; margin: 0; + overflow: hidden; + height: 100%; + z-index: 100; +} + +div.@{prefix}-fullscreen { + position: fixed; + top: 0; left: 0; + width: 100%; + height: auto; +} + +.@{prefix}-tinymce { + display: block; + .border-radius(2px); +} + +.@{prefix}-wordcount { + position: absolute; + top: 0; + right: 0; + padding: 8px; +} + +div.@{prefix}-edit-area { + background: #FFF; + filter: none; +} + +.@{prefix}-statusbar { + position: relative; +} + +.@{prefix}-statusbar .@{prefix}-container-body { + position: relative; +} + +.@{prefix}-fullscreen .@{prefix}-resizehandle { + display: none; +} + +// Charmap + +.@{prefix}-charmap { + border-collapse: collapse; +} + +.@{prefix}-charmap td { + cursor: default; + border: 1px solid @panel-border; + width: 20px; + height: 20px; + line-height: 20px; + text-align: center; + vertical-align: middle; + padding: 2px; +} + +.@{prefix}-charmap td div { + text-align: center; +} + +.@{prefix}-charmap td:hover { + background: @btn-bg-hlight; +} + +.@{prefix}-grid td.@{prefix}-grid-cell div { + border: 1px solid @grid-border; + width: 15px; height: 15px; + margin: 0px; + cursor: pointer; + + &:focus { + border-color: @grid-border-active; + } + + &[disabled] { + cursor: not-allowed; + } +} + +.@{prefix}-grid { + border-spacing: 2px; + border-collapse: separate; + + a { + display: block; + border: 1px solid transparent; + + &:hover, &:focus { + border-color: @grid-border-active; + } + } +} + +.@{prefix}-grid-border { + margin: 0 4px 0 4px; + + a { + border-color: @grid-border; + width: 13px; height: 13px; + } + + a:hover, a.@{prefix}-active { + border-color: @grid-border-active; + background: @grid-bg-active; + } +} + +.@{prefix}-text-center { + text-align: center; +} + +div.@{prefix}-tinymce-inline { + width: 100%; + .box-shadow(none); +} + +.@{prefix}-colorbtn-trans div { + text-align: center; + vertical-align: middle; + font-weight: bold; + font-size: 20px; + line-height: 16px; + color: mix(@text, #fff, 70%); +} + +.@{prefix}-monospace { + font-family: "Courier New", Courier, monospace; +} + +// Reduce double margins between toolbar rows + +.@{prefix}-toolbar-grp when (@has-button-borders = false) { + padding: @flow-layout-spacing 0; +} + +.@{prefix}-toolbar-grp when (@has-button-borders = true) { + padding-bottom: 2px; +} + +.@{prefix}-toolbar-grp .@{prefix}-flow-layout-item { + margin-bottom: 0; +} + +// RTL + +.@{prefix}-rtl .@{prefix}-wordcount { + left: 0; + right: auto; +} diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/ToolTip.less b/data/web/rc/program/js/tinymce/skins/lightgray/ToolTip.less new file mode 100644 index 0000000000000000000000000000000000000000..92d64f1a6830febc533436dd671d442074f6edba --- /dev/null +++ b/data/web/rc/program/js/tinymce/skins/lightgray/ToolTip.less @@ -0,0 +1,133 @@ +// Tooltip + +.@{prefix}-tooltip { + position: absolute; + padding: 5px; + .opacity(0.8); +} + +.@{prefix}-tooltip-inner { + font-size: @tooltip-font-size; + background-color: @tooltip-bg; + color: @tooltip-text; + max-width: 200px; + padding: 5px 8px 4px 8px; + text-align: center; + white-space: normal; +} + +.@{prefix}-tooltip-inner { + .border-radius(3px); +} + +.@{prefix}-tooltip-inner { + .box-shadow(0 0 5px @tooltip-bg); +} + +.@{prefix}-tooltip-arrow { + position: absolute; + width: 0; + height: 0; + line-height: 0; + border: 5px dashed @tooltip-bg; +} + +.@{prefix}-tooltip-arrow-n { + border-bottom-color: @tooltip-bg; +} + +.@{prefix}-tooltip-arrow-s { + border-top-color: @tooltip-bg; +} + +.@{prefix}-tooltip-arrow-e { + border-left-color: @tooltip-bg; +} + +.@{prefix}-tooltip-arrow-w { + border-right-color: @tooltip-bg; +} + +.@{prefix}-tooltip-nw, .@{prefix}-tooltip-sw { + margin-left: -14px; +} + +.@{prefix}-tooltip-ne, .@{prefix}-tooltip-se { + margin-left: 14px; +} + +.@{prefix}-tooltip-n .@{prefix}-tooltip-arrow { + top: 0px; + left: 50%; + margin-left: -5px; + border-bottom-style: solid; + border-top: none; + border-left-color: transparent; + border-right-color: transparent; +} + +.@{prefix}-tooltip-nw .@{prefix}-tooltip-arrow { + top: 0; + left: 10px; + border-bottom-style: solid; + border-top: none; + border-left-color: transparent; + border-right-color: transparent; +} + +.@{prefix}-tooltip-ne .@{prefix}-tooltip-arrow { + top: 0; + right: 10px; + border-bottom-style: solid; + border-top: none; + border-left-color: transparent; + border-right-color: transparent; +} + +.@{prefix}-tooltip-s .@{prefix}-tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-top-style: solid; + border-bottom: none; + border-left-color: transparent; + border-right-color: transparent; +} + +.@{prefix}-tooltip-sw .@{prefix}-tooltip-arrow { + bottom: 0; + left: 10px; + border-top-style: solid; + border-bottom: none; + border-left-color: transparent; + border-right-color: transparent; +} + +.@{prefix}-tooltip-se .@{prefix}-tooltip-arrow { + bottom: 0; + right: 10px; + border-top-style: solid; + border-bottom: none; + border-left-color: transparent; + border-right-color: transparent; +} + +.@{prefix}-tooltip-e .@{prefix}-tooltip-arrow { + right: 0; + top: 50%; + margin-top: -5px; + border-left-style: solid; + border-right: none; + border-top-color: transparent; + border-bottom-color: transparent; +} + +.@{prefix}-tooltip-w .@{prefix}-tooltip-arrow { + left: 0; + top: 50%; + margin-top: -5px; + border-right-style: solid; + border-left: none; + border-top-color: transparent; + border-bottom-color: transparent; +} diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/Variables.less b/data/web/rc/program/js/tinymce/skins/lightgray/Variables.less new file mode 100644 index 0000000000000000000000000000000000000000..66834d3e1e23f3d8484ff0efe42a36781572d0a9 --- /dev/null +++ b/data/web/rc/program/js/tinymce/skins/lightgray/Variables.less @@ -0,0 +1,218 @@ +// Variables +// Syntax: -()--()-(); +// Example: @btn-primary-bg-hover-hlight; + +@prefix: mce; + +// Default font +@font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; +@font-size: 14px; +@line-height: 20px; +@has-gradients: false; +@has-radius: false; +@has-boxshadow: false; +@has-button-borders: false; + +// Text colors +@text: #333; +@text-inverse: white; +@text-disabled: #aaa; +@text-shadow: 0 1px 1px hsla(hue(@text-inverse), saturation(@text-inverse), lightness(@text-inverse), 0.75); +@text-error: #b94a48; +@text-warning: #c09853; +@text-success: #468847; + +// Button +@btn-text: @text; +@btn-text-shadow: none; +@btn-border-top: transparent; +@btn-border-right: transparent; +@btn-border-bottom: transparent; +@btn-border-left: transparent; +@btn-caret-border: @btn-text; +@btn-text-disabled: @text-disabled; +@btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .2), 0 1px 2px rgba(0, 0, 0, .05); +@btn-box-shadow-active: inset 0 2px 4px rgba(0, 0, 0, .15), 0 1px 2px rgba(0, 0, 0, .05); +@btn-box-disabled-opacity: 0.4; +@btn-bg: white; +@btn-bg-hlight: #D9D9D9; +@btn-bg-hover: darken(@btn-bg, 5%); +@btn-bg-hlight-hover: darken(@btn-bg-hlight, 5%); +@btn-border-hover: darken(@btn-bg, 20%); +@btn-border-active: darken(@btn-bg, 20%); +@btn-padding: 4px 8px; + +@btn-primary-bg: #2980b9; +@btn-primary-bg-hlight: #3498db; +@btn-primary-bg-hover: darken(@btn-primary-bg, 5%); +@btn-primary-bg-hover-hlight: darken(@btn-primary-bg-hlight, 5%); +@btn-primary-text: #fff; +@btn-primary-text-shadow: none; +@btn-primary-border-top: mix(@btn-border-top, @btn-primary-bg, 50%); +@btn-primary-border-right: mix(@btn-border-right, @btn-primary-bg, 50%); +@btn-primary-border-bottom: mix(@btn-border-bottom, @btn-primary-bg, 50%); +@btn-primary-border-left: mix(@btn-border-left, @btn-primary-bg, 50%); +@btn-primary-border: transparent; +@btn-primary-border-hover: transparent; + +// Button group +@btn-group-border-width: 1px; + +// Menu +@menuitem-text: @text; +@menu-bg: #fff; +@menu-margin: -1px 0 0; +@menu-border: rgba(0, 0, 0, 0.2); +@menubar-border: mix(@panel-border, @panel-bg, 60%); +@menuitem-text-inverse: @text-inverse; +@menubar-bg-active: darken(@btn-bg, 10%); +@menuitem-bg-hover: #0081C2; +@menuitem-bg-selected: #2980b9; +@menuitem-bg-selected-hlight: #3498db; +@menuitem-bg-disabled: #CCC; +@menuitem-caret: @menuitem-text; +@menuitem-caret-selected: @menuitem-text-inverse; +@menuitem-separator-top: transparent; +@menuitem-separator-bottom: rgba(0,0,0,0.1); +@menuitem-bg-active: #3498db; +@menuitem-text-active: @text-inverse; +@menuitem-preview-border-active: #aaa; +@menubar-menubtn-text: #333; + +// Panel +@panel-border: rgba(0,0,0,.2); +@panel-bg: #FDFDFD; +@panel-bg-hlight: #DDD; + +// Tabs +@tab-border: #c5c5c5; +@tab-bg: #ffffff; +@tab-bg-hover: #FDFDFD; +@tab-bg-active: #FDFDFD; +@tabs-bg: #FFF; + +// Tooltip +@tooltip-bg: #000; +@tooltip-text: white; +@tooltip-font-size: 11px; + +// Notification +@notification-font-size: 14px; +@notification-bg: #F0F0F0; +@notification-border: #CCCCCC; +@notification-text: #333333; +@notification-success-bg: #dff0d8; +@notification-success-border: #d6e9c6; +@notification-success-text: #3c763d; +@notification-info-bg: #d9edf7; +@notification-info-border: #779ECB; +@notification-info-text: #31708f; +@notification-warning-bg: #fcf8e3; +@notification-warning-border: #faebcc; +@notification-warning-text: #8a6d3b; +@notification-error-bg: #f2dede; +@notification-error-border: #ebccd1; +@notification-error-text: #a94442; + +// Infobox +@infobox-bg: @notification-bg; +@infobox-border: @notification-border; +@infobox-text: @notification-text; +@infobox-success-bg: @notification-success-bg; +@infobox-success-border: @notification-success-border; +@infobox-success-text: @notification-success-text; +@infobox-info-bg: @notification-info-bg; +@infobox-info-border: @notification-info-border; +@infobox-info-text: @notification-info-text; +@infobox-warning-bg: @notification-warning-bg; +@infobox-warning-border: @notification-warning-border; +@infobox-warning-text: @notification-warning-text; +@infobox-error-bg: @notification-error-bg; +@infobox-error-border: @notification-error-border; +@infobox-error-text: @notification-error-text; + +// Window +@window-border: #c5c5c5; +@window-head-border: @window-border; +@window-head-close: mix(@text, @window-bg, 60%); +@window-head-close-hover: mix(@text, @window-bg, 40%); +@window-foot-border: @window-border; +@window-foot-bg: @window-bg; +@window-fullscreen-bg: #FFF; +@window-modalblock-bg: #000; +@window-modalblock-opacity: 0.3; +@window-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); +@window-bg: #FFF; +@window-title-font-size: 20px; + +// Popover +@popover-bg: @window-bg; +@popover-arrow-width: 10px; +@popover-arrow: @window-bg; +@popover-arrow-outer-width: @popover-arrow-width + 1; +@popover-arrow-outer: rgba(0, 0, 0, 0.25); + +// Floatpanel +@floatpanel-box-shadow: 0 5px 10px rgba(0, 0, 0, .2); + +// Checkbox +@checkbox-bg: @btn-bg; +@checkbox-bg-hlight: @btn-bg-hlight; +@checkbox-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .2), 0 1px 2px rgba(0, 0, 0, .05); +@checkbox-border: #c5c5c5; +@checkbox-border-focus: rgba(82, 168, 236, .8); + +// Path +@path-text: @text; +@path-bg-focus: #666; +@path-text-focus: #fff; + +// Textbox +@textbox-text-placeholder: #aaa; +@textbox-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +@textbox-bg: #fff; +@textbox-border: #c5c5c5; +@textbox-border-focus: #3498db; + +// Selectbox +@selectbox-bg: @textbox-bg; +@selectbox-border: @textbox-border; + +// Throbber +@throbber-bg: #fff url('img/loader.gif') no-repeat center center; + +// Combobox +@combobox-border: @textbox-border; +@combobox-error-text: @text-error; +@combobox-warning-text: @text-warning; +@combobox-success-text: @text-success; + +// Colorpicker +@colorpicker-border: @textbox-border; +@colorpicker-hue-bg: #fff; +@colorpicker-hue-border: #333; + +// Grid +@grid-bg-active: @menuitem-bg-active; +@grid-border-active: @menuitem-bg-active; +@grid-border: #d6d6d6; + +// Misc +@colorbtn-backcolor-bg: #BBB; +@iframe-border: @panel-border; + +// Slider +@slider-border: #AAA; +@slider-bg: #EEE; +@slider-handle-border: #BBB; +@slider-handle-bg: #DDD; +@slider-handle-bg-focus: #BBB; + +// Progress +@progress-border: #ccc; +@progress-bar-bg: #dfdfdf; +@progress-bar-bg-hlight: #cccccc; +@progress-text: @text; + +// Flow layout +@flow-layout-spacing: 2px; diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/Window.less b/data/web/rc/program/js/tinymce/skins/lightgray/Window.less new file mode 100644 index 0000000000000000000000000000000000000000..45fcf0b3fd19ec8f859855413b0d933ba337e575 --- /dev/null +++ b/data/web/rc/program/js/tinymce/skins/lightgray/Window.less @@ -0,0 +1,127 @@ +// Window + +.@{prefix}-fullscreen { + border: 0; padding: 0; margin: 0; + overflow: hidden; + height: 100%; +} + +div.@{prefix}-fullscreen { + position: fixed; + top: 0; left: 0; +} + +#@{prefix}-modal-block { + .opacity(0); + position: fixed; + left: 0; top: 0; + width: 100%; height: 100%; + background: @window-modalblock-bg; +} + +#@{prefix}-modal-block.@{prefix}-in { + .opacity(@window-modalblock-opacity); +} + +.@{prefix}-window-move { + cursor: move; +} + +.@{prefix}-window { + .border-radius(6px); + .box-shadow(@window-box-shadow); + .reset-gradient(); + background: @window-bg; + position: fixed; + top: 0; left: 0; + opacity: 0; + transform: scale(0.1); + transition: transform 100ms ease-in, opacity 150ms ease-in; +} + +.@{prefix}-window.@{prefix}-in { + transform: scale(1); + opacity: 1; +} + +.@{prefix}-window-head { + padding: 9px 15px; + border-bottom: 1px solid @window-head-border; + position: relative; +} + +.@{prefix}-window-head .@{prefix}-close { + position: absolute; + right: 0; + top: 0; + height: 38px; + width: 38px; + text-align: center; + cursor: pointer; + + i { + color: @window-head-close; + } +} + +.@{prefix}-close:hover i { + color: @window-head-close-hover; +} + +.@{prefix}-window-head .@{prefix}-title { + line-height: 20px; + font-size: @window-title-font-size; + font-weight: bold; + text-rendering: optimizelegibility; + padding-right: 20px; +} + +.@{prefix}-window .@{prefix}-container-body { + display: block; +} + +.@{prefix}-foot { + display: block; + background-color: @window-foot-bg; + border-top: 1px solid @window-foot-border; + .border-radius(0 0 6px 6px); +} + +.@{prefix}-window-head .@{prefix}-dragh { + position: absolute; + top: 0; left: 0; + cursor: move; + width: 90%; + height: 100%; +} + +.@{prefix}-window iframe { + width: 100%; + height: 100%; +} + +.@{prefix}-window.@{prefix}-fullscreen, .@{prefix}-window.@{prefix}-fullscreen .@{prefix}-foot { + .border-radius(0); +} + +.@{prefix}-window-body .@{prefix}-listbox { + border-color: @btn-border-hover; +} + +// RTL + +.@{prefix}-rtl .@{prefix}-window-head .@{prefix}-close { + position: absolute; + right: auto; + left: 15px; +} + +.@{prefix}-rtl .@{prefix}-window-head .@{prefix}-dragh { + left: auto; + right: 0; +} + +.@{prefix}-rtl .@{prefix}-window-head .@{prefix}-title { + direction: rtl; + text-align: right; +} diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/content.inline.min.css b/data/web/rc/program/js/tinymce/skins/lightgray/content.inline.min.css new file mode 100644 index 0000000000000000000000000000000000000000..61ad7cb96b08d84217c63b0e8eaa063c83052cce --- /dev/null +++ b/data/web/rc/program/js/tinymce/skins/lightgray/content.inline.min.css @@ -0,0 +1 @@ +.mce-content-body .mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:black;font-family:Arial;font-size:11px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;line-height:normal;font-weight:normal;text-align:left;-webkit-tap-highlight-color:transparent;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-object{border:1px dotted #3A3A3A;background:#D5D5D5 url(img/object.gif) no-repeat center}.mce-preview-object{display:inline-block;position:relative;margin:0 2px 0 2px;line-height:0;border:1px solid gray}.mce-preview-object .mce-shim{position:absolute;top:0;left:0;width:100%;height:100%;background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)}figure.align-left{float:left}figure.align-right{float:right}figure.image.align-center{display:table;margin-left:auto;margin-right:auto}figure.image{display:inline-block;border:1px solid gray;margin:0 2px 0 1px;background:#f5f2f0}figure.image img{margin:8px 8px 0 8px}figure.image figcaption{margin:6px 8px 6px 8px;text-align:center}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px;page-break-before:always}@media print{.mce-pagebreak{border:0}}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;user-select:all;user-modify:read-only;width:9px !important;height:9px !important;border:1px dotted #3A3A3A;background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-nbsp,.mce-shy{background:#AAA}.mce-shy::after{content:'-'}hr{cursor:default}.mce-match-marker{background:#AAA;color:#fff}.mce-match-marker-selected{background:#3399ff;color:#fff}.mce-spellchecker-word{border-bottom:2px solid #F00;cursor:default}.mce-spellchecker-grammar{border-bottom:2px solid #008000;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #BBB}td[data-mce-selected],th[data-mce-selected]{background-color:#3399ff !important}.mce-edit-focus{outline:1px dotted #333}.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus{outline:2px solid #2d8ac7}.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover{outline:2px solid #7ACAFF}.mce-content-body *[contentEditable=false][data-mce-selected]{outline:2px solid #2d8ac7}.mce-resize-bar-dragging{background-color:blue;opacity:.25;filter:alpha(opacity=25);zoom:1} \ No newline at end of file diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/content.min.css b/data/web/rc/program/js/tinymce/skins/lightgray/content.min.css new file mode 100644 index 0000000000000000000000000000000000000000..7ffcac0b65f4cecff809796e5eb6846aa21a4900 --- /dev/null +++ b/data/web/rc/program/js/tinymce/skins/lightgray/content.min.css @@ -0,0 +1 @@ +body{background-color:#FFFFFF;color:#000000;font-family:Verdana,Arial,Helvetica,sans-serif;font-size:14px;scrollbar-3dlight-color:#F0F0EE;scrollbar-arrow-color:#676662;scrollbar-base-color:#F0F0EE;scrollbar-darkshadow-color:#DDDDDD;scrollbar-face-color:#E0E0DD;scrollbar-highlight-color:#F0F0EE;scrollbar-shadow-color:#F0F0EE;scrollbar-track-color:#F5F5F5}td,th{font-family:Verdana,Arial,Helvetica,sans-serif;font-size:14px}.mce-content-body .mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:black;font-family:Arial;font-size:11px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;line-height:normal;font-weight:normal;text-align:left;-webkit-tap-highlight-color:transparent;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-object{border:1px dotted #3A3A3A;background:#D5D5D5 url(img/object.gif) no-repeat center}.mce-preview-object{display:inline-block;position:relative;margin:0 2px 0 2px;line-height:0;border:1px solid gray}.mce-preview-object .mce-shim{position:absolute;top:0;left:0;width:100%;height:100%;background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)}figure.align-left{float:left}figure.align-right{float:right}figure.image.align-center{display:table;margin-left:auto;margin-right:auto}figure.image{display:inline-block;border:1px solid gray;margin:0 2px 0 1px;background:#f5f2f0}figure.image img{margin:8px 8px 0 8px}figure.image figcaption{margin:6px 8px 6px 8px;text-align:center}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px;page-break-before:always}@media print{.mce-pagebreak{border:0}}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;user-select:all;user-modify:read-only;width:9px !important;height:9px !important;border:1px dotted #3A3A3A;background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-nbsp,.mce-shy{background:#AAA}.mce-shy::after{content:'-'}hr{cursor:default}.mce-match-marker{background:#AAA;color:#fff}.mce-match-marker-selected{background:#3399ff;color:#fff}.mce-spellchecker-word{border-bottom:2px solid #F00;cursor:default}.mce-spellchecker-grammar{border-bottom:2px solid #008000;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #BBB}td[data-mce-selected],th[data-mce-selected]{background-color:#3399ff !important}.mce-edit-focus{outline:1px dotted #333}.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus{outline:2px solid #2d8ac7}.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover{outline:2px solid #7ACAFF}.mce-content-body *[contentEditable=false][data-mce-selected]{outline:2px solid #2d8ac7}.mce-resize-bar-dragging{background-color:blue;opacity:.25;filter:alpha(opacity=25);zoom:1} \ No newline at end of file diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/fonts/tinymce-small.eot b/data/web/rc/program/js/tinymce/skins/lightgray/fonts/tinymce-small.eot new file mode 100644 index 0000000000000000000000000000000000000000..b144ba0bd949de3c0f87abdd78b517067169884f Binary files /dev/null and b/data/web/rc/program/js/tinymce/skins/lightgray/fonts/tinymce-small.eot differ diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/fonts/tinymce-small.svg b/data/web/rc/program/js/tinymce/skins/lightgray/fonts/tinymce-small.svg new file mode 100644 index 0000000000000000000000000000000000000000..b4ee6f4088b2a4de25918f2df2a72f16d805eeaa --- /dev/null +++ b/data/web/rc/program/js/tinymce/skins/lightgray/fonts/tinymce-small.svg @@ -0,0 +1,63 @@ + + + +Generated by IcoMoon + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/fonts/tinymce-small.ttf b/data/web/rc/program/js/tinymce/skins/lightgray/fonts/tinymce-small.ttf new file mode 100644 index 0000000000000000000000000000000000000000..a983e2dc4cb30880fffe00e1f0879be4d95eb4cc Binary files /dev/null and b/data/web/rc/program/js/tinymce/skins/lightgray/fonts/tinymce-small.ttf differ diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/fonts/tinymce-small.woff b/data/web/rc/program/js/tinymce/skins/lightgray/fonts/tinymce-small.woff new file mode 100644 index 0000000000000000000000000000000000000000..d8962df76e50488c6520c0dadf3220080aaae9fb Binary files /dev/null and b/data/web/rc/program/js/tinymce/skins/lightgray/fonts/tinymce-small.woff differ diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/fonts/tinymce.eot b/data/web/rc/program/js/tinymce/skins/lightgray/fonts/tinymce.eot new file mode 100644 index 0000000000000000000000000000000000000000..f99c13f32f5c968849f08a3d8a399157bfb0cccb Binary files /dev/null and b/data/web/rc/program/js/tinymce/skins/lightgray/fonts/tinymce.eot differ diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/fonts/tinymce.svg b/data/web/rc/program/js/tinymce/skins/lightgray/fonts/tinymce.svg new file mode 100644 index 0000000000000000000000000000000000000000..5727cea4250dcf2923af7fefb59b18884cac2135 --- /dev/null +++ b/data/web/rc/program/js/tinymce/skins/lightgray/fonts/tinymce.svg @@ -0,0 +1,131 @@ + + + +Generated by IcoMoon + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/fonts/tinymce.ttf b/data/web/rc/program/js/tinymce/skins/lightgray/fonts/tinymce.ttf new file mode 100644 index 0000000000000000000000000000000000000000..16536bfd7a292e7090b9d4e0ae61061da9bc042f Binary files /dev/null and b/data/web/rc/program/js/tinymce/skins/lightgray/fonts/tinymce.ttf differ diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/fonts/tinymce.woff b/data/web/rc/program/js/tinymce/skins/lightgray/fonts/tinymce.woff new file mode 100644 index 0000000000000000000000000000000000000000..74b50f4c3001da7fdfffd8638213dcf1a396da78 Binary files /dev/null and b/data/web/rc/program/js/tinymce/skins/lightgray/fonts/tinymce.woff differ diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/img/anchor.gif b/data/web/rc/program/js/tinymce/skins/lightgray/img/anchor.gif new file mode 100644 index 0000000000000000000000000000000000000000..606348c7f53dba169a9aca7279a2a973f4b07bdb Binary files /dev/null and b/data/web/rc/program/js/tinymce/skins/lightgray/img/anchor.gif differ diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/img/loader.gif b/data/web/rc/program/js/tinymce/skins/lightgray/img/loader.gif new file mode 100644 index 0000000000000000000000000000000000000000..c69e937232b24ea30f01c68bbd2ebc798dcecfcb Binary files /dev/null and b/data/web/rc/program/js/tinymce/skins/lightgray/img/loader.gif differ diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/img/object.gif b/data/web/rc/program/js/tinymce/skins/lightgray/img/object.gif new file mode 100644 index 0000000000000000000000000000000000000000..cccd7f023fb80908cb33bb7d9604236cd21b7ae7 Binary files /dev/null and b/data/web/rc/program/js/tinymce/skins/lightgray/img/object.gif differ diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/img/trans.gif b/data/web/rc/program/js/tinymce/skins/lightgray/img/trans.gif new file mode 100644 index 0000000000000000000000000000000000000000..388486517fa8da13ebd150e8f65d5096c3e10c3a Binary files /dev/null and b/data/web/rc/program/js/tinymce/skins/lightgray/img/trans.gif differ diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/skin.dev.less b/data/web/rc/program/js/tinymce/skins/lightgray/skin.dev.less new file mode 100644 index 0000000000000000000000000000000000000000..e5b1211db472cc5bc1dac75c9a71440f41487e78 --- /dev/null +++ b/data/web/rc/program/js/tinymce/skins/lightgray/skin.dev.less @@ -0,0 +1,48 @@ +@import "Variables.less"; +@import "Reset.less"; +@import "Mixins.less"; +@import "Animations.less"; +@import "TinyMCE.less"; +@import "CropRect.less"; +@import "ImagePanel.less"; +@import "Arrows.less"; +@import "Sidebar.less"; +@import "Container.less"; +@import "Scrollable.less"; +@import "Panel.less"; +@import "FloatPanel.less"; +@import "Window.less"; +@import "ToolTip.less"; +@import "Progress.less"; +@import "Notification.less"; +@import "AbsoluteLayout.less"; +@import "Button.less"; +@import "ButtonGroup.less"; +@import "Checkbox.less"; +@import "ComboBox.less"; +@import "ColorBox.less"; +@import "ColorButton.less"; +@import "ColorPicker.less"; +@import "Path.less"; +@import "FieldSet.less"; +@import "FitLayout.less"; +@import "FlowLayout.less"; +@import "Iframe.less"; +@import "InfoBox.less"; +@import "Label.less"; +@import "MenuBar.less"; +@import "MenuButton.less"; +@import "MenuItem.less"; +@import "Throbber.less"; +@import "Menu.less"; +@import "ListBox.less"; +@import "Radio.less"; +@import "ResizeHandle.less"; +@import "SelectBox.less"; +@import "Slider.less"; +@import "Spacer.less"; +@import "SplitButton.less"; +@import "StackLayout.less"; +@import "TabPanel.less"; +@import "TextBox.less"; +@import "Icons.less"; diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/skin.ie7.dev.less b/data/web/rc/program/js/tinymce/skins/lightgray/skin.ie7.dev.less new file mode 100644 index 0000000000000000000000000000000000000000..3f67d4e7b5801138550f00123290e944b931a001 --- /dev/null +++ b/data/web/rc/program/js/tinymce/skins/lightgray/skin.ie7.dev.less @@ -0,0 +1,47 @@ +@import "Variables.less"; +@import "Reset.less"; +@import "Mixins.less"; +@import "Animations.less"; +@import "TinyMCE.less"; +@import "CropRect.less"; +@import "ImagePanel.less"; +@import "Arrows.less"; +@import "Container.less"; +@import "Scrollable.less"; +@import "Panel.less"; +@import "FloatPanel.less"; +@import "Window.less"; +@import "ToolTip.less"; +@import "Progress.less"; +@import "Notification.less"; +@import "AbsoluteLayout.less"; +@import "Button.less"; +@import "ButtonGroup.less"; +@import "Checkbox.less"; +@import "ComboBox.less"; +@import "ColorBox.less"; +@import "ColorButton.less"; +@import "ColorPicker.less"; +@import "Path.less"; +@import "FieldSet.less"; +@import "FitLayout.less"; +@import "FlowLayout.less"; +@import "Iframe.less"; +@import "InfoBox.less"; +@import "Label.less"; +@import "MenuBar.less"; +@import "MenuButton.less"; +@import "MenuItem.less"; +@import "Throbber.less"; +@import "Menu.less"; +@import "ListBox.less"; +@import "Radio.less"; +@import "ResizeHandle.less"; +@import "SelectBox.less"; +@import "Slider.less"; +@import "Spacer.less"; +@import "SplitButton.less"; +@import "StackLayout.less"; +@import "TabPanel.less"; +@import "TextBox.less"; +@import "Icons.Ie7.less"; diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/skin.ie7.less b/data/web/rc/program/js/tinymce/skins/lightgray/skin.ie7.less new file mode 100644 index 0000000000000000000000000000000000000000..724f6784fc002bd478a2b398ba184a1e2714d418 --- /dev/null +++ b/data/web/rc/program/js/tinymce/skins/lightgray/skin.ie7.less @@ -0,0 +1,2777 @@ + +// Variables +// Syntax: -()--()-(); +// Example: @btn-primary-bg-hover-hlight; + +@prefix: mce; + +// Default font +@font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; +@font-size: 14px; +@line-height: 20px; +@has-gradients: false; +@has-radius: false; +@has-boxshadow: false; +@has-button-borders: false; + +// Text colors +@text: #333; +@text-inverse: white; +@text-disabled: #aaa; +@text-shadow: 0 1px 1px hsla(hue(@text-inverse), saturation(@text-inverse), lightness(@text-inverse), 0.75); +@text-error: #b94a48; +@text-warning: #c09853; +@text-success: #468847; + +// Button +@btn-text: @text; +@btn-text-shadow: none; +@btn-border-top: transparent; +@btn-border-right: transparent; +@btn-border-bottom: transparent; +@btn-border-left: transparent; +@btn-caret-border: @btn-text; +@btn-text-disabled: @text-disabled; +@btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .2), 0 1px 2px rgba(0, 0, 0, .05); +@btn-box-shadow-active: inset 0 2px 4px rgba(0, 0, 0, .15), 0 1px 2px rgba(0, 0, 0, .05); +@btn-box-disabled-opacity: 0.4; +@btn-bg: white; +@btn-bg-hlight: #D9D9D9; +@btn-bg-hover: darken(@btn-bg, 5%); +@btn-bg-hlight-hover: darken(@btn-bg-hlight, 5%); +@btn-border-hover: darken(@btn-bg, 20%); +@btn-border-active: darken(@btn-bg, 20%); +@btn-padding: 4px 8px; + +@btn-primary-bg: #2980b9; +@btn-primary-bg-hlight: #3498db; +@btn-primary-bg-hover: darken(@btn-primary-bg, 5%); +@btn-primary-bg-hover-hlight: darken(@btn-primary-bg-hlight, 5%); +@btn-primary-text: #fff; +@btn-primary-text-shadow: none; +@btn-primary-border-top: mix(@btn-border-top, @btn-primary-bg, 50%); +@btn-primary-border-right: mix(@btn-border-right, @btn-primary-bg, 50%); +@btn-primary-border-bottom: mix(@btn-border-bottom, @btn-primary-bg, 50%); +@btn-primary-border-left: mix(@btn-border-left, @btn-primary-bg, 50%); +@btn-primary-border: transparent; +@btn-primary-border-hover: transparent; + +// Button group +@btn-group-border-width: 1px; + +// Menu +@menuitem-text: @text; +@menu-bg: #fff; +@menu-margin: -1px 0 0; +@menu-border: rgba(0, 0, 0, 0.2); +@menubar-border: mix(@panel-border, @panel-bg, 60%); +@menuitem-text-inverse: @text-inverse; +@menubar-bg-active: darken(@btn-bg, 10%); +@menuitem-bg-hover: #0081C2; +@menuitem-bg-selected: #2980b9; +@menuitem-bg-selected-hlight: #3498db; +@menuitem-bg-disabled: #CCC; +@menuitem-caret: @menuitem-text; +@menuitem-caret-selected: @menuitem-text-inverse; +@menuitem-separator-top: transparent; +@menuitem-separator-bottom: rgba(0,0,0,0.1); +@menuitem-bg-active: #3498db; +@menuitem-text-active: @text-inverse; +@menuitem-preview-border-active: #aaa; +@menubar-menubtn-text: #333; + +// Panel +@panel-border: rgba(0,0,0,.2); +@panel-bg: #FDFDFD; +@panel-bg-hlight: #DDD; + +// Tabs +@tab-border: #c5c5c5; +@tab-bg: #ffffff; +@tab-bg-hover: #FDFDFD; +@tab-bg-active: #FDFDFD; +@tabs-bg: #FFF; + +// Tooltip +@tooltip-bg: #000; +@tooltip-text: white; +@tooltip-font-size: 11px; + +// Notification +@notification-font-size: 14px; +@notification-bg: #F0F0F0; +@notification-border: #CCCCCC; +@notification-text: #333333; +@notification-success-bg: #dff0d8; +@notification-success-border: #d6e9c6; +@notification-success-text: #3c763d; +@notification-info-bg: #d9edf7; +@notification-info-border: #779ECB; +@notification-info-text: #31708f; +@notification-warning-bg: #fcf8e3; +@notification-warning-border: #faebcc; +@notification-warning-text: #8a6d3b; +@notification-error-bg: #f2dede; +@notification-error-border: #ebccd1; +@notification-error-text: #a94442; + +// Infobox +@infobox-bg: @notification-bg; +@infobox-border: @notification-border; +@infobox-text: @notification-text; +@infobox-success-bg: @notification-success-bg; +@infobox-success-border: @notification-success-border; +@infobox-success-text: @notification-success-text; +@infobox-info-bg: @notification-info-bg; +@infobox-info-border: @notification-info-border; +@infobox-info-text: @notification-info-text; +@infobox-warning-bg: @notification-warning-bg; +@infobox-warning-border: @notification-warning-border; +@infobox-warning-text: @notification-warning-text; +@infobox-error-bg: @notification-error-bg; +@infobox-error-border: @notification-error-border; +@infobox-error-text: @notification-error-text; + +// Window +@window-border: #c5c5c5; +@window-head-border: @window-border; +@window-head-close: mix(@text, @window-bg, 60%); +@window-head-close-hover: mix(@text, @window-bg, 40%); +@window-foot-border: @window-border; +@window-foot-bg: @window-bg; +@window-fullscreen-bg: #FFF; +@window-modalblock-bg: #000; +@window-modalblock-opacity: 0.3; +@window-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); +@window-bg: #FFF; +@window-title-font-size: 20px; + +// Popover +@popover-bg: @window-bg; +@popover-arrow-width: 10px; +@popover-arrow: @window-bg; +@popover-arrow-outer-width: @popover-arrow-width + 1; +@popover-arrow-outer: rgba(0, 0, 0, 0.25); + +// Floatpanel +@floatpanel-box-shadow: 0 5px 10px rgba(0, 0, 0, .2); + +// Checkbox +@checkbox-bg: @btn-bg; +@checkbox-bg-hlight: @btn-bg-hlight; +@checkbox-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .2), 0 1px 2px rgba(0, 0, 0, .05); +@checkbox-border: #c5c5c5; +@checkbox-border-focus: rgba(82, 168, 236, .8); + +// Path +@path-text: @text; +@path-bg-focus: #666; +@path-text-focus: #fff; + +// Textbox +@textbox-text-placeholder: #aaa; +@textbox-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +@textbox-bg: #fff; +@textbox-border: #c5c5c5; +@textbox-border-focus: #3498db; + +// Selectbox +@selectbox-bg: @textbox-bg; +@selectbox-border: @textbox-border; + +// Throbber +@throbber-bg: #fff url('img/loader.gif') no-repeat center center; + +// Combobox +@combobox-border: @textbox-border; +@combobox-error-text: @text-error; +@combobox-warning-text: @text-warning; +@combobox-success-text: @text-success; + +// Colorpicker +@colorpicker-border: @textbox-border; +@colorpicker-hue-bg: #fff; +@colorpicker-hue-border: #333; + +// Grid +@grid-bg-active: @menuitem-bg-active; +@grid-border-active: @menuitem-bg-active; +@grid-border: #d6d6d6; + +// Misc +@colorbtn-backcolor-bg: #BBB; +@iframe-border: @panel-border; + +// Slider +@slider-border: #AAA; +@slider-bg: #EEE; +@slider-handle-border: #BBB; +@slider-handle-bg: #DDD; +@slider-handle-bg-focus: #BBB; + +// Progress +@progress-border: #ccc; +@progress-bar-bg: #dfdfdf; +@progress-bar-bg-hlight: #cccccc; +@progress-text: @text; + +// Flow layout +@flow-layout-spacing: 2px; + + +// Reset + +.@{prefix}-container, .@{prefix}-container *, .@{prefix}-widget, .@{prefix}-widget *, .@{prefix}-reset { + margin: 0; padding: 0; border: 0; outline: 0; + vertical-align: top; background: transparent; + text-decoration: none; color: @text; + font-family: @font-family; + font-size: @font-size; text-shadow: none; float: none; + position: static; width: auto; height: auto; + white-space: nowrap; cursor: inherit; + -webkit-tap-highlight-color: transparent; + line-height: normal; font-weight: normal; + text-align: left; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + box-sizing: content-box; + direction: ltr; + max-width: none; +} + +.@{prefix}-widget button { + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.@{prefix}-container *[unselectable] { + -moz-user-select: none; + -webkit-user-select: none; + -o-user-select: none; + user-select: none; +} + + +// Mixins + +.opacity(@opacity) { + opacity: @opacity; + @opacityie: @opacity * 100; + filter: ~"alpha(opacity=@{opacityie})"; + zoom: 1; +} + +.vertical-gradient(@startColor, @endColor) when (@has-gradients = true) { + background-color: mix(@startColor, @endColor, 60%); + background-image: -moz-linear-gradient(top, @startColor, @endColor); // FF 3.6+ + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@startColor), to(@endColor)); // Safari 4+, Chrome 2+ + background-image: -webkit-linear-gradient(top, @startColor, @endColor); // Safari 5.1+, Chrome 10+ + background-image: -o-linear-gradient(top, @startColor, @endColor); // Opera 11.10 + background-image: linear-gradient(to bottom, @startColor, @endColor); // Standard, IE10 + background-repeat: repeat-x; + filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)", argb(@startColor), argb(@endColor))); + zoom: 1; +} + +.vertical-gradient(@startColor, @endColor) when (@has-gradients = false) { + background-color: mix(@startColor, @endColor, 60%); +} + +.border-radius(@radius) when (@has-radius = true) { + -webkit-border-radius: @radius; + -moz-border-radius: @radius; + border-radius: @radius; +} + +.box-shadow(@shadowA, @shadowB:X, ...) when (@has-boxshadow = true) { + // Multiple shadow solution from http://toekneestuck.com/blog/2012/05/15/less-css-arguments-variable/ + @props: ~`"@{arguments}".replace(/[\[\]]|\,\sX/g, '')`; + -webkit-box-shadow: @props; + -moz-box-shadow: @props; + box-shadow: @props; +} + +.transition(@transition) { + -webkit-transition: @transition; + transition: @transition; +} + +.inline-block() { + display: inline-block; + *display: inline; + *zoom: 1; +} + +.reset-gradient() { + filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)")); + background: transparent; +} + + +// Animations + +.@{prefix}-fade { + opacity: 0; + .transition(opacity .15s linear); + + &.@{prefix}-in { + opacity: 1; + } +} + + +.@{prefix}-tinymce { + // Avoid FOUC + visibility: inherit !important; + position: relative; +} + +.@{prefix}-fullscreen { + border: 0; padding: 0; margin: 0; + overflow: hidden; + height: 100%; + z-index: 100; +} + +div.@{prefix}-fullscreen { + position: fixed; + top: 0; left: 0; + width: 100%; + height: auto; +} + +.@{prefix}-tinymce { + display: block; + .border-radius(2px); +} + +.@{prefix}-wordcount { + position: absolute; + top: 0; + right: 0; + padding: 8px; +} + +div.@{prefix}-edit-area { + background: #FFF; + filter: none; +} + +.@{prefix}-statusbar { + position: relative; +} + +.@{prefix}-statusbar .@{prefix}-container-body { + position: relative; +} + +.@{prefix}-fullscreen .@{prefix}-resizehandle { + display: none; +} + +// Charmap + +.@{prefix}-charmap { + border-collapse: collapse; +} + +.@{prefix}-charmap td { + cursor: default; + border: 1px solid @panel-border; + width: 20px; + height: 20px; + line-height: 20px; + text-align: center; + vertical-align: middle; + padding: 2px; +} + +.@{prefix}-charmap td div { + text-align: center; +} + +.@{prefix}-charmap td:hover { + background: @btn-bg-hlight; +} + +.@{prefix}-grid td.@{prefix}-grid-cell div { + border: 1px solid @grid-border; + width: 15px; height: 15px; + margin: 0px; + cursor: pointer; + + &:focus { + border-color: @grid-border-active; + } + + &[disabled] { + cursor: not-allowed; + } +} + +.@{prefix}-grid { + border-spacing: 2px; + border-collapse: separate; + + a { + display: block; + border: 1px solid transparent; + + &:hover, &:focus { + border-color: @grid-border-active; + } + } +} + +.@{prefix}-grid-border { + margin: 0 4px 0 4px; + + a { + border-color: @grid-border; + width: 13px; height: 13px; + } + + a:hover, a.@{prefix}-active { + border-color: @grid-border-active; + background: @grid-bg-active; + } +} + +.@{prefix}-text-center { + text-align: center; +} + +div.@{prefix}-tinymce-inline { + width: 100%; + .box-shadow(none); +} + +.@{prefix}-colorbtn-trans div { + text-align: center; + vertical-align: middle; + font-weight: bold; + font-size: 20px; + line-height: 16px; + color: mix(@text, #fff, 70%); +} + +.@{prefix}-monospace { + font-family: "Courier New", Courier, monospace; +} + +// Reduce double margins between toolbar rows + +.@{prefix}-toolbar-grp when (@has-button-borders = false) { + padding: @flow-layout-spacing 0; +} + +.@{prefix}-toolbar-grp when (@has-button-borders = true) { + padding-bottom: 2px; +} + +.@{prefix}-toolbar-grp .@{prefix}-flow-layout-item { + margin-bottom: 0; +} + +// RTL + +.@{prefix}-rtl .@{prefix}-wordcount { + left: 0; + right: auto; +} + + +// CropRect + +.@{prefix}-croprect-container { + position: absolute; + top: 0; + left: 0; +} + +.@{prefix}-croprect-handle { + position: absolute; + top: 0; left: 0; + width: 20px; height: 20px; + border: 2px solid white; +} + +.@{prefix}-croprect-handle-nw { + border-width: 2px 0 0 2px; + margin: -2px 0 0 -2px; + cursor: nw-resize; + top: 100px; left: 100px; +} + +.@{prefix}-croprect-handle-ne { + border-width: 2px 2px 0 0; + margin: -2px 0 0 -20px; + cursor: ne-resize; + top: 100px; left: 200px; +} + +.@{prefix}-croprect-handle-sw { + border-width: 0 0 2px 2px; + margin: -20px 2px 0 -2px; + cursor: sw-resize; + top: 200px; left: 100px; +} + +.@{prefix}-croprect-handle-se { + border-width: 0 2px 2px 0; + margin: -20px 0 0 -20px; + cursor: se-resize; + top: 200px; left: 200px; +} + +.@{prefix}-croprect-handle-move { + position: absolute; + cursor: move; + border: 0; +} + +.@{prefix}-croprect-block { + .opacity(@window-modalblock-opacity); + position: absolute; + background: black; +} + +.@{prefix}-croprect-handle:focus { + border-color: @textbox-border-focus; +} + +.@{prefix}-croprect-handle-move:focus { + outline: 1px solid @textbox-border-focus; +} + + +// ImagePanel + +.@{prefix}-imagepanel { + overflow: auto; + background: black; +} + +.@{prefix}-imagepanel-bg { + position: absolute; + background: url('data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw=='); +} + +.@{prefix}-imagepanel img { + position: absolute; +} + +.@{prefix}-imagetool.@{prefix}-btn .@{prefix}-ico { + display: block; + width: 20px; + height: 20px; + text-align: center; + line-height: 20px; + font-size: 20px; + padding: 5px; +} + + +// Arrows + +.@{prefix}-arrow-up { + margin-top: 12px; +} + +.@{prefix}-arrow-down { + margin-top: -12px; +} + +.@{prefix}-arrow:before, +.@{prefix}-arrow:after { + position: absolute; + left: 50%; + display: block; + width: 0; + height: 0; + border-style: solid; + border-color: transparent; + content: ""; +} + +.@{prefix}-arrow.@{prefix}-arrow-up:before { + top: -9px; + border-bottom-color: @panel-border; + border-width: 0 9px 9px; + margin-left: -9px; +} + +.@{prefix}-arrow.@{prefix}-arrow-down:before { + bottom: -9px; + border-top-color: @panel-border; + border-width: 9px 9px 0; + margin-left: -9px; +} + +.@{prefix}-arrow.@{prefix}-arrow-up:after { + top: -8px; + border-bottom-color: mix(@panel-bg, @panel-bg-hlight, 60%); + border-width: 0 8px 8px; + margin-left: -8px; +} + +.@{prefix}-arrow.@{prefix}-arrow-down:after { + bottom: -8px; + border-top-color: mix(@panel-bg, @panel-bg-hlight, 60%); + border-width: 8px 8px 0; + margin-left: -8px; +} + +.@{prefix}-arrow.@{prefix}-arrow-left:before, +.@{prefix}-arrow.@{prefix}-arrow-left:after { + margin: 0; +} + +.@{prefix}-arrow.@{prefix}-arrow-left:before { + left: 8px; +} +.@{prefix}-arrow.@{prefix}-arrow-left:after { + left: 9px; +} + +.@{prefix}-arrow.@{prefix}-arrow-right:before, +.@{prefix}-arrow.@{prefix}-arrow-right:after { + left: auto; + margin: 0; +} + +.@{prefix}-arrow.@{prefix}-arrow-right:before { + right: 8px; +} + +.@{prefix}-arrow.@{prefix}-arrow-right:after { + right: 9px; +} + +.@{prefix}-arrow.@{prefix}-arrow-center.@{prefix}-arrow.@{prefix}-arrow-left:before { + left: -9px; + top: 50%; + border-right-color: @panel-border; + border-width: 9px 9px 9px 0; + margin-top: -9px; +} + +.@{prefix}-arrow.@{prefix}-arrow-center.@{prefix}-arrow.@{prefix}-arrow-left:after { + left: -8px; + top: 50%; + border-right-color: mix(@panel-bg, @panel-bg-hlight, 60%); + border-width: 8px 8px 8px 0; + margin-top: -8px; +} + +.@{prefix}-arrow.@{prefix}-arrow-center.@{prefix}-arrow.@{prefix}-arrow-left { + margin-left: 12px; +} + +.@{prefix}-arrow.@{prefix}-arrow-center.@{prefix}-arrow.@{prefix}-arrow-right:before { + right: -9px; + top: 50%; + border-left-color: @panel-border; + border-width: 9px 0 9px 9px; + margin-top: -9px; +} + +.@{prefix}-arrow.@{prefix}-arrow-center.@{prefix}-arrow.@{prefix}-arrow-right:after { + right: -8px; + top: 50%; + border-left-color: mix(@panel-bg, @panel-bg-hlight, 60%); + border-width: 8px 0 8px 8px; + margin-top: -8px; +} + +.@{prefix}-arrow.@{prefix}-arrow-center.@{prefix}-arrow.@{prefix}-arrow-right { + margin-left: -14px; +} + + +// Container + +.@{prefix}-container, .@{prefix}-container-body { + display: block; +} + +.@{prefix}-autoscroll { + overflow: hidden; +} + + +// Scrollbar + +.@{prefix}-scrollbar { + position: absolute; + width: 7px; + height: 100%; + top: 2px; + right: 2px; + .opacity(0.4); +} + +.@{prefix}-scrollbar-h { + top: auto; + right: auto; + left: 2px; + bottom: 2px; + width: 100%; + height: 7px; +} + +.@{prefix}-scrollbar-thumb { + position: absolute; + background-color: #000; + border: 1px solid #888; + border-color: rgba(85, 85, 85, .6); + width: 5px; + height: 100%; + .border-radius(7px); +} + +.@{prefix}-scrollbar-h .@{prefix}-scrollbar-thumb { + width: 100%; + height: 5px; +} + +.@{prefix}-scrollbar:hover, .@{prefix}-scrollbar.@{prefix}-active { + background-color: #AAA; + .opacity(0.6); + .border-radius(7px); +} + +.@{prefix}-scroll { + position: relative; +} + + +// Panel + +.@{prefix}-panel { + border: 0 solid mix(rgb(red(@panel-border), green(@panel-border), blue(@panel-border)), @panel-bg, 20%); + border: 0 solid @panel-border; + .vertical-gradient(@panel-bg, @panel-bg-hlight); +} + + +// FloatPanel + +.@{prefix}-floatpanel { + position: absolute; + .box-shadow(@floatpanel-box-shadow); +} + +.@{prefix}-floatpanel.@{prefix}-fixed { + position: fixed; +} + +// Popover panel + +.@{prefix}-floatpanel .@{prefix}-arrow, +.@{prefix}-floatpanel .@{prefix}-arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.@{prefix}-floatpanel .@{prefix}-arrow { + border-width: @popover-arrow-outer-width; +} + +.@{prefix}-floatpanel .@{prefix}-arrow:after { + border-width: @popover-arrow-width; + content: ""; +} + +.@{prefix}-floatpanel.@{prefix}-popover { + .reset-gradient(); + .border-radius(6px); + .box-shadow(@floatpanel-box-shadow); + top: 0; + left: 0; + background: @popover-bg; + border: 1px solid @panel-border; + border: 1px solid @popover-arrow-outer; + + &.@{prefix}-bottom { + margin-top: @popover-arrow-width; + *margin-top: 0; + + & > .@{prefix}-arrow { + left: 50%; + margin-left: -@popover-arrow-outer-width; + border-top-width: 0; + border-bottom-color: @panel-border; + border-bottom-color: @popover-arrow-outer; + top: -@popover-arrow-outer-width; + + &:after { + top: 1px; + margin-left: -@popover-arrow-width; + border-top-width: 0; + border-bottom-color: @popover-arrow; + } + } + + &.@{prefix}-start { margin-left: -22px; } + &.@{prefix}-start > .@{prefix}-arrow { left: 20px; } + + &.@{prefix}-end { margin-left: 22px; } + &.@{prefix}-end > .@{prefix}-arrow { right: 10px; left: auto; } + } +} + +// Window + +.@{prefix}-fullscreen { + border: 0; padding: 0; margin: 0; + overflow: hidden; + height: 100%; +} + +div.@{prefix}-fullscreen { + position: fixed; + top: 0; left: 0; +} + +#@{prefix}-modal-block { + .opacity(0); + position: fixed; + left: 0; top: 0; + width: 100%; height: 100%; + background: @window-modalblock-bg; +} + +#@{prefix}-modal-block.@{prefix}-in { + .opacity(@window-modalblock-opacity); +} + +.@{prefix}-window-move { + cursor: move; +} + +.@{prefix}-window { + .border-radius(6px); + .box-shadow(@window-box-shadow); + .reset-gradient(); + background: @window-bg; + position: fixed; + top: 0; left: 0; + opacity: 0; + transform: scale(0.1); + transition: transform 100ms ease-in, opacity 150ms ease-in; +} + +.@{prefix}-window.@{prefix}-in { + transform: scale(1); + opacity: 1; +} + +.@{prefix}-window-head { + padding: 9px 15px; + border-bottom: 1px solid @window-head-border; + position: relative; +} + +.@{prefix}-window-head .@{prefix}-close { + position: absolute; + right: 0; + top: 0; + height: 38px; + width: 38px; + text-align: center; + cursor: pointer; + + i { + color: @window-head-close; + } +} + +.@{prefix}-close:hover i { + color: @window-head-close-hover; +} + +.@{prefix}-window-head .@{prefix}-title { + line-height: 20px; + font-size: @window-title-font-size; + font-weight: bold; + text-rendering: optimizelegibility; + padding-right: 20px; +} + +.@{prefix}-window .@{prefix}-container-body { + display: block; +} + +.@{prefix}-foot { + display: block; + background-color: @window-foot-bg; + border-top: 1px solid @window-foot-border; + .border-radius(0 0 6px 6px); +} + +.@{prefix}-window-head .@{prefix}-dragh { + position: absolute; + top: 0; left: 0; + cursor: move; + width: 90%; + height: 100%; +} + +.@{prefix}-window iframe { + width: 100%; + height: 100%; +} + +.@{prefix}-window.@{prefix}-fullscreen, .@{prefix}-window.@{prefix}-fullscreen .@{prefix}-foot { + .border-radius(0); +} + +.@{prefix}-window-body .@{prefix}-listbox { + border-color: @btn-border-hover; +} + +// RTL + +.@{prefix}-rtl .@{prefix}-window-head .@{prefix}-close { + position: absolute; + right: auto; + left: 15px; +} + +.@{prefix}-rtl .@{prefix}-window-head .@{prefix}-dragh { + left: auto; + right: 0; +} + +.@{prefix}-rtl .@{prefix}-window-head .@{prefix}-title { + direction: rtl; + text-align: right; +} + + +// Tooltip + +.@{prefix}-tooltip { + position: absolute; + padding: 5px; + .opacity(0.8); +} + +.@{prefix}-tooltip-inner { + font-size: @tooltip-font-size; + background-color: @tooltip-bg; + color: @tooltip-text; + max-width: 200px; + padding: 5px 8px 4px 8px; + text-align: center; + white-space: normal; +} + +.@{prefix}-tooltip-inner { + .border-radius(3px); +} + +.@{prefix}-tooltip-inner { + .box-shadow(0 0 5px @tooltip-bg); +} + +.@{prefix}-tooltip-arrow { + position: absolute; + width: 0; + height: 0; + line-height: 0; + border: 5px dashed @tooltip-bg; +} + +.@{prefix}-tooltip-arrow-n { + border-bottom-color: @tooltip-bg; +} + +.@{prefix}-tooltip-arrow-s { + border-top-color: @tooltip-bg; +} + +.@{prefix}-tooltip-arrow-e { + border-left-color: @tooltip-bg; +} + +.@{prefix}-tooltip-arrow-w { + border-right-color: @tooltip-bg; +} + +.@{prefix}-tooltip-nw, .@{prefix}-tooltip-sw { + margin-left: -14px; +} + +.@{prefix}-tooltip-ne, .@{prefix}-tooltip-se { + margin-left: 14px; +} + +.@{prefix}-tooltip-n .@{prefix}-tooltip-arrow { + top: 0px; + left: 50%; + margin-left: -5px; + border-bottom-style: solid; + border-top: none; + border-left-color: transparent; + border-right-color: transparent; +} + +.@{prefix}-tooltip-nw .@{prefix}-tooltip-arrow { + top: 0; + left: 10px; + border-bottom-style: solid; + border-top: none; + border-left-color: transparent; + border-right-color: transparent; +} + +.@{prefix}-tooltip-ne .@{prefix}-tooltip-arrow { + top: 0; + right: 10px; + border-bottom-style: solid; + border-top: none; + border-left-color: transparent; + border-right-color: transparent; +} + +.@{prefix}-tooltip-s .@{prefix}-tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-top-style: solid; + border-bottom: none; + border-left-color: transparent; + border-right-color: transparent; +} + +.@{prefix}-tooltip-sw .@{prefix}-tooltip-arrow { + bottom: 0; + left: 10px; + border-top-style: solid; + border-bottom: none; + border-left-color: transparent; + border-right-color: transparent; +} + +.@{prefix}-tooltip-se .@{prefix}-tooltip-arrow { + bottom: 0; + right: 10px; + border-top-style: solid; + border-bottom: none; + border-left-color: transparent; + border-right-color: transparent; +} + +.@{prefix}-tooltip-e .@{prefix}-tooltip-arrow { + right: 0; + top: 50%; + margin-top: -5px; + border-left-style: solid; + border-right: none; + border-top-color: transparent; + border-bottom-color: transparent; +} + +.@{prefix}-tooltip-w .@{prefix}-tooltip-arrow { + left: 0; + top: 50%; + margin-top: -5px; + border-right-style: solid; + border-left: none; + border-top-color: transparent; + border-bottom-color: transparent; +} + + +// Progress + +.@{prefix}-progress { + display: inline-block; + position: relative; + height: 20px; +} + +.@{prefix}-progress .@{prefix}-bar-container { + display: inline-block; + width: 100px; + height: 100%; + margin-right: 8px; + border: 1px solid @progress-border; + overflow: hidden; + .border-radius(4px); +} + +.@{prefix}-progress .@{prefix}-text { + display: inline-block; + margin-top: auto; + margin-bottom: auto; + font-size: 14px; + width: 40px; + color: @progress-text; +} + +.@{prefix}-bar { + display: block; + width: 0%; + height: 100%; + .vertical-gradient(@progress-bar-bg, @progress-bar-bg-hlight); + .transition(width .2s ease); +} + + +// notification + +.@{prefix}-notification { + position: absolute; + background-color: @notification-bg; + padding: 5px; + margin-top: 5px; + border-width: 1px; + border-style: solid; + border-color: @notification-border; + transition: transform 100ms ease-in, opacity 150ms ease-in; + opacity: 0; +} + +.@{prefix}-notification.@{prefix}-in { + opacity: 1; +} + +.@{prefix}-notification-success { + background-color: @notification-success-bg; + border-color: @notification-success-border; +} + +.@{prefix}-notification-info { + background-color: @notification-info-bg; + border-color: @notification-info-border; +} + +.@{prefix}-notification-warning { + background-color: @notification-warning-bg; + border-color: @notification-warning-border; +} + +.@{prefix}-notification-error { + background-color: @notification-error-bg; + border-color: @notification-error-border; +} + +.@{prefix}-notification.@{prefix}-has-close { + padding-right: 15px; +} + +.@{prefix}-notification .@{prefix}-ico { + margin-top: 5px; +} + +.@{prefix}-notification-inner { + display: inline-block; + font-size: @notification-font-size; + margin: 5px 8px 4px 8px; + text-align: center; + white-space: normal; + color: @notification-info-text; +} + +.@{prefix}-notification-inner a { + text-decoration: underline; + cursor: pointer; +} + +.@{prefix}-notification .@{prefix}-progress { + margin-right: 8px; +} + +.@{prefix}-notification .@{prefix}-progress .@{prefix}-text { + margin-top: 5px; +} + +.@{prefix}-notification *, .@{prefix}-notification .@{prefix}-progress .@{prefix}-text { + color: @notification-text; +} + +.@{prefix}-notification .@{prefix}-progress .@{prefix}-bar-container { + border-color: @notification-border; +} + +.@{prefix}-notification .@{prefix}-progress .@{prefix}-bar-container .@{prefix}-bar { + background-color: @notification-text; +} + +.@{prefix}-notification-success *, .@{prefix}-notification-success .@{prefix}-progress .@{prefix}-text { + color: @notification-success-text; +} + +.@{prefix}-notification-success .@{prefix}-progress .@{prefix}-bar-container { + border-color: @notification-success-border; +} + +.@{prefix}-notification-success .@{prefix}-progress .@{prefix}-bar-container .@{prefix}-bar { + background-color: @notification-success-text; +} + +.@{prefix}-notification-info *, .@{prefix}-notification-info .@{prefix}-progress .@{prefix}-text { + color: @notification-info-text; +} + +.@{prefix}-notification-info .@{prefix}-progress .@{prefix}-bar-container { + border-color: @notification-info-border; +} + +.@{prefix}-notification-info .@{prefix}-progress .@{prefix}-bar-container .@{prefix}-bar { + background-color: @notification-info-text; +} + +.@{prefix}-notification-warning *, .@{prefix}-notification-warning .@{prefix}-progress .@{prefix}-text { + color: @notification-warning-text; +} + +.@{prefix}-notification-warning .@{prefix}-progress .@{prefix}-bar-container { + border-color: @notification-warning-border; +} + +.@{prefix}-notification-warning .@{prefix}-progress .@{prefix}-bar-container .@{prefix}-bar { + background-color: @notification-warning-text; +} + +.@{prefix}-notification-error *, .@{prefix}-notification-error .@{prefix}-progress .@{prefix}-text { + color: @notification-error-text; +} + +.@{prefix}-notification-error .@{prefix}-progress .@{prefix}-bar-container { + border-color: @notification-error-border; +} + +.@{prefix}-notification-error .@{prefix}-progress .@{prefix}-bar-container .@{prefix}-bar { + background-color: @notification-error-text; +} + +.@{prefix}-notification .@{prefix}-close { + position: absolute; + top: 6px; + right: 8px; + font-size: 20px; + font-weight: bold; + line-height: 20px; + color: @window-head-close; + cursor: pointer; + + // IE7 + height: 20px; + overflow: hidden; +} + +// AbsoluteLayout + +.@{prefix}-abs-layout { + position: relative; +} + +body .@{prefix}-abs-layout-item, .@{prefix}-abs-end { + position: absolute; +} + +.@{prefix}-abs-end { + width: 1px; height: 1px; +} + +.@{prefix}-container-body.@{prefix}-abs-layout { + overflow: hidden; +} + + +// Button + +.@{prefix}-btn { + border: 1px solid mix(rgb(red(@btn-border-right), green(@btn-border-right), blue(@btn-border-right)), @panel-bg, 30%); + border-color: @btn-border-top @btn-border-right @btn-border-bottom @btn-border-left; + position: relative; + text-shadow: @text-shadow; + + .inline-block(); + .border-radius(3px); + .box-shadow(@btn-box-shadow); + .vertical-gradient(@btn-bg, @btn-bg-hlight); + + &:hover, &:focus { + color: @btn-text; + .vertical-gradient(darken(@btn-bg, 5%), darken(@btn-bg-hlight, 5%)); + border-color: @btn-border-hover; + } + + &.@{prefix}-disabled button, &.@{prefix}-disabled:hover button { + cursor: default; + .box-shadow(none); + .opacity(@btn-box-disabled-opacity); + } + + &.@{prefix}-active, &.@{prefix}-active:hover { + .vertical-gradient(darken(@btn-bg, 10%), darken(@btn-bg-hlight, 5%)); + .box-shadow(@btn-box-shadow-active); + border-color: darken(@btn-bg, 20%); + } + + &:active { + .vertical-gradient(darken(@btn-bg, 7%), darken(@btn-bg-hlight, 5%)); + .box-shadow(@btn-box-shadow-active); + border-color: @btn-border-active; + + } +} + +.@{prefix}-btn button { + padding: @btn-padding; + font-size: @font-size; + line-height: @line-height; + *line-height: @line-height - 4px; + cursor: pointer; + color: @btn-text; + text-align: center; + + // Fixes for default inner padding of button + overflow: visible; // IE7 + -webkit-appearance: none; // WebKit + &::-moz-focus-inner { // Gecko + border: 0; + padding: 0; + } +} + +.@{prefix}-btn i { + text-shadow: 1px 1px @btn-text-shadow; +} + +.@{prefix}-primary.@{prefix}-btn-has-text { + min-width: 50px; +} + +.@{prefix}-primary { + color: @btn-primary-text; + border: 1px solid transparent; + border-color: @btn-primary-border; + .vertical-gradient(@btn-primary-bg, @btn-primary-bg-hlight); + + &:hover, &:focus { + .vertical-gradient(darken(@btn-primary-bg, 5%), darken(@btn-primary-bg-hlight, 5%)); + border-color: @btn-primary-border-hover; + } + + &.@{prefix}-disabled button, &.@{prefix}-disabled:hover button { + cursor: default; + .box-shadow(none); + .opacity(@btn-box-disabled-opacity); + } + + &.@{prefix}-active, &.@{prefix}-active:hover, &:not(.@{prefix}-disabled):active { + .vertical-gradient(darken(@btn-primary-bg, 10%), darken(@btn-primary-bg-hlight, 10%)); + .box-shadow(@btn-box-shadow-active); + } +} + +.@{prefix}-primary button, .@{prefix}-primary button i { + color: @btn-primary-text; + text-shadow: 1px 1px @btn-primary-text-shadow; +} + +.@{prefix}-btn .@{prefix}-txt { + font-size: inherit; + line-height: inherit; + color: inherit; +} + +.@{prefix}-btn-large button { + padding: 9px 14px; + font-size: @font-size + 2px; + line-height: normal; + .border-radius(5px); +} + +.@{prefix}-btn-large i { + margin-top: 2px; +} + +.@{prefix}-btn-small button { + padding: 1px 5px; + font-size: @font-size - 2px; + *padding-bottom: 2px; +} + +.@{prefix}-btn-small i { + line-height: 20px; + vertical-align: top; + *line-height: 18px; +} + +.@{prefix}-btn .@{prefix}-caret { + margin-top: 8px; + margin-left: 0; +} + +.@{prefix}-btn-small .@{prefix}-caret { + margin-top: 8px; + margin-left: 0; +} + +.@{prefix}-caret { + .inline-block(); + width: 0; height: 0; + vertical-align: top; + border-top: 4px solid @btn-caret-border; + border-right: 4px solid transparent; + border-left: 4px solid transparent; + content: ""; +} + +.@{prefix}-disabled .@{prefix}-caret { + border-top-color: @text-disabled; +} + +.@{prefix}-caret.@{prefix}-up { + border-bottom: 4px solid @btn-caret-border; + border-top: 0; +} + +.@{prefix}-btn-flat { + border: 0; + background: transparent; + .border-radius(0); + .box-shadow(none); + filter: none; +} + +.@{prefix}-btn-flat:hover, .@{prefix}-btn-flat.@{prefix}-active, .@{prefix}-btn-flat:focus, .@{prefix}-btn-flat:active { + border: 0; + background: @menubar-bg-active; + filter: none; + .box-shadow(none); +} + +.@{prefix}-btn-has-text .@{prefix}-ico { + padding-right: 5px; +} + +// RTL + +.@{prefix}-rtl .@{prefix}-btn button { + direction: rtl; +} + + +// ButtonGroup + +.btn-group-border-left(@border-color) when (@has-button-borders = true) { + border-left: 1px solid @border-color; +} + +.btn-group-border-right(@border-color) when (@has-button-borders = true) { + border-right: 1px solid @border-color; +} + + +.@{prefix}-btn-group .@{prefix}-btn { + border-width: @btn-group-border-width; + margin: 0; + .border-radius(0); + margin-left: @flow-layout-spacing; +} + +.@{prefix}-btn-group .@{prefix}-btn when (@has-button-borders = true) { + border-left-width: 0; + border-right-width: 0; + margin-left: 0; +} + +.@{prefix}-btn-group:not(:first-child) when (@has-button-borders = true) { + padding-left: 1px; + margin-left: 1px; +} + +.@{prefix}-btn-group:not(:first-child) when (@has-button-borders = false) { + border-left: 1px solid darken(@btn-bg, 15%); + padding-left: @flow-layout-spacing + 1px; + margin-left: @flow-layout-spacing + 1px; +} + +.@{prefix}-btn-group .@{prefix}-first { + .border-radius(3px 0 0 3px); + .btn-group-border-left(@btn-border-left); + margin-left: 0; +} + +.@{prefix}-btn-group .@{prefix}-last { + .border-radius(0 3px 3px 0); + .btn-group-border-right(@btn-border-right); +} + +.@{prefix}-btn-group .@{prefix}-first.@{prefix}-last { + .border-radius(3px); +} + +.@{prefix}-btn-group .@{prefix}-btn.@{prefix}-flow-layout-item { + margin: 0; +} + +// RTL + +.@{prefix}-rtl .@{prefix}-btn-group .@{prefix}-btn { + margin-left: 0; + margin-right: @flow-layout-spacing; +} + +.@{prefix}-rtl .@{prefix}-btn-group .@{prefix}-first { + margin-right: 0; +} + +.@{prefix}-rtl .@{prefix}-btn-group:not(:first-child) { + border-left: none; + border-right:1px solid darken(@btn-bg, 15%); + padding-right: @flow-layout-spacing + 2px; + margin-right: @flow-layout-spacing + 2px; +} + + +// Checkbox + +.@{prefix}-checkbox { + cursor: pointer; +} + +i.@{prefix}-i-checkbox { + margin: 0 3px 0 0; + border: 1px solid @checkbox-border; + .border-radius(3px); + .box-shadow(@checkbox-box-shadow); + .vertical-gradient(@checkbox-bg, @checkbox-bg-hlight); + text-indent: -10em; + *font-size: 0; + *line-height: 0; + *text-indent: 0; + overflow: hidden; +} + +.@{prefix}-checked i.@{prefix}-i-checkbox { + color: @btn-text; + font-size: 16px; + line-height: 16px; + text-indent: 0; +} + +.@{prefix}-checkbox:focus i.@{prefix}-i-checkbox, .@{prefix}-checkbox.@{prefix}-focus i.@{prefix}-i-checkbox { + border: 1px solid @checkbox-border-focus; + .box-shadow(inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px fadeout(@checkbox-border-focus, 15%)); +} + +.@{prefix}-checkbox.@{prefix}-disabled .@{prefix}-label, .@{prefix}-checkbox.@{prefix}-disabled i.@{prefix}-i-checkbox { + color: mix(@text, @panel-bg, 40%); +} + +.@{prefix}-checkbox .@{prefix}-label { + vertical-align: middle; +} + +// RTL + +.@{prefix}-rtl .@{prefix}-checkbox { + direction: rtl; + text-align: right; +} + +.@{prefix}-rtl i.@{prefix}-i-checkbox { + margin: 0 0 0 3px; +} + + +// ComboBox + +.@{prefix}-combobox { + position: relative; + .inline-block(); + .border-radius(3px); + .box-shadow(@textbox-box-shadow); + *height: 32px; +} + +.@{prefix}-combobox input { + border: 1px solid @textbox-border; + border-right-color: @combobox-border; + height: 28px; +} + +.@{prefix}-combobox.@{prefix}-disabled input { + color: mix(@text, @textbox-bg, 40%); +} + +.@{prefix}-combobox.@{prefix}-has-open input { + .border-radius(4px 0 0 4px); +} + +.@{prefix}-combobox .@{prefix}-btn { + border: 1px solid @textbox-border; + border-left: 0; + .border-radius(0 4px 4px 0); + margin: 0; +} + +.@{prefix}-combobox button { + padding-right: 8px; + padding-left: 8px; +} + +.@{prefix}-combobox.@{prefix}-disabled .@{prefix}-btn button { + cursor: default; + .box-shadow(none); + .opacity(@btn-box-disabled-opacity); +} + +.@{prefix}-combobox .@{prefix}-status { + position: absolute; + right: 2px; + top: 50%; + line-height: 16px; + margin-top: -8px; + font-size: 12px; + width: 15px; + height: 15px; + text-align: center; + cursor: pointer; +} + +.@{prefix}-combobox.@{prefix}-has-status input { + padding-right: 20px; +} + +.@{prefix}-combobox.@{prefix}-has-open .@{prefix}-status { + right: 37px; +} + +.@{prefix}-combobox .@{prefix}-status.@{prefix}-i-warning { + color: @combobox-warning-text; +} + +.@{prefix}-combobox .@{prefix}-status.@{prefix}-i-checkmark { + color: @combobox-success-text; +} + +.@{prefix}-menu.@{prefix}-combobox-menu { + border-top: 0; + margin-top: 0; + max-height: 200px; + + .@{prefix}-menu-item { + padding: 4px 6px 4px 4px; + font-size: 11px; + } + + .@{prefix}-menu-item-sep { + padding: 0; + } + + .@{prefix}-text { + font-size: 11px; + } + + .@{prefix}-menu-item-link, .@{prefix}-menu-item-link b { + font-size: 11px; + } + + .@{prefix}-text b { + font-size: 11px; + } +} + + +// ColorBox + +.@{prefix}-colorbox i { + border: 1px solid @textbox-border; + width: 14px; height: 14px; +} + + +// ColorButton + +.@{prefix}-colorbutton .@{prefix}-ico { + position: relative; +} + +.@{prefix}-colorbutton-grid { + margin: 4px; +} + +.@{prefix}-colorbutton button { + padding-right: 6px; + padding-left: 6px; +} + +.@{prefix}-colorbutton .@{prefix}-preview { + padding-right: 3px; + display: block; + position: absolute; + left: 50%; + top: 50%; + margin-left: -17px; + margin-top: 7px; + background: gray; + width: 13px; + height: 2px; + overflow: hidden; +} + +.@{prefix}-colorbutton.@{prefix}-btn-small .@{prefix}-preview { + margin-left: -16px; + padding-right: 0; + width: 16px; +} + +.@{prefix}-colorbutton .@{prefix}-open { + padding-left: 4px; + padding-right: 4px; + border-left: 1px solid transparent; +} + +.@{prefix}-colorbutton:hover .@{prefix}-open { + border-color: darken(@btn-bg, 20%); +} + +.@{prefix}-colorbutton.@{prefix}-btn-small .@{prefix}-open { + padding: 0 3px 0 3px; +} + +// RTL + +.@{prefix}-rtl .@{prefix}-colorbutton { + direction: rtl; +} + +.@{prefix}-rtl .@{prefix}-colorbutton .@{prefix}-preview { + margin-left: 0; + padding-right: 0; + padding-left: 3px; +} + +.@{prefix}-rtl .@{prefix}-colorbutton.@{prefix}-btn-small .@{prefix}-preview { + margin-left: 0; + padding-right: 0; + padding-left: 2px; +} + +.@{prefix}-rtl .@{prefix}-colorbutton .@{prefix}-open { + padding-left: 4px; + padding-right: 4px; + border-left: 0; +} + + +// ColorPicker + +.@{prefix}-colorpicker { + position: relative; + width: 250px; + height: 220px; +} + +.@{prefix}-colorpicker-sv { + position: absolute; + top: 0; left: 0; + width: 90%; + height: 100%; + border: 1px solid @colorpicker-border; + cursor: crosshair; + overflow: hidden; +} + +.@{prefix}-colorpicker-h-chunk { + width: 100%; +} + +.@{prefix}-colorpicker-overlay1, .@{prefix}-colorpicker-overlay2 { + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; +} + +.@{prefix}-colorpicker-overlay1 { + filter: progid:DXImageTransform.Microsoft.gradient(GradientType=1,startColorstr='#ffffff', endColorstr='#00ffffff'); + -ms-filter: "progid:DXImageTransform.Microsoft.gradient(GradientType=1,startColorstr='#ffffff', endColorstr='#00ffffff')"; + background: linear-gradient(to right, rgba(255,255,255,1), rgba(255,255,255,0)); +} + +.@{prefix}-colorpicker-overlay2 { + filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#00000000', endColorstr='#000000'); + -ms-filter: "progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#00000000', endColorstr='#000000')"; + background: linear-gradient(to bottom, rgba(0,0,0,0), rgba(0,0,0,1)); +} + +.@{prefix}-colorpicker-selector1 { + background: none; + position: absolute; + width: 12px; + height: 12px; + margin: -8px 0 0 -8px; + border: 1px solid black; + border-radius: 50%; +} + +.@{prefix}-colorpicker-selector2 { + position: absolute; + width: 10px; + height: 10px; + border: 1px solid white; + border-radius: 50%; +} + +.@{prefix}-colorpicker-h { + position: absolute; + top: 0; right: 0; + width: 6.5%; + height: 100%; + border: 1px solid @colorpicker-border; + cursor: crosshair; +} + +.@{prefix}-colorpicker-h-marker { + margin-top: -4px; + position: absolute; + top: 0; + left: -1px; + width: 100%; + border: 1px solid @colorpicker-hue-border; + background: @colorpicker-hue-bg; + height: 4px; + z-index: 100; +} + + +// Path + +.@{prefix}-path { + .inline-block(); + padding: 8px; + white-space: normal; +} + +.@{prefix}-path .@{prefix}-txt { + display: inline-block; + padding-right: 3px; +} + +.@{prefix}-path .@{prefix}-path-body { + display: inline-block; +} + +.@{prefix}-path-item { + .inline-block(); + cursor: pointer; + color: @path-text; +} + +.@{prefix}-path-item:hover { + text-decoration: underline; +} + +.@{prefix}-path-item:focus { + background: @path-bg-focus; + color: @path-text-focus; +} + +.@{prefix}-path .@{prefix}-divider { + display: inline; +} + +.@{prefix}-disabled .@{prefix}-path-item { + color: @text-disabled; +} + +// RTL + +.@{prefix}-rtl .@{prefix}-path { + direction: rtl; +} + + +// FieldSet + +.@{prefix}-fieldset { + border: 0 solid #9E9E9E; + .border-radius(3px); +} + +.@{prefix}-fieldset > .@{prefix}-container-body { + margin-top: -15px; +} + +.@{prefix}-fieldset-title { + margin-left: 5px; + padding: 0 5px 0 5px; +} + +// FitLayout + +.@{prefix}-fit-layout { + .inline-block(); +} + +.@{prefix}-fit-layout-item { + position: absolute; +} + + +// FlowLayout + +.@{prefix}-flow-layout-item { + .inline-block(); +} + +.@{prefix}-flow-layout-item { + margin: @flow-layout-spacing 0 @flow-layout-spacing @flow-layout-spacing; +} + +.@{prefix}-flow-layout-item.@{prefix}-last { + margin-right: @flow-layout-spacing; +} + +.@{prefix}-flow-layout { + white-space: normal; +} + +.@{prefix}-tinymce-inline .@{prefix}-flow-layout { + white-space: nowrap; +} + +// RTL + +.@{prefix}-rtl .@{prefix}-flow-layout { + text-align: right; + direction: rtl; +} + +.@{prefix}-rtl .@{prefix}-flow-layout-item { + margin: @flow-layout-spacing @flow-layout-spacing @flow-layout-spacing 0; +} + +.@{prefix}-rtl .@{prefix}-flow-layout-item.@{prefix}-last { + margin-left: @flow-layout-spacing; +} + + +// Iframe + +.@{prefix}-iframe { + border: 0 solid @iframe-border; + width: 100%; height: 100%; +} + + +// InfoBox + +.@{prefix}-infobox { + .inline-block(); + text-shadow: @text-shadow; + overflow: hidden; + border: 1px solid red; + + div { + display: block; + margin: 5px; + + button { + position: absolute; + top: 50%; right: 4px; + cursor: pointer; + margin-top: -8px; + display: none; + } + + button:focus { + outline: 2px solid @btn-border-hover; + } + } +} + +.@{prefix}-infobox.@{prefix}-has-help { + div { + margin-right: 25px; + } + + button { + display: block; + } +} + +.@{prefix}-infobox.@{prefix}-success { + background: @infobox-success-bg; + border-color: @infobox-success-border; + + div { + color: @infobox-success-text; + } +} + +.@{prefix}-infobox.@{prefix}-warning { + background: @infobox-warning-bg; + border-color: @infobox-warning-border; + + div { + color: @infobox-warning-text; + } +} + +.@{prefix}-infobox.@{prefix}-error { + background: @infobox-error-bg; + border-color: @infobox-error-border; + + div { + color: @infobox-error-text; + } +} + +// RTL + +.@{prefix}-rtl .@{prefix}-infobox { + div { + text-align: right; + direction: rtl; + } +} + + +// Label + +.@{prefix}-label { + .inline-block(); + text-shadow: @text-shadow; + overflow: hidden; +} + +.@{prefix}-label.@{prefix}-autoscroll { + overflow: auto; +} + +.@{prefix}-label.@{prefix}-disabled { + color: @text-disabled; +} + +.@{prefix}-label.@{prefix}-multiline { + white-space: pre-wrap; +} + +.@{prefix}-label.@{prefix}-success { + color: @text-success; +} + +.@{prefix}-label.@{prefix}-warning { + color: @text-warning; +} + +.@{prefix}-label.@{prefix}-error { + color: @text-error; +} + +// RTL + +.@{prefix}-rtl .@{prefix}-label { + text-align: right; + direction: rtl; +} + + +/* MenuBar */ + +.@{prefix}-menubar .@{prefix}-menubtn { + border-color: transparent; + background: transparent; + .border-radius(0); + .box-shadow(none); + filter: none; +} + +.@{prefix}-menubar .@{prefix}-menubtn button { + color: @menubar-menubtn-text; +} + +.@{prefix}-menubar { + border: 1px solid @menubar-border; +} + +.@{prefix}-menubar .@{prefix}-menubtn button span { + color: @text; +} + +.@{prefix}-menubar .@{prefix}-caret { + border-top-color: @text; +} + +.@{prefix}-menubar .@{prefix}-menubtn:hover, .@{prefix}-menubar .@{prefix}-menubtn.@{prefix}-active, .@{prefix}-menubar .@{prefix}-menubtn:focus { + border-color: darken(@btn-bg, 20%); + background: @menu-bg; + filter: none; + .box-shadow(none); +} + + +/* MenuButton */ + +.@{prefix}-menubtn button { + color: @btn-text; + //margin-right: 2px; + //line-height: @line-height; + //*line-height: @line-height - 4px; +} + +.@{prefix}-menubtn.@{prefix}-btn-small span { + font-size: @font-size - 2px; +} + +.@{prefix}-menubtn.@{prefix}-fixed-width span { + display: inline-block; + overflow-x: hidden; + text-overflow: ellipsis; + width: 90px; +} + +.@{prefix}-menubtn.@{prefix}-fixed-width.@{prefix}-btn-small span { + width: 70px; +} + +.@{prefix}-menubtn .@{prefix}-caret { + *margin-top: 6px; +} + +// RTL + +.@{prefix}-rtl .@{prefix}-menubtn button { + direction: rtl; + text-align: right; +} + + +// MenuItem + +.@{prefix}-menu-item { + display: block; + padding: 6px 15px 6px 12px; + clear: both; + font-weight: normal; + line-height: 20px; + color: @menuitem-text; + white-space: nowrap; + cursor: pointer; + line-height: normal; + border-left: 4px solid transparent; + margin-bottom: 1px; +} + +.@{prefix}-menu-item .@{prefix}-ico, .@{prefix}-menu-item .@{prefix}-text { + color: @menuitem-text; +} + +.@{prefix}-menu-item.@{prefix}-disabled .@{prefix}-text, .@{prefix}-menu-item.@{prefix}-disabled .@{prefix}-ico { + color: mix(@menuitem-text, @menu-bg, 40%); +} + +.@{prefix}-menu-item:hover .@{prefix}-text, .@{prefix}-menu-item.@{prefix}-selected .@{prefix}-text, .@{prefix}-menu-item:focus .@{prefix}-text { + color: @menuitem-text-inverse; +} + +.@{prefix}-menu-item:hover .@{prefix}-ico, .@{prefix}-menu-item.@{prefix}-selected .@{prefix}-ico, .@{prefix}-menu-item:focus .@{prefix}-ico { + color: @menuitem-text-inverse; +} + +.@{prefix}-menu-item.@{prefix}-disabled:hover { + background: @menuitem-bg-disabled; +} + +.@{prefix}-menu-shortcut { + display: inline-block; + color: mix(@menuitem-text, @menu-bg, 40%); +} + +.@{prefix}-menu-shortcut { + .inline-block(); + padding: 0 15px 0 20px; +} + +.@{prefix}-menu-item:hover .@{prefix}-menu-shortcut, .@{prefix}-menu-item.@{prefix}-selected .@{prefix}-menu-shortcut, .@{prefix}-menu-item:focus .@{prefix}-menu-shortcut { + color: @menuitem-text-inverse; +} + +.@{prefix}-menu-item .@{prefix}-caret { + margin-top: 4px; + *margin-top: 3px; + margin-right: 6px; + border-top: 4px solid transparent; + border-bottom: 4px solid transparent; + border-left: 4px solid @menuitem-caret; +} + +.@{prefix}-menu-item.@{prefix}-selected .@{prefix}-caret, .@{prefix}-menu-item:focus .@{prefix}-caret, .@{prefix}-menu-item:hover .@{prefix}-caret { + border-left-color: @menuitem-caret-selected; +} + +.@{prefix}-menu-align .@{prefix}-menu-shortcut { + *margin-top: -2px; +} + +.@{prefix}-menu-align .@{prefix}-menu-shortcut, .@{prefix}-menu-align .@{prefix}-caret { + position: absolute; + right: 0; +} + +.@{prefix}-menu-item.@{prefix}-active i { + visibility: visible; +} + +.@{prefix}-menu-item-normal.@{prefix}-active { + background-color: @menuitem-bg-active; +} + +.@{prefix}-menu-item-preview.@{prefix}-active { + border-left: 5px solid @menuitem-preview-border-active; +} + +.@{prefix}-menu-item-normal.@{prefix}-active .@{prefix}-text { + color: @menuitem-text-active; +} + +.@{prefix}-menu-item-normal.@{prefix}-active:hover .@{prefix}-text, .@{prefix}-menu-item-normal.@{prefix}-active:hover .@{prefix}-ico { + color: @menuitem-text-inverse; +} + +.@{prefix}-menu-item-normal.@{prefix}-active:focus .@{prefix}-text, .@{prefix}-menu-item-normal.@{prefix}-active:focus .@{prefix}-ico { + color: @menuitem-text-inverse; +} + +.@{prefix}-menu-item:hover, .@{prefix}-menu-item.@{prefix}-selected, .@{prefix}-menu-item:focus { + text-decoration: none; + color: @menuitem-text-inverse; + .vertical-gradient(@menuitem-bg-selected, @menuitem-bg-selected-hlight); +} + +.@{prefix}-menu-item-link { + color: #093; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + + b { + color: #093; + } +} + +.@{prefix}-menu-item-ellipsis { + display: block; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; +} + +.@{prefix}-menu-item:hover *, .@{prefix}-menu-item.@{prefix}-selected *, .@{prefix}-menu-item:focus * { + color: @menuitem-text-inverse; +} + +div.@{prefix}-menu .@{prefix}-menu-item-sep, .@{prefix}-menu-item-sep:hover { + border: 0; + padding: 0; + height: 1px; + margin: 9px 1px; + overflow: hidden; + background: @menuitem-separator-top; + border-bottom: 1px solid @menuitem-separator-bottom; + cursor: default; + filter: none; +} + +div.@{prefix}-menu .@{prefix}-menu-item b { + font-weight: bold; +} + +.@{prefix}-menu-item-indent-1 { padding-left: 20px; } +.@{prefix}-menu-item-indent-2 { padding-left: 35px; } +.@{prefix}-menu-item-indent-2 { padding-left: 35px; } +.@{prefix}-menu-item-indent-3 { padding-left: 40px; } +.@{prefix}-menu-item-indent-4 { padding-left: 45px; } +.@{prefix}-menu-item-indent-5 { padding-left: 50px; } +.@{prefix}-menu-item-indent-6 { padding-left: 55px; } + +// RTL + +.@{prefix}-menu.@{prefix}-rtl { + direction: rtl; +} + +.@{prefix}-rtl .@{prefix}-menu-item { + text-align: right; + direction: rtl; + padding: 6px 12px 6px 15px; +} + +.@{prefix}-menu-align.@{prefix}-rtl .@{prefix}-menu-shortcut, .@{prefix}-menu-align.@{prefix}-rtl .@{prefix}-caret { + right: auto; + left: 0; +} + +.@{prefix}-rtl .@{prefix}-menu-item .@{prefix}-caret { + margin-left: 6px; + margin-right: 0; + border-right: 4px solid @menuitem-caret; + border-left: 0; +} + +.@{prefix}-rtl .@{prefix}-menu-item.@{prefix}-selected .@{prefix}-caret, .@{prefix}-rtl .@{prefix}-menu-item:focus .@{prefix}-caret, .@{prefix}-rtl .@{prefix}-menu-item:hover .@{prefix}-caret { + border-left-color: transparent; + border-right-color: @menuitem-caret-selected; +} + + +// Throbber + +.@{prefix}-throbber { + position: absolute; + top: 0; left: 0; + width: 100%; height: 100%; + .opacity(0.6); + background: @throbber-bg; +} + +.@{prefix}-throbber-inline { + position: static; + height: 50px; +} + +.@{prefix}-menu .@{prefix}-throbber-inline { + height: 25px; + background-size: contain; +} + + +// Menu + +.@{prefix}-menu { + position: absolute; + left: 0; top: 0; + .reset-gradient(); + z-index: 1000; + padding: 5px 0 5px 0; + margin: @menu-margin; + min-width: 160px; + background: @menu-bg; + border: 1px solid mix(rgb(red(@menu-border), green(@menu-border), blue(@menu-border)), @panel-bg, round(alpha(@menu-border) * 200)); + border: 1px solid @menu-border; + z-index: 1002; + .border-radius(6px); + .box-shadow(0 5px 10px rgba(0,0,0,.2)); + max-height: 400px; + overflow: auto; + overflow-x: hidden; +} + +.@{prefix}-menu i { + display: none; +} + +.@{prefix}-menu-has-icons i { + display: inline-block; + *display: inline; +} + +.@{prefix}-menu-sub-tr-tl { margin: -6px 0 0 -1px; } +.@{prefix}-menu-sub-br-bl { margin: 6px 0 0 -1px; } +.@{prefix}-menu-sub-tl-tr { margin: -6px 0 0 1px; } +.@{prefix}-menu-sub-bl-br { margin: 6px 0 0 1px; } + + +// ListBox + +.@{prefix}-listbox button { + text-align: left; + padding-right: 20px; + position: relative; +} + +.@{prefix}-listbox .@{prefix}-caret { + position: absolute; + margin-top: -2px; + right: 8px; + top: 50%; +} + +// RTL + +.@{prefix}-rtl .@{prefix}-listbox .@{prefix}-caret { + right: auto; + left: 8px; +} + +.@{prefix}-rtl .@{prefix}-listbox button { + padding-right: 10px; + padding-left: 20px; +} + + +// Radio - not implemented yet + + +.@{prefix}-container-body .@{prefix}-resizehandle { + position: absolute; + right: 0; + bottom: 0; + width: 16px; + height: 16px; + visibility: visible; + cursor: s-resize; + margin: 0; +} + +.@{prefix}-container-body .@{prefix}-resizehandle-both { + cursor: se-resize; +} + +i.@{prefix}-i-resize { + color: @text; +} + + +// SelectBox + +.@{prefix}-selectbox { + background: @selectbox-bg; + border: 1px solid @selectbox-border; +} + + +// Slider + +.@{prefix}-slider { + .border-radius(3px); + border: 1px solid @slider-border; + background: @slider-bg; + width: 100px; + height: 10px; + position: relative; + display: block; +} + +.@{prefix}-slider.@{prefix}-vertical { + width: 10px; + height: 100px; +} + +.@{prefix}-slider-handle { + .border-radius(3px); + border: 1px solid @slider-handle-border; + background: @slider-handle-bg; + display: block; + width: 13px; + height: 13px; + position: absolute; + top: 0; left: 0; + margin-left: -1px; + margin-top: -2px; +} + +.@{prefix}-slider-handle:focus { + background: @slider-handle-bg-focus; +} + + +// Spacer + +.@{prefix}-spacer { + visibility: hidden; +} + + +// SplitButton + +.@{prefix}-splitbtn .@{prefix}-open { + border-left: 1px solid transparent; +} + +.@{prefix}-splitbtn:hover .@{prefix}-open { + border-left-color: darken(@btn-bg, 20%); +} + +.@{prefix}-splitbtn button when (@has-button-borders = false) { + padding-right: 6px; + padding-left: 6px; +} + +.@{prefix}-splitbtn button when (@has-button-borders = true) { + padding-right: 4px; + padding-left: 8px; +} + +.@{prefix}-splitbtn .@{prefix}-open { + padding-right: 4px; + padding-left: 4px; +} + +.@{prefix}-splitbtn .@{prefix}-open.@{prefix}-active { + .vertical-gradient(darken(@btn-bg, 10%), darken(@btn-bg-hlight, 5%)); + outline: 1px solid darken(@btn-bg, 20%); +} + +.@{prefix}-splitbtn.@{prefix}-btn-small .@{prefix}-open { + padding: 0 3px 0 3px; +} + +// RTL + +.@{prefix}-rtl .@{prefix}-splitbtn { + direction: rtl; + text-align: right; +} + +.@{prefix}-rtl .@{prefix}-splitbtn button { + padding-right: 4px; + padding-left: 4px; +} + +.@{prefix}-rtl .@{prefix}-splitbtn .@{prefix}-open { + border-left: 0; +} + + +// StackLayout + +.@{prefix}-stack-layout-item { + display: block; +} + + +// TabPanel + +.@{prefix}-tabs { + display: block; + border-bottom: 1px solid @tab-border; +} + +.@{prefix}-tabs, +.@{prefix}-tabs + .@{prefix}-container-body { + background: @tabs-bg; +} + +.@{prefix}-tab { + .inline-block(); + border: 1px solid @tab-border; + border-width: 0 1px 0 0; + background: @tab-bg; + padding: 8px; + text-shadow: @text-shadow; + height: 13px; + cursor: pointer; +} + +.@{prefix}-tab:hover { + background: @tab-bg-hover; +} + +.@{prefix}-tab.@{prefix}-active { + background: @tab-bg-active; + border-bottom-color: transparent; + margin-bottom: -1px; + height: 14px; +} + +// RTL + +.@{prefix}-rtl .@{prefix}-tabs { + text-align: right; + direction: rtl; +} + +.@{prefix}-rtl .@{prefix}-tab { + border-width: 0 0 0 1px; +} + + +// TextBox + +.@{prefix}-textbox { + background: @textbox-bg; + border: 1px solid @textbox-border; + .border-radius(3px); + .box-shadow(@textbox-box-shadow); + display: inline-block; + .transition(~"border linear .2s, box-shadow linear .2s"); + height: 28px; + resize: none; + padding: 0 4px 0 4px; + white-space: pre-wrap; + *white-space: pre; + color: @text; +} + +.@{prefix}-textbox:focus, .@{prefix}-textbox.@{prefix}-focus { + border-color: @textbox-border-focus; + .box-shadow(inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px fadeout(@textbox-border-focus, 15%)); +} + +.@{prefix}-placeholder .@{prefix}-textbox { + color: @textbox-text-placeholder; +} + +.@{prefix}-textbox.@{prefix}-multiline { + padding: 4px; + height: auto; +} + +.@{prefix}-textbox.@{prefix}-disabled { + color: mix(@text, @textbox-bg, 40%); +} + +// RTL + +.@{prefix}-rtl .@{prefix}-textbox { + text-align: right; + direction: rtl; +} + + +/* Icons IE7 */ + +@font-face { + font-family: 'tinymce'; + src:url('fonts/tinymce.eot'); + src:url('fonts/tinymce.eot?#iefix') format('embedded-opentype'), + url('fonts/tinymce.woff') format('woff'), + url('fonts/tinymce.ttf') format('truetype'), + url('fonts/tinymce.svg#tinymce') format('svg'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'tinymce-small'; + src:url('fonts/tinymce-small.eot'); + src:url('fonts/tinymce-small.eot?#iefix') format('embedded-opentype'), + url('fonts/tinymce-small.woff') format('woff'), + url('fonts/tinymce-small.ttf') format('truetype'), + url('fonts/tinymce-small.svg#tinymce') format('svg'); + font-weight: normal; + font-style: normal; +} + +@iconSize: 16px; + +.@{prefix}-ico { + font-family: 'tinymce'; + font-style: normal; + font-weight: normal; + font-size: @iconSize; + line-height: 16px; + vertical-align: text-top; + -webkit-font-smoothing: antialiased; + + display: inline-block; + background: transparent center center; + width: 16px; + height: 16px; + color: @btn-text; + -ie7-icon: ' '; +} + +.@{prefix}-btn-small .@{prefix}-ico { + font-family: 'tinymce-small'; +} + +// .@{prefix}-i-checkbox needs to have zoom overridden since it's set by the gradient mixin +.@{prefix}-ico, i.@{prefix}-i-checkbox { + zoom: ~"expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = this.currentStyle['-ie7-icon'].substr(1, 1) + ' ')"; +} + +.@{prefix}-i-save { -ie7-icon: "\e000"; } +.@{prefix}-i-newdocument { -ie7-icon: "\e001"; } +.@{prefix}-i-fullpage { -ie7-icon: "\e002"; } +.@{prefix}-i-alignleft { -ie7-icon: "\e003"; } +.@{prefix}-i-aligncenter { -ie7-icon: "\e004"; } +.@{prefix}-i-alignright { -ie7-icon: "\e005"; } +.@{prefix}-i-alignjustify { -ie7-icon: "\e006"; } +.@{prefix}-i-alignnone { -ie7-icon: "\e003"; } +.@{prefix}-i-cut { -ie7-icon: "\e007"; } +.@{prefix}-i-paste { -ie7-icon: "\e008"; } +.@{prefix}-i-searchreplace { -ie7-icon: "\e009"; } +.@{prefix}-i-bullist { -ie7-icon: "\e00a"; } +.@{prefix}-i-numlist { -ie7-icon: "\e00b"; } +.@{prefix}-i-indent { -ie7-icon: "\e00c"; } +.@{prefix}-i-outdent { -ie7-icon: "\e00d"; } +.@{prefix}-i-blockquote { -ie7-icon: "\e00e"; } +.@{prefix}-i-undo { -ie7-icon: "\e00f"; } +.@{prefix}-i-redo { -ie7-icon: "\e010"; } +.@{prefix}-i-link { -ie7-icon: "\e011"; } +.@{prefix}-i-unlink { -ie7-icon: "\e012"; } +.@{prefix}-i-anchor { -ie7-icon: "\e013"; } +.@{prefix}-i-image { -ie7-icon: "\e014"; } +.@{prefix}-i-media { -ie7-icon: "\e015"; } +.@{prefix}-i-help { -ie7-icon: "\e016"; } +.@{prefix}-i-code { -ie7-icon: "\e017"; } +.@{prefix}-i-insertdatetime { -ie7-icon: "\e018"; } +.@{prefix}-i-preview { -ie7-icon: "\e019"; } +.@{prefix}-i-forecolor { -ie7-icon: "\e01a"; } +.@{prefix}-i-backcolor { -ie7-icon: "\e01a"; } +.@{prefix}-i-table { -ie7-icon: "\e01b"; } +.@{prefix}-i-hr { -ie7-icon: "\e01c"; } +.@{prefix}-i-removeformat { -ie7-icon: "\e01d"; } +.@{prefix}-i-subscript { -ie7-icon: "\e01e"; } +.@{prefix}-i-superscript { -ie7-icon: "\e01f"; } +.@{prefix}-i-charmap { -ie7-icon: "\e020"; } +.@{prefix}-i-emoticons { -ie7-icon: "\e021"; } +.@{prefix}-i-print { -ie7-icon: "\e022"; } +.@{prefix}-i-fullscreen { -ie7-icon: "\e023"; } +.@{prefix}-i-spellchecker { -ie7-icon: "\e024"; } +.@{prefix}-i-nonbreaking { -ie7-icon: "\e025"; } +.@{prefix}-i-template { -ie7-icon: "\e026"; } +.@{prefix}-i-pagebreak { -ie7-icon: "\e027"; } +.@{prefix}-i-restoredraft { -ie7-icon: "\e028"; } +.@{prefix}-i-untitled { -ie7-icon: "\e029"; } +.@{prefix}-i-bold { -ie7-icon: "\e02a"; } +.@{prefix}-i-italic { -ie7-icon: "\e02b"; } +.@{prefix}-i-underline { -ie7-icon: "\e02c"; } +.@{prefix}-i-strikethrough { -ie7-icon: "\e02d"; } +.@{prefix}-i-visualchars { -ie7-icon: "\e02e"; } +.@{prefix}-i-ltr { -ie7-icon: "\e02f"; } +.@{prefix}-i-rtl { -ie7-icon: "\e030"; } +.@{prefix}-i-copy { -ie7-icon: "\e031"; } +.@{prefix}-i-resize { -ie7-icon: "\e032"; } +.@{prefix}-i-browse { -ie7-icon: "\e034"; } +.@{prefix}-i-pastetext { -ie7-icon: "\e035"; } +.@{prefix}-i-rotateleft { -ie7-icon: "\eaa8"; } +.@{prefix}-i-rotateright { -ie7-icon: "\eaa9"; } +.@{prefix}-i-crop { -ie7-icon: "\ee78"; } +.@{prefix}-i-editimage { -ie7-icon: "\e914"; } +.@{prefix}-i-options { -ie7-icon: "\ec6a"; } +.@{prefix}-i-flipv { -ie7-icon: "\eaaa"; } +.@{prefix}-i-fliph { -ie7-icon: "\eaac"; } +.@{prefix}-i-zoomin { -ie7-icon: "\eb35"; } +.@{prefix}-i-zoomout { -ie7-icon: "\eb36"; } +.@{prefix}-i-sun { -ie7-icon: "\eccc"; } +.@{prefix}-i-moon { -ie7-icon: "\eccd"; } +.@{prefix}-i-arrowleft { -ie7-icon: "\edc0"; } +.@{prefix}-i-arrowright { -ie7-icon: "\edb8"; } +.@{prefix}-i-drop { -ie7-icon: "\e934"; } +.@{prefix}-i-contrast { -ie7-icon: "\ecd4"; } +.@{prefix}-i-sharpen { -ie7-icon: "\eba7"; } +.@{prefix}-i-palette { -ie7-icon: "\e92a"; } +.@{prefix}-i-resize2 { -ie7-icon: "\edf9"; } +.@{prefix}-i-orientation { -ie7-icon: "\e601"; } +.@{prefix}-i-invert { -ie7-icon: "\e602"; } +.@{prefix}-i-gamma { -ie7-icon: "\e600"; } +.@{prefix}-i-remove { -ie7-icon: "\ed6a"; } +.@{prefix}-i-codesample { -ie7-icon: "\e603"; } +.@{prefix}-i-checkbox, .@{prefix}-i-selected { + -ie7-icon: "\e033"; +} + +.@{prefix}-i-selected { visibility: hidden; } +.@{prefix}-i-backcolor { background: #BBB; } + diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/skin.ie7.min.css b/data/web/rc/program/js/tinymce/skins/lightgray/skin.ie7.min.css new file mode 100644 index 0000000000000000000000000000000000000000..8ebe708f0bfd24600f63b5960876cbaaead7e757 --- /dev/null +++ b/data/web/rc/program/js/tinymce/skins/lightgray/skin.ie7.min.css @@ -0,0 +1 @@ +.mce-container,.mce-container *,.mce-widget,.mce-widget *,.mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:#333;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;-webkit-tap-highlight-color:transparent;line-height:normal;font-weight:normal;text-align:left;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-widget button{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.mce-container *[unselectable]{-moz-user-select:none;-webkit-user-select:none;-o-user-select:none;user-select:none}.mce-fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.mce-fade.mce-in{opacity:1}.mce-tinymce{visibility:inherit !important;position:relative}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;height:100%;z-index:100}div.mce-fullscreen{position:fixed;top:0;left:0;width:100%;height:auto}.mce-tinymce{display:block}.mce-wordcount{position:absolute;top:0;right:0;padding:8px}div.mce-edit-area{background:#FFF;filter:none}.mce-statusbar{position:relative}.mce-statusbar .mce-container-body{position:relative}.mce-fullscreen .mce-resizehandle{display:none}.mce-charmap{border-collapse:collapse}.mce-charmap td{cursor:default;border:1px solid rgba(0,0,0,0.2);width:20px;height:20px;line-height:20px;text-align:center;vertical-align:middle;padding:2px}.mce-charmap td div{text-align:center}.mce-charmap td:hover{background:#D9D9D9}.mce-grid td.mce-grid-cell div{border:1px solid #d6d6d6;width:15px;height:15px;margin:0;cursor:pointer}.mce-grid td.mce-grid-cell div:focus{border-color:#3498db}.mce-grid td.mce-grid-cell div[disabled]{cursor:not-allowed}.mce-grid{border-spacing:2px;border-collapse:separate}.mce-grid a{display:block;border:1px solid transparent}.mce-grid a:hover,.mce-grid a:focus{border-color:#3498db}.mce-grid-border{margin:0 4px 0 4px}.mce-grid-border a{border-color:#d6d6d6;width:13px;height:13px}.mce-grid-border a:hover,.mce-grid-border a.mce-active{border-color:#3498db;background:#3498db}.mce-text-center{text-align:center}div.mce-tinymce-inline{width:100%}.mce-colorbtn-trans div{text-align:center;vertical-align:middle;font-weight:bold;font-size:20px;line-height:16px;color:#707070}.mce-monospace{font-family:"Courier New",Courier,monospace}.mce-toolbar-grp{padding:2px 0}.mce-toolbar-grp .mce-flow-layout-item{margin-bottom:0}.mce-rtl .mce-wordcount{left:0;right:auto}.mce-croprect-container{position:absolute;top:0;left:0}.mce-croprect-handle{position:absolute;top:0;left:0;width:20px;height:20px;border:2px solid white}.mce-croprect-handle-nw{border-width:2px 0 0 2px;margin:-2px 0 0 -2px;cursor:nw-resize;top:100px;left:100px}.mce-croprect-handle-ne{border-width:2px 2px 0 0;margin:-2px 0 0 -20px;cursor:ne-resize;top:100px;left:200px}.mce-croprect-handle-sw{border-width:0 0 2px 2px;margin:-20px 2px 0 -2px;cursor:sw-resize;top:200px;left:100px}.mce-croprect-handle-se{border-width:0 2px 2px 0;margin:-20px 0 0 -20px;cursor:se-resize;top:200px;left:200px}.mce-croprect-handle-move{position:absolute;cursor:move;border:0}.mce-croprect-block{opacity:.3;filter:alpha(opacity=30);zoom:1;position:absolute;background:black}.mce-croprect-handle:focus{border-color:#3498db}.mce-croprect-handle-move:focus{outline:1px solid #3498db}.mce-imagepanel{overflow:auto;background:black}.mce-imagepanel-bg{position:absolute;background:url('data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw==')}.mce-imagepanel img{position:absolute}.mce-imagetool.mce-btn .mce-ico{display:block;width:20px;height:20px;text-align:center;line-height:20px;font-size:20px;padding:5px}.mce-arrow-up{margin-top:12px}.mce-arrow-down{margin-top:-12px}.mce-arrow:before,.mce-arrow:after{position:absolute;left:50%;display:block;width:0;height:0;border-style:solid;border-color:transparent;content:""}.mce-arrow.mce-arrow-up:before{top:-9px;border-bottom-color:rgba(0,0,0,0.2);border-width:0 9px 9px;margin-left:-9px}.mce-arrow.mce-arrow-down:before{bottom:-9px;border-top-color:rgba(0,0,0,0.2);border-width:9px 9px 0;margin-left:-9px}.mce-arrow.mce-arrow-up:after{top:-8px;border-bottom-color:#f0f0f0;border-width:0 8px 8px;margin-left:-8px}.mce-arrow.mce-arrow-down:after{bottom:-8px;border-top-color:#f0f0f0;border-width:8px 8px 0;margin-left:-8px}.mce-arrow.mce-arrow-left:before,.mce-arrow.mce-arrow-left:after{margin:0}.mce-arrow.mce-arrow-left:before{left:8px}.mce-arrow.mce-arrow-left:after{left:9px}.mce-arrow.mce-arrow-right:before,.mce-arrow.mce-arrow-right:after{left:auto;margin:0}.mce-arrow.mce-arrow-right:before{right:8px}.mce-arrow.mce-arrow-right:after{right:9px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-left:before{left:-9px;top:50%;border-right-color:rgba(0,0,0,0.2);border-width:9px 9px 9px 0;margin-top:-9px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-left:after{left:-8px;top:50%;border-right-color:#f0f0f0;border-width:8px 8px 8px 0;margin-top:-8px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-left{margin-left:12px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-right:before{right:-9px;top:50%;border-left-color:rgba(0,0,0,0.2);border-width:9px 0 9px 9px;margin-top:-9px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-right:after{right:-8px;top:50%;border-left-color:#f0f0f0;border-width:8px 0 8px 8px;margin-top:-8px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-right{margin-left:-14px}.mce-container,.mce-container-body{display:block}.mce-autoscroll{overflow:hidden}.mce-scrollbar{position:absolute;width:7px;height:100%;top:2px;right:2px;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-scrollbar-h{top:auto;right:auto;left:2px;bottom:2px;width:100%;height:7px}.mce-scrollbar-thumb{position:absolute;background-color:#000;border:1px solid #888;border-color:rgba(85,85,85,0.6);width:5px;height:100%}.mce-scrollbar-h .mce-scrollbar-thumb{width:100%;height:5px}.mce-scrollbar:hover,.mce-scrollbar.mce-active{background-color:#AAA;opacity:.6;filter:alpha(opacity=60);zoom:1}.mce-scroll{position:relative}.mce-panel{border:0 solid #cacaca;border:0 solid rgba(0,0,0,0.2);background-color:#f0f0f0}.mce-floatpanel{position:absolute}.mce-floatpanel.mce-fixed{position:fixed}.mce-floatpanel .mce-arrow,.mce-floatpanel .mce-arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.mce-floatpanel .mce-arrow{border-width:11px}.mce-floatpanel .mce-arrow:after{border-width:10px;content:""}.mce-floatpanel.mce-popover{filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;top:0;left:0;background:#FFF;border:1px solid rgba(0,0,0,0.2);border:1px solid rgba(0,0,0,0.25)}.mce-floatpanel.mce-popover.mce-bottom{margin-top:10px;*margin-top:0}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:rgba(0,0,0,0.2);border-bottom-color:rgba(0,0,0,0.25);top:-11px}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#FFF}.mce-floatpanel.mce-popover.mce-bottom.mce-start{margin-left:-22px}.mce-floatpanel.mce-popover.mce-bottom.mce-start>.mce-arrow{left:20px}.mce-floatpanel.mce-popover.mce-bottom.mce-end{margin-left:22px}.mce-floatpanel.mce-popover.mce-bottom.mce-end>.mce-arrow{right:10px;left:auto}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;height:100%}div.mce-fullscreen{position:fixed;top:0;left:0}#mce-modal-block{opacity:0;filter:alpha(opacity=0);zoom:1;position:fixed;left:0;top:0;width:100%;height:100%;background:#000}#mce-modal-block.mce-in{opacity:.3;filter:alpha(opacity=30);zoom:1}.mce-window-move{cursor:move}.mce-window{filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;background:#FFF;position:fixed;top:0;left:0;opacity:0;transform:scale(.1);transition:transform 100ms ease-in,opacity 150ms ease-in}.mce-window.mce-in{transform:scale(1);opacity:1}.mce-window-head{padding:9px 15px;border-bottom:1px solid #c5c5c5;position:relative}.mce-window-head .mce-close{position:absolute;right:0;top:0;height:38px;width:38px;text-align:center;cursor:pointer}.mce-window-head .mce-close i{color:#858585}.mce-close:hover i{color:#adadad}.mce-window-head .mce-title{line-height:20px;font-size:20px;font-weight:bold;text-rendering:optimizelegibility;padding-right:20px}.mce-window .mce-container-body{display:block}.mce-foot{display:block;background-color:#FFF;border-top:1px solid #c5c5c5}.mce-window-head .mce-dragh{position:absolute;top:0;left:0;cursor:move;width:90%;height:100%}.mce-window iframe{width:100%;height:100%}.mce-window-body .mce-listbox{border-color:#ccc}.mce-rtl .mce-window-head .mce-close{position:absolute;right:auto;left:15px}.mce-rtl .mce-window-head .mce-dragh{left:auto;right:0}.mce-rtl .mce-window-head .mce-title{direction:rtl;text-align:right}.mce-tooltip{position:absolute;padding:5px;opacity:.8;filter:alpha(opacity=80);zoom:1}.mce-tooltip-inner{font-size:11px;background-color:#000;color:white;max-width:200px;padding:5px 8px 4px 8px;text-align:center;white-space:normal}.mce-tooltip-arrow{position:absolute;width:0;height:0;line-height:0;border:5px dashed #000}.mce-tooltip-arrow-n{border-bottom-color:#000}.mce-tooltip-arrow-s{border-top-color:#000}.mce-tooltip-arrow-e{border-left-color:#000}.mce-tooltip-arrow-w{border-right-color:#000}.mce-tooltip-nw,.mce-tooltip-sw{margin-left:-14px}.mce-tooltip-ne,.mce-tooltip-se{margin-left:14px}.mce-tooltip-n .mce-tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-nw .mce-tooltip-arrow{top:0;left:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-ne .mce-tooltip-arrow{top:0;right:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-s .mce-tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-sw .mce-tooltip-arrow{bottom:0;left:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-se .mce-tooltip-arrow{bottom:0;right:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-e .mce-tooltip-arrow{right:0;top:50%;margin-top:-5px;border-left-style:solid;border-right:none;border-top-color:transparent;border-bottom-color:transparent}.mce-tooltip-w .mce-tooltip-arrow{left:0;top:50%;margin-top:-5px;border-right-style:solid;border-left:none;border-top-color:transparent;border-bottom-color:transparent}.mce-progress{display:inline-block;position:relative;height:20px}.mce-progress .mce-bar-container{display:inline-block;width:100px;height:100%;margin-right:8px;border:1px solid #ccc;overflow:hidden}.mce-progress .mce-text{display:inline-block;margin-top:auto;margin-bottom:auto;font-size:14px;width:40px;color:#333}.mce-bar{display:block;width:0;height:100%;background-color:#d7d7d7;-webkit-transition:width .2s ease;transition:width .2s ease}.mce-notification{position:absolute;background-color:#F0F0F0;padding:5px;margin-top:5px;border-width:1px;border-style:solid;border-color:#CCCCCC;transition:transform 100ms ease-in,opacity 150ms ease-in;opacity:0}.mce-notification.mce-in{opacity:1}.mce-notification-success{background-color:#dff0d8;border-color:#d6e9c6}.mce-notification-info{background-color:#d9edf7;border-color:#779ECB}.mce-notification-warning{background-color:#fcf8e3;border-color:#faebcc}.mce-notification-error{background-color:#f2dede;border-color:#ebccd1}.mce-notification.mce-has-close{padding-right:15px}.mce-notification .mce-ico{margin-top:5px}.mce-notification-inner{display:inline-block;font-size:14px;margin:5px 8px 4px 8px;text-align:center;white-space:normal;color:#31708f}.mce-notification-inner a{text-decoration:underline;cursor:pointer}.mce-notification .mce-progress{margin-right:8px}.mce-notification .mce-progress .mce-text{margin-top:5px}.mce-notification *,.mce-notification .mce-progress .mce-text{color:#333333}.mce-notification .mce-progress .mce-bar-container{border-color:#CCCCCC}.mce-notification .mce-progress .mce-bar-container .mce-bar{background-color:#333333}.mce-notification-success *,.mce-notification-success .mce-progress .mce-text{color:#3c763d}.mce-notification-success .mce-progress .mce-bar-container{border-color:#d6e9c6}.mce-notification-success .mce-progress .mce-bar-container .mce-bar{background-color:#3c763d}.mce-notification-info *,.mce-notification-info .mce-progress .mce-text{color:#31708f}.mce-notification-info .mce-progress .mce-bar-container{border-color:#779ECB}.mce-notification-info .mce-progress .mce-bar-container .mce-bar{background-color:#31708f}.mce-notification-warning *,.mce-notification-warning .mce-progress .mce-text{color:#8a6d3b}.mce-notification-warning .mce-progress .mce-bar-container{border-color:#faebcc}.mce-notification-warning .mce-progress .mce-bar-container .mce-bar{background-color:#8a6d3b}.mce-notification-error *,.mce-notification-error .mce-progress .mce-text{color:#a94442}.mce-notification-error .mce-progress .mce-bar-container{border-color:#ebccd1}.mce-notification-error .mce-progress .mce-bar-container .mce-bar{background-color:#a94442}.mce-notification .mce-close{position:absolute;top:6px;right:8px;font-size:20px;font-weight:bold;line-height:20px;color:#858585;cursor:pointer;height:20px;overflow:hidden}.mce-abs-layout{position:relative}body .mce-abs-layout-item,.mce-abs-end{position:absolute}.mce-abs-end{width:1px;height:1px}.mce-container-body.mce-abs-layout{overflow:hidden}.mce-btn{border:1px solid #b1b1b1;border-color:transparent transparent transparent transparent;position:relative;text-shadow:0 1px 1px rgba(255,255,255,0.75);display:inline-block;*display:inline;*zoom:1;background-color:#f0f0f0}.mce-btn:hover,.mce-btn:focus{color:#333;background-color:#e3e3e3;border-color:#ccc}.mce-btn.mce-disabled button,.mce-btn.mce-disabled:hover button{cursor:default;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-btn.mce-active,.mce-btn.mce-active:hover{background-color:#dbdbdb;border-color:#ccc}.mce-btn:active{background-color:#e0e0e0;border-color:#ccc}.mce-btn button{padding:4px 8px;font-size:14px;line-height:20px;*line-height:16px;cursor:pointer;color:#333;text-align:center;overflow:visible;-webkit-appearance:none}.mce-btn button::-moz-focus-inner{border:0;padding:0}.mce-btn i{text-shadow:1px 1px none}.mce-primary.mce-btn-has-text{min-width:50px}.mce-primary{color:#fff;border:1px solid transparent;border-color:transparent;background-color:#2d8ac7}.mce-primary:hover,.mce-primary:focus{background-color:#257cb6;border-color:transparent}.mce-primary.mce-disabled button,.mce-primary.mce-disabled:hover button{cursor:default;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-primary.mce-active,.mce-primary.mce-active:hover,.mce-primary:not(.mce-disabled):active{background-color:#206ea1}.mce-primary button,.mce-primary button i{color:#fff;text-shadow:1px 1px none}.mce-btn .mce-txt{font-size:inherit;line-height:inherit;color:inherit}.mce-btn-large button{padding:9px 14px;font-size:16px;line-height:normal}.mce-btn-large i{margin-top:2px}.mce-btn-small button{padding:1px 5px;font-size:12px;*padding-bottom:2px}.mce-btn-small i{line-height:20px;vertical-align:top;*line-height:18px}.mce-btn .mce-caret{margin-top:8px;margin-left:0}.mce-btn-small .mce-caret{margin-top:8px;margin-left:0}.mce-caret{display:inline-block;*display:inline;*zoom:1;width:0;height:0;vertical-align:top;border-top:4px solid #333;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.mce-disabled .mce-caret{border-top-color:#aaa}.mce-caret.mce-up{border-bottom:4px solid #333;border-top:0}.mce-btn-flat{border:0;background:transparent;filter:none}.mce-btn-flat:hover,.mce-btn-flat.mce-active,.mce-btn-flat:focus,.mce-btn-flat:active{border:0;background:#e6e6e6;filter:none}.mce-btn-has-text .mce-ico{padding-right:5px}.mce-rtl .mce-btn button{direction:rtl}.mce-btn-group .mce-btn{border-width:1px;margin:0;margin-left:2px}.mce-btn-group:not(:first-child){border-left:1px solid #d9d9d9;padding-left:3px;margin-left:3px}.mce-btn-group .mce-first{margin-left:0}.mce-btn-group .mce-btn.mce-flow-layout-item{margin:0}.mce-rtl .mce-btn-group .mce-btn{margin-left:0;margin-right:2px}.mce-rtl .mce-btn-group .mce-first{margin-right:0}.mce-rtl .mce-btn-group:not(:first-child){border-left:none;border-right:1px solid #d9d9d9;padding-right:4px;margin-right:4px}.mce-checkbox{cursor:pointer}i.mce-i-checkbox{margin:0 3px 0 0;border:1px solid #c5c5c5;background-color:#f0f0f0;text-indent:-10em;*font-size:0;*line-height:0;*text-indent:0;overflow:hidden}.mce-checked i.mce-i-checkbox{color:#333;font-size:16px;line-height:16px;text-indent:0}.mce-checkbox:focus i.mce-i-checkbox,.mce-checkbox.mce-focus i.mce-i-checkbox{border:1px solid rgba(82,168,236,0.8)}.mce-checkbox.mce-disabled .mce-label,.mce-checkbox.mce-disabled i.mce-i-checkbox{color:#acacac}.mce-checkbox .mce-label{vertical-align:middle}.mce-rtl .mce-checkbox{direction:rtl;text-align:right}.mce-rtl i.mce-i-checkbox{margin:0 0 0 3px}.mce-combobox{position:relative;display:inline-block;*display:inline;*zoom:1;*height:32px}.mce-combobox input{border:1px solid #c5c5c5;border-right-color:#c5c5c5;height:28px}.mce-combobox.mce-disabled input{color:#adadad}.mce-combobox .mce-btn{border:1px solid #c5c5c5;border-left:0;margin:0}.mce-combobox button{padding-right:8px;padding-left:8px}.mce-combobox.mce-disabled .mce-btn button{cursor:default;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-combobox .mce-status{position:absolute;right:2px;top:50%;line-height:16px;margin-top:-8px;font-size:12px;width:15px;height:15px;text-align:center;cursor:pointer}.mce-combobox.mce-has-status input{padding-right:20px}.mce-combobox.mce-has-open .mce-status{right:37px}.mce-combobox .mce-status.mce-i-warning{color:#c09853}.mce-combobox .mce-status.mce-i-checkmark{color:#468847}.mce-menu.mce-combobox-menu{border-top:0;margin-top:0;max-height:200px}.mce-menu.mce-combobox-menu .mce-menu-item{padding:4px 6px 4px 4px;font-size:11px}.mce-menu.mce-combobox-menu .mce-menu-item-sep{padding:0}.mce-menu.mce-combobox-menu .mce-text{font-size:11px}.mce-menu.mce-combobox-menu .mce-menu-item-link,.mce-menu.mce-combobox-menu .mce-menu-item-link b{font-size:11px}.mce-menu.mce-combobox-menu .mce-text b{font-size:11px}.mce-colorbox i{border:1px solid #c5c5c5;width:14px;height:14px}.mce-colorbutton .mce-ico{position:relative}.mce-colorbutton-grid{margin:4px}.mce-colorbutton button{padding-right:6px;padding-left:6px}.mce-colorbutton .mce-preview{padding-right:3px;display:block;position:absolute;left:50%;top:50%;margin-left:-17px;margin-top:7px;background:gray;width:13px;height:2px;overflow:hidden}.mce-colorbutton.mce-btn-small .mce-preview{margin-left:-16px;padding-right:0;width:16px}.mce-colorbutton .mce-open{padding-left:4px;padding-right:4px;border-left:1px solid transparent}.mce-colorbutton:hover .mce-open{border-color:#ccc}.mce-colorbutton.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-colorbutton{direction:rtl}.mce-rtl .mce-colorbutton .mce-preview{margin-left:0;padding-right:0;padding-left:3px}.mce-rtl .mce-colorbutton.mce-btn-small .mce-preview{margin-left:0;padding-right:0;padding-left:2px}.mce-rtl .mce-colorbutton .mce-open{padding-left:4px;padding-right:4px;border-left:0}.mce-colorpicker{position:relative;width:250px;height:220px}.mce-colorpicker-sv{position:absolute;top:0;left:0;width:90%;height:100%;border:1px solid #c5c5c5;cursor:crosshair;overflow:hidden}.mce-colorpicker-h-chunk{width:100%}.mce-colorpicker-overlay1,.mce-colorpicker-overlay2{width:100%;height:100%;position:absolute;top:0;left:0}.mce-colorpicker-overlay1{filter:progid:DXImageTransform.Microsoft.gradient(GradientType=1, startColorstr='#ffffff', endColorstr='#00ffffff');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=1,startColorstr='#ffffff', endColorstr='#00ffffff')";background:linear-gradient(to right, #fff, rgba(255,255,255,0))}.mce-colorpicker-overlay2{filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#00000000', endColorstr='#000000');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#00000000', endColorstr='#000000')";background:linear-gradient(to bottom, rgba(0,0,0,0), #000)}.mce-colorpicker-selector1{background:none;position:absolute;width:12px;height:12px;margin:-8px 0 0 -8px;border:1px solid black;border-radius:50%}.mce-colorpicker-selector2{position:absolute;width:10px;height:10px;border:1px solid white;border-radius:50%}.mce-colorpicker-h{position:absolute;top:0;right:0;width:6.5%;height:100%;border:1px solid #c5c5c5;cursor:crosshair}.mce-colorpicker-h-marker{margin-top:-4px;position:absolute;top:0;left:-1px;width:100%;border:1px solid #333;background:#fff;height:4px;z-index:100}.mce-path{display:inline-block;*display:inline;*zoom:1;padding:8px;white-space:normal}.mce-path .mce-txt{display:inline-block;padding-right:3px}.mce-path .mce-path-body{display:inline-block}.mce-path-item{display:inline-block;*display:inline;*zoom:1;cursor:pointer;color:#333}.mce-path-item:hover{text-decoration:underline}.mce-path-item:focus{background:#666;color:#fff}.mce-path .mce-divider{display:inline}.mce-disabled .mce-path-item{color:#aaa}.mce-rtl .mce-path{direction:rtl}.mce-fieldset{border:0 solid #9E9E9E}.mce-fieldset>.mce-container-body{margin-top:-15px}.mce-fieldset-title{margin-left:5px;padding:0 5px 0 5px}.mce-fit-layout{display:inline-block;*display:inline;*zoom:1}.mce-fit-layout-item{position:absolute}.mce-flow-layout-item{display:inline-block;*display:inline;*zoom:1}.mce-flow-layout-item{margin:2px 0 2px 2px}.mce-flow-layout-item.mce-last{margin-right:2px}.mce-flow-layout{white-space:normal}.mce-tinymce-inline .mce-flow-layout{white-space:nowrap}.mce-rtl .mce-flow-layout{text-align:right;direction:rtl}.mce-rtl .mce-flow-layout-item{margin:2px 2px 2px 0}.mce-rtl .mce-flow-layout-item.mce-last{margin-left:2px}.mce-iframe{border:0 solid rgba(0,0,0,0.2);width:100%;height:100%}.mce-infobox{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 1px rgba(255,255,255,0.75);overflow:hidden;border:1px solid red}.mce-infobox div{display:block;margin:5px}.mce-infobox div button{position:absolute;top:50%;right:4px;cursor:pointer;margin-top:-8px;display:none}.mce-infobox div button:focus{outline:2px solid #ccc}.mce-infobox.mce-has-help div{margin-right:25px}.mce-infobox.mce-has-help button{display:block}.mce-infobox.mce-success{background:#dff0d8;border-color:#d6e9c6}.mce-infobox.mce-success div{color:#3c763d}.mce-infobox.mce-warning{background:#fcf8e3;border-color:#faebcc}.mce-infobox.mce-warning div{color:#8a6d3b}.mce-infobox.mce-error{background:#f2dede;border-color:#ebccd1}.mce-infobox.mce-error div{color:#a94442}.mce-rtl .mce-infobox div{text-align:right;direction:rtl}.mce-label{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 1px rgba(255,255,255,0.75);overflow:hidden}.mce-label.mce-autoscroll{overflow:auto}.mce-label.mce-disabled{color:#aaa}.mce-label.mce-multiline{white-space:pre-wrap}.mce-label.mce-success{color:#468847}.mce-label.mce-warning{color:#c09853}.mce-label.mce-error{color:#b94a48}.mce-rtl .mce-label{text-align:right;direction:rtl}.mce-menubar .mce-menubtn{border-color:transparent;background:transparent;filter:none}.mce-menubar .mce-menubtn button{color:#333}.mce-menubar{border:1px solid rgba(217,217,217,0.52)}.mce-menubar .mce-menubtn button span{color:#333}.mce-menubar .mce-caret{border-top-color:#333}.mce-menubar .mce-menubtn:hover,.mce-menubar .mce-menubtn.mce-active,.mce-menubar .mce-menubtn:focus{border-color:#ccc;background:#fff;filter:none}.mce-menubtn button{color:#333}.mce-menubtn.mce-btn-small span{font-size:12px}.mce-menubtn.mce-fixed-width span{display:inline-block;overflow-x:hidden;text-overflow:ellipsis;width:90px}.mce-menubtn.mce-fixed-width.mce-btn-small span{width:70px}.mce-menubtn .mce-caret{*margin-top:6px}.mce-rtl .mce-menubtn button{direction:rtl;text-align:right}.mce-menu-item{display:block;padding:6px 15px 6px 12px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap;cursor:pointer;line-height:normal;border-left:4px solid transparent;margin-bottom:1px}.mce-menu-item .mce-ico,.mce-menu-item .mce-text{color:#333}.mce-menu-item.mce-disabled .mce-text,.mce-menu-item.mce-disabled .mce-ico{color:#adadad}.mce-menu-item:hover .mce-text,.mce-menu-item.mce-selected .mce-text,.mce-menu-item:focus .mce-text{color:white}.mce-menu-item:hover .mce-ico,.mce-menu-item.mce-selected .mce-ico,.mce-menu-item:focus .mce-ico{color:white}.mce-menu-item.mce-disabled:hover{background:#CCC}.mce-menu-shortcut{display:inline-block;color:#adadad}.mce-menu-shortcut{display:inline-block;*display:inline;*zoom:1;padding:0 15px 0 20px}.mce-menu-item:hover .mce-menu-shortcut,.mce-menu-item.mce-selected .mce-menu-shortcut,.mce-menu-item:focus .mce-menu-shortcut{color:white}.mce-menu-item .mce-caret{margin-top:4px;*margin-top:3px;margin-right:6px;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:4px solid #333}.mce-menu-item.mce-selected .mce-caret,.mce-menu-item:focus .mce-caret,.mce-menu-item:hover .mce-caret{border-left-color:white}.mce-menu-align .mce-menu-shortcut{*margin-top:-2px}.mce-menu-align .mce-menu-shortcut,.mce-menu-align .mce-caret{position:absolute;right:0}.mce-menu-item.mce-active i{visibility:visible}.mce-menu-item-normal.mce-active{background-color:#3498db}.mce-menu-item-preview.mce-active{border-left:5px solid #aaa}.mce-menu-item-normal.mce-active .mce-text{color:white}.mce-menu-item-normal.mce-active:hover .mce-text,.mce-menu-item-normal.mce-active:hover .mce-ico{color:white}.mce-menu-item-normal.mce-active:focus .mce-text,.mce-menu-item-normal.mce-active:focus .mce-ico{color:white}.mce-menu-item:hover,.mce-menu-item.mce-selected,.mce-menu-item:focus{text-decoration:none;color:white;background-color:#2d8ac7}.mce-menu-item-link{color:#093;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mce-menu-item-link b{color:#093}.mce-menu-item-ellipsis{display:block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mce-menu-item:hover *,.mce-menu-item.mce-selected *,.mce-menu-item:focus *{color:white}div.mce-menu .mce-menu-item-sep,.mce-menu-item-sep:hover{border:0;padding:0;height:1px;margin:9px 1px;overflow:hidden;background:transparent;border-bottom:1px solid rgba(0,0,0,0.1);cursor:default;filter:none}div.mce-menu .mce-menu-item b{font-weight:bold}.mce-menu-item-indent-1{padding-left:20px}.mce-menu-item-indent-2{padding-left:35px}.mce-menu-item-indent-2{padding-left:35px}.mce-menu-item-indent-3{padding-left:40px}.mce-menu-item-indent-4{padding-left:45px}.mce-menu-item-indent-5{padding-left:50px}.mce-menu-item-indent-6{padding-left:55px}.mce-menu.mce-rtl{direction:rtl}.mce-rtl .mce-menu-item{text-align:right;direction:rtl;padding:6px 12px 6px 15px}.mce-menu-align.mce-rtl .mce-menu-shortcut,.mce-menu-align.mce-rtl .mce-caret{right:auto;left:0}.mce-rtl .mce-menu-item .mce-caret{margin-left:6px;margin-right:0;border-right:4px solid #333;border-left:0}.mce-rtl .mce-menu-item.mce-selected .mce-caret,.mce-rtl .mce-menu-item:focus .mce-caret,.mce-rtl .mce-menu-item:hover .mce-caret{border-left-color:transparent;border-right-color:white}.mce-throbber{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.6;filter:alpha(opacity=60);zoom:1;background:#fff url('img/loader.gif') no-repeat center center}.mce-throbber-inline{position:static;height:50px}.mce-menu .mce-throbber-inline{height:25px;background-size:contain}.mce-menu{position:absolute;left:0;top:0;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;z-index:1000;padding:5px 0 5px 0;margin:-1px 0 0;min-width:160px;background:#fff;border:1px solid #989898;border:1px solid rgba(0,0,0,0.2);z-index:1002;max-height:400px;overflow:auto;overflow-x:hidden}.mce-menu i{display:none}.mce-menu-has-icons i{display:inline-block;*display:inline}.mce-menu-sub-tr-tl{margin:-6px 0 0 -1px}.mce-menu-sub-br-bl{margin:6px 0 0 -1px}.mce-menu-sub-tl-tr{margin:-6px 0 0 1px}.mce-menu-sub-bl-br{margin:6px 0 0 1px}.mce-listbox button{text-align:left;padding-right:20px;position:relative}.mce-listbox .mce-caret{position:absolute;margin-top:-2px;right:8px;top:50%}.mce-rtl .mce-listbox .mce-caret{right:auto;left:8px}.mce-rtl .mce-listbox button{padding-right:10px;padding-left:20px}.mce-container-body .mce-resizehandle{position:absolute;right:0;bottom:0;width:16px;height:16px;visibility:visible;cursor:s-resize;margin:0}.mce-container-body .mce-resizehandle-both{cursor:se-resize}i.mce-i-resize{color:#333}.mce-selectbox{background:#fff;border:1px solid #c5c5c5}.mce-slider{border:1px solid #AAA;background:#EEE;width:100px;height:10px;position:relative;display:block}.mce-slider.mce-vertical{width:10px;height:100px}.mce-slider-handle{border:1px solid #BBB;background:#DDD;display:block;width:13px;height:13px;position:absolute;top:0;left:0;margin-left:-1px;margin-top:-2px}.mce-slider-handle:focus{background:#BBB}.mce-spacer{visibility:hidden}.mce-splitbtn .mce-open{border-left:1px solid transparent}.mce-splitbtn:hover .mce-open{border-left-color:#ccc}.mce-splitbtn button{padding-right:6px;padding-left:6px}.mce-splitbtn .mce-open{padding-right:4px;padding-left:4px}.mce-splitbtn .mce-open.mce-active{background-color:#dbdbdb;outline:1px solid #ccc}.mce-splitbtn.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-splitbtn{direction:rtl;text-align:right}.mce-rtl .mce-splitbtn button{padding-right:4px;padding-left:4px}.mce-rtl .mce-splitbtn .mce-open{border-left:0}.mce-stack-layout-item{display:block}.mce-tabs{display:block;border-bottom:1px solid #c5c5c5}.mce-tabs,.mce-tabs+.mce-container-body{background:#FFF}.mce-tab{display:inline-block;*display:inline;*zoom:1;border:1px solid #c5c5c5;border-width:0 1px 0 0;background:#ffffff;padding:8px;text-shadow:0 1px 1px rgba(255,255,255,0.75);height:13px;cursor:pointer}.mce-tab:hover{background:#FDFDFD}.mce-tab.mce-active{background:#FDFDFD;border-bottom-color:transparent;margin-bottom:-1px;height:14px}.mce-rtl .mce-tabs{text-align:right;direction:rtl}.mce-rtl .mce-tab{border-width:0 0 0 1px}.mce-textbox{background:#fff;border:1px solid #c5c5c5;display:inline-block;-webkit-transition:border linear .2s, box-shadow linear .2s;transition:border linear .2s, box-shadow linear .2s;height:28px;resize:none;padding:0 4px 0 4px;white-space:pre-wrap;*white-space:pre;color:#333}.mce-textbox:focus,.mce-textbox.mce-focus{border-color:#3498db}.mce-placeholder .mce-textbox{color:#aaa}.mce-textbox.mce-multiline{padding:4px;height:auto}.mce-textbox.mce-disabled{color:#adadad}.mce-rtl .mce-textbox{text-align:right;direction:rtl}@font-face{font-family:'tinymce';src:url('fonts/tinymce.eot');src:url('fonts/tinymce.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce.woff') format('woff'),url('fonts/tinymce.ttf') format('truetype'),url('fonts/tinymce.svg#tinymce') format('svg');font-weight:normal;font-style:normal}@font-face{font-family:'tinymce-small';src:url('fonts/tinymce-small.eot');src:url('fonts/tinymce-small.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce-small.woff') format('woff'),url('fonts/tinymce-small.ttf') format('truetype'),url('fonts/tinymce-small.svg#tinymce') format('svg');font-weight:normal;font-style:normal}.mce-ico{font-family:'tinymce';font-style:normal;font-weight:normal;font-size:16px;line-height:16px;vertical-align:text-top;-webkit-font-smoothing:antialiased;display:inline-block;background:transparent center center;width:16px;height:16px;color:#333;-ie7-icon:' '}.mce-btn-small .mce-ico{font-family:'tinymce-small'}.mce-ico,i.mce-i-checkbox{zoom:expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = this.currentStyle['-ie7-icon'].substr(1, 1) + ' ')}.mce-i-save{-ie7-icon:"\e000"}.mce-i-newdocument{-ie7-icon:"\e001"}.mce-i-fullpage{-ie7-icon:"\e002"}.mce-i-alignleft{-ie7-icon:"\e003"}.mce-i-aligncenter{-ie7-icon:"\e004"}.mce-i-alignright{-ie7-icon:"\e005"}.mce-i-alignjustify{-ie7-icon:"\e006"}.mce-i-alignnone{-ie7-icon:"\e003"}.mce-i-cut{-ie7-icon:"\e007"}.mce-i-paste{-ie7-icon:"\e008"}.mce-i-searchreplace{-ie7-icon:"\e009"}.mce-i-bullist{-ie7-icon:"\e00a"}.mce-i-numlist{-ie7-icon:"\e00b"}.mce-i-indent{-ie7-icon:"\e00c"}.mce-i-outdent{-ie7-icon:"\e00d"}.mce-i-blockquote{-ie7-icon:"\e00e"}.mce-i-undo{-ie7-icon:"\e00f"}.mce-i-redo{-ie7-icon:"\e010"}.mce-i-link{-ie7-icon:"\e011"}.mce-i-unlink{-ie7-icon:"\e012"}.mce-i-anchor{-ie7-icon:"\e013"}.mce-i-image{-ie7-icon:"\e014"}.mce-i-media{-ie7-icon:"\e015"}.mce-i-help{-ie7-icon:"\e016"}.mce-i-code{-ie7-icon:"\e017"}.mce-i-insertdatetime{-ie7-icon:"\e018"}.mce-i-preview{-ie7-icon:"\e019"}.mce-i-forecolor{-ie7-icon:"\e01a"}.mce-i-backcolor{-ie7-icon:"\e01a"}.mce-i-table{-ie7-icon:"\e01b"}.mce-i-hr{-ie7-icon:"\e01c"}.mce-i-removeformat{-ie7-icon:"\e01d"}.mce-i-subscript{-ie7-icon:"\e01e"}.mce-i-superscript{-ie7-icon:"\e01f"}.mce-i-charmap{-ie7-icon:"\e020"}.mce-i-emoticons{-ie7-icon:"\e021"}.mce-i-print{-ie7-icon:"\e022"}.mce-i-fullscreen{-ie7-icon:"\e023"}.mce-i-spellchecker{-ie7-icon:"\e024"}.mce-i-nonbreaking{-ie7-icon:"\e025"}.mce-i-template{-ie7-icon:"\e026"}.mce-i-pagebreak{-ie7-icon:"\e027"}.mce-i-restoredraft{-ie7-icon:"\e028"}.mce-i-untitled{-ie7-icon:"\e029"}.mce-i-bold{-ie7-icon:"\e02a"}.mce-i-italic{-ie7-icon:"\e02b"}.mce-i-underline{-ie7-icon:"\e02c"}.mce-i-strikethrough{-ie7-icon:"\e02d"}.mce-i-visualchars{-ie7-icon:"\e02e"}.mce-i-ltr{-ie7-icon:"\e02f"}.mce-i-rtl{-ie7-icon:"\e030"}.mce-i-copy{-ie7-icon:"\e031"}.mce-i-resize{-ie7-icon:"\e032"}.mce-i-browse{-ie7-icon:"\e034"}.mce-i-pastetext{-ie7-icon:"\e035"}.mce-i-rotateleft{-ie7-icon:"\eaa8"}.mce-i-rotateright{-ie7-icon:"\eaa9"}.mce-i-crop{-ie7-icon:"\ee78"}.mce-i-editimage{-ie7-icon:"\e914"}.mce-i-options{-ie7-icon:"\ec6a"}.mce-i-flipv{-ie7-icon:"\eaaa"}.mce-i-fliph{-ie7-icon:"\eaac"}.mce-i-zoomin{-ie7-icon:"\eb35"}.mce-i-zoomout{-ie7-icon:"\eb36"}.mce-i-sun{-ie7-icon:"\eccc"}.mce-i-moon{-ie7-icon:"\eccd"}.mce-i-arrowleft{-ie7-icon:"\edc0"}.mce-i-arrowright{-ie7-icon:"\edb8"}.mce-i-drop{-ie7-icon:"\e934"}.mce-i-contrast{-ie7-icon:"\ecd4"}.mce-i-sharpen{-ie7-icon:"\eba7"}.mce-i-palette{-ie7-icon:"\e92a"}.mce-i-resize2{-ie7-icon:"\edf9"}.mce-i-orientation{-ie7-icon:"\e601"}.mce-i-invert{-ie7-icon:"\e602"}.mce-i-gamma{-ie7-icon:"\e600"}.mce-i-remove{-ie7-icon:"\ed6a"}.mce-i-codesample{-ie7-icon:"\e603"}.mce-i-checkbox,.mce-i-selected{-ie7-icon:"\e033"}.mce-i-selected{visibility:hidden}.mce-i-backcolor{background:#BBB} \ No newline at end of file diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/skin.less b/data/web/rc/program/js/tinymce/skins/lightgray/skin.less new file mode 100644 index 0000000000000000000000000000000000000000..32c45ab9249893b3e7b8618d254b480ad4b20ebb --- /dev/null +++ b/data/web/rc/program/js/tinymce/skins/lightgray/skin.less @@ -0,0 +1,2874 @@ + +// Variables +// Syntax: -()--()-(); +// Example: @btn-primary-bg-hover-hlight; + +@prefix: mce; + +// Default font +@font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; +@font-size: 14px; +@line-height: 20px; +@has-gradients: false; +@has-radius: false; +@has-boxshadow: false; +@has-button-borders: false; + +// Text colors +@text: #333; +@text-inverse: white; +@text-disabled: #aaa; +@text-shadow: 0 1px 1px hsla(hue(@text-inverse), saturation(@text-inverse), lightness(@text-inverse), 0.75); +@text-error: #b94a48; +@text-warning: #c09853; +@text-success: #468847; + +// Button +@btn-text: @text; +@btn-text-shadow: none; +@btn-border-top: transparent; +@btn-border-right: transparent; +@btn-border-bottom: transparent; +@btn-border-left: transparent; +@btn-caret-border: @btn-text; +@btn-text-disabled: @text-disabled; +@btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .2), 0 1px 2px rgba(0, 0, 0, .05); +@btn-box-shadow-active: inset 0 2px 4px rgba(0, 0, 0, .15), 0 1px 2px rgba(0, 0, 0, .05); +@btn-box-disabled-opacity: 0.4; +@btn-bg: white; +@btn-bg-hlight: #D9D9D9; +@btn-bg-hover: darken(@btn-bg, 5%); +@btn-bg-hlight-hover: darken(@btn-bg-hlight, 5%); +@btn-border-hover: darken(@btn-bg, 20%); +@btn-border-active: darken(@btn-bg, 20%); +@btn-padding: 4px 8px; + +@btn-primary-bg: #2980b9; +@btn-primary-bg-hlight: #3498db; +@btn-primary-bg-hover: darken(@btn-primary-bg, 5%); +@btn-primary-bg-hover-hlight: darken(@btn-primary-bg-hlight, 5%); +@btn-primary-text: #fff; +@btn-primary-text-shadow: none; +@btn-primary-border-top: mix(@btn-border-top, @btn-primary-bg, 50%); +@btn-primary-border-right: mix(@btn-border-right, @btn-primary-bg, 50%); +@btn-primary-border-bottom: mix(@btn-border-bottom, @btn-primary-bg, 50%); +@btn-primary-border-left: mix(@btn-border-left, @btn-primary-bg, 50%); +@btn-primary-border: transparent; +@btn-primary-border-hover: transparent; + +// Button group +@btn-group-border-width: 1px; + +// Menu +@menuitem-text: @text; +@menu-bg: #fff; +@menu-margin: -1px 0 0; +@menu-border: rgba(0, 0, 0, 0.2); +@menubar-border: mix(@panel-border, @panel-bg, 60%); +@menuitem-text-inverse: @text-inverse; +@menubar-bg-active: darken(@btn-bg, 10%); +@menuitem-bg-hover: #0081C2; +@menuitem-bg-selected: #2980b9; +@menuitem-bg-selected-hlight: #3498db; +@menuitem-bg-disabled: #CCC; +@menuitem-caret: @menuitem-text; +@menuitem-caret-selected: @menuitem-text-inverse; +@menuitem-separator-top: transparent; +@menuitem-separator-bottom: rgba(0,0,0,0.1); +@menuitem-bg-active: #3498db; +@menuitem-text-active: @text-inverse; +@menuitem-preview-border-active: #aaa; +@menubar-menubtn-text: #333; + +// Panel +@panel-border: rgba(0,0,0,.2); +@panel-bg: #FDFDFD; +@panel-bg-hlight: #DDD; + +// Tabs +@tab-border: #c5c5c5; +@tab-bg: #ffffff; +@tab-bg-hover: #FDFDFD; +@tab-bg-active: #FDFDFD; +@tabs-bg: #FFF; + +// Tooltip +@tooltip-bg: #000; +@tooltip-text: white; +@tooltip-font-size: 11px; + +// Notification +@notification-font-size: 14px; +@notification-bg: #F0F0F0; +@notification-border: #CCCCCC; +@notification-text: #333333; +@notification-success-bg: #dff0d8; +@notification-success-border: #d6e9c6; +@notification-success-text: #3c763d; +@notification-info-bg: #d9edf7; +@notification-info-border: #779ECB; +@notification-info-text: #31708f; +@notification-warning-bg: #fcf8e3; +@notification-warning-border: #faebcc; +@notification-warning-text: #8a6d3b; +@notification-error-bg: #f2dede; +@notification-error-border: #ebccd1; +@notification-error-text: #a94442; + +// Infobox +@infobox-bg: @notification-bg; +@infobox-border: @notification-border; +@infobox-text: @notification-text; +@infobox-success-bg: @notification-success-bg; +@infobox-success-border: @notification-success-border; +@infobox-success-text: @notification-success-text; +@infobox-info-bg: @notification-info-bg; +@infobox-info-border: @notification-info-border; +@infobox-info-text: @notification-info-text; +@infobox-warning-bg: @notification-warning-bg; +@infobox-warning-border: @notification-warning-border; +@infobox-warning-text: @notification-warning-text; +@infobox-error-bg: @notification-error-bg; +@infobox-error-border: @notification-error-border; +@infobox-error-text: @notification-error-text; + +// Window +@window-border: #c5c5c5; +@window-head-border: @window-border; +@window-head-close: mix(@text, @window-bg, 60%); +@window-head-close-hover: mix(@text, @window-bg, 40%); +@window-foot-border: @window-border; +@window-foot-bg: @window-bg; +@window-fullscreen-bg: #FFF; +@window-modalblock-bg: #000; +@window-modalblock-opacity: 0.3; +@window-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); +@window-bg: #FFF; +@window-title-font-size: 20px; + +// Popover +@popover-bg: @window-bg; +@popover-arrow-width: 10px; +@popover-arrow: @window-bg; +@popover-arrow-outer-width: @popover-arrow-width + 1; +@popover-arrow-outer: rgba(0, 0, 0, 0.25); + +// Floatpanel +@floatpanel-box-shadow: 0 5px 10px rgba(0, 0, 0, .2); + +// Checkbox +@checkbox-bg: @btn-bg; +@checkbox-bg-hlight: @btn-bg-hlight; +@checkbox-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .2), 0 1px 2px rgba(0, 0, 0, .05); +@checkbox-border: #c5c5c5; +@checkbox-border-focus: rgba(82, 168, 236, .8); + +// Path +@path-text: @text; +@path-bg-focus: #666; +@path-text-focus: #fff; + +// Textbox +@textbox-text-placeholder: #aaa; +@textbox-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +@textbox-bg: #fff; +@textbox-border: #c5c5c5; +@textbox-border-focus: #3498db; + +// Selectbox +@selectbox-bg: @textbox-bg; +@selectbox-border: @textbox-border; + +// Throbber +@throbber-bg: #fff url('img/loader.gif') no-repeat center center; + +// Combobox +@combobox-border: @textbox-border; +@combobox-error-text: @text-error; +@combobox-warning-text: @text-warning; +@combobox-success-text: @text-success; + +// Colorpicker +@colorpicker-border: @textbox-border; +@colorpicker-hue-bg: #fff; +@colorpicker-hue-border: #333; + +// Grid +@grid-bg-active: @menuitem-bg-active; +@grid-border-active: @menuitem-bg-active; +@grid-border: #d6d6d6; + +// Misc +@colorbtn-backcolor-bg: #BBB; +@iframe-border: @panel-border; + +// Slider +@slider-border: #AAA; +@slider-bg: #EEE; +@slider-handle-border: #BBB; +@slider-handle-bg: #DDD; +@slider-handle-bg-focus: #BBB; + +// Progress +@progress-border: #ccc; +@progress-bar-bg: #dfdfdf; +@progress-bar-bg-hlight: #cccccc; +@progress-text: @text; + +// Flow layout +@flow-layout-spacing: 2px; + + +// Reset + +.@{prefix}-container, .@{prefix}-container *, .@{prefix}-widget, .@{prefix}-widget *, .@{prefix}-reset { + margin: 0; padding: 0; border: 0; outline: 0; + vertical-align: top; background: transparent; + text-decoration: none; color: @text; + font-family: @font-family; + font-size: @font-size; text-shadow: none; float: none; + position: static; width: auto; height: auto; + white-space: nowrap; cursor: inherit; + -webkit-tap-highlight-color: transparent; + line-height: normal; font-weight: normal; + text-align: left; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + box-sizing: content-box; + direction: ltr; + max-width: none; +} + +.@{prefix}-widget button { + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.@{prefix}-container *[unselectable] { + -moz-user-select: none; + -webkit-user-select: none; + -o-user-select: none; + user-select: none; +} + + +// Mixins + +.opacity(@opacity) { + opacity: @opacity; + @opacityie: @opacity * 100; + filter: ~"alpha(opacity=@{opacityie})"; + zoom: 1; +} + +.vertical-gradient(@startColor, @endColor) when (@has-gradients = true) { + background-color: mix(@startColor, @endColor, 60%); + background-image: -moz-linear-gradient(top, @startColor, @endColor); // FF 3.6+ + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@startColor), to(@endColor)); // Safari 4+, Chrome 2+ + background-image: -webkit-linear-gradient(top, @startColor, @endColor); // Safari 5.1+, Chrome 10+ + background-image: -o-linear-gradient(top, @startColor, @endColor); // Opera 11.10 + background-image: linear-gradient(to bottom, @startColor, @endColor); // Standard, IE10 + background-repeat: repeat-x; + filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)", argb(@startColor), argb(@endColor))); + zoom: 1; +} + +.vertical-gradient(@startColor, @endColor) when (@has-gradients = false) { + background-color: mix(@startColor, @endColor, 60%); +} + +.border-radius(@radius) when (@has-radius = true) { + -webkit-border-radius: @radius; + -moz-border-radius: @radius; + border-radius: @radius; +} + +.box-shadow(@shadowA, @shadowB:X, ...) when (@has-boxshadow = true) { + // Multiple shadow solution from http://toekneestuck.com/blog/2012/05/15/less-css-arguments-variable/ + @props: ~`"@{arguments}".replace(/[\[\]]|\,\sX/g, '')`; + -webkit-box-shadow: @props; + -moz-box-shadow: @props; + box-shadow: @props; +} + +.transition(@transition) { + -webkit-transition: @transition; + transition: @transition; +} + +.inline-block() { + display: inline-block; + *display: inline; + *zoom: 1; +} + +.reset-gradient() { + filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)")); + background: transparent; +} + + +// Animations + +.@{prefix}-fade { + opacity: 0; + .transition(opacity .15s linear); + + &.@{prefix}-in { + opacity: 1; + } +} + + +.@{prefix}-tinymce { + // Avoid FOUC + visibility: inherit !important; + position: relative; +} + +.@{prefix}-fullscreen { + border: 0; padding: 0; margin: 0; + overflow: hidden; + height: 100%; + z-index: 100; +} + +div.@{prefix}-fullscreen { + position: fixed; + top: 0; left: 0; + width: 100%; + height: auto; +} + +.@{prefix}-tinymce { + display: block; + .border-radius(2px); +} + +.@{prefix}-wordcount { + position: absolute; + top: 0; + right: 0; + padding: 8px; +} + +div.@{prefix}-edit-area { + background: #FFF; + filter: none; +} + +.@{prefix}-statusbar { + position: relative; +} + +.@{prefix}-statusbar .@{prefix}-container-body { + position: relative; +} + +.@{prefix}-fullscreen .@{prefix}-resizehandle { + display: none; +} + +// Charmap + +.@{prefix}-charmap { + border-collapse: collapse; +} + +.@{prefix}-charmap td { + cursor: default; + border: 1px solid @panel-border; + width: 20px; + height: 20px; + line-height: 20px; + text-align: center; + vertical-align: middle; + padding: 2px; +} + +.@{prefix}-charmap td div { + text-align: center; +} + +.@{prefix}-charmap td:hover { + background: @btn-bg-hlight; +} + +.@{prefix}-grid td.@{prefix}-grid-cell div { + border: 1px solid @grid-border; + width: 15px; height: 15px; + margin: 0px; + cursor: pointer; + + &:focus { + border-color: @grid-border-active; + } + + &[disabled] { + cursor: not-allowed; + } +} + +.@{prefix}-grid { + border-spacing: 2px; + border-collapse: separate; + + a { + display: block; + border: 1px solid transparent; + + &:hover, &:focus { + border-color: @grid-border-active; + } + } +} + +.@{prefix}-grid-border { + margin: 0 4px 0 4px; + + a { + border-color: @grid-border; + width: 13px; height: 13px; + } + + a:hover, a.@{prefix}-active { + border-color: @grid-border-active; + background: @grid-bg-active; + } +} + +.@{prefix}-text-center { + text-align: center; +} + +div.@{prefix}-tinymce-inline { + width: 100%; + .box-shadow(none); +} + +.@{prefix}-colorbtn-trans div { + text-align: center; + vertical-align: middle; + font-weight: bold; + font-size: 20px; + line-height: 16px; + color: mix(@text, #fff, 70%); +} + +.@{prefix}-monospace { + font-family: "Courier New", Courier, monospace; +} + +// Reduce double margins between toolbar rows + +.@{prefix}-toolbar-grp when (@has-button-borders = false) { + padding: @flow-layout-spacing 0; +} + +.@{prefix}-toolbar-grp when (@has-button-borders = true) { + padding-bottom: 2px; +} + +.@{prefix}-toolbar-grp .@{prefix}-flow-layout-item { + margin-bottom: 0; +} + +// RTL + +.@{prefix}-rtl .@{prefix}-wordcount { + left: 0; + right: auto; +} + + +// CropRect + +.@{prefix}-croprect-container { + position: absolute; + top: 0; + left: 0; +} + +.@{prefix}-croprect-handle { + position: absolute; + top: 0; left: 0; + width: 20px; height: 20px; + border: 2px solid white; +} + +.@{prefix}-croprect-handle-nw { + border-width: 2px 0 0 2px; + margin: -2px 0 0 -2px; + cursor: nw-resize; + top: 100px; left: 100px; +} + +.@{prefix}-croprect-handle-ne { + border-width: 2px 2px 0 0; + margin: -2px 0 0 -20px; + cursor: ne-resize; + top: 100px; left: 200px; +} + +.@{prefix}-croprect-handle-sw { + border-width: 0 0 2px 2px; + margin: -20px 2px 0 -2px; + cursor: sw-resize; + top: 200px; left: 100px; +} + +.@{prefix}-croprect-handle-se { + border-width: 0 2px 2px 0; + margin: -20px 0 0 -20px; + cursor: se-resize; + top: 200px; left: 200px; +} + +.@{prefix}-croprect-handle-move { + position: absolute; + cursor: move; + border: 0; +} + +.@{prefix}-croprect-block { + .opacity(@window-modalblock-opacity); + position: absolute; + background: black; +} + +.@{prefix}-croprect-handle:focus { + border-color: @textbox-border-focus; +} + +.@{prefix}-croprect-handle-move:focus { + outline: 1px solid @textbox-border-focus; +} + + +// ImagePanel + +.@{prefix}-imagepanel { + overflow: auto; + background: black; +} + +.@{prefix}-imagepanel-bg { + position: absolute; + background: url('data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw=='); +} + +.@{prefix}-imagepanel img { + position: absolute; +} + +.@{prefix}-imagetool.@{prefix}-btn .@{prefix}-ico { + display: block; + width: 20px; + height: 20px; + text-align: center; + line-height: 20px; + font-size: 20px; + padding: 5px; +} + + +// Arrows + +.@{prefix}-arrow-up { + margin-top: 12px; +} + +.@{prefix}-arrow-down { + margin-top: -12px; +} + +.@{prefix}-arrow:before, +.@{prefix}-arrow:after { + position: absolute; + left: 50%; + display: block; + width: 0; + height: 0; + border-style: solid; + border-color: transparent; + content: ""; +} + +.@{prefix}-arrow.@{prefix}-arrow-up:before { + top: -9px; + border-bottom-color: @panel-border; + border-width: 0 9px 9px; + margin-left: -9px; +} + +.@{prefix}-arrow.@{prefix}-arrow-down:before { + bottom: -9px; + border-top-color: @panel-border; + border-width: 9px 9px 0; + margin-left: -9px; +} + +.@{prefix}-arrow.@{prefix}-arrow-up:after { + top: -8px; + border-bottom-color: mix(@panel-bg, @panel-bg-hlight, 60%); + border-width: 0 8px 8px; + margin-left: -8px; +} + +.@{prefix}-arrow.@{prefix}-arrow-down:after { + bottom: -8px; + border-top-color: mix(@panel-bg, @panel-bg-hlight, 60%); + border-width: 8px 8px 0; + margin-left: -8px; +} + +.@{prefix}-arrow.@{prefix}-arrow-left:before, +.@{prefix}-arrow.@{prefix}-arrow-left:after { + margin: 0; +} + +.@{prefix}-arrow.@{prefix}-arrow-left:before { + left: 8px; +} +.@{prefix}-arrow.@{prefix}-arrow-left:after { + left: 9px; +} + +.@{prefix}-arrow.@{prefix}-arrow-right:before, +.@{prefix}-arrow.@{prefix}-arrow-right:after { + left: auto; + margin: 0; +} + +.@{prefix}-arrow.@{prefix}-arrow-right:before { + right: 8px; +} + +.@{prefix}-arrow.@{prefix}-arrow-right:after { + right: 9px; +} + +.@{prefix}-arrow.@{prefix}-arrow-center.@{prefix}-arrow.@{prefix}-arrow-left:before { + left: -9px; + top: 50%; + border-right-color: @panel-border; + border-width: 9px 9px 9px 0; + margin-top: -9px; +} + +.@{prefix}-arrow.@{prefix}-arrow-center.@{prefix}-arrow.@{prefix}-arrow-left:after { + left: -8px; + top: 50%; + border-right-color: mix(@panel-bg, @panel-bg-hlight, 60%); + border-width: 8px 8px 8px 0; + margin-top: -8px; +} + +.@{prefix}-arrow.@{prefix}-arrow-center.@{prefix}-arrow.@{prefix}-arrow-left { + margin-left: 12px; +} + +.@{prefix}-arrow.@{prefix}-arrow-center.@{prefix}-arrow.@{prefix}-arrow-right:before { + right: -9px; + top: 50%; + border-left-color: @panel-border; + border-width: 9px 0 9px 9px; + margin-top: -9px; +} + +.@{prefix}-arrow.@{prefix}-arrow-center.@{prefix}-arrow.@{prefix}-arrow-right:after { + right: -8px; + top: 50%; + border-left-color: mix(@panel-bg, @panel-bg-hlight, 60%); + border-width: 8px 0 8px 8px; + margin-top: -8px; +} + +.@{prefix}-arrow.@{prefix}-arrow-center.@{prefix}-arrow.@{prefix}-arrow-right { + margin-left: -14px; +} + + +// Sidebar + +.@{prefix}-edit-aria-container > .@{prefix}-container-body { + display: flex; + + .@{prefix}-edit-area { + flex: 1; + } + + .@{prefix}-sidebar > .@{prefix}-container-body { + display: flex; + align-items: stretch; + height: 100%; + } + + .@{prefix}-sidebar-panel { + min-width: 250px; + max-width: 250px; + position: relative; + + > .@{prefix}-container-body { + position: absolute; + width: 100%; height: 100%; + overflow: auto; + top: 0; left: 0; + } + } +} + +.@{prefix}-sidebar-toolbar { + border: 0 solid @panel-border; + border-left-width: 1px; + + .@{prefix}-btn.@{prefix}-active, .@{prefix}-btn.@{prefix}-active:hover { + border: 1px solid transparent; + border-color: @btn-primary-border; + .vertical-gradient(@btn-primary-bg, @btn-primary-bg-hlight); + + button, button i { + color: @btn-primary-text; + text-shadow: 1px 1px @btn-primary-text-shadow; + } + } +} + +.@{prefix}-sidebar-panel { + border: 0 solid @panel-border; + border-left-width: 1px; +} + + +// Container + +.@{prefix}-container, .@{prefix}-container-body { + display: block; +} + +.@{prefix}-autoscroll { + overflow: hidden; +} + + +// Scrollbar + +.@{prefix}-scrollbar { + position: absolute; + width: 7px; + height: 100%; + top: 2px; + right: 2px; + .opacity(0.4); +} + +.@{prefix}-scrollbar-h { + top: auto; + right: auto; + left: 2px; + bottom: 2px; + width: 100%; + height: 7px; +} + +.@{prefix}-scrollbar-thumb { + position: absolute; + background-color: #000; + border: 1px solid #888; + border-color: rgba(85, 85, 85, .6); + width: 5px; + height: 100%; + .border-radius(7px); +} + +.@{prefix}-scrollbar-h .@{prefix}-scrollbar-thumb { + width: 100%; + height: 5px; +} + +.@{prefix}-scrollbar:hover, .@{prefix}-scrollbar.@{prefix}-active { + background-color: #AAA; + .opacity(0.6); + .border-radius(7px); +} + +.@{prefix}-scroll { + position: relative; +} + + +// Panel + +.@{prefix}-panel { + border: 0 solid mix(rgb(red(@panel-border), green(@panel-border), blue(@panel-border)), @panel-bg, 20%); + border: 0 solid @panel-border; + .vertical-gradient(@panel-bg, @panel-bg-hlight); +} + + +// FloatPanel + +.@{prefix}-floatpanel { + position: absolute; + .box-shadow(@floatpanel-box-shadow); +} + +.@{prefix}-floatpanel.@{prefix}-fixed { + position: fixed; +} + +// Popover panel + +.@{prefix}-floatpanel .@{prefix}-arrow, +.@{prefix}-floatpanel .@{prefix}-arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.@{prefix}-floatpanel .@{prefix}-arrow { + border-width: @popover-arrow-outer-width; +} + +.@{prefix}-floatpanel .@{prefix}-arrow:after { + border-width: @popover-arrow-width; + content: ""; +} + +.@{prefix}-floatpanel.@{prefix}-popover { + .reset-gradient(); + .border-radius(6px); + .box-shadow(@floatpanel-box-shadow); + top: 0; + left: 0; + background: @popover-bg; + border: 1px solid @panel-border; + border: 1px solid @popover-arrow-outer; + + &.@{prefix}-bottom { + margin-top: @popover-arrow-width; + *margin-top: 0; + + & > .@{prefix}-arrow { + left: 50%; + margin-left: -@popover-arrow-outer-width; + border-top-width: 0; + border-bottom-color: @panel-border; + border-bottom-color: @popover-arrow-outer; + top: -@popover-arrow-outer-width; + + &:after { + top: 1px; + margin-left: -@popover-arrow-width; + border-top-width: 0; + border-bottom-color: @popover-arrow; + } + } + + &.@{prefix}-start { margin-left: -22px; } + &.@{prefix}-start > .@{prefix}-arrow { left: 20px; } + + &.@{prefix}-end { margin-left: 22px; } + &.@{prefix}-end > .@{prefix}-arrow { right: 10px; left: auto; } + } +} + +// Window + +.@{prefix}-fullscreen { + border: 0; padding: 0; margin: 0; + overflow: hidden; + height: 100%; +} + +div.@{prefix}-fullscreen { + position: fixed; + top: 0; left: 0; +} + +#@{prefix}-modal-block { + .opacity(0); + position: fixed; + left: 0; top: 0; + width: 100%; height: 100%; + background: @window-modalblock-bg; +} + +#@{prefix}-modal-block.@{prefix}-in { + .opacity(@window-modalblock-opacity); +} + +.@{prefix}-window-move { + cursor: move; +} + +.@{prefix}-window { + .border-radius(6px); + .box-shadow(@window-box-shadow); + .reset-gradient(); + background: @window-bg; + position: fixed; + top: 0; left: 0; + opacity: 0; + transform: scale(0.1); + transition: transform 100ms ease-in, opacity 150ms ease-in; +} + +.@{prefix}-window.@{prefix}-in { + transform: scale(1); + opacity: 1; +} + +.@{prefix}-window-head { + padding: 9px 15px; + border-bottom: 1px solid @window-head-border; + position: relative; +} + +.@{prefix}-window-head .@{prefix}-close { + position: absolute; + right: 0; + top: 0; + height: 38px; + width: 38px; + text-align: center; + cursor: pointer; + + i { + color: @window-head-close; + } +} + +.@{prefix}-close:hover i { + color: @window-head-close-hover; +} + +.@{prefix}-window-head .@{prefix}-title { + line-height: 20px; + font-size: @window-title-font-size; + font-weight: bold; + text-rendering: optimizelegibility; + padding-right: 20px; +} + +.@{prefix}-window .@{prefix}-container-body { + display: block; +} + +.@{prefix}-foot { + display: block; + background-color: @window-foot-bg; + border-top: 1px solid @window-foot-border; + .border-radius(0 0 6px 6px); +} + +.@{prefix}-window-head .@{prefix}-dragh { + position: absolute; + top: 0; left: 0; + cursor: move; + width: 90%; + height: 100%; +} + +.@{prefix}-window iframe { + width: 100%; + height: 100%; +} + +.@{prefix}-window.@{prefix}-fullscreen, .@{prefix}-window.@{prefix}-fullscreen .@{prefix}-foot { + .border-radius(0); +} + +.@{prefix}-window-body .@{prefix}-listbox { + border-color: @btn-border-hover; +} + +// RTL + +.@{prefix}-rtl .@{prefix}-window-head .@{prefix}-close { + position: absolute; + right: auto; + left: 15px; +} + +.@{prefix}-rtl .@{prefix}-window-head .@{prefix}-dragh { + left: auto; + right: 0; +} + +.@{prefix}-rtl .@{prefix}-window-head .@{prefix}-title { + direction: rtl; + text-align: right; +} + + +// Tooltip + +.@{prefix}-tooltip { + position: absolute; + padding: 5px; + .opacity(0.8); +} + +.@{prefix}-tooltip-inner { + font-size: @tooltip-font-size; + background-color: @tooltip-bg; + color: @tooltip-text; + max-width: 200px; + padding: 5px 8px 4px 8px; + text-align: center; + white-space: normal; +} + +.@{prefix}-tooltip-inner { + .border-radius(3px); +} + +.@{prefix}-tooltip-inner { + .box-shadow(0 0 5px @tooltip-bg); +} + +.@{prefix}-tooltip-arrow { + position: absolute; + width: 0; + height: 0; + line-height: 0; + border: 5px dashed @tooltip-bg; +} + +.@{prefix}-tooltip-arrow-n { + border-bottom-color: @tooltip-bg; +} + +.@{prefix}-tooltip-arrow-s { + border-top-color: @tooltip-bg; +} + +.@{prefix}-tooltip-arrow-e { + border-left-color: @tooltip-bg; +} + +.@{prefix}-tooltip-arrow-w { + border-right-color: @tooltip-bg; +} + +.@{prefix}-tooltip-nw, .@{prefix}-tooltip-sw { + margin-left: -14px; +} + +.@{prefix}-tooltip-ne, .@{prefix}-tooltip-se { + margin-left: 14px; +} + +.@{prefix}-tooltip-n .@{prefix}-tooltip-arrow { + top: 0px; + left: 50%; + margin-left: -5px; + border-bottom-style: solid; + border-top: none; + border-left-color: transparent; + border-right-color: transparent; +} + +.@{prefix}-tooltip-nw .@{prefix}-tooltip-arrow { + top: 0; + left: 10px; + border-bottom-style: solid; + border-top: none; + border-left-color: transparent; + border-right-color: transparent; +} + +.@{prefix}-tooltip-ne .@{prefix}-tooltip-arrow { + top: 0; + right: 10px; + border-bottom-style: solid; + border-top: none; + border-left-color: transparent; + border-right-color: transparent; +} + +.@{prefix}-tooltip-s .@{prefix}-tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-top-style: solid; + border-bottom: none; + border-left-color: transparent; + border-right-color: transparent; +} + +.@{prefix}-tooltip-sw .@{prefix}-tooltip-arrow { + bottom: 0; + left: 10px; + border-top-style: solid; + border-bottom: none; + border-left-color: transparent; + border-right-color: transparent; +} + +.@{prefix}-tooltip-se .@{prefix}-tooltip-arrow { + bottom: 0; + right: 10px; + border-top-style: solid; + border-bottom: none; + border-left-color: transparent; + border-right-color: transparent; +} + +.@{prefix}-tooltip-e .@{prefix}-tooltip-arrow { + right: 0; + top: 50%; + margin-top: -5px; + border-left-style: solid; + border-right: none; + border-top-color: transparent; + border-bottom-color: transparent; +} + +.@{prefix}-tooltip-w .@{prefix}-tooltip-arrow { + left: 0; + top: 50%; + margin-top: -5px; + border-right-style: solid; + border-left: none; + border-top-color: transparent; + border-bottom-color: transparent; +} + + +// Progress + +.@{prefix}-progress { + display: inline-block; + position: relative; + height: 20px; +} + +.@{prefix}-progress .@{prefix}-bar-container { + display: inline-block; + width: 100px; + height: 100%; + margin-right: 8px; + border: 1px solid @progress-border; + overflow: hidden; + .border-radius(4px); +} + +.@{prefix}-progress .@{prefix}-text { + display: inline-block; + margin-top: auto; + margin-bottom: auto; + font-size: 14px; + width: 40px; + color: @progress-text; +} + +.@{prefix}-bar { + display: block; + width: 0%; + height: 100%; + .vertical-gradient(@progress-bar-bg, @progress-bar-bg-hlight); + .transition(width .2s ease); +} + + +// notification + +.@{prefix}-notification { + position: absolute; + background-color: @notification-bg; + padding: 5px; + margin-top: 5px; + border-width: 1px; + border-style: solid; + border-color: @notification-border; + transition: transform 100ms ease-in, opacity 150ms ease-in; + opacity: 0; +} + +.@{prefix}-notification.@{prefix}-in { + opacity: 1; +} + +.@{prefix}-notification-success { + background-color: @notification-success-bg; + border-color: @notification-success-border; +} + +.@{prefix}-notification-info { + background-color: @notification-info-bg; + border-color: @notification-info-border; +} + +.@{prefix}-notification-warning { + background-color: @notification-warning-bg; + border-color: @notification-warning-border; +} + +.@{prefix}-notification-error { + background-color: @notification-error-bg; + border-color: @notification-error-border; +} + +.@{prefix}-notification.@{prefix}-has-close { + padding-right: 15px; +} + +.@{prefix}-notification .@{prefix}-ico { + margin-top: 5px; +} + +.@{prefix}-notification-inner { + display: inline-block; + font-size: @notification-font-size; + margin: 5px 8px 4px 8px; + text-align: center; + white-space: normal; + color: @notification-info-text; +} + +.@{prefix}-notification-inner a { + text-decoration: underline; + cursor: pointer; +} + +.@{prefix}-notification .@{prefix}-progress { + margin-right: 8px; +} + +.@{prefix}-notification .@{prefix}-progress .@{prefix}-text { + margin-top: 5px; +} + +.@{prefix}-notification *, .@{prefix}-notification .@{prefix}-progress .@{prefix}-text { + color: @notification-text; +} + +.@{prefix}-notification .@{prefix}-progress .@{prefix}-bar-container { + border-color: @notification-border; +} + +.@{prefix}-notification .@{prefix}-progress .@{prefix}-bar-container .@{prefix}-bar { + background-color: @notification-text; +} + +.@{prefix}-notification-success *, .@{prefix}-notification-success .@{prefix}-progress .@{prefix}-text { + color: @notification-success-text; +} + +.@{prefix}-notification-success .@{prefix}-progress .@{prefix}-bar-container { + border-color: @notification-success-border; +} + +.@{prefix}-notification-success .@{prefix}-progress .@{prefix}-bar-container .@{prefix}-bar { + background-color: @notification-success-text; +} + +.@{prefix}-notification-info *, .@{prefix}-notification-info .@{prefix}-progress .@{prefix}-text { + color: @notification-info-text; +} + +.@{prefix}-notification-info .@{prefix}-progress .@{prefix}-bar-container { + border-color: @notification-info-border; +} + +.@{prefix}-notification-info .@{prefix}-progress .@{prefix}-bar-container .@{prefix}-bar { + background-color: @notification-info-text; +} + +.@{prefix}-notification-warning *, .@{prefix}-notification-warning .@{prefix}-progress .@{prefix}-text { + color: @notification-warning-text; +} + +.@{prefix}-notification-warning .@{prefix}-progress .@{prefix}-bar-container { + border-color: @notification-warning-border; +} + +.@{prefix}-notification-warning .@{prefix}-progress .@{prefix}-bar-container .@{prefix}-bar { + background-color: @notification-warning-text; +} + +.@{prefix}-notification-error *, .@{prefix}-notification-error .@{prefix}-progress .@{prefix}-text { + color: @notification-error-text; +} + +.@{prefix}-notification-error .@{prefix}-progress .@{prefix}-bar-container { + border-color: @notification-error-border; +} + +.@{prefix}-notification-error .@{prefix}-progress .@{prefix}-bar-container .@{prefix}-bar { + background-color: @notification-error-text; +} + +.@{prefix}-notification .@{prefix}-close { + position: absolute; + top: 6px; + right: 8px; + font-size: 20px; + font-weight: bold; + line-height: 20px; + color: @window-head-close; + cursor: pointer; + + // IE7 + height: 20px; + overflow: hidden; +} + +// AbsoluteLayout + +.@{prefix}-abs-layout { + position: relative; +} + +body .@{prefix}-abs-layout-item, .@{prefix}-abs-end { + position: absolute; +} + +.@{prefix}-abs-end { + width: 1px; height: 1px; +} + +.@{prefix}-container-body.@{prefix}-abs-layout { + overflow: hidden; +} + + +// Button + +.@{prefix}-btn { + border: 1px solid mix(rgb(red(@btn-border-right), green(@btn-border-right), blue(@btn-border-right)), @panel-bg, 30%); + border-color: @btn-border-top @btn-border-right @btn-border-bottom @btn-border-left; + position: relative; + text-shadow: @text-shadow; + + .inline-block(); + .border-radius(3px); + .box-shadow(@btn-box-shadow); + .vertical-gradient(@btn-bg, @btn-bg-hlight); + + &:hover, &:focus { + color: @btn-text; + .vertical-gradient(darken(@btn-bg, 5%), darken(@btn-bg-hlight, 5%)); + border-color: @btn-border-hover; + } + + &.@{prefix}-disabled button, &.@{prefix}-disabled:hover button { + cursor: default; + .box-shadow(none); + .opacity(@btn-box-disabled-opacity); + } + + &.@{prefix}-active, &.@{prefix}-active:hover { + .vertical-gradient(darken(@btn-bg, 10%), darken(@btn-bg-hlight, 5%)); + .box-shadow(@btn-box-shadow-active); + border-color: darken(@btn-bg, 20%); + } + + &:active { + .vertical-gradient(darken(@btn-bg, 7%), darken(@btn-bg-hlight, 5%)); + .box-shadow(@btn-box-shadow-active); + border-color: @btn-border-active; + + } +} + +.@{prefix}-btn button { + padding: @btn-padding; + font-size: @font-size; + line-height: @line-height; + *line-height: @line-height - 4px; + cursor: pointer; + color: @btn-text; + text-align: center; + + // Fixes for default inner padding of button + overflow: visible; // IE7 + -webkit-appearance: none; // WebKit + &::-moz-focus-inner { // Gecko + border: 0; + padding: 0; + } +} + +.@{prefix}-btn i { + text-shadow: 1px 1px @btn-text-shadow; +} + +.@{prefix}-primary.@{prefix}-btn-has-text { + min-width: 50px; +} + +.@{prefix}-primary { + color: @btn-primary-text; + border: 1px solid transparent; + border-color: @btn-primary-border; + .vertical-gradient(@btn-primary-bg, @btn-primary-bg-hlight); + + &:hover, &:focus { + .vertical-gradient(darken(@btn-primary-bg, 5%), darken(@btn-primary-bg-hlight, 5%)); + border-color: @btn-primary-border-hover; + } + + &.@{prefix}-disabled button, &.@{prefix}-disabled:hover button { + cursor: default; + .box-shadow(none); + .opacity(@btn-box-disabled-opacity); + } + + &.@{prefix}-active, &.@{prefix}-active:hover, &:not(.@{prefix}-disabled):active { + .vertical-gradient(darken(@btn-primary-bg, 10%), darken(@btn-primary-bg-hlight, 10%)); + .box-shadow(@btn-box-shadow-active); + } +} + +.@{prefix}-primary button, .@{prefix}-primary button i { + color: @btn-primary-text; + text-shadow: 1px 1px @btn-primary-text-shadow; +} + +.@{prefix}-btn .@{prefix}-txt { + font-size: inherit; + line-height: inherit; + color: inherit; +} + +.@{prefix}-btn-large button { + padding: 9px 14px; + font-size: @font-size + 2px; + line-height: normal; + .border-radius(5px); +} + +.@{prefix}-btn-large i { + margin-top: 2px; +} + +.@{prefix}-btn-small button { + padding: 1px 5px; + font-size: @font-size - 2px; + *padding-bottom: 2px; +} + +.@{prefix}-btn-small i { + line-height: 20px; + vertical-align: top; + *line-height: 18px; +} + +.@{prefix}-btn .@{prefix}-caret { + margin-top: 8px; + margin-left: 0; +} + +.@{prefix}-btn-small .@{prefix}-caret { + margin-top: 8px; + margin-left: 0; +} + +.@{prefix}-caret { + .inline-block(); + width: 0; height: 0; + vertical-align: top; + border-top: 4px solid @btn-caret-border; + border-right: 4px solid transparent; + border-left: 4px solid transparent; + content: ""; +} + +.@{prefix}-disabled .@{prefix}-caret { + border-top-color: @text-disabled; +} + +.@{prefix}-caret.@{prefix}-up { + border-bottom: 4px solid @btn-caret-border; + border-top: 0; +} + +.@{prefix}-btn-flat { + border: 0; + background: transparent; + .border-radius(0); + .box-shadow(none); + filter: none; +} + +.@{prefix}-btn-flat:hover, .@{prefix}-btn-flat.@{prefix}-active, .@{prefix}-btn-flat:focus, .@{prefix}-btn-flat:active { + border: 0; + background: @menubar-bg-active; + filter: none; + .box-shadow(none); +} + +.@{prefix}-btn-has-text .@{prefix}-ico { + padding-right: 5px; +} + +// RTL + +.@{prefix}-rtl .@{prefix}-btn button { + direction: rtl; +} + + +// ButtonGroup + +.btn-group-border-left(@border-color) when (@has-button-borders = true) { + border-left: 1px solid @border-color; +} + +.btn-group-border-right(@border-color) when (@has-button-borders = true) { + border-right: 1px solid @border-color; +} + + +.@{prefix}-btn-group .@{prefix}-btn { + border-width: @btn-group-border-width; + margin: 0; + .border-radius(0); + margin-left: @flow-layout-spacing; +} + +.@{prefix}-btn-group .@{prefix}-btn when (@has-button-borders = true) { + border-left-width: 0; + border-right-width: 0; + margin-left: 0; +} + +.@{prefix}-btn-group:not(:first-child) when (@has-button-borders = true) { + padding-left: 1px; + margin-left: 1px; +} + +.@{prefix}-btn-group:not(:first-child) when (@has-button-borders = false) { + border-left: 1px solid darken(@btn-bg, 15%); + padding-left: @flow-layout-spacing + 1px; + margin-left: @flow-layout-spacing + 1px; +} + +.@{prefix}-btn-group .@{prefix}-first { + .border-radius(3px 0 0 3px); + .btn-group-border-left(@btn-border-left); + margin-left: 0; +} + +.@{prefix}-btn-group .@{prefix}-last { + .border-radius(0 3px 3px 0); + .btn-group-border-right(@btn-border-right); +} + +.@{prefix}-btn-group .@{prefix}-first.@{prefix}-last { + .border-radius(3px); +} + +.@{prefix}-btn-group .@{prefix}-btn.@{prefix}-flow-layout-item { + margin: 0; +} + +// RTL + +.@{prefix}-rtl .@{prefix}-btn-group .@{prefix}-btn { + margin-left: 0; + margin-right: @flow-layout-spacing; +} + +.@{prefix}-rtl .@{prefix}-btn-group .@{prefix}-first { + margin-right: 0; +} + +.@{prefix}-rtl .@{prefix}-btn-group:not(:first-child) { + border-left: none; + border-right:1px solid darken(@btn-bg, 15%); + padding-right: @flow-layout-spacing + 2px; + margin-right: @flow-layout-spacing + 2px; +} + + +// Checkbox + +.@{prefix}-checkbox { + cursor: pointer; +} + +i.@{prefix}-i-checkbox { + margin: 0 3px 0 0; + border: 1px solid @checkbox-border; + .border-radius(3px); + .box-shadow(@checkbox-box-shadow); + .vertical-gradient(@checkbox-bg, @checkbox-bg-hlight); + text-indent: -10em; + *font-size: 0; + *line-height: 0; + *text-indent: 0; + overflow: hidden; +} + +.@{prefix}-checked i.@{prefix}-i-checkbox { + color: @btn-text; + font-size: 16px; + line-height: 16px; + text-indent: 0; +} + +.@{prefix}-checkbox:focus i.@{prefix}-i-checkbox, .@{prefix}-checkbox.@{prefix}-focus i.@{prefix}-i-checkbox { + border: 1px solid @checkbox-border-focus; + .box-shadow(inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px fadeout(@checkbox-border-focus, 15%)); +} + +.@{prefix}-checkbox.@{prefix}-disabled .@{prefix}-label, .@{prefix}-checkbox.@{prefix}-disabled i.@{prefix}-i-checkbox { + color: mix(@text, @panel-bg, 40%); +} + +.@{prefix}-checkbox .@{prefix}-label { + vertical-align: middle; +} + +// RTL + +.@{prefix}-rtl .@{prefix}-checkbox { + direction: rtl; + text-align: right; +} + +.@{prefix}-rtl i.@{prefix}-i-checkbox { + margin: 0 0 0 3px; +} + + +// ComboBox + +.@{prefix}-combobox { + position: relative; + .inline-block(); + .border-radius(3px); + .box-shadow(@textbox-box-shadow); + *height: 32px; +} + +.@{prefix}-combobox input { + border: 1px solid @textbox-border; + border-right-color: @combobox-border; + height: 28px; +} + +.@{prefix}-combobox.@{prefix}-disabled input { + color: mix(@text, @textbox-bg, 40%); +} + +.@{prefix}-combobox.@{prefix}-has-open input { + .border-radius(4px 0 0 4px); +} + +.@{prefix}-combobox .@{prefix}-btn { + border: 1px solid @textbox-border; + border-left: 0; + .border-radius(0 4px 4px 0); + margin: 0; +} + +.@{prefix}-combobox button { + padding-right: 8px; + padding-left: 8px; +} + +.@{prefix}-combobox.@{prefix}-disabled .@{prefix}-btn button { + cursor: default; + .box-shadow(none); + .opacity(@btn-box-disabled-opacity); +} + +.@{prefix}-combobox .@{prefix}-status { + position: absolute; + right: 2px; + top: 50%; + line-height: 16px; + margin-top: -8px; + font-size: 12px; + width: 15px; + height: 15px; + text-align: center; + cursor: pointer; +} + +.@{prefix}-combobox.@{prefix}-has-status input { + padding-right: 20px; +} + +.@{prefix}-combobox.@{prefix}-has-open .@{prefix}-status { + right: 37px; +} + +.@{prefix}-combobox .@{prefix}-status.@{prefix}-i-warning { + color: @combobox-warning-text; +} + +.@{prefix}-combobox .@{prefix}-status.@{prefix}-i-checkmark { + color: @combobox-success-text; +} + +.@{prefix}-menu.@{prefix}-combobox-menu { + border-top: 0; + margin-top: 0; + max-height: 200px; + + .@{prefix}-menu-item { + padding: 4px 6px 4px 4px; + font-size: 11px; + } + + .@{prefix}-menu-item-sep { + padding: 0; + } + + .@{prefix}-text { + font-size: 11px; + } + + .@{prefix}-menu-item-link, .@{prefix}-menu-item-link b { + font-size: 11px; + } + + .@{prefix}-text b { + font-size: 11px; + } +} + + +// ColorBox + +.@{prefix}-colorbox i { + border: 1px solid @textbox-border; + width: 14px; height: 14px; +} + + +// ColorButton + +.@{prefix}-colorbutton .@{prefix}-ico { + position: relative; +} + +.@{prefix}-colorbutton-grid { + margin: 4px; +} + +.@{prefix}-colorbutton button { + padding-right: 6px; + padding-left: 6px; +} + +.@{prefix}-colorbutton .@{prefix}-preview { + padding-right: 3px; + display: block; + position: absolute; + left: 50%; + top: 50%; + margin-left: -17px; + margin-top: 7px; + background: gray; + width: 13px; + height: 2px; + overflow: hidden; +} + +.@{prefix}-colorbutton.@{prefix}-btn-small .@{prefix}-preview { + margin-left: -16px; + padding-right: 0; + width: 16px; +} + +.@{prefix}-colorbutton .@{prefix}-open { + padding-left: 4px; + padding-right: 4px; + border-left: 1px solid transparent; +} + +.@{prefix}-colorbutton:hover .@{prefix}-open { + border-color: darken(@btn-bg, 20%); +} + +.@{prefix}-colorbutton.@{prefix}-btn-small .@{prefix}-open { + padding: 0 3px 0 3px; +} + +// RTL + +.@{prefix}-rtl .@{prefix}-colorbutton { + direction: rtl; +} + +.@{prefix}-rtl .@{prefix}-colorbutton .@{prefix}-preview { + margin-left: 0; + padding-right: 0; + padding-left: 3px; +} + +.@{prefix}-rtl .@{prefix}-colorbutton.@{prefix}-btn-small .@{prefix}-preview { + margin-left: 0; + padding-right: 0; + padding-left: 2px; +} + +.@{prefix}-rtl .@{prefix}-colorbutton .@{prefix}-open { + padding-left: 4px; + padding-right: 4px; + border-left: 0; +} + + +// ColorPicker + +.@{prefix}-colorpicker { + position: relative; + width: 250px; + height: 220px; +} + +.@{prefix}-colorpicker-sv { + position: absolute; + top: 0; left: 0; + width: 90%; + height: 100%; + border: 1px solid @colorpicker-border; + cursor: crosshair; + overflow: hidden; +} + +.@{prefix}-colorpicker-h-chunk { + width: 100%; +} + +.@{prefix}-colorpicker-overlay1, .@{prefix}-colorpicker-overlay2 { + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; +} + +.@{prefix}-colorpicker-overlay1 { + filter: progid:DXImageTransform.Microsoft.gradient(GradientType=1,startColorstr='#ffffff', endColorstr='#00ffffff'); + -ms-filter: "progid:DXImageTransform.Microsoft.gradient(GradientType=1,startColorstr='#ffffff', endColorstr='#00ffffff')"; + background: linear-gradient(to right, rgba(255,255,255,1), rgba(255,255,255,0)); +} + +.@{prefix}-colorpicker-overlay2 { + filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#00000000', endColorstr='#000000'); + -ms-filter: "progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#00000000', endColorstr='#000000')"; + background: linear-gradient(to bottom, rgba(0,0,0,0), rgba(0,0,0,1)); +} + +.@{prefix}-colorpicker-selector1 { + background: none; + position: absolute; + width: 12px; + height: 12px; + margin: -8px 0 0 -8px; + border: 1px solid black; + border-radius: 50%; +} + +.@{prefix}-colorpicker-selector2 { + position: absolute; + width: 10px; + height: 10px; + border: 1px solid white; + border-radius: 50%; +} + +.@{prefix}-colorpicker-h { + position: absolute; + top: 0; right: 0; + width: 6.5%; + height: 100%; + border: 1px solid @colorpicker-border; + cursor: crosshair; +} + +.@{prefix}-colorpicker-h-marker { + margin-top: -4px; + position: absolute; + top: 0; + left: -1px; + width: 100%; + border: 1px solid @colorpicker-hue-border; + background: @colorpicker-hue-bg; + height: 4px; + z-index: 100; +} + + +// Path + +.@{prefix}-path { + .inline-block(); + padding: 8px; + white-space: normal; +} + +.@{prefix}-path .@{prefix}-txt { + display: inline-block; + padding-right: 3px; +} + +.@{prefix}-path .@{prefix}-path-body { + display: inline-block; +} + +.@{prefix}-path-item { + .inline-block(); + cursor: pointer; + color: @path-text; +} + +.@{prefix}-path-item:hover { + text-decoration: underline; +} + +.@{prefix}-path-item:focus { + background: @path-bg-focus; + color: @path-text-focus; +} + +.@{prefix}-path .@{prefix}-divider { + display: inline; +} + +.@{prefix}-disabled .@{prefix}-path-item { + color: @text-disabled; +} + +// RTL + +.@{prefix}-rtl .@{prefix}-path { + direction: rtl; +} + + +// FieldSet + +.@{prefix}-fieldset { + border: 0 solid #9E9E9E; + .border-radius(3px); +} + +.@{prefix}-fieldset > .@{prefix}-container-body { + margin-top: -15px; +} + +.@{prefix}-fieldset-title { + margin-left: 5px; + padding: 0 5px 0 5px; +} + +// FitLayout + +.@{prefix}-fit-layout { + .inline-block(); +} + +.@{prefix}-fit-layout-item { + position: absolute; +} + + +// FlowLayout + +.@{prefix}-flow-layout-item { + .inline-block(); +} + +.@{prefix}-flow-layout-item { + margin: @flow-layout-spacing 0 @flow-layout-spacing @flow-layout-spacing; +} + +.@{prefix}-flow-layout-item.@{prefix}-last { + margin-right: @flow-layout-spacing; +} + +.@{prefix}-flow-layout { + white-space: normal; +} + +.@{prefix}-tinymce-inline .@{prefix}-flow-layout { + white-space: nowrap; +} + +// RTL + +.@{prefix}-rtl .@{prefix}-flow-layout { + text-align: right; + direction: rtl; +} + +.@{prefix}-rtl .@{prefix}-flow-layout-item { + margin: @flow-layout-spacing @flow-layout-spacing @flow-layout-spacing 0; +} + +.@{prefix}-rtl .@{prefix}-flow-layout-item.@{prefix}-last { + margin-left: @flow-layout-spacing; +} + + +// Iframe + +.@{prefix}-iframe { + border: 0 solid @iframe-border; + width: 100%; height: 100%; +} + + +// InfoBox + +.@{prefix}-infobox { + .inline-block(); + text-shadow: @text-shadow; + overflow: hidden; + border: 1px solid red; + + div { + display: block; + margin: 5px; + + button { + position: absolute; + top: 50%; right: 4px; + cursor: pointer; + margin-top: -8px; + display: none; + } + + button:focus { + outline: 2px solid @btn-border-hover; + } + } +} + +.@{prefix}-infobox.@{prefix}-has-help { + div { + margin-right: 25px; + } + + button { + display: block; + } +} + +.@{prefix}-infobox.@{prefix}-success { + background: @infobox-success-bg; + border-color: @infobox-success-border; + + div { + color: @infobox-success-text; + } +} + +.@{prefix}-infobox.@{prefix}-warning { + background: @infobox-warning-bg; + border-color: @infobox-warning-border; + + div { + color: @infobox-warning-text; + } +} + +.@{prefix}-infobox.@{prefix}-error { + background: @infobox-error-bg; + border-color: @infobox-error-border; + + div { + color: @infobox-error-text; + } +} + +// RTL + +.@{prefix}-rtl .@{prefix}-infobox { + div { + text-align: right; + direction: rtl; + } +} + + +// Label + +.@{prefix}-label { + .inline-block(); + text-shadow: @text-shadow; + overflow: hidden; +} + +.@{prefix}-label.@{prefix}-autoscroll { + overflow: auto; +} + +.@{prefix}-label.@{prefix}-disabled { + color: @text-disabled; +} + +.@{prefix}-label.@{prefix}-multiline { + white-space: pre-wrap; +} + +.@{prefix}-label.@{prefix}-success { + color: @text-success; +} + +.@{prefix}-label.@{prefix}-warning { + color: @text-warning; +} + +.@{prefix}-label.@{prefix}-error { + color: @text-error; +} + +// RTL + +.@{prefix}-rtl .@{prefix}-label { + text-align: right; + direction: rtl; +} + + +/* MenuBar */ + +.@{prefix}-menubar .@{prefix}-menubtn { + border-color: transparent; + background: transparent; + .border-radius(0); + .box-shadow(none); + filter: none; +} + +.@{prefix}-menubar .@{prefix}-menubtn button { + color: @menubar-menubtn-text; +} + +.@{prefix}-menubar { + border: 1px solid @menubar-border; +} + +.@{prefix}-menubar .@{prefix}-menubtn button span { + color: @text; +} + +.@{prefix}-menubar .@{prefix}-caret { + border-top-color: @text; +} + +.@{prefix}-menubar .@{prefix}-menubtn:hover, .@{prefix}-menubar .@{prefix}-menubtn.@{prefix}-active, .@{prefix}-menubar .@{prefix}-menubtn:focus { + border-color: darken(@btn-bg, 20%); + background: @menu-bg; + filter: none; + .box-shadow(none); +} + + +/* MenuButton */ + +.@{prefix}-menubtn button { + color: @btn-text; + //margin-right: 2px; + //line-height: @line-height; + //*line-height: @line-height - 4px; +} + +.@{prefix}-menubtn.@{prefix}-btn-small span { + font-size: @font-size - 2px; +} + +.@{prefix}-menubtn.@{prefix}-fixed-width span { + display: inline-block; + overflow-x: hidden; + text-overflow: ellipsis; + width: 90px; +} + +.@{prefix}-menubtn.@{prefix}-fixed-width.@{prefix}-btn-small span { + width: 70px; +} + +.@{prefix}-menubtn .@{prefix}-caret { + *margin-top: 6px; +} + +// RTL + +.@{prefix}-rtl .@{prefix}-menubtn button { + direction: rtl; + text-align: right; +} + + +// MenuItem + +.@{prefix}-menu-item { + display: block; + padding: 6px 15px 6px 12px; + clear: both; + font-weight: normal; + line-height: 20px; + color: @menuitem-text; + white-space: nowrap; + cursor: pointer; + line-height: normal; + border-left: 4px solid transparent; + margin-bottom: 1px; +} + +.@{prefix}-menu-item .@{prefix}-ico, .@{prefix}-menu-item .@{prefix}-text { + color: @menuitem-text; +} + +.@{prefix}-menu-item.@{prefix}-disabled .@{prefix}-text, .@{prefix}-menu-item.@{prefix}-disabled .@{prefix}-ico { + color: mix(@menuitem-text, @menu-bg, 40%); +} + +.@{prefix}-menu-item:hover .@{prefix}-text, .@{prefix}-menu-item.@{prefix}-selected .@{prefix}-text, .@{prefix}-menu-item:focus .@{prefix}-text { + color: @menuitem-text-inverse; +} + +.@{prefix}-menu-item:hover .@{prefix}-ico, .@{prefix}-menu-item.@{prefix}-selected .@{prefix}-ico, .@{prefix}-menu-item:focus .@{prefix}-ico { + color: @menuitem-text-inverse; +} + +.@{prefix}-menu-item.@{prefix}-disabled:hover { + background: @menuitem-bg-disabled; +} + +.@{prefix}-menu-shortcut { + display: inline-block; + color: mix(@menuitem-text, @menu-bg, 40%); +} + +.@{prefix}-menu-shortcut { + .inline-block(); + padding: 0 15px 0 20px; +} + +.@{prefix}-menu-item:hover .@{prefix}-menu-shortcut, .@{prefix}-menu-item.@{prefix}-selected .@{prefix}-menu-shortcut, .@{prefix}-menu-item:focus .@{prefix}-menu-shortcut { + color: @menuitem-text-inverse; +} + +.@{prefix}-menu-item .@{prefix}-caret { + margin-top: 4px; + *margin-top: 3px; + margin-right: 6px; + border-top: 4px solid transparent; + border-bottom: 4px solid transparent; + border-left: 4px solid @menuitem-caret; +} + +.@{prefix}-menu-item.@{prefix}-selected .@{prefix}-caret, .@{prefix}-menu-item:focus .@{prefix}-caret, .@{prefix}-menu-item:hover .@{prefix}-caret { + border-left-color: @menuitem-caret-selected; +} + +.@{prefix}-menu-align .@{prefix}-menu-shortcut { + *margin-top: -2px; +} + +.@{prefix}-menu-align .@{prefix}-menu-shortcut, .@{prefix}-menu-align .@{prefix}-caret { + position: absolute; + right: 0; +} + +.@{prefix}-menu-item.@{prefix}-active i { + visibility: visible; +} + +.@{prefix}-menu-item-normal.@{prefix}-active { + background-color: @menuitem-bg-active; +} + +.@{prefix}-menu-item-preview.@{prefix}-active { + border-left: 5px solid @menuitem-preview-border-active; +} + +.@{prefix}-menu-item-normal.@{prefix}-active .@{prefix}-text { + color: @menuitem-text-active; +} + +.@{prefix}-menu-item-normal.@{prefix}-active:hover .@{prefix}-text, .@{prefix}-menu-item-normal.@{prefix}-active:hover .@{prefix}-ico { + color: @menuitem-text-inverse; +} + +.@{prefix}-menu-item-normal.@{prefix}-active:focus .@{prefix}-text, .@{prefix}-menu-item-normal.@{prefix}-active:focus .@{prefix}-ico { + color: @menuitem-text-inverse; +} + +.@{prefix}-menu-item:hover, .@{prefix}-menu-item.@{prefix}-selected, .@{prefix}-menu-item:focus { + text-decoration: none; + color: @menuitem-text-inverse; + .vertical-gradient(@menuitem-bg-selected, @menuitem-bg-selected-hlight); +} + +.@{prefix}-menu-item-link { + color: #093; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + + b { + color: #093; + } +} + +.@{prefix}-menu-item-ellipsis { + display: block; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; +} + +.@{prefix}-menu-item:hover *, .@{prefix}-menu-item.@{prefix}-selected *, .@{prefix}-menu-item:focus * { + color: @menuitem-text-inverse; +} + +div.@{prefix}-menu .@{prefix}-menu-item-sep, .@{prefix}-menu-item-sep:hover { + border: 0; + padding: 0; + height: 1px; + margin: 9px 1px; + overflow: hidden; + background: @menuitem-separator-top; + border-bottom: 1px solid @menuitem-separator-bottom; + cursor: default; + filter: none; +} + +div.@{prefix}-menu .@{prefix}-menu-item b { + font-weight: bold; +} + +.@{prefix}-menu-item-indent-1 { padding-left: 20px; } +.@{prefix}-menu-item-indent-2 { padding-left: 35px; } +.@{prefix}-menu-item-indent-2 { padding-left: 35px; } +.@{prefix}-menu-item-indent-3 { padding-left: 40px; } +.@{prefix}-menu-item-indent-4 { padding-left: 45px; } +.@{prefix}-menu-item-indent-5 { padding-left: 50px; } +.@{prefix}-menu-item-indent-6 { padding-left: 55px; } + +// RTL + +.@{prefix}-menu.@{prefix}-rtl { + direction: rtl; +} + +.@{prefix}-rtl .@{prefix}-menu-item { + text-align: right; + direction: rtl; + padding: 6px 12px 6px 15px; +} + +.@{prefix}-menu-align.@{prefix}-rtl .@{prefix}-menu-shortcut, .@{prefix}-menu-align.@{prefix}-rtl .@{prefix}-caret { + right: auto; + left: 0; +} + +.@{prefix}-rtl .@{prefix}-menu-item .@{prefix}-caret { + margin-left: 6px; + margin-right: 0; + border-right: 4px solid @menuitem-caret; + border-left: 0; +} + +.@{prefix}-rtl .@{prefix}-menu-item.@{prefix}-selected .@{prefix}-caret, .@{prefix}-rtl .@{prefix}-menu-item:focus .@{prefix}-caret, .@{prefix}-rtl .@{prefix}-menu-item:hover .@{prefix}-caret { + border-left-color: transparent; + border-right-color: @menuitem-caret-selected; +} + + +// Throbber + +.@{prefix}-throbber { + position: absolute; + top: 0; left: 0; + width: 100%; height: 100%; + .opacity(0.6); + background: @throbber-bg; +} + +.@{prefix}-throbber-inline { + position: static; + height: 50px; +} + +.@{prefix}-menu .@{prefix}-throbber-inline { + height: 25px; + background-size: contain; +} + + +// Menu + +.@{prefix}-menu { + position: absolute; + left: 0; top: 0; + .reset-gradient(); + z-index: 1000; + padding: 5px 0 5px 0; + margin: @menu-margin; + min-width: 160px; + background: @menu-bg; + border: 1px solid mix(rgb(red(@menu-border), green(@menu-border), blue(@menu-border)), @panel-bg, round(alpha(@menu-border) * 200)); + border: 1px solid @menu-border; + z-index: 1002; + .border-radius(6px); + .box-shadow(0 5px 10px rgba(0,0,0,.2)); + max-height: 400px; + overflow: auto; + overflow-x: hidden; +} + +.@{prefix}-menu i { + display: none; +} + +.@{prefix}-menu-has-icons i { + display: inline-block; + *display: inline; +} + +.@{prefix}-menu-sub-tr-tl { margin: -6px 0 0 -1px; } +.@{prefix}-menu-sub-br-bl { margin: 6px 0 0 -1px; } +.@{prefix}-menu-sub-tl-tr { margin: -6px 0 0 1px; } +.@{prefix}-menu-sub-bl-br { margin: 6px 0 0 1px; } + + +// ListBox + +.@{prefix}-listbox button { + text-align: left; + padding-right: 20px; + position: relative; +} + +.@{prefix}-listbox .@{prefix}-caret { + position: absolute; + margin-top: -2px; + right: 8px; + top: 50%; +} + +// RTL + +.@{prefix}-rtl .@{prefix}-listbox .@{prefix}-caret { + right: auto; + left: 8px; +} + +.@{prefix}-rtl .@{prefix}-listbox button { + padding-right: 10px; + padding-left: 20px; +} + + +// Radio - not implemented yet + + +.@{prefix}-container-body .@{prefix}-resizehandle { + position: absolute; + right: 0; + bottom: 0; + width: 16px; + height: 16px; + visibility: visible; + cursor: s-resize; + margin: 0; +} + +.@{prefix}-container-body .@{prefix}-resizehandle-both { + cursor: se-resize; +} + +i.@{prefix}-i-resize { + color: @text; +} + + +// SelectBox + +.@{prefix}-selectbox { + background: @selectbox-bg; + border: 1px solid @selectbox-border; +} + + +// Slider + +.@{prefix}-slider { + .border-radius(3px); + border: 1px solid @slider-border; + background: @slider-bg; + width: 100px; + height: 10px; + position: relative; + display: block; +} + +.@{prefix}-slider.@{prefix}-vertical { + width: 10px; + height: 100px; +} + +.@{prefix}-slider-handle { + .border-radius(3px); + border: 1px solid @slider-handle-border; + background: @slider-handle-bg; + display: block; + width: 13px; + height: 13px; + position: absolute; + top: 0; left: 0; + margin-left: -1px; + margin-top: -2px; +} + +.@{prefix}-slider-handle:focus { + background: @slider-handle-bg-focus; +} + + +// Spacer + +.@{prefix}-spacer { + visibility: hidden; +} + + +// SplitButton + +.@{prefix}-splitbtn .@{prefix}-open { + border-left: 1px solid transparent; +} + +.@{prefix}-splitbtn:hover .@{prefix}-open { + border-left-color: darken(@btn-bg, 20%); +} + +.@{prefix}-splitbtn button when (@has-button-borders = false) { + padding-right: 6px; + padding-left: 6px; +} + +.@{prefix}-splitbtn button when (@has-button-borders = true) { + padding-right: 4px; + padding-left: 8px; +} + +.@{prefix}-splitbtn .@{prefix}-open { + padding-right: 4px; + padding-left: 4px; +} + +.@{prefix}-splitbtn .@{prefix}-open.@{prefix}-active { + .vertical-gradient(darken(@btn-bg, 10%), darken(@btn-bg-hlight, 5%)); + outline: 1px solid darken(@btn-bg, 20%); +} + +.@{prefix}-splitbtn.@{prefix}-btn-small .@{prefix}-open { + padding: 0 3px 0 3px; +} + +// RTL + +.@{prefix}-rtl .@{prefix}-splitbtn { + direction: rtl; + text-align: right; +} + +.@{prefix}-rtl .@{prefix}-splitbtn button { + padding-right: 4px; + padding-left: 4px; +} + +.@{prefix}-rtl .@{prefix}-splitbtn .@{prefix}-open { + border-left: 0; +} + + +// StackLayout + +.@{prefix}-stack-layout-item { + display: block; +} + + +// TabPanel + +.@{prefix}-tabs { + display: block; + border-bottom: 1px solid @tab-border; +} + +.@{prefix}-tabs, +.@{prefix}-tabs + .@{prefix}-container-body { + background: @tabs-bg; +} + +.@{prefix}-tab { + .inline-block(); + border: 1px solid @tab-border; + border-width: 0 1px 0 0; + background: @tab-bg; + padding: 8px; + text-shadow: @text-shadow; + height: 13px; + cursor: pointer; +} + +.@{prefix}-tab:hover { + background: @tab-bg-hover; +} + +.@{prefix}-tab.@{prefix}-active { + background: @tab-bg-active; + border-bottom-color: transparent; + margin-bottom: -1px; + height: 14px; +} + +// RTL + +.@{prefix}-rtl .@{prefix}-tabs { + text-align: right; + direction: rtl; +} + +.@{prefix}-rtl .@{prefix}-tab { + border-width: 0 0 0 1px; +} + + +// TextBox + +.@{prefix}-textbox { + background: @textbox-bg; + border: 1px solid @textbox-border; + .border-radius(3px); + .box-shadow(@textbox-box-shadow); + display: inline-block; + .transition(~"border linear .2s, box-shadow linear .2s"); + height: 28px; + resize: none; + padding: 0 4px 0 4px; + white-space: pre-wrap; + *white-space: pre; + color: @text; +} + +.@{prefix}-textbox:focus, .@{prefix}-textbox.@{prefix}-focus { + border-color: @textbox-border-focus; + .box-shadow(inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px fadeout(@textbox-border-focus, 15%)); +} + +.@{prefix}-placeholder .@{prefix}-textbox { + color: @textbox-text-placeholder; +} + +.@{prefix}-textbox.@{prefix}-multiline { + padding: 4px; + height: auto; +} + +.@{prefix}-textbox.@{prefix}-disabled { + color: mix(@text, @textbox-bg, 40%); +} + +// RTL + +.@{prefix}-rtl .@{prefix}-textbox { + text-align: right; + direction: rtl; +} + + +/* Icons */ + +@font-face { + font-family: 'tinymce'; + src:url('fonts/tinymce.eot'); + src:url('fonts/tinymce.eot?#iefix') format('embedded-opentype'), + url('fonts/tinymce.woff') format('woff'), + url('fonts/tinymce.ttf') format('truetype'), + url('fonts/tinymce.svg#tinymce') format('svg'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'tinymce-small'; + src:url('fonts/tinymce-small.eot'); + src:url('fonts/tinymce-small.eot?#iefix') format('embedded-opentype'), + url('fonts/tinymce-small.woff') format('woff'), + url('fonts/tinymce-small.ttf') format('truetype'), + url('fonts/tinymce-small.svg#tinymce') format('svg'); + font-weight: normal; + font-style: normal; +} + +@iconSize: 16px; + +.@{prefix}-ico { + font-family: 'tinymce', Arial; + font-style: normal; + font-weight: normal; + font-variant: normal; + font-size: @iconSize; + line-height: 16px; + speak: none; + vertical-align: text-top; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + + display: inline-block; + background: transparent center center; + background-size: cover; + width: 16px; + height: 16px; + color: @btn-text; +} + +.@{prefix}-btn-small .@{prefix}-ico { + font-family: 'tinymce-small', Arial; +} + +.@{prefix}-i-save:before { content: "\e000"; } +.@{prefix}-i-newdocument:before { content: "\e001"; } +.@{prefix}-i-fullpage:before { content: "\e002"; } +.@{prefix}-i-alignleft:before { content: "\e003"; } +.@{prefix}-i-aligncenter:before { content: "\e004"; } +.@{prefix}-i-alignright:before { content: "\e005"; } +.@{prefix}-i-alignjustify:before { content: "\e006"; } +.@{prefix}-i-alignnone:before { content: "\e003"; } +.@{prefix}-i-cut:before { content: "\e007"; } +.@{prefix}-i-paste:before { content: "\e008"; } +.@{prefix}-i-searchreplace:before { content: "\e009"; } +.@{prefix}-i-bullist:before { content: "\e00a"; } +.@{prefix}-i-numlist:before { content: "\e00b"; } +.@{prefix}-i-indent:before { content: "\e00c"; } +.@{prefix}-i-outdent:before { content: "\e00d"; } +.@{prefix}-i-blockquote:before { content: "\e00e"; } +.@{prefix}-i-undo:before { content: "\e00f"; } +.@{prefix}-i-redo:before { content: "\e010"; } +.@{prefix}-i-link:before { content: "\e011"; } +.@{prefix}-i-unlink:before { content: "\e012"; } +.@{prefix}-i-anchor:before { content: "\e013"; } +.@{prefix}-i-image:before { content: "\e014"; } +.@{prefix}-i-media:before { content: "\e015"; } +.@{prefix}-i-help:before { content: "\e016"; } +.@{prefix}-i-code:before { content: "\e017"; } +.@{prefix}-i-insertdatetime:before { content: "\e018"; } +.@{prefix}-i-preview:before { content: "\e019"; } +.@{prefix}-i-forecolor:before { content: "\e01a"; } +.@{prefix}-i-backcolor:before { content: "\e01a"; } +.@{prefix}-i-table:before { content: "\e01b"; } +.@{prefix}-i-hr:before { content: "\e01c"; } +.@{prefix}-i-removeformat:before { content: "\e01d"; } +.@{prefix}-i-subscript:before { content: "\e01e"; } +.@{prefix}-i-superscript:before { content: "\e01f"; } +.@{prefix}-i-charmap:before { content: "\e020"; } +.@{prefix}-i-emoticons:before { content: "\e021"; } +.@{prefix}-i-print:before { content: "\e022"; } +.@{prefix}-i-fullscreen:before { content: "\e023"; } +.@{prefix}-i-spellchecker:before { content: "\e024"; } +.@{prefix}-i-nonbreaking:before { content: "\e025"; } +.@{prefix}-i-template:before { content: "\e026"; } +.@{prefix}-i-pagebreak:before { content: "\e027"; } +.@{prefix}-i-restoredraft:before { content: "\e028"; } +.@{prefix}-i-bold:before { content: "\e02a"; } +.@{prefix}-i-italic:before { content: "\e02b"; } +.@{prefix}-i-underline:before { content: "\e02c"; } +.@{prefix}-i-strikethrough:before { content: "\e02d"; } +.@{prefix}-i-visualchars:before { content: "\e02e"; } +.@{prefix}-i-visualblocks:before { content: "\e02e"; } +.@{prefix}-i-ltr:before { content: "\e02f"; } +.@{prefix}-i-rtl:before { content: "\e030"; } +.@{prefix}-i-copy:before { content: "\e031"; } +.@{prefix}-i-resize:before { content: "\e032"; } +.@{prefix}-i-browse:before { content: "\e034"; } +.@{prefix}-i-pastetext:before { content: "\e035"; } +.@{prefix}-i-rotateleft:before { content: "\eaa8"; } +.@{prefix}-i-rotateright:before { content: "\eaa9"; } +.@{prefix}-i-crop:before { content: "\ee78"; } +.@{prefix}-i-editimage:before { content: "\e915"; } +.@{prefix}-i-options:before { content: "\ec6a"; } +.@{prefix}-i-flipv:before { content: "\eaaa"; } +.@{prefix}-i-fliph:before { content: "\eaac"; } +.@{prefix}-i-zoomin:before { content: "\eb35"; } +.@{prefix}-i-zoomout:before { content: "\eb36"; } +.@{prefix}-i-sun:before { content: "\eccc"; } +.@{prefix}-i-moon:before { content: "\eccd"; } +.@{prefix}-i-arrowleft:before { content: "\edc0"; } +.@{prefix}-i-arrowright:before { content: "\e93c"; } +.@{prefix}-i-drop:before { content: "\e935"; } +.@{prefix}-i-contrast:before { content: "\ecd4"; } +.@{prefix}-i-sharpen:before { content: "\eba7"; } +.@{prefix}-i-resize2:before { content: "\edf9"; } +.@{prefix}-i-orientation:before { content: "\e601"; } +.@{prefix}-i-invert:before { content: "\e602"; } +.@{prefix}-i-gamma:before { content: "\e600"; } +.@{prefix}-i-remove:before { content: "\ed6a"; } +.@{prefix}-i-tablerowprops:before { content: "\e604"; } +.@{prefix}-i-tablecellprops:before { content: "\e605"; } +.@{prefix}-i-table2:before { content: "\e606"; } +.@{prefix}-i-tablemergecells:before { content: "\e607"; } +.@{prefix}-i-tableinsertcolbefore:before { content: "\e608"; } +.@{prefix}-i-tableinsertcolafter:before { content: "\e609"; } +.@{prefix}-i-tableinsertrowbefore:before { content: "\e60a"; } +.@{prefix}-i-tableinsertrowafter:before { content: "\e60b"; } +.@{prefix}-i-tablesplitcells:before { content: "\e60d"; } +.@{prefix}-i-tabledelete:before { content: "\e60e"; } +.@{prefix}-i-tableleftheader:before { content: "\e62a"; } +.@{prefix}-i-tabletopheader:before { content: "\e62b"; } +.@{prefix}-i-tabledeleterow:before { content: "\e800"; } +.@{prefix}-i-tabledeletecol:before { content: "\e801"; } +.@{prefix}-i-codesample:before { content: "\e603"; } +.@{prefix}-i-fill:before { content: "\e902"; } +.@{prefix}-i-borderwidth:before { content: "\e903"; } +.@{prefix}-i-line:before { content: "\e904"; } +.@{prefix}-i-count:before { content: "\e905"; } +.@{prefix}-i-translate:before { content: "\e907"; } +.@{prefix}-i-drag:before { content: "\e908"; } +.@{prefix}-i-home:before { content: "\e90b"; } +.@{prefix}-i-upload:before { content: "\e914"; } +.@{prefix}-i-bubble:before { content: "\e91c"; } +.@{prefix}-i-user:before { content: "\e91d"; } +.@{prefix}-i-lock:before { content: "\e926"; } +.@{prefix}-i-unlock:before { content: "\e927"; } +.@{prefix}-i-settings:before { content: "\e928"; } +.@{prefix}-i-remove2:before { content: "\e92a"; } +.@{prefix}-i-menu:before { content: "\e92d"; } +.@{prefix}-i-warning:before { content: "\e930"; } +.@{prefix}-i-question:before { content: "\e931"; } +.@{prefix}-i-pluscircle:before { content: "\e932"; } +.@{prefix}-i-info:before { content: "\e933"; } +.@{prefix}-i-notice:before { content: "\e934"; } +.@{prefix}-i-arrowup:before { content: "\e93b"; } +.@{prefix}-i-arrowdown:before { content: "\e93d"; } +.@{prefix}-i-arrowup2:before { content: "\e93f"; } +.@{prefix}-i-arrowdown2:before { content: "\e940"; } +.@{prefix}-i-menu2:before { content: "\e941"; } +.@{prefix}-i-newtab:before { content: "\e961"; } +.@{prefix}-i-a11y:before { content: "\e900"; } +.@{prefix}-i-plus:before { content: "\e93a"; } +.@{prefix}-i-insert:before { content: "\e93a"; } +.@{prefix}-i-minus:before { content: "\e939"; } +.@{prefix}-i-books:before { content: "\e911"; } +.@{prefix}-i-reload:before { content: "\e906"; } +.@{prefix}-i-toc:before { content: "\e901"; } +.@{prefix}-i-checkmark:before { content: "\e033"; } +.@{prefix}-i-checkbox:before, .@{prefix}-i-selected:before { + content: "\e033"; +} + +.@{prefix}-i-insert { font-size: 14px; } +.@{prefix}-i-selected { visibility: hidden; } +i.@{prefix}-i-backcolor { text-shadow: none; background: @colorbtn-backcolor-bg; } + diff --git a/data/web/rc/program/js/tinymce/skins/lightgray/skin.min.css b/data/web/rc/program/js/tinymce/skins/lightgray/skin.min.css new file mode 100644 index 0000000000000000000000000000000000000000..05f23f9f1e3d24bb13cd3e085781842a189cfc02 --- /dev/null +++ b/data/web/rc/program/js/tinymce/skins/lightgray/skin.min.css @@ -0,0 +1 @@ +.mce-container,.mce-container *,.mce-widget,.mce-widget *,.mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:#333;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;-webkit-tap-highlight-color:transparent;line-height:normal;font-weight:normal;text-align:left;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-widget button{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.mce-container *[unselectable]{-moz-user-select:none;-webkit-user-select:none;-o-user-select:none;user-select:none}.mce-fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.mce-fade.mce-in{opacity:1}.mce-tinymce{visibility:inherit !important;position:relative}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;height:100%;z-index:100}div.mce-fullscreen{position:fixed;top:0;left:0;width:100%;height:auto}.mce-tinymce{display:block}.mce-wordcount{position:absolute;top:0;right:0;padding:8px}div.mce-edit-area{background:#FFF;filter:none}.mce-statusbar{position:relative}.mce-statusbar .mce-container-body{position:relative}.mce-fullscreen .mce-resizehandle{display:none}.mce-charmap{border-collapse:collapse}.mce-charmap td{cursor:default;border:1px solid rgba(0,0,0,0.2);width:20px;height:20px;line-height:20px;text-align:center;vertical-align:middle;padding:2px}.mce-charmap td div{text-align:center}.mce-charmap td:hover{background:#D9D9D9}.mce-grid td.mce-grid-cell div{border:1px solid #d6d6d6;width:15px;height:15px;margin:0;cursor:pointer}.mce-grid td.mce-grid-cell div:focus{border-color:#3498db}.mce-grid td.mce-grid-cell div[disabled]{cursor:not-allowed}.mce-grid{border-spacing:2px;border-collapse:separate}.mce-grid a{display:block;border:1px solid transparent}.mce-grid a:hover,.mce-grid a:focus{border-color:#3498db}.mce-grid-border{margin:0 4px 0 4px}.mce-grid-border a{border-color:#d6d6d6;width:13px;height:13px}.mce-grid-border a:hover,.mce-grid-border a.mce-active{border-color:#3498db;background:#3498db}.mce-text-center{text-align:center}div.mce-tinymce-inline{width:100%}.mce-colorbtn-trans div{text-align:center;vertical-align:middle;font-weight:bold;font-size:20px;line-height:16px;color:#707070}.mce-monospace{font-family:"Courier New",Courier,monospace}.mce-toolbar-grp{padding:2px 0}.mce-toolbar-grp .mce-flow-layout-item{margin-bottom:0}.mce-rtl .mce-wordcount{left:0;right:auto}.mce-croprect-container{position:absolute;top:0;left:0}.mce-croprect-handle{position:absolute;top:0;left:0;width:20px;height:20px;border:2px solid white}.mce-croprect-handle-nw{border-width:2px 0 0 2px;margin:-2px 0 0 -2px;cursor:nw-resize;top:100px;left:100px}.mce-croprect-handle-ne{border-width:2px 2px 0 0;margin:-2px 0 0 -20px;cursor:ne-resize;top:100px;left:200px}.mce-croprect-handle-sw{border-width:0 0 2px 2px;margin:-20px 2px 0 -2px;cursor:sw-resize;top:200px;left:100px}.mce-croprect-handle-se{border-width:0 2px 2px 0;margin:-20px 0 0 -20px;cursor:se-resize;top:200px;left:200px}.mce-croprect-handle-move{position:absolute;cursor:move;border:0}.mce-croprect-block{opacity:.3;filter:alpha(opacity=30);zoom:1;position:absolute;background:black}.mce-croprect-handle:focus{border-color:#3498db}.mce-croprect-handle-move:focus{outline:1px solid #3498db}.mce-imagepanel{overflow:auto;background:black}.mce-imagepanel-bg{position:absolute;background:url('data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw==')}.mce-imagepanel img{position:absolute}.mce-imagetool.mce-btn .mce-ico{display:block;width:20px;height:20px;text-align:center;line-height:20px;font-size:20px;padding:5px}.mce-arrow-up{margin-top:12px}.mce-arrow-down{margin-top:-12px}.mce-arrow:before,.mce-arrow:after{position:absolute;left:50%;display:block;width:0;height:0;border-style:solid;border-color:transparent;content:""}.mce-arrow.mce-arrow-up:before{top:-9px;border-bottom-color:rgba(0,0,0,0.2);border-width:0 9px 9px;margin-left:-9px}.mce-arrow.mce-arrow-down:before{bottom:-9px;border-top-color:rgba(0,0,0,0.2);border-width:9px 9px 0;margin-left:-9px}.mce-arrow.mce-arrow-up:after{top:-8px;border-bottom-color:#f0f0f0;border-width:0 8px 8px;margin-left:-8px}.mce-arrow.mce-arrow-down:after{bottom:-8px;border-top-color:#f0f0f0;border-width:8px 8px 0;margin-left:-8px}.mce-arrow.mce-arrow-left:before,.mce-arrow.mce-arrow-left:after{margin:0}.mce-arrow.mce-arrow-left:before{left:8px}.mce-arrow.mce-arrow-left:after{left:9px}.mce-arrow.mce-arrow-right:before,.mce-arrow.mce-arrow-right:after{left:auto;margin:0}.mce-arrow.mce-arrow-right:before{right:8px}.mce-arrow.mce-arrow-right:after{right:9px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-left:before{left:-9px;top:50%;border-right-color:rgba(0,0,0,0.2);border-width:9px 9px 9px 0;margin-top:-9px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-left:after{left:-8px;top:50%;border-right-color:#f0f0f0;border-width:8px 8px 8px 0;margin-top:-8px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-left{margin-left:12px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-right:before{right:-9px;top:50%;border-left-color:rgba(0,0,0,0.2);border-width:9px 0 9px 9px;margin-top:-9px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-right:after{right:-8px;top:50%;border-left-color:#f0f0f0;border-width:8px 0 8px 8px;margin-top:-8px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-right{margin-left:-14px}.mce-edit-aria-container>.mce-container-body{display:flex}.mce-edit-aria-container>.mce-container-body .mce-edit-area{flex:1}.mce-edit-aria-container>.mce-container-body .mce-sidebar>.mce-container-body{display:flex;align-items:stretch;height:100%}.mce-edit-aria-container>.mce-container-body .mce-sidebar-panel{min-width:250px;max-width:250px;position:relative}.mce-edit-aria-container>.mce-container-body .mce-sidebar-panel>.mce-container-body{position:absolute;width:100%;height:100%;overflow:auto;top:0;left:0}.mce-sidebar-toolbar{border:0 solid rgba(0,0,0,0.2);border-left-width:1px}.mce-sidebar-toolbar .mce-btn.mce-active,.mce-sidebar-toolbar .mce-btn.mce-active:hover{border:1px solid transparent;border-color:transparent;background-color:#2d8ac7}.mce-sidebar-toolbar .mce-btn.mce-active button,.mce-sidebar-toolbar .mce-btn.mce-active:hover button,.mce-sidebar-toolbar .mce-btn.mce-active button i,.mce-sidebar-toolbar .mce-btn.mce-active:hover button i{color:#fff;text-shadow:1px 1px none}.mce-sidebar-panel{border:0 solid rgba(0,0,0,0.2);border-left-width:1px}.mce-container,.mce-container-body{display:block}.mce-autoscroll{overflow:hidden}.mce-scrollbar{position:absolute;width:7px;height:100%;top:2px;right:2px;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-scrollbar-h{top:auto;right:auto;left:2px;bottom:2px;width:100%;height:7px}.mce-scrollbar-thumb{position:absolute;background-color:#000;border:1px solid #888;border-color:rgba(85,85,85,0.6);width:5px;height:100%}.mce-scrollbar-h .mce-scrollbar-thumb{width:100%;height:5px}.mce-scrollbar:hover,.mce-scrollbar.mce-active{background-color:#AAA;opacity:.6;filter:alpha(opacity=60);zoom:1}.mce-scroll{position:relative}.mce-panel{border:0 solid #cacaca;border:0 solid rgba(0,0,0,0.2);background-color:#f0f0f0}.mce-floatpanel{position:absolute}.mce-floatpanel.mce-fixed{position:fixed}.mce-floatpanel .mce-arrow,.mce-floatpanel .mce-arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.mce-floatpanel .mce-arrow{border-width:11px}.mce-floatpanel .mce-arrow:after{border-width:10px;content:""}.mce-floatpanel.mce-popover{filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;top:0;left:0;background:#FFF;border:1px solid rgba(0,0,0,0.2);border:1px solid rgba(0,0,0,0.25)}.mce-floatpanel.mce-popover.mce-bottom{margin-top:10px;*margin-top:0}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:rgba(0,0,0,0.2);border-bottom-color:rgba(0,0,0,0.25);top:-11px}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#FFF}.mce-floatpanel.mce-popover.mce-bottom.mce-start{margin-left:-22px}.mce-floatpanel.mce-popover.mce-bottom.mce-start>.mce-arrow{left:20px}.mce-floatpanel.mce-popover.mce-bottom.mce-end{margin-left:22px}.mce-floatpanel.mce-popover.mce-bottom.mce-end>.mce-arrow{right:10px;left:auto}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;height:100%}div.mce-fullscreen{position:fixed;top:0;left:0}#mce-modal-block{opacity:0;filter:alpha(opacity=0);zoom:1;position:fixed;left:0;top:0;width:100%;height:100%;background:#000}#mce-modal-block.mce-in{opacity:.3;filter:alpha(opacity=30);zoom:1}.mce-window-move{cursor:move}.mce-window{filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;background:#FFF;position:fixed;top:0;left:0;opacity:0;transform:scale(.1);transition:transform 100ms ease-in,opacity 150ms ease-in}.mce-window.mce-in{transform:scale(1);opacity:1}.mce-window-head{padding:9px 15px;border-bottom:1px solid #c5c5c5;position:relative}.mce-window-head .mce-close{position:absolute;right:0;top:0;height:38px;width:38px;text-align:center;cursor:pointer}.mce-window-head .mce-close i{color:#858585}.mce-close:hover i{color:#adadad}.mce-window-head .mce-title{line-height:20px;font-size:20px;font-weight:bold;text-rendering:optimizelegibility;padding-right:20px}.mce-window .mce-container-body{display:block}.mce-foot{display:block;background-color:#FFF;border-top:1px solid #c5c5c5}.mce-window-head .mce-dragh{position:absolute;top:0;left:0;cursor:move;width:90%;height:100%}.mce-window iframe{width:100%;height:100%}.mce-window-body .mce-listbox{border-color:#ccc}.mce-rtl .mce-window-head .mce-close{position:absolute;right:auto;left:15px}.mce-rtl .mce-window-head .mce-dragh{left:auto;right:0}.mce-rtl .mce-window-head .mce-title{direction:rtl;text-align:right}.mce-tooltip{position:absolute;padding:5px;opacity:.8;filter:alpha(opacity=80);zoom:1}.mce-tooltip-inner{font-size:11px;background-color:#000;color:white;max-width:200px;padding:5px 8px 4px 8px;text-align:center;white-space:normal}.mce-tooltip-arrow{position:absolute;width:0;height:0;line-height:0;border:5px dashed #000}.mce-tooltip-arrow-n{border-bottom-color:#000}.mce-tooltip-arrow-s{border-top-color:#000}.mce-tooltip-arrow-e{border-left-color:#000}.mce-tooltip-arrow-w{border-right-color:#000}.mce-tooltip-nw,.mce-tooltip-sw{margin-left:-14px}.mce-tooltip-ne,.mce-tooltip-se{margin-left:14px}.mce-tooltip-n .mce-tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-nw .mce-tooltip-arrow{top:0;left:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-ne .mce-tooltip-arrow{top:0;right:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-s .mce-tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-sw .mce-tooltip-arrow{bottom:0;left:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-se .mce-tooltip-arrow{bottom:0;right:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-e .mce-tooltip-arrow{right:0;top:50%;margin-top:-5px;border-left-style:solid;border-right:none;border-top-color:transparent;border-bottom-color:transparent}.mce-tooltip-w .mce-tooltip-arrow{left:0;top:50%;margin-top:-5px;border-right-style:solid;border-left:none;border-top-color:transparent;border-bottom-color:transparent}.mce-progress{display:inline-block;position:relative;height:20px}.mce-progress .mce-bar-container{display:inline-block;width:100px;height:100%;margin-right:8px;border:1px solid #ccc;overflow:hidden}.mce-progress .mce-text{display:inline-block;margin-top:auto;margin-bottom:auto;font-size:14px;width:40px;color:#333}.mce-bar{display:block;width:0;height:100%;background-color:#d7d7d7;-webkit-transition:width .2s ease;transition:width .2s ease}.mce-notification{position:absolute;background-color:#F0F0F0;padding:5px;margin-top:5px;border-width:1px;border-style:solid;border-color:#CCCCCC;transition:transform 100ms ease-in,opacity 150ms ease-in;opacity:0}.mce-notification.mce-in{opacity:1}.mce-notification-success{background-color:#dff0d8;border-color:#d6e9c6}.mce-notification-info{background-color:#d9edf7;border-color:#779ECB}.mce-notification-warning{background-color:#fcf8e3;border-color:#faebcc}.mce-notification-error{background-color:#f2dede;border-color:#ebccd1}.mce-notification.mce-has-close{padding-right:15px}.mce-notification .mce-ico{margin-top:5px}.mce-notification-inner{display:inline-block;font-size:14px;margin:5px 8px 4px 8px;text-align:center;white-space:normal;color:#31708f}.mce-notification-inner a{text-decoration:underline;cursor:pointer}.mce-notification .mce-progress{margin-right:8px}.mce-notification .mce-progress .mce-text{margin-top:5px}.mce-notification *,.mce-notification .mce-progress .mce-text{color:#333333}.mce-notification .mce-progress .mce-bar-container{border-color:#CCCCCC}.mce-notification .mce-progress .mce-bar-container .mce-bar{background-color:#333333}.mce-notification-success *,.mce-notification-success .mce-progress .mce-text{color:#3c763d}.mce-notification-success .mce-progress .mce-bar-container{border-color:#d6e9c6}.mce-notification-success .mce-progress .mce-bar-container .mce-bar{background-color:#3c763d}.mce-notification-info *,.mce-notification-info .mce-progress .mce-text{color:#31708f}.mce-notification-info .mce-progress .mce-bar-container{border-color:#779ECB}.mce-notification-info .mce-progress .mce-bar-container .mce-bar{background-color:#31708f}.mce-notification-warning *,.mce-notification-warning .mce-progress .mce-text{color:#8a6d3b}.mce-notification-warning .mce-progress .mce-bar-container{border-color:#faebcc}.mce-notification-warning .mce-progress .mce-bar-container .mce-bar{background-color:#8a6d3b}.mce-notification-error *,.mce-notification-error .mce-progress .mce-text{color:#a94442}.mce-notification-error .mce-progress .mce-bar-container{border-color:#ebccd1}.mce-notification-error .mce-progress .mce-bar-container .mce-bar{background-color:#a94442}.mce-notification .mce-close{position:absolute;top:6px;right:8px;font-size:20px;font-weight:bold;line-height:20px;color:#858585;cursor:pointer;height:20px;overflow:hidden}.mce-abs-layout{position:relative}body .mce-abs-layout-item,.mce-abs-end{position:absolute}.mce-abs-end{width:1px;height:1px}.mce-container-body.mce-abs-layout{overflow:hidden}.mce-btn{border:1px solid #b1b1b1;border-color:transparent transparent transparent transparent;position:relative;text-shadow:0 1px 1px rgba(255,255,255,0.75);display:inline-block;*display:inline;*zoom:1;background-color:#f0f0f0}.mce-btn:hover,.mce-btn:focus{color:#333;background-color:#e3e3e3;border-color:#ccc}.mce-btn.mce-disabled button,.mce-btn.mce-disabled:hover button{cursor:default;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-btn.mce-active,.mce-btn.mce-active:hover{background-color:#dbdbdb;border-color:#ccc}.mce-btn:active{background-color:#e0e0e0;border-color:#ccc}.mce-btn button{padding:4px 8px;font-size:14px;line-height:20px;*line-height:16px;cursor:pointer;color:#333;text-align:center;overflow:visible;-webkit-appearance:none}.mce-btn button::-moz-focus-inner{border:0;padding:0}.mce-btn i{text-shadow:1px 1px none}.mce-primary.mce-btn-has-text{min-width:50px}.mce-primary{color:#fff;border:1px solid transparent;border-color:transparent;background-color:#2d8ac7}.mce-primary:hover,.mce-primary:focus{background-color:#257cb6;border-color:transparent}.mce-primary.mce-disabled button,.mce-primary.mce-disabled:hover button{cursor:default;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-primary.mce-active,.mce-primary.mce-active:hover,.mce-primary:not(.mce-disabled):active{background-color:#206ea1}.mce-primary button,.mce-primary button i{color:#fff;text-shadow:1px 1px none}.mce-btn .mce-txt{font-size:inherit;line-height:inherit;color:inherit}.mce-btn-large button{padding:9px 14px;font-size:16px;line-height:normal}.mce-btn-large i{margin-top:2px}.mce-btn-small button{padding:1px 5px;font-size:12px;*padding-bottom:2px}.mce-btn-small i{line-height:20px;vertical-align:top;*line-height:18px}.mce-btn .mce-caret{margin-top:8px;margin-left:0}.mce-btn-small .mce-caret{margin-top:8px;margin-left:0}.mce-caret{display:inline-block;*display:inline;*zoom:1;width:0;height:0;vertical-align:top;border-top:4px solid #333;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.mce-disabled .mce-caret{border-top-color:#aaa}.mce-caret.mce-up{border-bottom:4px solid #333;border-top:0}.mce-btn-flat{border:0;background:transparent;filter:none}.mce-btn-flat:hover,.mce-btn-flat.mce-active,.mce-btn-flat:focus,.mce-btn-flat:active{border:0;background:#e6e6e6;filter:none}.mce-btn-has-text .mce-ico{padding-right:5px}.mce-rtl .mce-btn button{direction:rtl}.mce-btn-group .mce-btn{border-width:1px;margin:0;margin-left:2px}.mce-btn-group:not(:first-child){border-left:1px solid #d9d9d9;padding-left:3px;margin-left:3px}.mce-btn-group .mce-first{margin-left:0}.mce-btn-group .mce-btn.mce-flow-layout-item{margin:0}.mce-rtl .mce-btn-group .mce-btn{margin-left:0;margin-right:2px}.mce-rtl .mce-btn-group .mce-first{margin-right:0}.mce-rtl .mce-btn-group:not(:first-child){border-left:none;border-right:1px solid #d9d9d9;padding-right:4px;margin-right:4px}.mce-checkbox{cursor:pointer}i.mce-i-checkbox{margin:0 3px 0 0;border:1px solid #c5c5c5;background-color:#f0f0f0;text-indent:-10em;*font-size:0;*line-height:0;*text-indent:0;overflow:hidden}.mce-checked i.mce-i-checkbox{color:#333;font-size:16px;line-height:16px;text-indent:0}.mce-checkbox:focus i.mce-i-checkbox,.mce-checkbox.mce-focus i.mce-i-checkbox{border:1px solid rgba(82,168,236,0.8)}.mce-checkbox.mce-disabled .mce-label,.mce-checkbox.mce-disabled i.mce-i-checkbox{color:#acacac}.mce-checkbox .mce-label{vertical-align:middle}.mce-rtl .mce-checkbox{direction:rtl;text-align:right}.mce-rtl i.mce-i-checkbox{margin:0 0 0 3px}.mce-combobox{position:relative;display:inline-block;*display:inline;*zoom:1;*height:32px}.mce-combobox input{border:1px solid #c5c5c5;border-right-color:#c5c5c5;height:28px}.mce-combobox.mce-disabled input{color:#adadad}.mce-combobox .mce-btn{border:1px solid #c5c5c5;border-left:0;margin:0}.mce-combobox button{padding-right:8px;padding-left:8px}.mce-combobox.mce-disabled .mce-btn button{cursor:default;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-combobox .mce-status{position:absolute;right:2px;top:50%;line-height:16px;margin-top:-8px;font-size:12px;width:15px;height:15px;text-align:center;cursor:pointer}.mce-combobox.mce-has-status input{padding-right:20px}.mce-combobox.mce-has-open .mce-status{right:37px}.mce-combobox .mce-status.mce-i-warning{color:#c09853}.mce-combobox .mce-status.mce-i-checkmark{color:#468847}.mce-menu.mce-combobox-menu{border-top:0;margin-top:0;max-height:200px}.mce-menu.mce-combobox-menu .mce-menu-item{padding:4px 6px 4px 4px;font-size:11px}.mce-menu.mce-combobox-menu .mce-menu-item-sep{padding:0}.mce-menu.mce-combobox-menu .mce-text{font-size:11px}.mce-menu.mce-combobox-menu .mce-menu-item-link,.mce-menu.mce-combobox-menu .mce-menu-item-link b{font-size:11px}.mce-menu.mce-combobox-menu .mce-text b{font-size:11px}.mce-colorbox i{border:1px solid #c5c5c5;width:14px;height:14px}.mce-colorbutton .mce-ico{position:relative}.mce-colorbutton-grid{margin:4px}.mce-colorbutton button{padding-right:6px;padding-left:6px}.mce-colorbutton .mce-preview{padding-right:3px;display:block;position:absolute;left:50%;top:50%;margin-left:-17px;margin-top:7px;background:gray;width:13px;height:2px;overflow:hidden}.mce-colorbutton.mce-btn-small .mce-preview{margin-left:-16px;padding-right:0;width:16px}.mce-colorbutton .mce-open{padding-left:4px;padding-right:4px;border-left:1px solid transparent}.mce-colorbutton:hover .mce-open{border-color:#ccc}.mce-colorbutton.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-colorbutton{direction:rtl}.mce-rtl .mce-colorbutton .mce-preview{margin-left:0;padding-right:0;padding-left:3px}.mce-rtl .mce-colorbutton.mce-btn-small .mce-preview{margin-left:0;padding-right:0;padding-left:2px}.mce-rtl .mce-colorbutton .mce-open{padding-left:4px;padding-right:4px;border-left:0}.mce-colorpicker{position:relative;width:250px;height:220px}.mce-colorpicker-sv{position:absolute;top:0;left:0;width:90%;height:100%;border:1px solid #c5c5c5;cursor:crosshair;overflow:hidden}.mce-colorpicker-h-chunk{width:100%}.mce-colorpicker-overlay1,.mce-colorpicker-overlay2{width:100%;height:100%;position:absolute;top:0;left:0}.mce-colorpicker-overlay1{filter:progid:DXImageTransform.Microsoft.gradient(GradientType=1, startColorstr='#ffffff', endColorstr='#00ffffff');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=1,startColorstr='#ffffff', endColorstr='#00ffffff')";background:linear-gradient(to right, #fff, rgba(255,255,255,0))}.mce-colorpicker-overlay2{filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#00000000', endColorstr='#000000');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#00000000', endColorstr='#000000')";background:linear-gradient(to bottom, rgba(0,0,0,0), #000)}.mce-colorpicker-selector1{background:none;position:absolute;width:12px;height:12px;margin:-8px 0 0 -8px;border:1px solid black;border-radius:50%}.mce-colorpicker-selector2{position:absolute;width:10px;height:10px;border:1px solid white;border-radius:50%}.mce-colorpicker-h{position:absolute;top:0;right:0;width:6.5%;height:100%;border:1px solid #c5c5c5;cursor:crosshair}.mce-colorpicker-h-marker{margin-top:-4px;position:absolute;top:0;left:-1px;width:100%;border:1px solid #333;background:#fff;height:4px;z-index:100}.mce-path{display:inline-block;*display:inline;*zoom:1;padding:8px;white-space:normal}.mce-path .mce-txt{display:inline-block;padding-right:3px}.mce-path .mce-path-body{display:inline-block}.mce-path-item{display:inline-block;*display:inline;*zoom:1;cursor:pointer;color:#333}.mce-path-item:hover{text-decoration:underline}.mce-path-item:focus{background:#666;color:#fff}.mce-path .mce-divider{display:inline}.mce-disabled .mce-path-item{color:#aaa}.mce-rtl .mce-path{direction:rtl}.mce-fieldset{border:0 solid #9E9E9E}.mce-fieldset>.mce-container-body{margin-top:-15px}.mce-fieldset-title{margin-left:5px;padding:0 5px 0 5px}.mce-fit-layout{display:inline-block;*display:inline;*zoom:1}.mce-fit-layout-item{position:absolute}.mce-flow-layout-item{display:inline-block;*display:inline;*zoom:1}.mce-flow-layout-item{margin:2px 0 2px 2px}.mce-flow-layout-item.mce-last{margin-right:2px}.mce-flow-layout{white-space:normal}.mce-tinymce-inline .mce-flow-layout{white-space:nowrap}.mce-rtl .mce-flow-layout{text-align:right;direction:rtl}.mce-rtl .mce-flow-layout-item{margin:2px 2px 2px 0}.mce-rtl .mce-flow-layout-item.mce-last{margin-left:2px}.mce-iframe{border:0 solid rgba(0,0,0,0.2);width:100%;height:100%}.mce-infobox{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 1px rgba(255,255,255,0.75);overflow:hidden;border:1px solid red}.mce-infobox div{display:block;margin:5px}.mce-infobox div button{position:absolute;top:50%;right:4px;cursor:pointer;margin-top:-8px;display:none}.mce-infobox div button:focus{outline:2px solid #ccc}.mce-infobox.mce-has-help div{margin-right:25px}.mce-infobox.mce-has-help button{display:block}.mce-infobox.mce-success{background:#dff0d8;border-color:#d6e9c6}.mce-infobox.mce-success div{color:#3c763d}.mce-infobox.mce-warning{background:#fcf8e3;border-color:#faebcc}.mce-infobox.mce-warning div{color:#8a6d3b}.mce-infobox.mce-error{background:#f2dede;border-color:#ebccd1}.mce-infobox.mce-error div{color:#a94442}.mce-rtl .mce-infobox div{text-align:right;direction:rtl}.mce-label{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 1px rgba(255,255,255,0.75);overflow:hidden}.mce-label.mce-autoscroll{overflow:auto}.mce-label.mce-disabled{color:#aaa}.mce-label.mce-multiline{white-space:pre-wrap}.mce-label.mce-success{color:#468847}.mce-label.mce-warning{color:#c09853}.mce-label.mce-error{color:#b94a48}.mce-rtl .mce-label{text-align:right;direction:rtl}.mce-menubar .mce-menubtn{border-color:transparent;background:transparent;filter:none}.mce-menubar .mce-menubtn button{color:#333}.mce-menubar{border:1px solid rgba(217,217,217,0.52)}.mce-menubar .mce-menubtn button span{color:#333}.mce-menubar .mce-caret{border-top-color:#333}.mce-menubar .mce-menubtn:hover,.mce-menubar .mce-menubtn.mce-active,.mce-menubar .mce-menubtn:focus{border-color:#ccc;background:#fff;filter:none}.mce-menubtn button{color:#333}.mce-menubtn.mce-btn-small span{font-size:12px}.mce-menubtn.mce-fixed-width span{display:inline-block;overflow-x:hidden;text-overflow:ellipsis;width:90px}.mce-menubtn.mce-fixed-width.mce-btn-small span{width:70px}.mce-menubtn .mce-caret{*margin-top:6px}.mce-rtl .mce-menubtn button{direction:rtl;text-align:right}.mce-menu-item{display:block;padding:6px 15px 6px 12px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap;cursor:pointer;line-height:normal;border-left:4px solid transparent;margin-bottom:1px}.mce-menu-item .mce-ico,.mce-menu-item .mce-text{color:#333}.mce-menu-item.mce-disabled .mce-text,.mce-menu-item.mce-disabled .mce-ico{color:#adadad}.mce-menu-item:hover .mce-text,.mce-menu-item.mce-selected .mce-text,.mce-menu-item:focus .mce-text{color:white}.mce-menu-item:hover .mce-ico,.mce-menu-item.mce-selected .mce-ico,.mce-menu-item:focus .mce-ico{color:white}.mce-menu-item.mce-disabled:hover{background:#CCC}.mce-menu-shortcut{display:inline-block;color:#adadad}.mce-menu-shortcut{display:inline-block;*display:inline;*zoom:1;padding:0 15px 0 20px}.mce-menu-item:hover .mce-menu-shortcut,.mce-menu-item.mce-selected .mce-menu-shortcut,.mce-menu-item:focus .mce-menu-shortcut{color:white}.mce-menu-item .mce-caret{margin-top:4px;*margin-top:3px;margin-right:6px;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:4px solid #333}.mce-menu-item.mce-selected .mce-caret,.mce-menu-item:focus .mce-caret,.mce-menu-item:hover .mce-caret{border-left-color:white}.mce-menu-align .mce-menu-shortcut{*margin-top:-2px}.mce-menu-align .mce-menu-shortcut,.mce-menu-align .mce-caret{position:absolute;right:0}.mce-menu-item.mce-active i{visibility:visible}.mce-menu-item-normal.mce-active{background-color:#3498db}.mce-menu-item-preview.mce-active{border-left:5px solid #aaa}.mce-menu-item-normal.mce-active .mce-text{color:white}.mce-menu-item-normal.mce-active:hover .mce-text,.mce-menu-item-normal.mce-active:hover .mce-ico{color:white}.mce-menu-item-normal.mce-active:focus .mce-text,.mce-menu-item-normal.mce-active:focus .mce-ico{color:white}.mce-menu-item:hover,.mce-menu-item.mce-selected,.mce-menu-item:focus{text-decoration:none;color:white;background-color:#2d8ac7}.mce-menu-item-link{color:#093;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mce-menu-item-link b{color:#093}.mce-menu-item-ellipsis{display:block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mce-menu-item:hover *,.mce-menu-item.mce-selected *,.mce-menu-item:focus *{color:white}div.mce-menu .mce-menu-item-sep,.mce-menu-item-sep:hover{border:0;padding:0;height:1px;margin:9px 1px;overflow:hidden;background:transparent;border-bottom:1px solid rgba(0,0,0,0.1);cursor:default;filter:none}div.mce-menu .mce-menu-item b{font-weight:bold}.mce-menu-item-indent-1{padding-left:20px}.mce-menu-item-indent-2{padding-left:35px}.mce-menu-item-indent-2{padding-left:35px}.mce-menu-item-indent-3{padding-left:40px}.mce-menu-item-indent-4{padding-left:45px}.mce-menu-item-indent-5{padding-left:50px}.mce-menu-item-indent-6{padding-left:55px}.mce-menu.mce-rtl{direction:rtl}.mce-rtl .mce-menu-item{text-align:right;direction:rtl;padding:6px 12px 6px 15px}.mce-menu-align.mce-rtl .mce-menu-shortcut,.mce-menu-align.mce-rtl .mce-caret{right:auto;left:0}.mce-rtl .mce-menu-item .mce-caret{margin-left:6px;margin-right:0;border-right:4px solid #333;border-left:0}.mce-rtl .mce-menu-item.mce-selected .mce-caret,.mce-rtl .mce-menu-item:focus .mce-caret,.mce-rtl .mce-menu-item:hover .mce-caret{border-left-color:transparent;border-right-color:white}.mce-throbber{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.6;filter:alpha(opacity=60);zoom:1;background:#fff url('img/loader.gif') no-repeat center center}.mce-throbber-inline{position:static;height:50px}.mce-menu .mce-throbber-inline{height:25px;background-size:contain}.mce-menu{position:absolute;left:0;top:0;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;z-index:1000;padding:5px 0 5px 0;margin:-1px 0 0;min-width:160px;background:#fff;border:1px solid #989898;border:1px solid rgba(0,0,0,0.2);z-index:1002;max-height:400px;overflow:auto;overflow-x:hidden}.mce-menu i{display:none}.mce-menu-has-icons i{display:inline-block;*display:inline}.mce-menu-sub-tr-tl{margin:-6px 0 0 -1px}.mce-menu-sub-br-bl{margin:6px 0 0 -1px}.mce-menu-sub-tl-tr{margin:-6px 0 0 1px}.mce-menu-sub-bl-br{margin:6px 0 0 1px}.mce-listbox button{text-align:left;padding-right:20px;position:relative}.mce-listbox .mce-caret{position:absolute;margin-top:-2px;right:8px;top:50%}.mce-rtl .mce-listbox .mce-caret{right:auto;left:8px}.mce-rtl .mce-listbox button{padding-right:10px;padding-left:20px}.mce-container-body .mce-resizehandle{position:absolute;right:0;bottom:0;width:16px;height:16px;visibility:visible;cursor:s-resize;margin:0}.mce-container-body .mce-resizehandle-both{cursor:se-resize}i.mce-i-resize{color:#333}.mce-selectbox{background:#fff;border:1px solid #c5c5c5}.mce-slider{border:1px solid #AAA;background:#EEE;width:100px;height:10px;position:relative;display:block}.mce-slider.mce-vertical{width:10px;height:100px}.mce-slider-handle{border:1px solid #BBB;background:#DDD;display:block;width:13px;height:13px;position:absolute;top:0;left:0;margin-left:-1px;margin-top:-2px}.mce-slider-handle:focus{background:#BBB}.mce-spacer{visibility:hidden}.mce-splitbtn .mce-open{border-left:1px solid transparent}.mce-splitbtn:hover .mce-open{border-left-color:#ccc}.mce-splitbtn button{padding-right:6px;padding-left:6px}.mce-splitbtn .mce-open{padding-right:4px;padding-left:4px}.mce-splitbtn .mce-open.mce-active{background-color:#dbdbdb;outline:1px solid #ccc}.mce-splitbtn.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-splitbtn{direction:rtl;text-align:right}.mce-rtl .mce-splitbtn button{padding-right:4px;padding-left:4px}.mce-rtl .mce-splitbtn .mce-open{border-left:0}.mce-stack-layout-item{display:block}.mce-tabs{display:block;border-bottom:1px solid #c5c5c5}.mce-tabs,.mce-tabs+.mce-container-body{background:#FFF}.mce-tab{display:inline-block;*display:inline;*zoom:1;border:1px solid #c5c5c5;border-width:0 1px 0 0;background:#ffffff;padding:8px;text-shadow:0 1px 1px rgba(255,255,255,0.75);height:13px;cursor:pointer}.mce-tab:hover{background:#FDFDFD}.mce-tab.mce-active{background:#FDFDFD;border-bottom-color:transparent;margin-bottom:-1px;height:14px}.mce-rtl .mce-tabs{text-align:right;direction:rtl}.mce-rtl .mce-tab{border-width:0 0 0 1px}.mce-textbox{background:#fff;border:1px solid #c5c5c5;display:inline-block;-webkit-transition:border linear .2s, box-shadow linear .2s;transition:border linear .2s, box-shadow linear .2s;height:28px;resize:none;padding:0 4px 0 4px;white-space:pre-wrap;*white-space:pre;color:#333}.mce-textbox:focus,.mce-textbox.mce-focus{border-color:#3498db}.mce-placeholder .mce-textbox{color:#aaa}.mce-textbox.mce-multiline{padding:4px;height:auto}.mce-textbox.mce-disabled{color:#adadad}.mce-rtl .mce-textbox{text-align:right;direction:rtl}@font-face{font-family:'tinymce';src:url('fonts/tinymce.eot');src:url('fonts/tinymce.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce.woff') format('woff'),url('fonts/tinymce.ttf') format('truetype'),url('fonts/tinymce.svg#tinymce') format('svg');font-weight:normal;font-style:normal}@font-face{font-family:'tinymce-small';src:url('fonts/tinymce-small.eot');src:url('fonts/tinymce-small.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce-small.woff') format('woff'),url('fonts/tinymce-small.ttf') format('truetype'),url('fonts/tinymce-small.svg#tinymce') format('svg');font-weight:normal;font-style:normal}.mce-ico{font-family:'tinymce',Arial;font-style:normal;font-weight:normal;font-variant:normal;font-size:16px;line-height:16px;speak:none;vertical-align:text-top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;background:transparent center center;background-size:cover;width:16px;height:16px;color:#333}.mce-btn-small .mce-ico{font-family:'tinymce-small',Arial}.mce-i-save:before{content:"\e000"}.mce-i-newdocument:before{content:"\e001"}.mce-i-fullpage:before{content:"\e002"}.mce-i-alignleft:before{content:"\e003"}.mce-i-aligncenter:before{content:"\e004"}.mce-i-alignright:before{content:"\e005"}.mce-i-alignjustify:before{content:"\e006"}.mce-i-alignnone:before{content:"\e003"}.mce-i-cut:before{content:"\e007"}.mce-i-paste:before{content:"\e008"}.mce-i-searchreplace:before{content:"\e009"}.mce-i-bullist:before{content:"\e00a"}.mce-i-numlist:before{content:"\e00b"}.mce-i-indent:before{content:"\e00c"}.mce-i-outdent:before{content:"\e00d"}.mce-i-blockquote:before{content:"\e00e"}.mce-i-undo:before{content:"\e00f"}.mce-i-redo:before{content:"\e010"}.mce-i-link:before{content:"\e011"}.mce-i-unlink:before{content:"\e012"}.mce-i-anchor:before{content:"\e013"}.mce-i-image:before{content:"\e014"}.mce-i-media:before{content:"\e015"}.mce-i-help:before{content:"\e016"}.mce-i-code:before{content:"\e017"}.mce-i-insertdatetime:before{content:"\e018"}.mce-i-preview:before{content:"\e019"}.mce-i-forecolor:before{content:"\e01a"}.mce-i-backcolor:before{content:"\e01a"}.mce-i-table:before{content:"\e01b"}.mce-i-hr:before{content:"\e01c"}.mce-i-removeformat:before{content:"\e01d"}.mce-i-subscript:before{content:"\e01e"}.mce-i-superscript:before{content:"\e01f"}.mce-i-charmap:before{content:"\e020"}.mce-i-emoticons:before{content:"\e021"}.mce-i-print:before{content:"\e022"}.mce-i-fullscreen:before{content:"\e023"}.mce-i-spellchecker:before{content:"\e024"}.mce-i-nonbreaking:before{content:"\e025"}.mce-i-template:before{content:"\e026"}.mce-i-pagebreak:before{content:"\e027"}.mce-i-restoredraft:before{content:"\e028"}.mce-i-bold:before{content:"\e02a"}.mce-i-italic:before{content:"\e02b"}.mce-i-underline:before{content:"\e02c"}.mce-i-strikethrough:before{content:"\e02d"}.mce-i-visualchars:before{content:"\e02e"}.mce-i-visualblocks:before{content:"\e02e"}.mce-i-ltr:before{content:"\e02f"}.mce-i-rtl:before{content:"\e030"}.mce-i-copy:before{content:"\e031"}.mce-i-resize:before{content:"\e032"}.mce-i-browse:before{content:"\e034"}.mce-i-pastetext:before{content:"\e035"}.mce-i-rotateleft:before{content:"\eaa8"}.mce-i-rotateright:before{content:"\eaa9"}.mce-i-crop:before{content:"\ee78"}.mce-i-editimage:before{content:"\e915"}.mce-i-options:before{content:"\ec6a"}.mce-i-flipv:before{content:"\eaaa"}.mce-i-fliph:before{content:"\eaac"}.mce-i-zoomin:before{content:"\eb35"}.mce-i-zoomout:before{content:"\eb36"}.mce-i-sun:before{content:"\eccc"}.mce-i-moon:before{content:"\eccd"}.mce-i-arrowleft:before{content:"\edc0"}.mce-i-arrowright:before{content:"\e93c"}.mce-i-drop:before{content:"\e935"}.mce-i-contrast:before{content:"\ecd4"}.mce-i-sharpen:before{content:"\eba7"}.mce-i-resize2:before{content:"\edf9"}.mce-i-orientation:before{content:"\e601"}.mce-i-invert:before{content:"\e602"}.mce-i-gamma:before{content:"\e600"}.mce-i-remove:before{content:"\ed6a"}.mce-i-tablerowprops:before{content:"\e604"}.mce-i-tablecellprops:before{content:"\e605"}.mce-i-table2:before{content:"\e606"}.mce-i-tablemergecells:before{content:"\e607"}.mce-i-tableinsertcolbefore:before{content:"\e608"}.mce-i-tableinsertcolafter:before{content:"\e609"}.mce-i-tableinsertrowbefore:before{content:"\e60a"}.mce-i-tableinsertrowafter:before{content:"\e60b"}.mce-i-tablesplitcells:before{content:"\e60d"}.mce-i-tabledelete:before{content:"\e60e"}.mce-i-tableleftheader:before{content:"\e62a"}.mce-i-tabletopheader:before{content:"\e62b"}.mce-i-tabledeleterow:before{content:"\e800"}.mce-i-tabledeletecol:before{content:"\e801"}.mce-i-codesample:before{content:"\e603"}.mce-i-fill:before{content:"\e902"}.mce-i-borderwidth:before{content:"\e903"}.mce-i-line:before{content:"\e904"}.mce-i-count:before{content:"\e905"}.mce-i-translate:before{content:"\e907"}.mce-i-drag:before{content:"\e908"}.mce-i-home:before{content:"\e90b"}.mce-i-upload:before{content:"\e914"}.mce-i-bubble:before{content:"\e91c"}.mce-i-user:before{content:"\e91d"}.mce-i-lock:before{content:"\e926"}.mce-i-unlock:before{content:"\e927"}.mce-i-settings:before{content:"\e928"}.mce-i-remove2:before{content:"\e92a"}.mce-i-menu:before{content:"\e92d"}.mce-i-warning:before{content:"\e930"}.mce-i-question:before{content:"\e931"}.mce-i-pluscircle:before{content:"\e932"}.mce-i-info:before{content:"\e933"}.mce-i-notice:before{content:"\e934"}.mce-i-arrowup:before{content:"\e93b"}.mce-i-arrowdown:before{content:"\e93d"}.mce-i-arrowup2:before{content:"\e93f"}.mce-i-arrowdown2:before{content:"\e940"}.mce-i-menu2:before{content:"\e941"}.mce-i-newtab:before{content:"\e961"}.mce-i-a11y:before{content:"\e900"}.mce-i-plus:before{content:"\e93a"}.mce-i-insert:before{content:"\e93a"}.mce-i-minus:before{content:"\e939"}.mce-i-books:before{content:"\e911"}.mce-i-reload:before{content:"\e906"}.mce-i-toc:before{content:"\e901"}.mce-i-checkmark:before{content:"\e033"}.mce-i-checkbox:before,.mce-i-selected:before{content:"\e033"}.mce-i-insert{font-size:14px}.mce-i-selected{visibility:hidden}i.mce-i-backcolor{text-shadow:none;background:#BBB} \ No newline at end of file diff --git a/data/web/rc/program/js/tinymce/themes/inlite/theme.min.js b/data/web/rc/program/js/tinymce/themes/inlite/theme.min.js new file mode 100644 index 0000000000000000000000000000000000000000..0592b91854c87fad03cb326670bd35c37b64f737 --- /dev/null +++ b/data/web/rc/program/js/tinymce/themes/inlite/theme.min.js @@ -0,0 +1 @@ +!function(){var e={},t=function(t){for(var n=e[t],i=n.deps,o=n.defn,a=i.length,s=new Array(a),l=0;l",n=0;n
    ";i+="
    "}return i+="",i+="
    "},r=function(e){var t=e.dom.select("*[data-mce-id]");return t[0]},i=function(e,t,i){e.undoManager.transact(function(){var o,a;e.insertContent(n(t,i)),o=r(e),o.removeAttribute("data-mce-id"),a=e.dom.select("td,th",o),e.selection.setCursorLocation(a[0],0)})},o=function(e,t){e.execCommand("FormatBlock",!1,t)},a=function(t,n,r){var i,o;i=t.editorUpload.blobCache,o=i.create(e.uuid("mceu"),r,n),i.add(o),t.insertContent(t.dom.createHTML("img",{src:o.blobUri()}))},s=function(e){e.selection.collapse(!1)},l=function(e){e.focus(),t.unlinkSelection(e),s(e)},c=function(e,t,n){e.focus(),e.dom.setAttrib(t,"href",n),s(e)},u=function(e,t){e.execCommand("mceInsertLink",!1,{href:t}),s(e)},d=function(e,t){var n=e.dom.getParent(e.selection.getStart(),"a[href]");n?c(e,n,t):u(e,t)},f=function(e,t){0===t.trim().length?l(e):d(e,t)};return{insertTable:i,formatBlock:o,insertBlob:a,createLink:f,unlink:l}}),a("r",[],function(){var e=function(e){return/^www\.|\.(com|org|edu|gov|uk|net|ca|de|jp|fr|au|us|ru|ch|it|nl|se|no|es|mil)$/i.test(e.trim())},t=function(e){return/^https?:\/\//.test(e.trim())};return{isDomainLike:e,isAbsolute:t}}),a("g",["c","d","o","m","r"],function(e,t,n,r,i){var o=function(e){e.find("textbox").eq(0).each(function(e){e.focus()})},a=function(n,r){var i=t.create(e.extend({type:"form",layout:"flex",direction:"row",padding:5,name:n,spacing:3},r));return i.on("show",function(){o(i)}),i},s=function(e,t){return t?e.show():e.hide()},l=function(e,t){return new n(function(n){e.windowManager.confirm("The URL you entered seems to be an external link. Do you want to add the required http:// prefix?",function(e){var r=e===!0?"http://"+t:t;n(r)})})},c=function(e,t){return!i.isAbsolute(t)&&i.isDomainLike(t)?l(e,t):n.resolve(t)},u=function(e,t){var n={},i=function(){e.focus(),r.unlink(e),t()},o=function(e){var t=e.meta;t&&t.attach&&(n={href:this.value(),attach:t.attach})},l=function(t){if(t.control===this){var n,r="";n=e.dom.getParent(e.selection.getStart(),"a[href]"),n&&(r=e.dom.getAttrib(n,"href")),this.fromJSON({linkurl:r}),s(this.find("#unlink"),n),this.find("#linkurl")[0].focus()}};return a("quicklink",{items:[{type:"button",name:"unlink",icon:"unlink",onclick:i,tooltip:"Remove link"},{type:"filepicker",name:"linkurl",placeholder:"Paste or type a link",filetype:"file",onchange:o},{type:"button",icon:"checkmark",subtype:"primary",tooltip:"Ok",onclick:"submit"}],onshow:l,onsubmit:function(i){c(e,i.data.linkurl).then(function(i){e.undoManager.transact(function(){i===n.href&&(n.attach(),n={}),r.createLink(e,i)}),t()})}})};return{createQuickLinkForm:u}}),s("s",tinymce.geom.Rect),a("t",[],function(){var e=function(e){return{x:e.left,y:e.top,w:e.width,h:e.height}},t=function(e){return{left:e.x,top:e.y,width:e.w,height:e.h,right:e.x+e.w,bottom:e.y+e.h}};return{fromClientRect:e,toClientRect:t}}),a("h",["e","s","t"],function(e,t,n){var r=function(t){var n=e.getViewPort();return{x:t.x+n.x,y:t.y+n.y,w:t.w,h:t.h}},i=function(e){var t=e.getBoundingClientRect();return r({x:t.left,y:t.top,w:Math.max(e.clientWidth,e.offsetWidth),h:Math.max(e.clientHeight,e.offsetHeight)})},o=function(e,t){return i(t)},a=function(e){return i(e.getElement().ownerDocument.body)},s=function(e){return i(e.getContentAreaContainer()||e.getBody())},l=function(e){var t=e.selection.getBoundingClientRect();return t?r(n.fromClientRect(t)):null};return{getElementRect:o,getPageAreaRect:a,getContentAreaRect:s,getSelectionRect:l}}),a("i",["s","t"],function(e,t){var n=function(e,t){return{rect:e,position:t}},r=function(e,t){return{x:t.x,y:t.y,w:e.w,h:e.h}},i=function(t,i,o,a,s){var l,c,u;return l=e.findBestRelativePosition(s,o,a,t),o=e.clamp(o,a),l?(c=e.relativePosition(s,o,l),u=r(s,c),n(u,l)):(o=e.intersect(a,o),o?(l=e.findBestRelativePosition(s,o,a,i))?(c=e.relativePosition(s,o,l),u=r(s,c),n(u,l)):(u=r(s,o),n(u,l)):null)},o=function(e,t,n){return i(["cr-cl","cl-cr"],["bc-tc","bl-tl","br-tr"],e,t,n)},a=function(e,t,n){return i(["tc-bc","bc-tc","tl-bl","bl-tl","tr-br","br-tr"],["bc-tc","bl-tl","br-tr"],e,t,n)},s=function(e,n,r,i){var o;return"function"==typeof e?(o=e({elementRect:t.toClientRect(n),contentAreaRect:t.toClientRect(r),panelRect:t.toClientRect(i)}),t.fromClientRect(o)):i},l=function(e){return e.panelRect};return{calcInsert:o,calc:a,userConstrain:s,defaultHandler:l}}),a("a",["j"],function(e){var t=function(e,t){if(t(e))return!0;throw new Error("Default value doesn't match requested type.")},n=function(e){return function(n,r,i){var o=n.settings;return t(i,e),r in o&&e(o[r])?o[r]:i}},r=function(e,t){return e.split(t).filter(function(e){return e.length>0})},i=function(t,n){var i=function(e){return"string"==typeof e?r(e,/[ ,]/):e},o=function(e,t){return e===!1?[]:t};return e.isArray(t)?t:e.isString(t)?i(t):e.isBoolean(t)?o(t,n):n},o=function(e){return function(n,r,o){var a=r in n.settings?n.settings[r]:o;return t(o,e),i(a,o)}};return{getStringOr:n(e.isString),getBoolOr:n(e.isBoolean),getNumberOr:n(e.isNumber),getHandlerOr:n(e.isFunction),getToolbarItemsOr:o(e.isArray)}}),a("3",["c","d","e","f","g","h","i","a"],function(e,t,n,r,i,o,a,s){return function(){var l,c,u=["bold","italic","|","quicklink","h2","h3","blockquote"],d=["quickimage","quicktable"],f=function(t,n){return e.map(n,function(e){return r.create(t,e.id,e.items)})},h=function(e){return s.getToolbarItemsOr(e,"selection_toolbar",u)},p=function(e){return s.getToolbarItemsOr(e,"insert_toolbar",d)},m=function(e){return e.items().length>0},g=function(n,o){var a=f(n,o).concat([r.create(n,"text",h(n)),r.create(n,"insert",p(n)),i.createQuickLinkForm(n,_)]);return t.create({type:"floatpanel",role:"dialog",classes:"tinymce tinymce-inline arrow",ariaLabel:"Inline toolbar",layout:"flex",direction:"column",align:"stretch",autohide:!1,autofix:!0,fixed:!0,border:1,items:e.grep(a,m),oncancel:function(){n.focus()}})},v=function(e){e&&e.show()},y=function(e,t){e.moveTo(t.x,t.y)},b=function(t,n){n=n?n.substr(0,2):"",e.each({t:"down",b:"up",c:"center"},function(e,r){t.classes.toggle("arrow-"+e,r===n.substr(0,1))}),"cr"===n?(t.classes.toggle("arrow-left",!0),t.classes.toggle("arrow-right",!1)):"cl"===n?(t.classes.toggle("arrow-left",!0),t.classes.toggle("arrow-right",!0)):e.each({l:"left",r:"right"},function(e,r){t.classes.toggle("arrow-"+e,r===n.substr(1,1))})},C=function(e,t){var n=e.items().filter("#"+t);return n.length>0&&(n[0].show(),e.reflow(),!0)},x=function(e,t,r,i){var l,u,d,f;return v(e),e.items().hide(),C(e,t)?(f=s.getHandlerOr(r,"inline_toolbar_position_handler",a.defaultHandler),l=o.getContentAreaRect(r),u=n.getRect(e.getEl()),d="insert"===t?a.calcInsert(i,l,u):a.calc(i,l,u),void(d?(u=d.rect,c=i,y(e,a.userConstrain(f,i,l,u)),b(e,d.position)):_(e))):void _(e)},w=function(){return l.items().filter("form:visible").length>0},E=function(e,t){if(l){if(l.items().hide(),!C(l,t))return void _(l);var r,i,u,d;v(l),l.items().hide(),C(l,t),d=s.getHandlerOr(e,"inline_toolbar_position_handler",a.defaultHandler),r=o.getContentAreaRect(e),i=n.getRect(l.getEl()),u=a.calc(c,r,i),u&&(i=u.rect,y(l,a.userConstrain(d,c,r,i)),b(l,u.position))}},N=function(e,t,n,r){l||(l=g(e,r),l.renderTo(document.body).reflow().moveTo(n.x,n.y),e.nodeChanged()),x(l,t,e,n)},_=function(){l&&l.hide()},S=function(){l&&l.find("toolbar:visible").eq(0).each(function(e){e.focus(!0)})},k=function(){l&&(l.remove(),l=null)},T=function(){return l&&l.visible()&&w()};return{show:N,showForm:E,inForm:T,hide:_,focus:S,remove:k}}}),a("k",["o"],function(e){var t=function(t){return new e(function(e){var n=new FileReader;n.onloadend=function(){e(n.result.split(",")[1])},n.readAsDataURL(t)})};return{blobToBase64:t}}),a("l",["o"],function(e){var t=function(){return new e(function(e){var t;t=document.createElement("input"),t.type="file",t.style.position="fixed",t.style.left=0,t.style.top=0,t.style.opacity=.001,document.body.appendChild(t),t.onchange=function(t){e(Array.prototype.slice.call(t.target.files))},t.click(),t.parentNode.removeChild(t)})};return{pickFile:t}}),a("4",["3","k","l","m"],function(e,t,n,r){var i=function(e){for(var t=function(t){return function(){r.formatBlock(e,t)}},n=1;n<6;n++){var i="h"+n;e.addButton(i,{text:i.toUpperCase(),tooltip:"Heading "+n,stateSelector:i,onclick:t(i),onPostRender:function(){var e=this.getEl().firstChild.firstChild;e.style.fontWeight="bold"}})}},o=function(e,o){e.addButton("quicklink",{icon:"link",tooltip:"Insert/Edit link",stateSelector:"a[href]",onclick:function(){o.showForm(e,"quicklink")}}),e.addButton("quickimage",{icon:"image",tooltip:"Insert image",onclick:function(){n.pickFile().then(function(n){var i=n[0];t.blobToBase64(i).then(function(t){r.insertBlob(e,t,i)})})}}),e.addButton("quicktable",{icon:"table",tooltip:"Insert table",onclick:function(){o.hide(),r.insertTable(e,2,2)}}),i(e)};return{addToEditor:o}}),s("n",tinymce.EditorManager),a("5",["n","e"],function(e,t){var n=function(e,t){var n=function(){e.fire("SkinLoaded"),t()};e.initialized?n():e.on("init",n)},r=function(t){var n=e.baseURL+"/skins/";return t?n+t:n+"lightgray"},i=function(e,t){return e.documentBaseURI.toAbsolute(t)},o=function(e,o){var a=e.settings,s=a.skin_url?i(e,a.skin_url):r(a.skin),l=function(){n(e,o)};t.styleSheetLoader.load(s+"/skin.min.css",l),e.contentCSS.push(s+"/content.inline.min.css")};return{load:o}}),a("8",[],function(){var e=function(e,t){return{id:e,rect:t}},t=function(e,t){for(var n=0;n=0;t--)for(n=i.length-1;n>=0;n--)if(i[n].predicate(r[t]))return{toolbar:i[n],element:r[t]};return null};a.on("click keyup setContent ObjectResized",function(e){("setcontent"!==e.type||e.selection)&&n.setEditorTimeout(a,function(){var e;e=C(a.selection.getNode()),e?(b(),y(e)):b()})}),a.on("blur hide contextmenu",b),a.on("ObjectResizeStart",function(){var e=C(a.selection.getNode());e&&e.toolbar.panel&&e.toolbar.panel.hide()}),a.on("ResizeEditor ResizeWindow",g(!0)),a.on("nodeChange",g(!1)),a.on("remove",function(){t.each(h(),function(e){e.panel&&e.panel.remove()}),a.contextToolbars={}}),a.shortcuts.add("ctrl+shift+e > ctrl+shift+p","",function(){var e=C(a.selection.getNode());e&&e.toolbar.panel&&e.toolbar.panel.items()[0].focus()})};return{addContextualToolbars:d}}),a("e",[],function(){var e=function(e,t){return function(){var n=e.find(t)[0];n&&n.focus(!0)}},t=function(t,n){t.shortcuts.add("Alt+F9","",e(n,"menubar")),t.shortcuts.add("Alt+F10,F10","",e(n,"toolbar")),t.shortcuts.add("Alt+F11","",e(n,"elementpath")),n.on("cancel",function(){t.focus()})};return{addKeys:t}}),a("f",["8","9","1"],function(e,t,n){var r=function(e){return{element:function(){return e}}},i=function(e,t,n){var i=e.settings[n];i&&i(r(t.getEl("body")))},o=function(t,n,r){e.each(r,function(e){var r=n.items().filter("#"+e.name)[0];r&&r.visible()&&e.name!==t&&(i(e,r,"onhide"),r.visible(!1))})},a=function(e){e.items().each(function(e){e.active(!1)})},s=function(t,n){return e.grep(t,function(e){return e.name===n})[0]},l=function(e,n,r){return function(l){var c=l.control,u=c.parents().filter("panel")[0],d=u.find("#"+n)[0],f=s(r,n);o(n,u,r),a(c.parent()),d&&d.visible()?(i(f,d,"onhide"),d.hide(),c.active(!1)):(d?(d.show(),i(f,d,"onshow")):(d=t.create({type:"container",name:n,layout:"stack",classes:"sidebar-panel",html:""}),u.prepend(d),i(f,d,"onrender"),i(f,d,"onshow")),c.active(!0)),e.fire("ResizeEditor")}},c=function(){return!n.ie||n.ie>=11},u=function(e){return!(!c()||!e.sidebars)&&e.sidebars.length>0},d=function(t){var n=e.map(t.sidebars,function(e){var n=e.settings;return{type:"button",icon:n.icon,image:n.image,tooltip:n.tooltip,onclick:l(t,e.name,t.sidebars)}});return{type:"panel",name:"sidebar",layout:"stack",classes:"sidebar",items:[{type:"toolbar",layout:"stack",classes:"sidebar-toolbar",items:n}]}};return{hasSidebar:u,createSidebar:d}}),a("g",[],function(){var e=function(e){return function(){e.initialized?e.fire("SkinLoaded"):e.on("init",function(){e.fire("SkinLoaded")})}};return{fireSkinLoaded:e}}),a("6",["a"],function(e){var t=function(e){return{width:e.clientWidth,height:e.clientHeight}},n=function(n,r,i){var o,a,s,l,c=n.settings;o=n.getContainer(),a=n.getContentAreaContainer().firstChild,s=t(o),l=t(a),null!==r&&(r=Math.max(c.min_width||100,r),r=Math.min(c.max_width||65535,r),e.setStyle(o,"width",r+(s.width-l.width)),e.setStyle(a,"width",r)),i=Math.max(c.min_height||100,i),i=Math.min(c.max_height||65535,i),e.setStyle(a,"height",i),n.fire("ResizeEditor")},r=function(e,t,r){var i=e.getContentAreaContainer();n(e,i.clientWidth+t,i.clientHeight+r)};return{resizeTo:n,resizeBy:r}}),a("4",["8","9","a","b","c","d","e","f","g","6"],function(e,t,n,r,i,o,a,s,l,c){var u=function(e){return function(t){e.find("*").disabled("readonly"===t.mode)}},d=function(e){return{type:"panel",name:"iframe",layout:"stack",classes:"edit-area",border:e,html:""}},f=function(e){return{type:"panel",layout:"stack",classes:"edit-aria-container",border:"1 0 0 0",items:[d("0"),s.createSidebar(e)]}},h=function(e,h,p){var m,g,v,y=e.settings;return p.skinUiCss&&n.styleSheetLoader.load(p.skinUiCss,l.fireSkinLoaded(e)),m=h.panel=t.create({type:"panel",role:"application",classes:"tinymce",style:"visibility: hidden",layout:"stack",border:1,items:[y.menubar===!1?null:{type:"menubar",border:"0 0 1 0",items:i.createMenuButtons(e)},r.createToolbars(e,y.toolbar_items_size),s.hasSidebar(e)?f(e):d("1 0 0 0")]}),y.resize!==!1&&(g={type:"resizehandle",direction:y.resize,onResizeStart:function(){var t=e.getContentAreaContainer().firstChild;v={width:t.clientWidth,height:t.clientHeight}},onResize:function(t){"both"===y.resize?c.resizeTo(e,v.width+t.deltaX,v.height+t.deltaY):c.resizeTo(e,null,v.height+t.deltaY)}}),y.statusbar!==!1&&m.add({type:"panel",name:"statusbar",classes:"statusbar",layout:"flow",border:"1 0 0 0",ariaRoot:!0,items:[{type:"elementpath",editor:e},g]}),e.fire("BeforeRenderUI"),e.on("SwitchMode",u(m)),m.renderBefore(p.targetNode).reflow(),y.readonly&&e.setMode("readonly"),y.width&&n.setStyle(m.getEl(),"width",y.width),e.on("remove",function(){m.remove(),m=null}),a.addKeys(e,m),o.addContextualToolbars(e),{iframeContainer:m.find("#iframe")[0].getEl(),editorContainer:m.getEl()}};return{render:h}}),s("h",tinymce.ui.FloatPanel),a("5",["8","9","a","h","b","c","d","e","g"],function(e,t,n,r,i,o,a,s,l){var c=function(e,c,u){var d,f,h=e.settings;h.fixed_toolbar_container&&(f=n.select(h.fixed_toolbar_container)[0]);var p=function(){if(d&&d.moveRel&&d.visible()&&!d._fixed){var t=e.selection.getScrollContainer(),r=e.getBody(),i=0,o=0;if(t){var a=n.getPos(r),s=n.getPos(t);i=Math.max(0,s.x-a.x),o=Math.max(0,s.y-a.y)}d.fixed(!1).moveRel(r,e.rtl?["tr-br","br-tr"]:["tl-bl","bl-tl","tr-br"]).moveBy(i,o)}},m=function(){d&&(d.show(),p(),n.addClass(e.getBody(),"mce-edit-focus"))},g=function(){d&&(d.hide(),r.hideAll(),n.removeClass(e.getBody(),"mce-edit-focus"))},v=function(){return d?void(d.visible()||m()):(d=c.panel=t.create({type:f?"panel":"floatpanel",role:"application",classes:"tinymce tinymce-inline",layout:"flex",direction:"column",align:"stretch",autohide:!1,autofix:!0,fixed:!!f,border:1,items:[h.menubar===!1?null:{type:"menubar",border:"0 0 1 0",items:o.createMenuButtons(e)},i.createToolbars(e,h.toolbar_items_size)]}),e.fire("BeforeRenderUI"),d.renderTo(f||document.body).reflow(),s.addKeys(e,d),m(),a.addContextualToolbars(e),e.on("nodeChange",p),e.on("activate",m),e.on("deactivate",g),void e.nodeChanged())};return h.content_editable=!0,e.on("focus",function(){u.skinUiCss?n.styleSheetLoader.load(u.skinUiCss,v,v):v()}),e.on("blur hide",g),e.on("remove",function(){d&&(d.remove(),d=null)}),u.skinUiCss&&n.styleSheetLoader.load(u.skinUiCss,l.fireSkinLoaded(e)),{}};return{render:c}}),s("i",tinymce.ui.Throbber),a("7",["i"],function(e){var t=function(t,n){var r;t.on("ProgressState",function(t){r=r||new e(n.panel.getEl("body")),t.state?r.show(t.time):r.hide()})};return{setup:t}}),a("0",["1","2","3","4","5","6","7"],function(e,t,n,r,i,o,a){var s=function(n,o,s){var l=n.settings,c=l.skin!==!1&&(l.skin||"lightgray");if(c){var u=l.skin_url;u=u?n.documentBaseURI.toAbsolute(u):t.baseURL+"/skins/"+c,e.documentMode<=7?s.skinUiCss=u+"/skin.ie7.min.css":s.skinUiCss=u+"/skin.min.css",n.contentCSS.push(u+"/content"+(n.inline?".inline":"")+".min.css")}return a.setup(n,o),l.inline?i.render(n,o,s):r.render(n,o,s)};return n.add("modern",function(e){return{renderUI:function(t){return s(e,this,t)},resizeTo:function(t,n){return o.resizeTo(e,t,n)},resizeBy:function(t,n){return o.resizeBy(e,t,n)}}}),function(){}}),r("0")()}(); \ No newline at end of file diff --git a/data/web/rc/program/js/tinymce/tinymce.min.js b/data/web/rc/program/js/tinymce/tinymce.min.js new file mode 100644 index 0000000000000000000000000000000000000000..c7c23107f7cb603bedeaed651fe5b7cc7eabbdee --- /dev/null +++ b/data/web/rc/program/js/tinymce/tinymce.min.js @@ -0,0 +1,31 @@ +/** + * tinymce - v4.5.1 + * + * @licstart The following is the entire license notice for the + * JavaScript code in this file. + * + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved + * + * The JavaScript code in this page is free software: you can + * redistribute it and/or modify it under the terms of the GNU + * Lesser General Public License as published by the Free Software + * Foundation, either version 3 of the License, or (at your option) + * any later version. + * + * @licend The above is the entire license notice + * for the JavaScript code in this file. + */ +// 4.5.1 (2016-12-07) +!function(e,t){"use strict";function n(e,t){for(var n,r=[],i=0;i=r.x&&o.x+o.w<=r.w+r.x&&o.y>=r.y&&o.y+o.h<=r.h+r.y)return i[a];return null}function n(e,t,n){return o(e.x-t,e.y-n,e.w+2*t,e.h+2*n)}function r(e,t){var n,r,i,a;return n=l(e.x,t.x),r=l(e.y,t.y),i=s(e.x+e.w,t.x+t.w),a=s(e.y+e.h,t.y+t.h),i-n<0||a-r<0?null:o(n,r,i-n,a-r)}function i(e,t,n){var r,i,a,s,c,u,d,f,h,p;return c=e.x,u=e.y,d=e.x+e.w,f=e.y+e.h,h=t.x+t.w,p=t.y+t.h,r=l(0,t.x-c),i=l(0,t.y-u),a=l(0,d-h),s=l(0,f-p),c+=r,u+=i,n&&(d+=r,f+=i,c-=a,u-=s),d-=a,f-=s,o(c,u,d-c,f-u)}function o(e,t,n,r){return{x:e,y:t,w:n,h:r}}function a(e){return o(e.left,e.top,e.width,e.height)}var s=Math.min,l=Math.max,c=Math.round;return{inflate:n,relativePosition:e,findBestRelativePosition:t,intersect:r,clamp:i,create:o,fromClientRect:a}}),r(c,[],function(){function e(e,t){return function(){e.apply(t,arguments)}}function t(t){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof t)throw new TypeError("not a function");this._state=null,this._value=null,this._deferreds=[],s(t,e(r,this),e(i,this))}function n(e){var t=this;return null===this._state?void this._deferreds.push(e):void l(function(){var n=t._state?e.onFulfilled:e.onRejected;if(null===n)return void(t._state?e.resolve:e.reject)(t._value);var r;try{r=n(t._value)}catch(i){return void e.reject(i)}e.resolve(r)})}function r(t){try{if(t===this)throw new TypeError("A promise cannot be resolved with itself.");if(t&&("object"==typeof t||"function"==typeof t)){var n=t.then;if("function"==typeof n)return void s(e(n,t),e(r,this),e(i,this))}this._state=!0,this._value=t,o.call(this)}catch(a){i.call(this,a)}}function i(e){this._state=!1,this._value=e,o.call(this)}function o(){for(var e=0,t=this._deferreds.length;e=534;return{opera:r,webkit:i,ie:o,gecko:l,mac:c,iOS:u,android:d,contentEditable:g,transparentSrc:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",caretAfter:8!=o,range:window.getSelection&&"Range"in window,documentMode:o&&!s?document.documentMode||7:10,fileApi:f,ceFalse:o===!1||o>8,canHaveCSP:o===!1||o>11,desktop:!h&&!p,windowsPhone:m}}),r(f,[u,d],function(e,t){function n(e,t,n,r){e.addEventListener?e.addEventListener(t,n,r||!1):e.attachEvent&&e.attachEvent("on"+t,n)}function r(e,t,n,r){e.removeEventListener?e.removeEventListener(t,n,r||!1):e.detachEvent&&e.detachEvent("on"+t,n)}function i(e,t){var n,r=t;return n=e.path,n&&n.length>0&&(r=n[0]),e.deepPath&&(n=e.deepPath(),n&&n.length>0&&(r=n[0])),r}function o(e,n){function r(){return!1}function o(){return!0}var a,s=n||{},l;for(a in e)u[a]||(s[a]=e[a]);if(s.target||(s.target=s.srcElement||document),t.experimentalShadowDom&&(s.target=i(e,s.target)),e&&c.test(e.type)&&e.pageX===l&&e.clientX!==l){var d=s.target.ownerDocument||document,f=d.documentElement,h=d.body;s.pageX=e.clientX+(f&&f.scrollLeft||h&&h.scrollLeft||0)-(f&&f.clientLeft||h&&h.clientLeft||0),s.pageY=e.clientY+(f&&f.scrollTop||h&&h.scrollTop||0)-(f&&f.clientTop||h&&h.clientTop||0)}return s.preventDefault=function(){s.isDefaultPrevented=o,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},s.stopPropagation=function(){s.isPropagationStopped=o,e&&(e.stopPropagation?e.stopPropagation():e.cancelBubble=!0)},s.stopImmediatePropagation=function(){s.isImmediatePropagationStopped=o,s.stopPropagation()},s.isDefaultPrevented||(s.isDefaultPrevented=r,s.isPropagationStopped=r,s.isImmediatePropagationStopped=r),"undefined"==typeof s.metaKey&&(s.metaKey=!1),s}function a(t,i,o){function a(){o.domLoaded||(o.domLoaded=!0,i(u))}function s(){("complete"===c.readyState||"interactive"===c.readyState&&c.body)&&(r(c,"readystatechange",s),a())}function l(){try{c.documentElement.doScroll("left")}catch(t){return void e.setTimeout(l)}a()}var c=t.document,u={type:"ready"};return o.domLoaded?void i(u):(c.addEventListener?"complete"===c.readyState?a():n(t,"DOMContentLoaded",a):(n(c,"readystatechange",s),c.documentElement.doScroll&&t.self===t.top&&l()),void n(t,"load",a))}function s(){function e(e,t){var n,r,o,a,s=i[t];if(n=s&&s[e.type])for(r=0,o=n.length;rw.cacheLength&&delete e[t.shift()],e[n+" "]=r}var t=[];return e}function r(e){return e[F]=!0,e}function i(e){var t=D.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function o(e,t){for(var n=e.split("|"),r=e.length;r--;)w.attrHandle[n[r]]=t}function a(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||X)-(~e.sourceIndex||X);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function s(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function l(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function c(e){return r(function(t){return t=+t,r(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function u(e){return e&&typeof e.getElementsByTagName!==Y&&e}function d(){}function f(e){for(var t=0,n=e.length,r="";t1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function m(t,n,r){for(var i=0,o=n.length;i-1&&(r[c]=!(a[c]=d))}}else b=g(b===a?b.splice(p,b.length):b),o?o(null,a,b,l):Z.apply(a,b)})}function y(e){for(var t,n,r,i=e.length,o=w.relative[e[0].type],a=o||w.relative[" "],s=o?1:0,l=h(function(e){return e===t},a,!0),c=h(function(e){return te.call(t,e)>-1},a,!0),u=[function(e,n,r){return!o&&(r||n!==T)||((t=n).nodeType?l(e,n,r):c(e,n,r))}];s1&&p(u),s>1&&f(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(se,"$1"),n,s0,o=t.length>0,a=function(r,a,s,l,c){var u,d,f,h=0,p="0",m=r&&[],v=[],y=T,b=r||o&&w.find.TAG("*",c),C=U+=null==y?1:Math.random()||.1,x=b.length;for(c&&(T=a!==D&&a);p!==x&&null!=(u=b[p]);p++){if(o&&u){for(d=0;f=t[d++];)if(f(u,a,s)){l.push(u);break}c&&(U=C)}i&&((u=!f&&u)&&h--,r&&m.push(u))}if(h+=p,i&&p!==h){for(d=0;f=n[d++];)f(m,v,a,s);if(r){if(h>0)for(;p--;)m[p]||v[p]||(v[p]=J.call(l));v=g(v)}Z.apply(l,v),c&&!r&&v.length>0&&h+n.length>1&&e.uniqueSort(l)}return c&&(U=C,T=y),m};return i?r(a):a}var C,x,w,E,N,_,S,k,T,R,A,B,D,L,M,P,O,H,I,F="sizzle"+-new Date,z=window.document,U=0,W=0,V=n(),$=n(),q=n(),j=function(e,t){return e===t&&(A=!0),0},Y=typeof t,X=1<<31,K={}.hasOwnProperty,G=[],J=G.pop,Q=G.push,Z=G.push,ee=G.slice,te=G.indexOf||function(e){for(var t=0,n=this.length;t+~]|"+re+")"+re+"*"),ue=new RegExp("="+re+"*([^\\]'\"]*?)"+re+"*\\]","g"),de=new RegExp(ae),fe=new RegExp("^"+ie+"$"),he={ID:new RegExp("^#("+ie+")"),CLASS:new RegExp("^\\.("+ie+")"),TAG:new RegExp("^("+ie+"|[*])"),ATTR:new RegExp("^"+oe),PSEUDO:new RegExp("^"+ae),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+re+"*(even|odd|(([+-]|)(\\d*)n|)"+re+"*(?:([+-]|)"+re+"*(\\d+)|))"+re+"*\\)|)","i"),bool:new RegExp("^(?:"+ne+")$","i"),needsContext:new RegExp("^"+re+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+re+"*((?:-\\d)?\\d*)"+re+"*\\)|)(?=[^-]|$)","i")},pe=/^(?:input|select|textarea|button)$/i,me=/^h\d$/i,ge=/^[^{]+\{\s*\[native \w/,ve=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ye=/[+~]/,be=/'|\\/g,Ce=new RegExp("\\\\([\\da-f]{1,6}"+re+"?|("+re+")|.)","ig"),xe=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)};try{Z.apply(G=ee.call(z.childNodes),z.childNodes),G[z.childNodes.length].nodeType}catch(we){Z={apply:G.length?function(e,t){Q.apply(e,ee.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}x=e.support={},N=e.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},B=e.setDocument=function(e){function t(e){try{return e.top}catch(t){}return null}var n,r=e?e.ownerDocument||e:z,o=r.defaultView;return r!==D&&9===r.nodeType&&r.documentElement?(D=r,L=r.documentElement,M=!N(r),o&&o!==t(o)&&(o.addEventListener?o.addEventListener("unload",function(){B()},!1):o.attachEvent&&o.attachEvent("onunload",function(){B()})),x.attributes=i(function(e){return e.className="i",!e.getAttribute("className")}),x.getElementsByTagName=i(function(e){return e.appendChild(r.createComment("")),!e.getElementsByTagName("*").length}),x.getElementsByClassName=ge.test(r.getElementsByClassName),x.getById=i(function(e){return L.appendChild(e).id=F,!r.getElementsByName||!r.getElementsByName(F).length}),x.getById?(w.find.ID=function(e,t){if(typeof t.getElementById!==Y&&M){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},w.filter.ID=function(e){var t=e.replace(Ce,xe);return function(e){return e.getAttribute("id")===t}}):(delete w.find.ID,w.filter.ID=function(e){var t=e.replace(Ce,xe);return function(e){var n=typeof e.getAttributeNode!==Y&&e.getAttributeNode("id");return n&&n.value===t}}),w.find.TAG=x.getElementsByTagName?function(e,t){if(typeof t.getElementsByTagName!==Y)return t.getElementsByTagName(e)}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},w.find.CLASS=x.getElementsByClassName&&function(e,t){if(M)return t.getElementsByClassName(e)},O=[],P=[],(x.qsa=ge.test(r.querySelectorAll))&&(i(function(e){e.innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&P.push("[*^$]="+re+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||P.push("\\["+re+"*(?:value|"+ne+")"),e.querySelectorAll(":checked").length||P.push(":checked")}),i(function(e){var t=r.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&P.push("name"+re+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||P.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),P.push(",.*:")})),(x.matchesSelector=ge.test(H=L.matches||L.webkitMatchesSelector||L.mozMatchesSelector||L.oMatchesSelector||L.msMatchesSelector))&&i(function(e){x.disconnectedMatch=H.call(e,"div"),H.call(e,"[s!='']:x"),O.push("!=",ae)}),P=P.length&&new RegExp(P.join("|")),O=O.length&&new RegExp(O.join("|")),n=ge.test(L.compareDocumentPosition),I=n||ge.test(L.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},j=n?function(e,t){if(e===t)return A=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n?n:(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&n||!x.sortDetached&&t.compareDocumentPosition(e)===n?e===r||e.ownerDocument===z&&I(z,e)?-1:t===r||t.ownerDocument===z&&I(z,t)?1:R?te.call(R,e)-te.call(R,t):0:4&n?-1:1)}:function(e,t){if(e===t)return A=!0,0;var n,i=0,o=e.parentNode,s=t.parentNode,l=[e],c=[t];if(!o||!s)return e===r?-1:t===r?1:o?-1:s?1:R?te.call(R,e)-te.call(R,t):0;if(o===s)return a(e,t);for(n=e;n=n.parentNode;)l.unshift(n);for(n=t;n=n.parentNode;)c.unshift(n);for(;l[i]===c[i];)i++;return i?a(l[i],c[i]):l[i]===z?-1:c[i]===z?1:0},r):D},e.matches=function(t,n){return e(t,null,null,n)},e.matchesSelector=function(t,n){if((t.ownerDocument||t)!==D&&B(t),n=n.replace(ue,"='$1']"),x.matchesSelector&&M&&(!O||!O.test(n))&&(!P||!P.test(n)))try{var r=H.call(t,n);if(r||x.disconnectedMatch||t.document&&11!==t.document.nodeType)return r}catch(i){}return e(n,D,null,[t]).length>0},e.contains=function(e,t){return(e.ownerDocument||e)!==D&&B(e),I(e,t)},e.attr=function(e,n){(e.ownerDocument||e)!==D&&B(e);var r=w.attrHandle[n.toLowerCase()],i=r&&K.call(w.attrHandle,n.toLowerCase())?r(e,n,!M):t;return i!==t?i:x.attributes||!M?e.getAttribute(n):(i=e.getAttributeNode(n))&&i.specified?i.value:null},e.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},e.uniqueSort=function(e){var t,n=[],r=0,i=0;if(A=!x.detectDuplicates,R=!x.sortStable&&e.slice(0),e.sort(j),A){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return R=null,e},E=e.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=E(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r++];)n+=E(t);return n},w=e.selectors={cacheLength:50,createPseudo:r,match:he,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Ce,xe),e[3]=(e[3]||e[4]||e[5]||"").replace(Ce,xe),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(t){return t[1]=t[1].toLowerCase(),"nth"===t[1].slice(0,3)?(t[3]||e.error(t[0]),t[4]=+(t[4]?t[5]+(t[6]||1):2*("even"===t[3]||"odd"===t[3])),t[5]=+(t[7]+t[8]||"odd"===t[3])):t[3]&&e.error(t[0]),t},PSEUDO:function(e){var t,n=!e[6]&&e[2];return he.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&de.test(n)&&(t=_(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Ce,xe).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=V[e+" "];return t||(t=new RegExp("(^|"+re+")"+e+"("+re+"|$)"))&&V(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==Y&&e.getAttribute("class")||"")})},ATTR:function(t,n,r){return function(i){var o=e.attr(i,t);return null==o?"!="===n:!n||(o+="","="===n?o===r:"!="===n?o!==r:"^="===n?r&&0===o.indexOf(r):"*="===n?r&&o.indexOf(r)>-1:"$="===n?r&&o.slice(-r.length)===r:"~="===n?(" "+o+" ").indexOf(r)>-1:"|="===n&&(o===r||o.slice(0,r.length+1)===r+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var c,u,d,f,h,p,m=o!==a?"nextSibling":"previousSibling",g=t.parentNode,v=s&&t.nodeName.toLowerCase(),y=!l&&!s;if(g){if(o){for(;m;){for(d=t;d=d[m];)if(s?d.nodeName.toLowerCase()===v:1===d.nodeType)return!1;p=m="only"===e&&!p&&"nextSibling"}return!0}if(p=[a?g.firstChild:g.lastChild],a&&y){for(u=g[F]||(g[F]={}),c=u[e]||[],h=c[0]===U&&c[1],f=c[0]===U&&c[2],d=h&&g.childNodes[h];d=++h&&d&&d[m]||(f=h=0)||p.pop();)if(1===d.nodeType&&++f&&d===t){u[e]=[U,h,f];break}}else if(y&&(c=(t[F]||(t[F]={}))[e])&&c[0]===U)f=c[1];else for(;(d=++h&&d&&d[m]||(f=h=0)||p.pop())&&((s?d.nodeName.toLowerCase()!==v:1!==d.nodeType)||!++f||(y&&((d[F]||(d[F]={}))[e]=[U,f]),d!==t)););return f-=i,f===r||f%r===0&&f/r>=0}}},PSEUDO:function(t,n){var i,o=w.pseudos[t]||w.setFilters[t.toLowerCase()]||e.error("unsupported pseudo: "+t);return o[F]?o(n):o.length>1?(i=[t,t,"",n],w.setFilters.hasOwnProperty(t.toLowerCase())?r(function(e,t){for(var r,i=o(e,n),a=i.length;a--;)r=te.call(e,i[a]),e[r]=!(t[r]=i[a])}):function(e){return o(e,0,i)}):o}},pseudos:{not:r(function(e){var t=[],n=[],i=S(e.replace(se,"$1"));return i[F]?r(function(e,t,n,r){for(var o,a=i(e,null,r,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,r,o){return t[0]=e,i(t,null,o,n),!n.pop()}}),has:r(function(t){return function(n){return e(t,n).length>0}}),contains:r(function(e){return e=e.replace(Ce,xe),function(t){return(t.textContent||t.innerText||E(t)).indexOf(e)>-1}}),lang:r(function(t){return fe.test(t||"")||e.error("unsupported lang: "+t),t=t.replace(Ce,xe).toLowerCase(),function(e){var n;do if(n=M?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return n=n.toLowerCase(),n===t||0===n.indexOf(t+"-");while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=window.location&&window.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===L},focus:function(e){return e===D.activeElement&&(!D.hasFocus||D.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!w.pseudos.empty(e)},header:function(e){return me.test(e.nodeName)},input:function(e){return pe.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:c(function(){return[0]}),last:c(function(e,t){return[t-1]}),eq:c(function(e,t,n){return[n<0?n+t:n]}),even:c(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:c(function(e,t,n){for(var r=n<0?n+t:n;++r2&&"ID"===(a=o[0]).type&&x.getById&&9===t.nodeType&&M&&w.relative[o[1].type]){if(t=(w.find.ID(a.matches[0].replace(Ce,xe),t)||[])[0],!t)return n;c&&(t=t.parentNode),e=e.slice(o.shift().value.length)}for(i=he.needsContext.test(e)?0:o.length;i--&&(a=o[i],!w.relative[s=a.type]);)if((l=w.find[s])&&(r=l(a.matches[0].replace(Ce,xe),ye.test(o[0].type)&&u(t.parentNode)||t))){if(o.splice(i,1),e=r.length&&f(o),!e)return Z.apply(n,r),n;break}}return(c||S(e,d))(r,t,!M,n,ye.test(e)&&u(t.parentNode)||t),n},x.sortStable=F.split("").sort(j).join("")===F,x.detectDuplicates=!!A,B(),x.sortDetached=i(function(e){return 1&e.compareDocumentPosition(D.createElement("div"))}),i(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||o("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),x.attributes&&i(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||o("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),i(function(e){return null==e.getAttribute("disabled")})||o(ne,function(e,t,n){var r;if(!n)return e[t]===!0?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),e}),r(p,[],function(){function e(e){var t=e,n,r;if(!u(e))for(t=[],n=0,r=e.length;n=0;i--)c(e,t[i],n,r);else for(i=0;i)[^>]*$|#([\w\-]*)$)/,S=e.Event,k,T=r.makeMap("children,contents,next,prev"),R=r.makeMap("fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom"," "),A=r.makeMap("checked compact declare defer disabled ismap multiple nohref noshade nowrap readonly selected"," "),B={"for":"htmlFor","class":"className",readonly:"readOnly"},D={"float":"cssFloat"},L={},M={},P=/^\s*|\s*$/g;return f.fn=f.prototype={constructor:f,selector:"",context:null,length:0,init:function(e,t){var n=this,r,i;if(!e)return n;if(e.nodeType)return n.context=n[0]=e,n.length=1,n;if(t&&t.nodeType)n.context=t;else{if(t)return f(e).attr(t);n.context=t=document}if(a(e)){if(n.selector=e,r="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:_.exec(e),!r)return f(t).find(e);if(r[1])for(i=l(e,v(t)).firstChild;i;)E.call(n,i),i=i.nextSibling;else{if(i=v(t).getElementById(r[2]),!i)return n;if(i.id!==r[2])return n.find(e);n.length=1,n[0]=i}}else this.add(e,!1);return n},toArray:function(){return r.toArray(this)},add:function(e,t){var n=this,r,i;if(a(e))return n.add(f(e));if(t!==!1)for(r=f.unique(n.toArray().concat(f.makeArray(e))),n.length=r.length,i=0;i1&&(T[e]||(i=f.unique(i)),0===e.indexOf("parents")&&(i=i.reverse())),i=f(i),n?i.filter(n):i}}),m({parentsUntil:function(e,t){return y(e,"parentNode",t)},nextUntil:function(e,t){return b(e,"nextSibling",1,t).slice(1)},prevUntil:function(e,t){return b(e,"previousSibling",1,t).slice(1)}},function(e,t){f.fn[e]=function(n,r){var i=this,o=[];return i.each(function(){var e=t.call(o,this,n,o);e&&(f.isArray(e)?o.push.apply(o,e):o.push(e))}),this.length>1&&(o=f.unique(o),0!==e.indexOf("parents")&&"prevUntil"!==e||(o=o.reverse())),o=f(o),r?o.filter(r):o}}),f.fn.is=function(e){return!!e&&this.filter(e).length>0},f.fn.init.prototype=f.fn,f.overrideDefaults=function(e){function t(r,i){return n=n||e(),0===arguments.length&&(r=n.element),i||(i=n.context),new t.fn.init(r,i)}var n;return f.extend(t,this),t},i.ie&&i.ie<8&&(x(L,"get",{maxlength:function(e){var t=e.maxLength;return 2147483647===t?k:t},size:function(e){var t=e.size;return 20===t?k:t},"class":function(e){return e.className},style:function(e){var t=e.style.cssText;return 0===t.length?k:t}}),x(L,"set",{"class":function(e,t){e.className=t},style:function(e,t){e.style.cssText=t}})),i.ie&&i.ie<9&&(D["float"]="styleFloat",x(M,"set",{opacity:function(e,t){var n=e.style;null===t||""===t?n.removeAttribute("filter"):(n.zoom=1,n.filter="alpha(opacity="+100*t+")")}})),f.attrHooks=L,f.cssHooks=M,f}),r(v,[],function(){return function(e,t){function n(e,t,n,r){function i(e){return e=parseInt(e,10).toString(16),e.length>1?e:"0"+e}return"#"+i(t)+i(n)+i(r)}var r=/rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/gi,i=/(?:url(?:(?:\(\s*\"([^\"]+)\"\s*\))|(?:\(\s*\'([^\']+)\'\s*\))|(?:\(\s*([^)\s]+)\s*\))))|(?:\'([^\']+)\')|(?:\"([^\"]+)\")/gi,o=/\s*([^:]+):\s*([^;]+);?/g,a=/\s+$/,s,l={},c,u,d,f="\ufeff";for(e=e||{},t&&(u=t.getValidStyles(),d=t.getInvalidStyles()),c=("\\\" \\' \\; \\: ; : "+f).split(" "),s=0;s-1&&n||(y[e+t]=s==-1?l[0]:l.join(" "),delete y[e+"-top"+t],delete y[e+"-right"+t],delete y[e+"-bottom"+t],delete y[e+"-left"+t])}}function u(e){var t=y[e],n;if(t){for(t=t.split(" "),n=t.length;n--;)if(t[n]!==t[0])return!1;return y[e]=t[0],!0}}function d(e,t,n,r){u(t)&&u(n)&&u(r)&&(y[e]=y[t]+" "+y[n]+" "+y[r],delete y[t],delete y[n],delete y[r])}function h(e){return w=!0,l[e]}function p(e,t){return w&&(e=e.replace(/\uFEFF[0-9]/g,function(e){return l[e]})),t||(e=e.replace(/\\([\'\";:])/g,"$1")),e}function m(e){return String.fromCharCode(parseInt(e.slice(1),16))}function g(e){return e.replace(/\\[0-9a-f]+/gi,m)}function v(t,n,r,i,o,a){if(o=o||a)return o=p(o),"'"+o.replace(/\'/g,"\\'")+"'";if(n=p(n||r||i),!e.allow_script_urls){var s=n.replace(/[\s\r\n]+/g,"");if(/(java|vb)script:/i.test(s))return"";if(!e.allow_svg_data_urls&&/^data:image\/svg/i.test(s))return""}return E&&(n=E.call(N,n,"style")),"url('"+n.replace(/\'/g,"\\'")+"')"}var y={},b,C,x,w,E=e.url_converter,N=e.url_converter_scope||this;if(t){for(t=t.replace(/[\u0000-\u001F]/g,""),t=t.replace(/\\[\"\';:\uFEFF]/g,h).replace(/\"[^\"]+\"|\'[^\']+\'/g,function(e){return e.replace(/[;:]/g,h)});b=o.exec(t);)if(o.lastIndex=b.index+b[0].length,C=b[1].replace(a,"").toLowerCase(),x=b[2].replace(a,""),C&&x){if(C=g(C),x=g(x),C.indexOf(f)!==-1||C.indexOf('"')!==-1)continue;if(!e.allow_script_urls&&("behavior"==C||/expression\s*\(|\/\*|\*\//.test(x)))continue;"font-weight"===C&&"700"===x?x="bold":"color"!==C&&"background-color"!==C||(x=x.toLowerCase()),x=x.replace(r,n),x=x.replace(i,v),y[C]=w?p(x,!0):x}c("border","",!0),c("border","-width"),c("border","-color"),c("border","-style"),c("padding",""),c("margin",""),d("border","border-width","border-style","border-color"),"medium none"===y.border&&delete y.border,"none"===y["border-image"]&&delete y["border-image"]}return y},serialize:function(e,t){function n(t){var n,r,o,a;if(n=u[t])for(r=0,o=n.length;r0?" ":"")+t+": "+a+";")}function r(e,t){var n;return n=d["*"],(!n||!n[e])&&(n=d[t],!n||!n[e])}var i="",o,a;if(t&&u)n("*"),n(t);else for(o in e)a=e[o],!a||d&&!r(o,t)||(i+=(i.length>0?" ":"")+o+": "+a+";");return i}}}}),r(y,[],function(){return function(e,t){function n(e,n,r,i){var o,a;if(e){if(!i&&e[n])return e[n];if(e!=t){if(o=e[r])return o;for(a=e.parentNode;a&&a!=t;a=a.parentNode)if(o=a[r])return o}}}function r(e,n,r,i){var o,a,s;if(e){if(o=e[r],t&&o===t)return;if(o){if(!i)for(s=o[n];s;s=s[n])if(!s[n])return s;return o}if(a=e.parentNode,a&&a!==t)return a}}var i=e;this.current=function(){return i},this.next=function(e){return i=n(i,"firstChild","nextSibling",e)},this.prev=function(e){return i=n(i,"lastChild","previousSibling",e)},this.prev2=function(e){return i=r(i,"lastChild","previousSibling",e)}}}),r(b,[m],function(e){function t(n){function r(){return P.createDocumentFragment()}function i(e,t){E(F,e,t)}function o(e,t){E(z,e,t)}function a(e){i(e.parentNode,j(e))}function s(e){i(e.parentNode,j(e)+1)}function l(e){o(e.parentNode,j(e))}function c(e){o(e.parentNode,j(e)+1)}function u(e){e?(M[V]=M[W],M[$]=M[U]):(M[W]=M[V],M[U]=M[$]),M.collapsed=F}function d(e){a(e),c(e)}function f(e){i(e,0),o(e,1===e.nodeType?e.childNodes.length:e.nodeValue.length)}function h(e,t){var n=M[W],r=M[U],i=M[V],o=M[$],a=t.startContainer,s=t.startOffset,l=t.endContainer,c=t.endOffset;return 0===e?w(n,r,a,s):1===e?w(i,o,a,s):2===e?w(i,o,l,c):3===e?w(n,r,l,c):void 0}function p(){N(I)}function m(){return N(O)}function g(){return N(H)}function v(e){var t=this[W],r=this[U],i,o;3!==t.nodeType&&4!==t.nodeType||!t.nodeValue?(t.childNodes.length>0&&(o=t.childNodes[r]),o?t.insertBefore(e,o):3==t.nodeType?n.insertAfter(e,t):t.appendChild(e)):r?r>=t.nodeValue.length?n.insertAfter(e,t):(i=t.splitText(r),t.parentNode.insertBefore(e,i)):t.parentNode.insertBefore(e,t)}function y(e){var t=M.extractContents();M.insertNode(e),e.appendChild(t),M.selectNode(e)}function b(){return q(new t(n),{startContainer:M[W],startOffset:M[U],endContainer:M[V],endOffset:M[$],collapsed:M.collapsed,commonAncestorContainer:M.commonAncestorContainer})}function C(e,t){var n;if(3==e.nodeType)return e;if(t<0)return e;for(n=e.firstChild;n&&t>0;)--t,n=n.nextSibling;return n?n:e}function x(){return M[W]==M[V]&&M[U]==M[$]}function w(e,t,r,i){var o,a,s,l,c,u;if(e==r)return t==i?0:t0&&M.collapse(e):M.collapse(e),M.collapsed=x(),M.commonAncestorContainer=n.findCommonAncestor(M[W],M[V])}function N(e){var t,n=0,r=0,i,o,a,s,l,c;if(M[W]==M[V])return _(e);for(t=M[V],i=t.parentNode;i;t=i,i=i.parentNode){if(i==M[W])return S(t,e);++n}for(t=M[W],i=t.parentNode;i;t=i,i=i.parentNode){if(i==M[V])return k(t,e);++r}for(o=r-n,a=M[W];o>0;)a=a.parentNode,o--;for(s=M[V];o<0;)s=s.parentNode,o++;for(l=a.parentNode,c=s.parentNode;l!=c;l=l.parentNode,c=c.parentNode)a=l,s=c;return T(a,s,e)}function _(e){var t,n,i,o,a,s,l,c,u;if(e!=I&&(t=r()),M[U]==M[$])return t;if(3==M[W].nodeType){if(n=M[W].nodeValue,i=n.substring(M[U],M[$]),e!=H&&(o=M[W],c=M[U],u=M[$]-M[U],0===c&&u>=o.nodeValue.length-1?o.parentNode.removeChild(o):o.deleteData(c,u),M.collapse(F)),e==I)return;return i.length>0&&t.appendChild(P.createTextNode(i)),t}for(o=C(M[W],M[U]),a=M[$]-M[U];o&&a>0;)s=o.nextSibling,l=D(o,e),t&&t.appendChild(l),--a,o=s;return e!=H&&M.collapse(F),t}function S(e,t){var n,i,o,a,s,l;if(t!=I&&(n=r()),i=R(e,t),n&&n.appendChild(i),o=j(e),a=o-M[U],a<=0)return t!=H&&(M.setEndBefore(e),M.collapse(z)),n;for(i=e.previousSibling;a>0;)s=i.previousSibling,l=D(i,t),n&&n.insertBefore(l,n.firstChild),--a,i=s;return t!=H&&(M.setEndBefore(e),M.collapse(z)),n}function k(e,t){var n,i,o,a,s,l;for(t!=I&&(n=r()),o=A(e,t),n&&n.appendChild(o),i=j(e),++i,a=M[$]-i,o=e.nextSibling;o&&a>0;)s=o.nextSibling,l=D(o,t),n&&n.appendChild(l),--a,o=s;return t!=H&&(M.setStartAfter(e),M.collapse(F)),n}function T(e,t,n){var i,o,a,s,l,c,u;for(n!=I&&(o=r()),i=A(e,n),o&&o.appendChild(i),a=j(e),s=j(t),++a,l=s-a,c=e.nextSibling;l>0;)u=c.nextSibling,i=D(c,n),o&&o.appendChild(i),c=u,--l;return i=R(t,n),o&&o.appendChild(i),n!=H&&(M.setStartAfter(e),M.collapse(F)),o}function R(e,t){var n=C(M[V],M[$]-1),r,i,o,a,s,l=n!=M[V];if(n==e)return B(n,l,z,t);for(r=n.parentNode,i=B(r,z,z,t);r;){for(;n;)o=n.previousSibling,a=B(n,l,z,t),t!=I&&i.insertBefore(a,i.firstChild),l=F,n=o;if(r==e)return i;n=r.previousSibling,r=r.parentNode,s=B(r,z,z,t),t!=I&&s.appendChild(i),i=s}}function A(e,t){var n=C(M[W],M[U]),r=n!=M[W],i,o,a,s,l;if(n==e)return B(n,r,F,t);for(i=n.parentNode,o=B(i,z,F,t);i;){for(;n;)a=n.nextSibling,s=B(n,r,F,t),t!=I&&o.appendChild(s),r=F,n=a;if(i==e)return o;n=i.nextSibling,i=i.parentNode,l=B(i,z,F,t),t!=I&&l.appendChild(o),o=l}}function B(e,t,r,i){var o,a,s,l,c;if(t)return D(e,i);if(3==e.nodeType){if(o=e.nodeValue,r?(l=M[U],a=o.substring(l),s=o.substring(0,l)):(l=M[$],a=o.substring(0,l),s=o.substring(l)),i!=H&&(e.nodeValue=s),i==I)return;return c=n.clone(e,z),c.nodeValue=a,c}if(i!=I)return n.clone(e,z)}function D(e,t){return t!=I?t==H?n.clone(e,F):e:void e.parentNode.removeChild(e)}function L(){return n.create("body",null,g()).outerText}var M=this,P=n.doc,O=0,H=1,I=2,F=!0,z=!1,U="startOffset",W="startContainer",V="endContainer",$="endOffset",q=e.extend,j=n.nodeIndex;return q(M,{startContainer:P,startOffset:0,endContainer:P,endOffset:0,collapsed:F,commonAncestorContainer:P,START_TO_START:0,START_TO_END:1,END_TO_END:2,END_TO_START:3,setStart:i,setEnd:o,setStartBefore:a,setStartAfter:s,setEndBefore:l,setEndAfter:c,collapse:u,selectNode:d,selectNodeContents:f,compareBoundaryPoints:h,deleteContents:p,extractContents:m,cloneContents:g,insertNode:v,surroundContents:y,cloneRange:b,toStringIE:L}),M}return t.prototype.toString=function(){return this.toStringIE()},t}),r(C,[m],function(e){function t(e){var t;return t=document.createElement("div"),t.innerHTML=e,t.textContent||t.innerText||e}function n(e,t){var n,r,i,a={};if(e){for(e=e.split(","),t=t||10,n=0;n\"\u0060\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,l=/[<>&\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,c=/[<>&\"\']/g,u=/&#([a-z0-9]+);?|&([a-z0-9]+);/gi,d={128:"\u20ac",130:"\u201a",131:"\u0192",132:"\u201e",133:"\u2026",134:"\u2020",135:"\u2021",136:"\u02c6",137:"\u2030",138:"\u0160",139:"\u2039",140:"\u0152",142:"\u017d",145:"\u2018",146:"\u2019",147:"\u201c",148:"\u201d",149:"\u2022",150:"\u2013",151:"\u2014",152:"\u02dc",153:"\u2122",154:"\u0161",155:"\u203a",156:"\u0153",158:"\u017e",159:"\u0178"};o={'"':""","'":"'","<":"<",">":">","&":"&","`":"`"},a={"<":"<",">":">","&":"&",""":'"',"'":"'"},i=n("50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,t9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro",32);var f={encodeRaw:function(e,t){return e.replace(t?s:l,function(e){return o[e]||e})},encodeAllRaw:function(e){return(""+e).replace(c,function(e){return o[e]||e})},encodeNumeric:function(e,t){return e.replace(t?s:l,function(e){return e.length>1?"&#"+(1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320)+65536)+";":o[e]||"&#"+e.charCodeAt(0)+";"})},encodeNamed:function(e,t,n){return n=n||i,e.replace(t?s:l,function(e){return o[e]||n[e]||e})},getEncodeFunc:function(e,t){function a(e,n){return e.replace(n?s:l,function(e){return o[e]||t[e]||"&#"+e.charCodeAt(0)+";"||e})}function c(e,n){return f.encodeNamed(e,n,t)}return t=n(t)||i,e=r(e.replace(/\+/g,",")),e.named&&e.numeric?a:e.named?t?c:f.encodeNamed:e.numeric?f.encodeNumeric:f.encodeRaw},decode:function(e){return e.replace(u,function(e,n){return n?(n="x"===n.charAt(0).toLowerCase()?parseInt(n.substr(1),16):parseInt(n,10),n>65535?(n-=65536,String.fromCharCode(55296+(n>>10),56320+(1023&n))):d[n]||String.fromCharCode(n)):a[e]||i[e]||t(e)})}};return f}),r(x,[m,u],function(e,t){return function(n,r){function i(e){n.getElementsByTagName("head")[0].appendChild(e)}function o(r,o,c){function u(){for(var e=b.passed,t=e.length;t--;)e[t]();b.status=2,b.passed=[],b.failed=[]}function d(){for(var e=b.failed,t=e.length;t--;)e[t]();b.status=3,b.passed=[],b.failed=[]}function f(){var e=navigator.userAgent.match(/WebKit\/(\d*)/);return!!(e&&e[1]<536)}function h(e,n){e()||((new Date).getTime()-y0)return v=n.createElement("style"),v.textContent='@import "'+r+'"',m(),void i(v);p()}i(g),g.href=r}}var a=0,s={},l;r=r||{},l=r.maxLoadTime||5e3,this.load=o}}),r(w,[h,g,v,f,y,b,C,d,m,x],function(e,n,r,i,o,a,s,l,c,u){function d(e,t){var n={},r=t.keep_values,i;return i={set:function(n,r,i){t.url_converter&&(r=t.url_converter.call(t.url_converter_scope||e,r,i,n[0])),n.attr("data-mce-"+i,r).attr(i,r)},get:function(e,t){return e.attr("data-mce-"+t)||e.attr(t)}},n={style:{set:function(e,t){return null!==t&&"object"==typeof t?void e.css(t):(r&&e.attr("data-mce-style",t),void e.attr("style",t))},get:function(t){var n=t.attr("data-mce-style")||t.attr("style");return n=e.serializeStyle(e.parseStyle(n),t[0].nodeName)}}},r&&(n.href=n.src=i),n}function f(e,t){var n=t.attr("style");n=e.serializeStyle(e.parseStyle(n),t[0].nodeName),n||(n=null),t.attr("data-mce-style",n)}function h(e,t){var n=0,r,i;if(e)for(r=e.nodeType,e=e.previousSibling;e;e=e.previousSibling)i=e.nodeType,(!t||3!=i||i!=r&&e.nodeValue.length)&&(n++,r=i);return n}function p(e,t){var o=this,a;o.doc=e,o.win=window,o.files={},o.counter=0,o.stdMode=!b||e.documentMode>=8,o.boxModel=!b||"CSS1Compat"==e.compatMode||o.stdMode,o.styleSheetLoader=new u(e),o.boundEvents=[],o.settings=t=t||{},o.schema=t.schema,o.styles=new r({url_converter:t.url_converter,url_converter_scope:t.url_converter_scope},t.schema),o.fixDoc(e),o.events=t.ownEvents?new i(t.proxy):i.Event,o.attrHooks=d(o,t),a=t.schema?t.schema.getBlockElements():{},o.$=n.overrideDefaults(function(){return{context:e,element:o.getRoot()}}),o.isBlock=function(e){if(!e)return!1;var t=e.nodeType;return t?!(1!==t||!a[e.nodeName]):!!a[e]}}var m=c.each,g=c.is,v=c.grep,y=c.trim,b=l.ie,C=/^([a-z0-9],?)+$/i,x=/^[ \t\r\n]*$/;return p.prototype={$$:function(e){return"string"==typeof e&&(e=this.get(e)),this.$(e)},root:null,fixDoc:function(e){var t=this.settings,n;if(b&&t.schema){"abbr article aside audio canvas details figcaption figure footer header hgroup mark menu meter nav output progress section summary time video".replace(/\w+/g,function(t){e.createElement(t)});for(n in t.schema.getCustomElements())e.createElement(n)}},clone:function(e,t){var n=this,r,i;return!b||1!==e.nodeType||t?e.cloneNode(t):(i=n.doc,t?r.firstChild:(r=i.createElement(e.nodeName),m(n.getAttribs(e),function(t){n.setAttrib(r,t.nodeName,n.getAttrib(e,t.nodeName))}),r))},getRoot:function(){var e=this;return e.settings.root_element||e.doc.body},getViewPort:function(e){var t,n;return e=e?e:this.win,t=e.document,n=this.boxModel?t.documentElement:t.body,{x:e.pageXOffset||n.scrollLeft,y:e.pageYOffset||n.scrollTop,w:e.innerWidth||n.clientWidth,h:e.innerHeight||n.clientHeight}},getRect:function(e){var t=this,n,r;return e=t.get(e),n=t.getPos(e),r=t.getSize(e),{x:n.x,y:n.y,w:r.w,h:r.h}},getSize:function(e){var t=this,n,r;return e=t.get(e),n=t.getStyle(e,"width"),r=t.getStyle(e,"height"),n.indexOf("px")===-1&&(n=0),r.indexOf("px")===-1&&(r=0),{w:parseInt(n,10)||e.offsetWidth||e.clientWidth, +h:parseInt(r,10)||e.offsetHeight||e.clientHeight}},getParent:function(e,t,n){return this.getParents(e,t,n,!1)},getParents:function(e,n,r,i){var o=this,a,s=[];for(e=o.get(e),i=i===t,r=r||("BODY"!=o.getRoot().nodeName?o.getRoot().parentNode:null),g(n,"string")&&(a=n,n="*"===n?function(e){return 1==e.nodeType}:function(e){return o.is(e,a)});e&&e!=r&&e.nodeType&&9!==e.nodeType;){if(!n||n(e)){if(!i)return e;s.push(e)}e=e.parentNode}return i?s:null},get:function(e){var t;return e&&this.doc&&"string"==typeof e&&(t=e,e=this.doc.getElementById(e),e&&e.id!==t)?this.doc.getElementsByName(t)[1]:e},getNext:function(e,t){return this._findSib(e,t,"nextSibling")},getPrev:function(e,t){return this._findSib(e,t,"previousSibling")},select:function(t,n){var r=this;return e(t,r.get(n)||r.settings.root_element||r.doc,[])},is:function(n,r){var i;if(n.length===t){if("*"===r)return 1==n.nodeType;if(C.test(r)){for(r=r.toLowerCase().split(/,/),n=n.nodeName.toLowerCase(),i=r.length-1;i>=0;i--)if(r[i]==n)return!0;return!1}}if(n.nodeType&&1!=n.nodeType)return!1;var o=n.nodeType?[n]:n;return e(r,o[0].ownerDocument||o[0],null,o).length>0},add:function(e,t,n,r,i){var o=this;return this.run(e,function(e){var a;return a=g(t,"string")?o.doc.createElement(t):t,o.setAttribs(a,n),r&&(r.nodeType?a.appendChild(r):o.setHTML(a,r)),i?a:e.appendChild(a)})},create:function(e,t,n){return this.add(this.doc.createElement(e),e,t,n,1)},createHTML:function(e,t,n){var r="",i;r+="<"+e;for(i in t)t.hasOwnProperty(i)&&null!==t[i]&&"undefined"!=typeof t[i]&&(r+=" "+i+'="'+this.encode(t[i])+'"');return"undefined"!=typeof n?r+">"+n+"":r+" />"},createFragment:function(e){var t,n,r=this.doc,i;for(i=r.createElement("div"),t=r.createDocumentFragment(),e&&(i.innerHTML=e);n=i.firstChild;)t.appendChild(n);return t},remove:function(e,t){return e=this.$$(e),t?e.each(function(){for(var e;e=this.firstChild;)3==e.nodeType&&0===e.data.length?this.removeChild(e):this.parentNode.insertBefore(e,this)}).remove():e.remove(),e.length>1?e.toArray():e[0]},setStyle:function(e,t,n){e=this.$$(e).css(t,n),this.settings.update_styles&&f(this,e)},getStyle:function(e,n,r){return e=this.$$(e),r?e.css(n):(n=n.replace(/-(\D)/g,function(e,t){return t.toUpperCase()}),"float"==n&&(n=l.ie&&l.ie<12?"styleFloat":"cssFloat"),e[0]&&e[0].style?e[0].style[n]:t)},setStyles:function(e,t){e=this.$$(e).css(t),this.settings.update_styles&&f(this,e)},removeAllAttribs:function(e){return this.run(e,function(e){var t,n=e.attributes;for(t=n.length-1;t>=0;t--)e.removeAttributeNode(n.item(t))})},setAttrib:function(e,t,n){var r=this,i,o,a=r.settings;""===n&&(n=null),e=r.$$(e),i=e.attr(t),e.length&&(o=r.attrHooks[t],o&&o.set?o.set(e,n,t):e.attr(t,n),i!=n&&a.onSetAttrib&&a.onSetAttrib({attrElm:e,attrName:t,attrValue:n}))},setAttribs:function(e,t){var n=this;n.$$(e).each(function(e,r){m(t,function(e,t){n.setAttrib(r,t,e)})})},getAttrib:function(e,t,n){var r=this,i,o;return e=r.$$(e),e.length&&(i=r.attrHooks[t],o=i&&i.get?i.get(e,t):e.attr(t)),"undefined"==typeof o&&(o=n||""),o},getPos:function(e,t){var r=this,i=0,o=0,a,s=r.doc,l=s.body,c;if(e=r.get(e),t=t||l,e){if(t===l&&e.getBoundingClientRect&&"static"===n(l).css("position"))return c=e.getBoundingClientRect(),t=r.boxModel?s.documentElement:l,i=c.left+(s.documentElement.scrollLeft||l.scrollLeft)-t.clientLeft,o=c.top+(s.documentElement.scrollTop||l.scrollTop)-t.clientTop,{x:i,y:o};for(a=e;a&&a!=t&&a.nodeType;)i+=a.offsetLeft||0,o+=a.offsetTop||0,a=a.offsetParent;for(a=e.parentNode;a&&a!=t&&a.nodeType;)i-=a.scrollLeft||0,o-=a.scrollTop||0,a=a.parentNode}return{x:i,y:o}},parseStyle:function(e){return this.styles.parse(e)},serializeStyle:function(e,t){return this.styles.serialize(e,t)},addStyle:function(e){var t=this,n=t.doc,r,i;if(t!==p.DOM&&n===document){var o=p.DOM.addedStyles;if(o=o||[],o[e])return;o[e]=!0,p.DOM.addedStyles=o}i=n.getElementById("mceDefaultStyles"),i||(i=n.createElement("style"),i.id="mceDefaultStyles",i.type="text/css",r=n.getElementsByTagName("head")[0],r.firstChild?r.insertBefore(i,r.firstChild):r.appendChild(i)),i.styleSheet?i.styleSheet.cssText+=e:i.appendChild(n.createTextNode(e))},loadCSS:function(e){var t=this,n=t.doc,r;return t!==p.DOM&&n===document?void p.DOM.loadCSS(e):(e||(e=""),r=n.getElementsByTagName("head")[0],void m(e.split(","),function(e){var i;e=c._addCacheSuffix(e),t.files[e]||(t.files[e]=!0,i=t.create("link",{rel:"stylesheet",href:e}),b&&n.documentMode&&n.recalc&&(i.onload=function(){n.recalc&&n.recalc(),i.onload=null}),r.appendChild(i))}))},addClass:function(e,t){this.$$(e).addClass(t)},removeClass:function(e,t){this.toggleClass(e,t,!1)},hasClass:function(e,t){return this.$$(e).hasClass(t)},toggleClass:function(e,t,r){this.$$(e).toggleClass(t,r).each(function(){""===this.className&&n(this).attr("class",null)})},show:function(e){this.$$(e).show()},hide:function(e){this.$$(e).hide()},isHidden:function(e){return"none"==this.$$(e).css("display")},uniqueId:function(e){return(e?e:"mce_")+this.counter++},setHTML:function(e,t){e=this.$$(e),b?e.each(function(e,r){if(r.canHaveHTML!==!1){for(;r.firstChild;)r.removeChild(r.firstChild);try{r.innerHTML="
    "+t,r.removeChild(r.firstChild)}catch(i){n("
    ").html("
    "+t).contents().slice(1).appendTo(r)}return t}}):e.html(t)},getOuterHTML:function(e){return e=this.get(e),1==e.nodeType&&"outerHTML"in e?e.outerHTML:n("
    ").append(n(e).clone()).html()},setOuterHTML:function(e,t){var r=this;r.$$(e).each(function(){try{if("outerHTML"in this)return void(this.outerHTML=t)}catch(e){}r.remove(n(this).html(t),!0)})},decode:s.decode,encode:s.encodeAllRaw,insertAfter:function(e,t){return t=this.get(t),this.run(e,function(e){var n,r;return n=t.parentNode,r=t.nextSibling,r?n.insertBefore(e,r):n.appendChild(e),e})},replace:function(e,t,n){var r=this;return r.run(t,function(t){return g(t,"array")&&(e=e.cloneNode(!0)),n&&m(v(t.childNodes),function(t){e.appendChild(t)}),t.parentNode.replaceChild(e,t)})},rename:function(e,t){var n=this,r;return e.nodeName!=t.toUpperCase()&&(r=n.create(t),m(n.getAttribs(e),function(t){n.setAttrib(r,t.nodeName,n.getAttrib(e,t.nodeName))}),n.replace(r,e,1)),r||e},findCommonAncestor:function(e,t){for(var n=e,r;n;){for(r=t;r&&n!=r;)r=r.parentNode;if(n==r)break;n=n.parentNode}return!n&&e.ownerDocument?e.ownerDocument.documentElement:n},toHex:function(e){return this.styles.toHex(c.trim(e))},run:function(e,t,n){var r=this,i;return"string"==typeof e&&(e=r.get(e)),!!e&&(n=n||this,e.nodeType||!e.length&&0!==e.length?t.call(n,e):(i=[],m(e,function(e,o){e&&("string"==typeof e&&(e=r.get(e)),i.push(t.call(n,e,o)))}),i))},getAttribs:function(e){var t;if(e=this.get(e),!e)return[];if(b){if(t=[],"OBJECT"==e.nodeName)return e.attributes;"OPTION"===e.nodeName&&this.getAttrib(e,"selected")&&t.push({specified:1,nodeName:"selected"});var n=/<\/?[\w:\-]+ ?|=[\"][^\"]+\"|=\'[^\']+\'|=[\w\-]+|>/gi;return e.cloneNode(!1).outerHTML.replace(n,"").replace(/[\w:\-]+/gi,function(e){t.push({specified:1,nodeName:e})}),t}return e.attributes},isEmpty:function(e,t){var n=this,r,i,a,s,l,c=0;if(e=e.firstChild){s=new o(e,e.parentNode),t=t||(n.schema?n.schema.getNonEmptyElements():null);do{if(a=e.nodeType,1===a){var u=e.getAttribute("data-mce-bogus");if(u){e=s.next("all"===u);continue}if(l=e.nodeName.toLowerCase(),t&&t[l]){if("br"===l){c++,e=s.next();continue}return!1}for(i=n.getAttribs(e),r=i.length;r--;)if(l=i[r].nodeName,"name"===l||"data-mce-bookmark"===l)return!1}if(8==a)return!1;if(3===a&&!x.test(e.nodeValue))return!1;e=s.next()}while(e)}return c<=1},createRng:function(){var e=this.doc;return e.createRange?e.createRange():new a(this)},nodeIndex:h,split:function(e,t,n){function r(e){function t(e){var t=e.previousSibling&&"SPAN"==e.previousSibling.nodeName,n=e.nextSibling&&"SPAN"==e.nextSibling.nodeName;return t&&n}var n,o=e.childNodes,a=e.nodeType;if(1!=a||"bookmark"!=e.getAttribute("data-mce-type")){for(n=o.length-1;n>=0;n--)r(o[n]);if(9!=a){if(3==a&&e.nodeValue.length>0){var s=y(e.nodeValue).length;if(!i.isBlock(e.parentNode)||s>0||0===s&&t(e))return}else if(1==a&&(o=e.childNodes,1==o.length&&o[0]&&1==o[0].nodeType&&"bookmark"==o[0].getAttribute("data-mce-type")&&e.parentNode.insertBefore(o[0],e),o.length||/^(br|hr|input|img)$/i.test(e.nodeName)))return;i.remove(e)}return e}}var i=this,o=i.createRng(),a,s,l;if(e&&t)return o.setStart(e.parentNode,i.nodeIndex(e)),o.setEnd(t.parentNode,i.nodeIndex(t)),a=o.extractContents(),o=i.createRng(),o.setStart(t.parentNode,i.nodeIndex(t)+1),o.setEnd(e.parentNode,i.nodeIndex(e)+1),s=o.extractContents(),l=e.parentNode,l.insertBefore(r(a),e),n?l.insertBefore(n,e):l.insertBefore(t,e),l.insertBefore(r(s),e),i.remove(e),n||t},bind:function(e,t,n,r){var i=this;if(c.isArray(e)){for(var o=e.length;o--;)e[o]=i.bind(e[o],t,n,r);return e}return!i.settings.collect||e!==i.doc&&e!==i.win||i.boundEvents.push([e,t,n,r]),i.events.bind(e,t,n,r||i)},unbind:function(e,t,n){var r=this,i;if(c.isArray(e)){for(i=e.length;i--;)e[i]=r.unbind(e[i],t,n);return e}if(r.boundEvents&&(e===r.doc||e===r.win))for(i=r.boundEvents.length;i--;){var o=r.boundEvents[i];e!=o[0]||t&&t!=o[1]||n&&n!=o[2]||this.events.unbind(o[0],o[1],o[2])}return this.events.unbind(e,t,n)},fire:function(e,t,n){return this.events.fire(e,t,n)},getContentEditable:function(e){var t;return e&&1==e.nodeType?(t=e.getAttribute("data-mce-contenteditable"),t&&"inherit"!==t?t:"inherit"!==e.contentEditable?e.contentEditable:null):null},getContentEditableParent:function(e){for(var t=this.getRoot(),n=null;e&&e!==t&&(n=this.getContentEditable(e),null===n);e=e.parentNode);return n},destroy:function(){var t=this;if(t.boundEvents){for(var n=t.boundEvents.length;n--;){var r=t.boundEvents[n];this.events.unbind(r[0],r[1],r[2])}t.boundEvents=null}e.setDocument&&e.setDocument(),t.win=t.doc=t.root=t.events=t.frag=null},isChildOf:function(e,t){for(;e;){if(t===e)return!0;e=e.parentNode}return!1},dumpRng:function(e){return"startContainer: "+e.startContainer.nodeName+", startOffset: "+e.startOffset+", endContainer: "+e.endContainer.nodeName+", endOffset: "+e.endOffset},_findSib:function(e,t,n){var r=this,i=t;if(e)for("string"==typeof i&&(i=function(e){return r.is(e,t)}),e=e[n];e;e=e[n])if(i(e))return e;return null}},p.DOM=new p(document),p.nodeIndex=h,p}),r(E,[w,m],function(e,t){function n(){function e(e,n){function i(){a.remove(l),s&&(s.onreadystatechange=s.onload=s=null),n()}function o(){"undefined"!=typeof console&&console.log&&console.log("Failed to load: "+e)}var a=r,s,l;l=a.uniqueId(),s=document.createElement("script"),s.id=l,s.type="text/javascript",s.src=t._addCacheSuffix(e),"onreadystatechange"in s?s.onreadystatechange=function(){/loaded|complete/.test(s.readyState)&&i()}:s.onload=i,s.onerror=o,(document.getElementsByTagName("head")[0]||document.body).appendChild(s)}var n=0,a=1,s=2,l={},c=[],u={},d=[],f=0,h;this.isDone=function(e){return l[e]==s},this.markDone=function(e){l[e]=s},this.add=this.load=function(e,t,r){var i=l[e];i==h&&(c.push(e),l[e]=n),t&&(u[e]||(u[e]=[]),u[e].push({func:t,scope:r||this}))},this.remove=function(e){delete l[e],delete u[e]},this.loadQueue=function(e,t){this.loadScripts(c,e,t)},this.loadScripts=function(t,n,r){function c(e){i(u[e],function(e){e.func.call(e.scope)}),u[e]=h}var p;d.push({func:n,scope:r||this}),(p=function(){var n=o(t);t.length=0,i(n,function(t){return l[t]==s?void c(t):void(l[t]!=a&&(l[t]=a,f++,e(t,function(){l[t]=s,f--,c(t),p()})))}),f||(i(d,function(e){e.func.call(e.scope)}),d.length=0)})()}}var r=e.DOM,i=t.each,o=t.grep;return n.ScriptLoader=new n,n}),r(N,[E,m],function(e,n){function r(){var e=this;e.items=[],e.urls={},e.lookup={}}var i=n.each;return r.prototype={get:function(e){return this.lookup[e]?this.lookup[e].instance:t},dependencies:function(e){var t;return this.lookup[e]&&(t=this.lookup[e].dependencies),t||[]},requireLangPack:function(t,n){var i=r.language;if(i&&r.languageLoad!==!1){if(n)if(n=","+n+",",n.indexOf(","+i.substr(0,2)+",")!=-1)i=i.substr(0,2);else if(n.indexOf(","+i+",")==-1)return;e.ScriptLoader.add(this.urls[t]+"/langs/"+i+".js")}},add:function(e,t,n){return this.items.push(t),this.lookup[e]={instance:t,dependencies:n},t},remove:function(e){delete this.urls[e],delete this.lookup[e]},createUrl:function(e,t){return"object"==typeof t?t:{prefix:e.prefix,resource:t,suffix:e.suffix}},addComponents:function(t,n){var r=this.urls[t];i(n,function(t){e.ScriptLoader.add(r+"/"+t)})},load:function(n,o,a,s){function l(){var r=c.dependencies(n);i(r,function(e){var n=c.createUrl(o,e);c.load(n.resource,n,t,t)}),a&&(s?a.call(s):a.call(e))}var c=this,u=o;c.urls[n]||("object"==typeof o&&(u=o.prefix+o.resource+o.suffix),0!==u.indexOf("/")&&u.indexOf("://")==-1&&(u=r.baseURL+"/"+u),c.urls[n]=u.substring(0,u.lastIndexOf("/")),c.lookup[n]?l():e.ScriptLoader.add(u,l,s))}},r.PluginManager=new r,r.ThemeManager=new r,r}),r(_,[],function(){function e(e){return function(t){return!!t&&t.nodeType==e}}function t(e){return e=e.toLowerCase().split(" "),function(t){var n,r;if(t&&t.nodeType)for(r=t.nodeName.toLowerCase(),n=0;nn.length-1?t=n.length-1:t<0&&(t=0),n[t]||e}function s(e,t,n){for(;e&&e!==t;){if(n(e))return e;e=e.parentNode}return null}function l(e,t,n){return null!==s(e,t,n)}function c(e){return"_mce_caret"===e.id}function u(e,t){return v(e)&&l(e,t,c)===!1}function d(e){this.walk=function(t,n){function r(e){var t;return t=e[0],3===t.nodeType&&t===l&&c>=t.nodeValue.length&&e.splice(0,1),t=e[e.length-1],0===d&&e.length>0&&t===u&&3===t.nodeType&&e.splice(e.length-1,1),e}function i(e,t,n){for(var r=[];e&&e!=n;e=e[t])r.push(e);return r}function o(e,t){do{if(e.parentNode==t)return e;e=e.parentNode}while(e)}function s(e,t,o){var a=o?"nextSibling":"previousSibling";for(g=e,v=g.parentNode;g&&g!=t;g=v)v=g.parentNode,y=i(g==e?g:g[a],a),y.length&&(o||y.reverse(),n(r(y)))}var l=t.startContainer,c=t.startOffset,u=t.endContainer,d=t.endOffset,f,h,m,g,v,y,b;if(b=e.select("td[data-mce-selected],th[data-mce-selected]"),b.length>0)return void p(b,function(e){n([e])});if(1==l.nodeType&&l.hasChildNodes()&&(l=l.childNodes[c]),1==u.nodeType&&u.hasChildNodes()&&(u=a(u,d)),l==u)return n(r([l]));for(f=e.findCommonAncestor(l,u),g=l;g;g=g.parentNode){if(g===u)return s(l,f,!0);if(g===f)break}for(g=u;g;g=g.parentNode){if(g===l)return s(u,f);if(g===f)break}h=o(l,f)||l,m=o(u,f)||u,s(l,h,!0),y=i(h==l?h:h.nextSibling,"nextSibling",m==u?m.nextSibling:m),y.length&&n(r(y)),s(u,m)},this.split=function(e){function t(e,t){return e.splitText(t)}var n=e.startContainer,r=e.startOffset,i=e.endContainer,o=e.endOffset;return n==i&&3==n.nodeType?r>0&&rr?(o-=r,n=i=t(i,o).previousSibling,o=i.nodeValue.length,r=0):o=0):(3==n.nodeType&&r>0&&r0&&o0)return f=y,h=n?y.nodeValue.length:0,void(i=!0);if(e.isBlock(y)||b[y.nodeName.toLowerCase()])return;s=y}o&&s&&(f=s,i=!0,h=0)}var f,h,p,m=e.getRoot(),y,b,C,x;if(f=n[(r?"start":"end")+"Container"],h=n[(r?"start":"end")+"Offset"],x=1==f.nodeType&&h===f.childNodes.length,b=e.schema.getNonEmptyElements(),C=r,!v(f)){if(1==f.nodeType&&h>f.childNodes.length-1&&(C=!1),9===f.nodeType&&(f=e.getRoot(),h=0),f===m){if(C&&(y=f.childNodes[h>0?h-1:0])){if(v(y))return;if(b[y.nodeName]||"TABLE"==y.nodeName)return}if(f.hasChildNodes()){if(h=Math.min(!C&&h>0?h-1:h,f.childNodes.length-1),f=f.childNodes[h],h=0,!o&&f===m.lastChild&&"TABLE"===f.nodeName)return;if(l(f)||v(f))return;if(f.hasChildNodes()&&!/TABLE/.test(f.nodeName)){y=f,p=new t(f,m);do{if(g(y)||v(y)){i=!1;break}if(3===y.nodeType&&y.nodeValue.length>0){h=C?0:y.nodeValue.length,f=y,i=!0;break}if(b[y.nodeName.toLowerCase()]&&!a(y)){h=e.nodeIndex(y),f=y.parentNode,"IMG"!=y.nodeName||C||h++,i=!0;break}}while(y=C?p.next():p.prev())}}}o&&(3===f.nodeType&&0===h&&d(!0),1===f.nodeType&&(y=f.childNodes[h],y||(y=f.childNodes[h-1]),!y||"BR"!==y.nodeName||c(y,"A")||s(y)||s(y,!0)||d(!0,y))),C&&!o&&3===f.nodeType&&h===f.nodeValue.length&&d(!1),i&&n["set"+(r?"Start":"End")](f,h)}}var i,o;return o=n.collapsed,r(!0),o||r(),i&&o&&n.collapse(!0),i}}function f(t,n,r){var i,o,a;if(i=r.elementFromPoint(t,n),o=r.body.createTextRange(),i&&"HTML"!=i.tagName||(i=r.body),o.moveToElementText(i),a=e.toArray(o.getClientRects()),a=a.sort(function(e,t){return e=Math.abs(Math.max(e.top-n,e.bottom-n)),t=Math.abs(Math.max(t.top-n,t.bottom-n)),e-t}),a.length>0){n=(a[0].bottom+a[0].top)/2;try{return o.moveToPoint(t,n),o.collapse(!0),o}catch(s){}}return null}function h(e,t){var n=e&&e.parentElement?e.parentElement():null;return g(s(n,t,o))?null:e}var p=e.each,m=n.isContentEditableTrue,g=n.isContentEditableFalse,v=i.isCaretContainer;return d.compareRanges=function(e,t){if(e&&t){if(!e.item&&!e.duplicate)return e.startContainer==t.startContainer&&e.startOffset==t.startOffset;if(e.item&&t.item&&e.item(0)===t.item(0))return!0;if(e.isEqual&&t.isEqual&&t.isEqual(e))return!0}return!1},d.getCaretRangeFromPoint=function(e,t,n){var r,i;if(n.caretPositionFromPoint)i=n.caretPositionFromPoint(e,t),r=n.createRange(),r.setStart(i.offsetNode,i.offset),r.collapse(!0);else if(n.caretRangeFromPoint)r=n.caretRangeFromPoint(e,t);else if(n.body.createTextRange){r=n.body.createTextRange();try{r.moveToPoint(e,t),r.collapse(!0)}catch(o){r=f(e,t,n)}return h(r,n.body)}return r},d.getSelectedNode=function(e){var t=e.startContainer,n=e.startOffset;return t.hasChildNodes()&&e.endOffset==n+1?t.childNodes[n]:null},d.getNode=function(e,t){return 1==e.nodeType&&e.hasChildNodes()&&(t>=e.childNodes.length&&(t=e.childNodes.length-1),e=e.childNodes[t]),e},d}),r(R,[T,d,u],function(e,t,n){return function(r){function i(e){var t,n;if(n=r.$(e).parentsUntil(r.getBody()).add(e),n.length===a.length){for(t=n.length;t>=0&&n[t]===a[t];t--);if(t===-1)return a=n,!0}return a=n,!1}var o,a=[];"onselectionchange"in r.getDoc()||r.on("NodeChange Click MouseUp KeyUp Focus",function(t){var n,i;n=r.selection.getRng(),i={startContainer:n.startContainer,startOffset:n.startOffset,endContainer:n.endContainer,endOffset:n.endOffset},"nodechange"!=t.type&&e.compareRanges(i,o)||r.fire("SelectionChange"),o=i}),r.on("contextmenu",function(){r.fire("SelectionChange")}),r.on("SelectionChange",function(){var e=r.selection.getStart(!0);!t.range&&r.selection.isCollapsed()||!i(e)&&r.dom.isChildOf(e,r.getBody())&&r.nodeChanged({selectionChange:!0})}),r.on("MouseUp",function(e){e.isDefaultPrevented()||("IMG"==r.selection.getNode().nodeName?n.setEditorTimeout(r,function(){r.nodeChanged()}):r.nodeChanged())}),this.nodeChanged=function(e){var t=r.selection,n,i,o;r.initialized&&t&&!r.settings.disable_nodechange&&!r.readonly&&(o=r.getBody(),n=t.getStart()||o,n.ownerDocument==r.getDoc()&&r.dom.isChildOf(n,o)||(n=o),"IMG"==n.nodeName&&t.isCollapsed()&&(n=n.parentNode),i=[],r.dom.getParent(n,function(e){return e===o||void i.push(e)}),e=e||{},e.element=n,e.parents=i,r.fire("NodeChange",e))}}}),r(A,[],function(){function e(e,t,n){var r,i,o=n?"lastChild":"firstChild",a=n?"prev":"next";if(e[o])return e[o];if(e!==t){if(r=e[a])return r;for(i=e.parent;i&&i!==t;i=i.parent)if(r=i[a])return r}}function t(e,t){this.name=e,this.type=t,1===t&&(this.attributes=[],this.attributes.map={})}var n=/^[ \t\r\n]*$/,r={"#text":3,"#comment":8,"#cdata":4,"#pi":7,"#doctype":10,"#document-fragment":11};return t.prototype={replace:function(e){var t=this;return e.parent&&e.remove(),t.insert(e,t),t.remove(),t},attr:function(e,t){var n=this,r,i,o;if("string"!=typeof e){for(i in e)n.attr(i,e[i]);return n}if(r=n.attributes){if(t!==o){if(null===t){if(e in r.map)for(delete r.map[e],i=r.length;i--;)if(r[i].name===e)return r=r.splice(i,1),n;return n}if(e in r.map){for(i=r.length;i--;)if(r[i].name===e){r[i].value=t;break}}else r.push({name:e,value:t});return r.map[e]=t,n}return r.map[e]}},clone:function(){var e=this,n=new t(e.name,e.type),r,i,o,a,s;if(o=e.attributes){for(s=[],s.map={},r=0,i=o.length;r
"},postRender:function(){var e=this,t;return e.items().exec("postRender"),e._super(),e._layout.postRender(e),e.state.set("rendered",!0),e.settings.style&&e.$el.css(e.settings.style),e.settings.border&&(t=e.borderBox,e.$el.css({"border-top-width":t.top,"border-right-width":t.right,"border-bottom-width":t.bottom,"border-left-width":t.left})),e.parent()||(e.keyboardNav=new i({root:e})),e},initLayoutRect:function(){var e=this,t=e._super();return e._layout.recalc(e),t},recalc:function(){var e=this,t=e._layoutRect,n=e._lastRect;if(!n||n.w!=t.w||n.h!=t.h)return e._layout.recalc(e),t=e.layoutRect(),e._lastRect={x:t.x,y:t.y,w:t.w,h:t.h},!0},reflow:function(){var t;if(l.remove(this),this.visible()){for(e.repaintControls=[],e.repaintControls.map={},this.recalc(),t=e.repaintControls.length;t--;)e.repaintControls[t].repaint();"flow"!==this.settings.layout&&"stack"!==this.settings.layout&&this.repaint(),e.repaintControls=[]}return this}})}),r(_e,[g],function(e){function t(e){var t,n,r,i,o,a,s,l,c=Math.max;return t=e.documentElement,n=e.body,r=c(t.scrollWidth,n.scrollWidth),i=c(t.clientWidth,n.clientWidth),o=c(t.offsetWidth,n.offsetWidth),a=c(t.scrollHeight,n.scrollHeight),s=c(t.clientHeight,n.clientHeight),l=c(t.offsetHeight,n.offsetHeight),{width:r").css({position:"absolute",top:0,left:0,width:c.width,height:c.height,zIndex:2147483647,opacity:1e-4,cursor:m}).appendTo(s.body),e(s).on("mousemove touchmove",d).on("mouseup touchend",u),i.start(r)},d=function(e){return n(e),e.button!==l?u(e):(e.deltaX=e.screenX-f,e.deltaY=e.screenY-h,e.preventDefault(),void i.drag(e))},u=function(t){n(t),e(s).off("mousemove touchmove",d).off("mouseup touchend",u),a.remove(),i.stop&&i.stop(t)},this.destroy=function(){e(o()).off()},e(o()).on("mousedown touchstart",c)}}),r(Se,[g,_e],function(e,t){return{init:function(){var e=this;e.on("repaint",e.renderScroll)},renderScroll:function(){function n(){function t(t,a,s,l,c,u){var d,f,h,p,m,g,v,y,b;if(f=i.getEl("scroll"+t)){if(y=a.toLowerCase(),b=s.toLowerCase(),e(i.getEl("absend")).css(y,i.layoutRect()[l]-1),!c)return void e(f).css("display","none");e(f).css("display","block"),d=i.getEl("body"),h=i.getEl("scroll"+t+"t"),p=d["client"+s]-2*o,p-=n&&r?f["client"+u]:0,m=d["scroll"+s],g=p/m,v={},v[y]=d["offset"+a]+o,v[b]=p,e(f).css(v),v={},v[y]=d["scroll"+a]*g,v[b]=p*g,e(h).css(v)}}var n,r,a;a=i.getEl("body"),n=a.scrollWidth>a.clientWidth,r=a.scrollHeight>a.clientHeight,t("h","Left","Width","contentW",n,"Height"),t("v","Top","Height","contentH",r,"Width")}function r(){function n(n,r,a,s,l){var c,u=i._id+"-scroll"+n,d=i.classPrefix;e(i.getEl()).append('
'),i.draghelper=new t(u+"t",{start:function(){c=i.getEl("body")["scroll"+r],e("#"+u).addClass(d+"active")},drag:function(e){var t,u,d,f,h=i.layoutRect();u=h.contentW>h.innerW,d=h.contentH>h.innerH,f=i.getEl("body")["client"+a]-2*o,f-=u&&d?i.getEl("scroll"+n)["client"+l]:0,t=f/i.getEl("body")["scroll"+a],i.getEl("body")["scroll"+r]=c+e["delta"+s]/t},stop:function(){e("#"+u).removeClass(d+"active")}})}i.classes.add("scroll"),n("v","Top","Height","Y","Width"),n("h","Left","Width","X","Height")}var i=this,o=2;i.settings.autoScroll&&(i._hasScroll||(i._hasScroll=!0,r(),i.on("wheel",function(e){var t=i.getEl("body");t.scrollLeft+=10*(e.deltaX||0),t.scrollTop+=10*e.deltaY,n()}),e(i.getEl("body")).on("scroll",n)),n())}}}),r(ke,[Ne,Se],function(e,t){return e.extend({Defaults:{layout:"fit",containerCls:"panel"},Mixins:[t],renderHtml:function(){var e=this,t=e._layout,n=e.settings.html;return e.preRender(),t.preRender(e),"undefined"==typeof n?n='
'+t.renderHtml(e)+"
":("function"==typeof n&&(n=n.call(e)),e._hasBody=!1),'
'+(e._preBodyHtml||"")+n+"
"}})}),r(Te,[ve],function(e){function t(t,n,r){var i,o,a,s,l,c,u,d,f,h;return f=e.getViewPort(),o=e.getPos(n),a=o.x,s=o.y,t.state.get("fixed")&&"static"==e.getRuntimeStyle(document.body,"position")&&(a-=f.x,s-=f.y),i=t.getEl(),h=e.getSize(i),l=h.width,c=h.height,h=e.getSize(n),u=h.width,d=h.height,r=(r||"").split(""),"b"===r[0]&&(s+=d),"r"===r[1]&&(a+=u),"c"===r[0]&&(s+=Math.round(d/2)),"c"===r[1]&&(a+=Math.round(u/2)),"b"===r[3]&&(s-=c),"r"===r[4]&&(a-=l),"c"===r[3]&&(s-=Math.round(c/2)),"c"===r[4]&&(a-=Math.round(l/2)),{x:a,y:s,w:l,h:c}}return{testMoveRel:function(n,r){for(var i=e.getViewPort(),o=0;o0&&a.x+a.w0&&a.y+a.hi.x&&a.x+a.wi.y&&a.y+a.ht?(e=t-n,e<0?0:e):e}var i=this;if(i.settings.constrainToViewport){var o=e.getViewPort(window),a=i.layoutRect();t=r(t,o.w+o.x,a.w),n=r(n,o.h+o.y,a.h)}return i.state.get("rendered")?i.layoutRect({x:t,y:n}).repaint():(i.settings.x=t,i.settings.y=n),i.fire("move",{x:t,y:n}),i}}}),r(Re,[ve],function(e){return{resizeToContent:function(){this._layoutRect.autoResize=!0,this._lastRect=null,this.reflow()},resizeTo:function(t,n){if(t<=1||n<=1){var r=e.getWindowSize();t=t<=1?t*r.w:t,n=n<=1?n*r.h:n}return this._layoutRect.autoResize=!1,this.layoutRect({minW:t,minH:n,w:t,h:n}).reflow()},resizeBy:function(e,t){var n=this,r=n.layoutRect();return n.resizeTo(r.w+e,r.h+t)}}}),r(Ae,[ke,Te,Re,ve,g,u],function(e,t,n,r,i,o){function a(e,t){for(;e;){if(e==t)return!0;e=e.parent()}}function s(e){for(var t=v.length;t--;){var n=v[t],r=n.getParentCtrl(e.target);if(n.settings.autohide){if(r&&(a(r,n)||n.parent()===r))continue;e=n.fire("autohide",{target:e.target}),e.isDefaultPrevented()||n.hide()}}}function l(){p||(p=function(e){2!=e.button&&s(e)},i(document).on("click touchstart",p))}function c(){m||(m=function(){var e;for(e=v.length;e--;)d(v[e])},i(window).on("scroll",m))}function u(){if(!g){var e=document.documentElement,t=e.clientWidth,n=e.clientHeight;g=function(){document.all&&t==e.clientWidth&&n==e.clientHeight||(t=e.clientWidth,n=e.clientHeight,C.hideAll())},i(window).on("resize",g)}}function d(e){function t(t,n){for(var r,i=0;in&&(e.fixed(!1).layoutRect({y:e._autoFixY}).repaint(),t(!1,e._autoFixY-n)):(e._autoFixY=e.layoutRect().y,e._autoFixY').appendTo(t.getContainerElm())),o.setTimeout(function(){n.addClass(r+"in"),i(t.getEl()).addClass(r+"in")}),b=!0),f(!0,t)}}),t.on("show",function(){t.parents().each(function(e){if(e.state.get("fixed"))return t.fixed(!0),!1})}),e.popover&&(t._preBodyHtml='
',t.classes.add("popover").add("bottom").add(t.isRtl()?"end":"start")),t.aria("label",e.ariaLabel),t.aria("labelledby",t._id),t.aria("describedby",t.describedBy||t._id+"-none")},fixed:function(e){var t=this;if(t.state.get("fixed")!=e){if(t.state.get("rendered")){var n=r.getViewPort();e?t.layoutRect().y-=n.y:t.layoutRect().y+=n.y}t.classes.toggle("fixed",e),t.state.set("fixed",e)}return t},show:function(){var e=this,t,n=e._super();for(t=v.length;t--&&v[t]!==e;);return t===-1&&v.push(e),n},hide:function(){return h(this),f(!1,this),this._super()},hideAll:function(){C.hideAll()},close:function(){var e=this;return e.fire("close").isDefaultPrevented()||(e.remove(),f(!1,e)),e},remove:function(){h(this),this._super()},postRender:function(){var e=this;return e.settings.bodyRole&&this.getEl("body").setAttribute("role",e.settings.bodyRole),e._super()}});return C.hideAll=function(){for(var e=v.length;e--;){var t=v[e];t&&t.settings.autohide&&(t.hide(),v.splice(e,1))}},C}),r(Be,[Ae,ke,ve,g,_e,ye,d,u],function(e,t,n,r,i,o,a,s){function l(e){var t="width=device-width,initial-scale=1.0,user-scalable=0,minimum-scale=1.0,maximum-scale=1.0",n=r("meta[name=viewport]")[0],i;a.overrideViewPort!==!1&&(n||(n=document.createElement("meta"),n.setAttribute("name","viewport"),document.getElementsByTagName("head")[0].appendChild(n)),i=n.getAttribute("content"),i&&"undefined"!=typeof h&&(h=i),n.setAttribute("content",e?t:h))}function c(e,t){u()&&t===!1&&r([document.documentElement,document.body]).removeClass(e+"fullscreen")}function u(){for(var e=0;er.w&&(o=r.x-Math.max(0,i/2),e.layoutRect({w:i,x:o}),a=!0)),t&&(t.layoutRect({w:e.layoutRect().innerW}).recalc(),i=t.layoutRect().minW+r.deltaW,i>r.w&&(o=r.x-Math.max(0,i-r.w),e.layoutRect({w:i,x:o}),a=!0)),a&&e.recalc()},initLayoutRect:function(){var e=this,t=e._super(),r=0,i;if(e.settings.title&&!e._fullscreen){i=e.getEl("head");var o=n.getSize(i);t.headerW=o.width,t.headerH=o.height,r+=t.headerH}e.statusbar&&(r+=e.statusbar.layoutRect().h),t.deltaH+=r,t.minH+=r,t.h+=r;var a=n.getWindowSize();return t.x=e.settings.x||Math.max(0,a.w/2-t.w/2),t.y=e.settings.y||Math.max(0,a.h/2-t.h/2),t},renderHtml:function(){var e=this,t=e._layout,n=e._id,r=e.classPrefix,i=e.settings,o="",a="",s=i.html;return e.preRender(),t.preRender(e),i.title&&(o='
'+e.encode(i.title)+'
'),i.url&&(s=''),"undefined"==typeof s&&(s=t.renderHtml(e)),e.statusbar&&(a=e.statusbar.renderHtml()),'
'+o+'
'+s+"
"+a+"
"},fullscreen:function(e){var t=this,i=document.documentElement,a,l=t.classPrefix,c;if(e!=t._fullscreen)if(r(window).on("resize",function(){var e;if(t._fullscreen)if(a)t._timer||(t._timer=s.setTimeout(function(){var e=n.getWindowSize();t.moveTo(0,0).resizeTo(e.w,e.h),t._timer=0},50));else{e=(new Date).getTime();var r=n.getWindowSize();t.moveTo(0,0).resizeTo(r.w,r.h),(new Date).getTime()-e>50&&(a=!0)}}),c=t.layoutRect(),t._fullscreen=e,e){t._initial={x:c.x,y:c.y,w:c.w,h:c.h},t.borderBox=o.parseBox("0"),t.getEl("head").style.display="none",c.deltaH-=c.headerH+2,r([i,document.body]).addClass(l+"fullscreen"),t.classes.add("fullscreen");var u=n.getWindowSize();t.moveTo(0,0).resizeTo(u.w,u.h)}else t.borderBox=o.parseBox(t.settings.border),t.getEl("head").style.display="",c.deltaH+=c.headerH,r([i,document.body]).removeClass(l+"fullscreen"),t.classes.remove("fullscreen"),t.moveTo(t._initial.x,t._initial.y).resizeTo(t._initial.w,t._initial.h);return t.reflow()},postRender:function(){var e=this,t;setTimeout(function(){e.classes.add("in"),e.fire("open")},0),e._super(),e.statusbar&&e.statusbar.postRender(),e.focus(),this.dragHelper=new i(e._id+"-dragh",{start:function(){t={x:e.layoutRect().x,y:e.layoutRect().y}},drag:function(n){e.moveTo(t.x+n.deltaX,t.y+n.deltaY)}}),e.on("submit",function(t){t.isDefaultPrevented()||e.close()}),f.push(e),l(!0)},submit:function(){return this.fire("submit",{data:this.toJSON()})},remove:function(){var e=this,t;for(e.dragHelper.destroy(),e._super(),e.statusbar&&this.statusbar.remove(),c(e.classPrefix,!1),t=f.length;t--;)f[t]===e&&f.splice(t,1);l(f.length>0)},getContentWindow:function(){var e=this.getEl().getElementsByTagName("iframe")[0];return e?e.contentWindow:null}});return d(),p}),r(De,[Be],function(e){var t=e.extend({init:function(e){e={border:1,padding:20,layout:"flex",pack:"center",align:"center",containerCls:"panel",autoScroll:!0,buttons:{type:"button",text:"Ok",action:"ok"},items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200}},this._super(e)},Statics:{OK:1,OK_CANCEL:2,YES_NO:3,YES_NO_CANCEL:4,msgBox:function(n){function r(e,t,n){return{type:"button",text:e,subtype:n?"primary":"",onClick:function(e){e.control.parents()[1].close(),o(t)}}}var i,o=n.callback||function(){};switch(n.buttons){case t.OK_CANCEL:i=[r("Ok",!0,!0),r("Cancel",!1)];break;case t.YES_NO:case t.YES_NO_CANCEL:i=[r("Yes",1,!0),r("No",0)],n.buttons==t.YES_NO_CANCEL&&i.push(r("Cancel",-1));break;default:i=[r("Ok",!0,!0)]}return new e({padding:20,x:n.x,y:n.y,minWidth:300,minHeight:100,layout:"flex",pack:"center",align:"center",buttons:i,title:n.title,role:"alertdialog",items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200,text:n.text},onPostRender:function(){this.aria("describedby",this.items()[0]._id)},onClose:n.onClose,onCancel:function(){o(!1)}}).renderTo(document.body).reflow()},alert:function(e,n){return"string"==typeof e&&(e={text:e}),e.callback=n,t.msgBox(e)},confirm:function(e,n){return"string"==typeof e&&(e={text:e}),e.callback=n,e.buttons=t.OK_CANCEL,t.msgBox(e)}}});return t}),r(Le,[Be,De],function(e,t){return function(n){function r(){if(s.length)return s[s.length-1]}function i(e){n.fire("OpenWindow",{win:e})}function o(e){n.fire("CloseWindow",{win:e})}var a=this,s=[];a.windows=s,n.on("remove",function(){for(var e=s.length;e--;)s[e].close()}),a.open=function(t,r){var a;return n.editorManager.setActive(n),t.title=t.title||" ",t.url=t.url||t.file,t.url&&(t.width=parseInt(t.width||320,10),t.height=parseInt(t.height||240,10)),t.body&&(t.items={defaults:t.defaults,type:t.bodyType||"form",items:t.body,data:t.data,callbacks:t.commands}),t.url||t.buttons||(t.buttons=[{text:"Ok",subtype:"primary",onclick:function(){a.find("form")[0].submit()}},{text:"Cancel",onclick:function(){a.close()}}]),a=new e(t),s.push(a),a.on("close",function(){for(var e=s.length;e--;)s[e]===a&&s.splice(e,1);s.length||n.focus(),o(a)}),t.data&&a.on("postRender",function(){this.find("*").each(function(e){var n=e.name();n in t.data&&e.value(t.data[n])})}),a.features=t||{},a.params=r||{},1===s.length&&n.nodeChanged(),a=a.renderTo().reflow(),i(a),a},a.alert=function(e,r,a){var s;s=t.alert(e,function(){r?r.call(a||this):n.focus()}),s.on("close",function(){o(s)}),i(s)},a.confirm=function(e,n,r){var a;a=t.confirm(e,function(e){n.call(r||this,e)}),a.on("close",function(){o(a)}),i(a)},a.close=function(){r()&&r().close()},a.getParams=function(){return r()?r().params:null},a.setParams=function(e){r()&&(r().params=e)},a.getWindows=function(){return s}}}),r(Me,[xe,Te],function(e,t){return e.extend({Mixins:[t],Defaults:{classes:"widget tooltip tooltip-n"},renderHtml:function(){var e=this,t=e.classPrefix; +return'"},bindStates:function(){var e=this;return e.state.on("change:text",function(t){e.getEl().lastChild.innerHTML=e.encode(t.value)}),e._super()},repaint:function(){var e=this,t,n;t=e.getEl().style,n=e._layoutRect,t.left=n.x+"px",t.top=n.y+"px",t.zIndex=131070}})}),r(Pe,[xe,Me],function(e,t){var n,r=e.extend({init:function(e){var t=this;t._super(e),e=t.settings,t.canFocus=!0,e.tooltip&&r.tooltips!==!1&&(t.on("mouseenter",function(n){var r=t.tooltip().moveTo(-65535);if(n.control==t){var i=r.text(e.tooltip).show().testMoveRel(t.getEl(),["bc-tc","bc-tl","bc-tr"]);r.classes.toggle("tooltip-n","bc-tc"==i),r.classes.toggle("tooltip-nw","bc-tl"==i),r.classes.toggle("tooltip-ne","bc-tr"==i),r.moveRel(t.getEl(),i)}else r.hide()}),t.on("mouseleave mousedown click",function(){t.tooltip().hide()})),t.aria("label",e.ariaLabel||e.tooltip)},tooltip:function(){return n||(n=new t({type:"tooltip"}),n.renderTo()),n},postRender:function(){var e=this,t=e.settings;e._super(),e.parent()||!t.width&&!t.height||(e.initLayoutRect(),e.repaint()),t.autofocus&&e.focus()},bindStates:function(){function e(e){n.aria("disabled",e),n.classes.toggle("disabled",e)}function t(e){n.aria("pressed",e),n.classes.toggle("active",e)}var n=this;return n.state.on("change:disabled",function(t){e(t.value)}),n.state.on("change:active",function(e){t(e.value)}),n.state.get("disabled")&&e(!0),n.state.get("active")&&t(!0),n._super()},remove:function(){this._super(),n&&(n.remove(),n=null)}});return r}),r(Oe,[Pe],function(e){return e.extend({Defaults:{value:0},init:function(e){var t=this;t._super(e),t.classes.add("progress"),t.settings.filter||(t.settings.filter=function(e){return Math.round(e)})},renderHtml:function(){var e=this,t=e._id,n=this.classPrefix;return'
0%
'},postRender:function(){var e=this;return e._super(),e.value(e.settings.value),e},bindStates:function(){function e(e){e=t.settings.filter(e),t.getEl().lastChild.innerHTML=e+"%",t.getEl().firstChild.firstChild.style.width=e+"%"}var t=this;return t.state.on("change:value",function(t){e(t.value)}),e(t.state.get("value")),t._super()}})}),r(He,[xe,Te,Oe,u],function(e,t,n,r){return e.extend({Mixins:[t],Defaults:{classes:"widget notification"},init:function(e){var t=this;t._super(e),e.text&&t.text(e.text),e.icon&&(t.icon=e.icon),e.color&&(t.color=e.color),e.type&&t.classes.add("notification-"+e.type),e.timeout&&(e.timeout<0||e.timeout>0)&&!e.closeButton?t.closeButton=!1:(t.classes.add("has-close"),t.closeButton=!0),e.progressBar&&(t.progressBar=new n),t.on("click",function(e){e.target.className.indexOf(t.classPrefix+"close")!=-1&&t.close()})},renderHtml:function(){var e=this,t=e.classPrefix,n="",r="",i="",o="";return e.icon&&(n=''),e.color&&(o=' style="background-color: '+e.color+'"'),e.closeButton&&(r=''),e.progressBar&&(i=e.progressBar.renderHtml()),'"},postRender:function(){var e=this;return r.setTimeout(function(){e.$el.addClass(e.classPrefix+"in")}),e._super()},bindStates:function(){var e=this;return e.state.on("change:text",function(t){e.getEl().childNodes[1].innerHTML=t.value}),e.progressBar&&e.progressBar.bindStates(),e._super()},close:function(){var e=this;return e.fire("close").isDefaultPrevented()||e.remove(),e},repaint:function(){var e=this,t,n;t=e.getEl().style,n=e._layoutRect,t.left=n.x+"px",t.top=n.y+"px",t.zIndex=65534}})}),r(Ie,[He,u,m],function(e,t,n){return function(r){function i(){if(f.length)return f[f.length-1]}function o(){t.requestAnimationFrame(function(){a(),s()})}function a(){for(var e=0;e0){var e=f.slice(0,1)[0],t=r.inline?r.getElement():r.getContentAreaContainer();if(e.moveRel(t,"tc-tc"),f.length>1)for(var n=1;n0&&(n.timer=setTimeout(function(){n.close()},t.timeout)),n.on("close",function(){var e=f.length;for(n.timer&&r.getWin().clearTimeout(n.timer);e--;)f[e]===n&&f.splice(e,1);s()}),n.renderTo(),s()):n=i,n}},d.close=function(){i()&&i().close()},d.getNotifications=function(){return f},r.on("SkinLoaded",function(){var e=r.settings.service_message;e&&r.notificationManager.open({text:e,type:"warning",timeout:0,icon:""})})}}),r(Fe,[w],function(e){function t(t,n,r){for(var i=[];n&&n!=t;n=n.parentNode)i.push(e.nodeIndex(n,r));return i}function n(e,t){var n,r,i;for(r=e,n=t.length-1;n>=0;n--){if(i=r.childNodes,t[n]>i.length-1)return null;r=i[t[n]]}return r}return{create:t,resolve:n}}),r(ze,[I,T,y,Fe,A,C,d,m,u,k,$,oe],function(e,t,n,r,i,o,a,s,l,c,u,d){return function(f){function h(e,t){try{f.getDoc().execCommand(e,!1,t)}catch(n){}}function p(){var e=f.getDoc().documentMode;return e?e:6}function m(e){return e.isDefaultPrevented()}function g(e){var t,n;e.dataTransfer&&(f.selection.isCollapsed()&&"IMG"==e.target.tagName&&re.select(e.target),t=f.selection.getContent(),t.length>0&&(n=ue+escape(f.id)+","+escape(t),e.dataTransfer.setData(de,n)))}function v(e){var t;return e.dataTransfer&&(t=e.dataTransfer.getData(de),t&&t.indexOf(ue)>=0)?(t=t.substr(ue.length).split(","),{id:unescape(t[0]),html:unescape(t[1])}):null}function y(e){f.queryCommandSupported("mceInsertClipboardContent")?f.execCommand("mceInsertClipboardContent",!1,{content:e}):f.execCommand("mceInsertContent",!1,e)}function b(){function i(e){var t=x.schema.getBlockElements(),n=f.getBody();if("BR"!=e.nodeName)return!1;for(;e!=n&&!t[e.nodeName];e=e.parentNode)if(e.nextSibling)return!1;return!0}function o(e,t){var n;for(n=e.nextSibling;n&&n!=t;n=n.nextSibling)if((3!=n.nodeType||0!==Z.trim(n.data).length)&&n!==t)return!1;return n===t}function a(e,t,r){var o,a,s;if(x.isChildOf(e,f.getBody()))for(s=x.schema.getNonEmptyElements(),o=new n(r||e,e);a=o[t?"next":"prev"]();){if(s[a.nodeName]&&!i(a))return a;if(3==a.nodeType&&a.data.length>0)return a}}function c(e){var n,r,i,o,s;if(!e.collapsed&&(n=x.getParent(t.getNode(e.startContainer,e.startOffset),x.isBlock),r=x.getParent(t.getNode(e.endContainer,e.endOffset),x.isBlock),s=f.schema.getTextBlockElements(),n!=r&&s[n.nodeName]&&s[r.nodeName]&&"false"!==x.getContentEditable(n)&&"false"!==x.getContentEditable(r)))return e.deleteContents(),i=a(n,!1),o=a(r,!0),x.isEmpty(r)||Z(n).append(r.childNodes),Z(r).remove(),i?1==i.nodeType?"BR"==i.nodeName?(e.setStartBefore(i),e.setEndBefore(i)):(e.setStartAfter(i),e.setEndAfter(i)):(e.setStart(i,i.data.length),e.setEnd(i,i.data.length)):o&&(1==o.nodeType?(e.setStartBefore(o),e.setEndBefore(o)):(e.setStart(o,0),e.setEnd(o,0))),w.setRng(e),!0}function u(e,n){var r,i,s,l,c,u;if(!e.collapsed)return e;if(c=e.startContainer,u=e.startOffset,3==c.nodeType)if(n){if(u0)return e;r=t.getNode(c,u),s=x.getParent(r,x.isBlock),i=a(f.getBody(),n,r),l=x.getParent(i,x.isBlock);var d=1===c.nodeType&&u>c.childNodes.length-1;if(!r||!i)return e;if(l&&s!=l)if(n){if(!o(s,l))return e;1==r.nodeType?"BR"==r.nodeName?e.setStartBefore(r):e.setStartAfter(r):e.setStart(r,r.data.length),1==i.nodeType?e.setEnd(i,0):e.setEndBefore(i)}else{if(!o(l,s))return e;1==i.nodeType?"BR"==i.nodeName?e.setStartBefore(i):e.setStartAfter(i):e.setStart(i,i.data.length),1==r.nodeType&&d?e.setEndAfter(r):e.setEndBefore(r)}return e}function d(e){var t=w.getRng();if(t=u(t,e),c(t))return!0}function h(e,t){function n(e,n){return m=Z(n).parents().filter(function(e,t){return!!f.schema.getTextInlineElements()[t.nodeName]}),l=e.cloneNode(!1),m=s.map(m,function(e){return e=e.cloneNode(!1),l.hasChildNodes()?(e.appendChild(l.firstChild),l.appendChild(e)):l.appendChild(e),l.appendChild(e),e}),m.length?(p=x.create("br"),m[0].appendChild(p),x.replace(l,e),t.setStartBefore(p),t.setEndBefore(p),f.selection.setRng(t),p):null}function i(e){return e&&f.schema.getTextBlockElements()[e.tagName]}var o,a,l,c,u,d,h,p,m;if(t.collapsed&&(d=t.startContainer,h=t.startOffset,a=x.getParent(d,x.isBlock),i(a)))if(1==d.nodeType){if(d=d.childNodes[h],d&&"BR"!=d.tagName)return;if(u=e?a.nextSibling:a.previousSibling,x.isEmpty(a)&&i(u)&&x.isEmpty(u)&&n(a,d))return x.remove(u),!0}else if(3==d.nodeType){if(o=r.create(a,d),c=a.cloneNode(!0),d=r.resolve(c,o),e){if(h>=d.data.length)return;d.deleteData(h,1)}else{if(h<=0)return;d.deleteData(h-1,1)}if(x.isEmpty(c))return n(a,d)}}function p(e){var t,n,r;d(e)||(s.each(f.getBody().getElementsByTagName("*"),function(e){"SPAN"==e.tagName&&e.setAttribute("mce-data-marked",1),!e.hasAttribute("data-mce-style")&&e.hasAttribute("style")&&f.dom.setAttrib(e,"style",f.dom.getAttrib(e,"style"))}),t=new E(function(){}),t.observe(f.getDoc(),{childList:!0,attributes:!0,subtree:!0,attributeFilter:["style"]}),f.getDoc().execCommand(e?"ForwardDelete":"Delete",!1,null),n=f.selection.getRng(),r=n.startContainer.parentNode,s.each(t.takeRecords(),function(e){if(x.isChildOf(e.target,f.getBody())){if("style"==e.attributeName){var t=e.target.getAttribute("data-mce-style");t?e.target.setAttribute("style",t):e.target.removeAttribute("style")}s.each(e.addedNodes,function(e){if("SPAN"==e.nodeName&&!e.getAttribute("mce-data-marked")){var t,i;e==r&&(t=n.startOffset,i=e.firstChild),x.remove(e,!0),i&&(n.setStart(i,t),n.setEnd(i,t),f.selection.setRng(n))}})}}),t.disconnect(),s.each(f.dom.select("span[mce-data-marked]"),function(e){e.removeAttribute("mce-data-marked")}))}function b(e){f.undoManager.transact(function(){p(e)})}var C=f.getDoc(),x=f.dom,w=f.selection,E=window.MutationObserver,N,_;E||(N=!0,E=function(){function e(e){var t=e.relatedNode||e.target;n.push({target:t,addedNodes:[t]})}function t(e){var t=e.relatedNode||e.target;n.push({target:t,attributeName:e.attrName})}var n=[],r;this.observe=function(n){r=n,r.addEventListener("DOMSubtreeModified",e,!1),r.addEventListener("DOMNodeInsertedIntoDocument",e,!1),r.addEventListener("DOMNodeInserted",e,!1),r.addEventListener("DOMAttrModified",t,!1)},this.disconnect=function(){r.removeEventListener("DOMSubtreeModified",e,!1),r.removeEventListener("DOMNodeInsertedIntoDocument",e,!1),r.removeEventListener("DOMNodeInserted",e,!1),r.removeEventListener("DOMAttrModified",t,!1)},this.takeRecords=function(){return n}}),f.on("keydown",function(e){var t=e.keyCode==te,n=e.ctrlKey||e.metaKey;if(!m(e)&&(t||e.keyCode==ee)){var r=f.selection.getRng(),i=r.startContainer,o=r.startOffset;if(t&&e.shiftKey)return;if(h(t,r))return void e.preventDefault();if(!n&&r.collapsed&&3==i.nodeType&&(t?o0))return;e.preventDefault(),n&&f.selection.getSel().modify("extend",t?"forward":"backward",e.metaKey?"lineboundary":"word"),p(t)}}),f.on("keypress",function(t){if(!m(t)&&!w.isCollapsed()&&t.charCode>31&&!e.metaKeyPressed(t)){var n,r,i,o,a,s;n=f.selection.getRng(),s=String.fromCharCode(t.charCode),t.preventDefault(),r=Z(n.startContainer).parents().filter(function(e,t){return!!f.schema.getTextInlineElements()[t.nodeName]}),p(!0),r=r.filter(function(e,t){return!Z.contains(f.getBody(),t)}),r.length?(i=x.createFragment(),r.each(function(e,t){t=t.cloneNode(!1),i.hasChildNodes()?(t.appendChild(i.firstChild),i.appendChild(t)):(a=t,i.appendChild(t)),i.appendChild(t)}),a.appendChild(f.getDoc().createTextNode(s)),o=x.getParent(n.startContainer,x.isBlock),x.isEmpty(o)?Z(o).empty().append(i):n.insertNode(i),n.setStart(a.firstChild,1),n.setEnd(a.firstChild,1),f.selection.setRng(n)):f.selection.setContent(s)}}),f.addCommand("Delete",function(){p()}),f.addCommand("ForwardDelete",function(){p(!0)}),N||(f.on("dragstart",function(e){_=w.getRng(),g(e)}),f.on("drop",function(e){if(!m(e)){var n=v(e);n&&(e.preventDefault(),l.setEditorTimeout(f,function(){var r=t.getCaretRangeFromPoint(e.x,e.y,C);_&&(w.setRng(_),_=null,b()),w.setRng(r),y(n.html)}))}}),f.on("cut",function(e){m(e)||!e.clipboardData||f.selection.isCollapsed()||(e.preventDefault(),e.clipboardData.clearData(),e.clipboardData.setData("text/html",f.selection.getContent()),e.clipboardData.setData("text/plain",f.selection.getContent({format:"text"})),l.setEditorTimeout(f,function(){b(!0)}))}))}function C(){function e(e){var t=ne.create("body"),n=e.cloneContents();return t.appendChild(n),re.serializer.serialize(t,{format:"html"})}function n(n){if(!n.setStart){if(n.item)return!1;var r=n.duplicate();return r.moveToElementText(f.getBody()),t.compareRanges(n,r)}var i=e(n),o=ne.createRng();o.selectNode(f.getBody());var a=e(o);return i===a}f.on("keydown",function(e){var t=e.keyCode,r,i;if(!m(e)&&(t==te||t==ee)){if(r=f.selection.isCollapsed(),i=f.getBody(),r&&!ne.isEmpty(i))return;if(!r&&!n(f.selection.getRng()))return;e.preventDefault(),f.setContent(""),i.firstChild&&ne.isBlock(i.firstChild)?f.selection.setCursorLocation(i.firstChild,0):f.selection.setCursorLocation(i,0),f.nodeChanged()}})}function x(){f.shortcuts.add("meta+a",null,"SelectAll")}function w(){f.settings.content_editable||ne.bind(f.getDoc(),"mousedown mouseup",function(e){var t;if(e.target==f.getDoc().documentElement)if(t=re.getRng(),f.getBody().focus(),"mousedown"==e.type){if(c.isCaretContainer(t.startContainer))return;re.placeCaretAt(e.clientX,e.clientY)}else re.setRng(t)})}function E(){f.on("keydown",function(e){if(!m(e)&&e.keyCode===ee){if(!f.getBody().getElementsByTagName("hr").length)return;if(re.isCollapsed()&&0===re.getRng(!0).startOffset){var t=re.getNode(),n=t.previousSibling;if("HR"==t.nodeName)return ne.remove(t),void e.preventDefault();n&&n.nodeName&&"hr"===n.nodeName.toLowerCase()&&(ne.remove(n),e.preventDefault())}}})}function N(){window.Range.prototype.getClientRects||f.on("mousedown",function(e){if(!m(e)&&"HTML"===e.target.nodeName){var t=f.getBody();t.blur(),l.setEditorTimeout(f,function(){t.focus()})}})}function _(){f.on("click",function(e){var t=e.target;/^(IMG|HR)$/.test(t.nodeName)&&"false"!==ne.getContentEditableParent(t)&&(e.preventDefault(),re.getSel().setBaseAndExtent(t,0,t,1),f.nodeChanged()),"A"==t.nodeName&&ne.hasClass(t,"mce-item-anchor")&&(e.preventDefault(),re.select(t))})}function S(){function e(){var e=ne.getAttribs(re.getStart().cloneNode(!1));return function(){var t=re.getStart();t!==f.getBody()&&(ne.setAttrib(t,"style",null),Q(e,function(e){t.setAttributeNode(e.cloneNode(!0))}))}}function t(){return!re.isCollapsed()&&ne.getParent(re.getStart(),ne.isBlock)!=ne.getParent(re.getEnd(),ne.isBlock)}f.on("keypress",function(n){var r;if(!m(n)&&(8==n.keyCode||46==n.keyCode)&&t())return r=e(),f.getDoc().execCommand("delete",!1,null),r(),n.preventDefault(),!1}),ne.bind(f.getDoc(),"cut",function(n){var r;!m(n)&&t()&&(r=e(),l.setEditorTimeout(f,function(){r()}))})}function k(){document.body.setAttribute("role","application")}function T(){f.on("keydown",function(e){if(!m(e)&&e.keyCode===ee&&re.isCollapsed()&&0===re.getRng(!0).startOffset){var t=re.getNode().previousSibling;if(t&&t.nodeName&&"table"===t.nodeName.toLowerCase())return e.preventDefault(),!1}})}function R(){p()>7||(h("RespectVisibilityInDesign",!0),f.contentStyles.push(".mceHideBrInPre pre br {display: none}"),ne.addClass(f.getBody(),"mceHideBrInPre"),oe.addNodeFilter("pre",function(e){for(var t=e.length,n,r,o,a;t--;)for(n=e[t].getAll("br"),r=n.length;r--;)o=n[r],a=o.prev,a&&3===a.type&&"\n"!=a.value.charAt(a.value-1)?a.value+="\n":o.parent.insert(new i("#text",3),o,!0).value="\n"}),ae.addNodeFilter("pre",function(e){for(var t=e.length,n,r,i,o;t--;)for(n=e[t].getAll("br"),r=n.length;r--;)i=n[r],o=i.prev,o&&3==o.type&&(o.value=o.value.replace(/\r?\n$/,""))}))}function A(){ne.bind(f.getBody(),"mouseup",function(){var e,t=re.getNode();"IMG"==t.nodeName&&((e=ne.getStyle(t,"width"))&&(ne.setAttrib(t,"width",e.replace(/[^0-9%]+/g,"")),ne.setStyle(t,"width","")),(e=ne.getStyle(t,"height"))&&(ne.setAttrib(t,"height",e.replace(/[^0-9%]+/g,"")),ne.setStyle(t,"height","")))})}function B(){f.on("keydown",function(t){var n,r,i,o,a;if(!m(t)&&t.keyCode==e.BACKSPACE&&(n=re.getRng(),r=n.startContainer,i=n.startOffset,o=ne.getRoot(),a=r,n.collapsed&&0===i)){for(;a&&a.parentNode&&a.parentNode.firstChild==a&&a.parentNode!=o;)a=a.parentNode;"BLOCKQUOTE"===a.tagName&&(f.formatter.toggle("blockquote",null,a),n=ne.createRng(),n.setStart(r,0),n.setEnd(r,0),re.setRng(n))}})}function D(){function e(){K(),h("StyleWithCSS",!1),h("enableInlineTableEditing",!1),ie.object_resizing||h("enableObjectResizing",!1)}ie.readonly||f.on("BeforeExecCommand MouseDown",e)}function L(){function e(){Q(ne.select("a"),function(e){var t=e.parentNode,n=ne.getRoot();if(t.lastChild===e){for(;t&&!ne.isBlock(t);){if(t.parentNode.lastChild!==t||t===n)return;t=t.parentNode}ne.add(t,"br",{"data-mce-bogus":1})}})}f.on("SetContent ExecCommand",function(t){"setcontent"!=t.type&&"mceInsertLink"!==t.command||e()})}function M(){ie.forced_root_block&&f.on("init",function(){h("DefaultParagraphSeparator",ie.forced_root_block)})}function P(){f.on("keydown",function(e){var t;m(e)||e.keyCode!=ee||(t=f.getDoc().selection.createRange(),t&&t.item&&(e.preventDefault(),f.undoManager.beforeChange(),ne.remove(t.item(0)),f.undoManager.add()))})}function O(){var e;p()>=10&&(e="",Q("p div h1 h2 h3 h4 h5 h6".split(" "),function(t,n){e+=(n>0?",":"")+t+":empty"}),f.contentStyles.push(e+"{padding-right: 1px !important}"))}function H(){p()<9&&(oe.addNodeFilter("noscript",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.firstChild,r&&n.attr("data-mce-innertext",r.value)}),ae.addNodeFilter("noscript",function(e){for(var t=e.length,n,r,a;t--;)n=e[t],r=e[t].firstChild,r?r.value=o.decode(r.value):(a=n.attributes.map["data-mce-innertext"],a&&(n.attr("data-mce-innertext",null),r=new i("#text",3),r.value=a,r.raw=!0,n.append(r)))}))}function I(){function e(e,t){var n=i.createTextRange();try{n.moveToPoint(e,t)}catch(r){n=null}return n}function t(t){var r;t.button?(r=e(t.x,t.y),r&&(r.compareEndPoints("StartToStart",a)>0?r.setEndPoint("StartToStart",a):r.setEndPoint("EndToEnd",a),r.select())):n()}function n(){var e=r.selection.createRange();a&&!e.item&&0===e.compareEndPoints("StartToEnd",e)&&a.select(),ne.unbind(r,"mouseup",n),ne.unbind(r,"mousemove",t),a=o=0}var r=ne.doc,i=r.body,o,a,s;r.documentElement.unselectable=!0,ne.bind(r,"mousedown contextmenu",function(i){if("HTML"===i.target.nodeName){if(o&&n(),s=r.documentElement,s.scrollHeight>s.clientHeight)return;o=1,a=e(i.x,i.y),a&&(ne.bind(r,"mouseup",n),ne.bind(r,"mousemove",t),ne.getRoot().focus(),a.select())}})}function F(){f.on("keyup focusin mouseup",function(t){65==t.keyCode&&e.metaKeyPressed(t)||re.normalize()},!0)}function z(){f.contentStyles.push("img:-moz-broken {-moz-force-broken-image-icon:1;min-width:24px;min-height:24px}")}function U(){f.inline||f.on("keydown",function(){document.activeElement==document.body&&f.getWin().focus()})}function W(){f.inline||(f.contentStyles.push("body {min-height: 150px}"),f.on("click",function(e){var t;if("HTML"==e.target.nodeName){if(a.ie>11)return void f.getBody().focus();t=f.selection.getRng(),f.getBody().focus(),f.selection.setRng(t),f.selection.normalize(),f.nodeChanged()}}))}function V(){a.mac&&f.on("keydown",function(t){!e.metaKeyPressed(t)||t.shiftKey||37!=t.keyCode&&39!=t.keyCode||(t.preventDefault(),f.selection.getSel().modify("move",37==t.keyCode?"backward":"forward","lineboundary"))})}function $(){h("AutoUrlDetect",!1)}function q(){f.on("click",function(e){var t=e.target;do if("A"===t.tagName)return void e.preventDefault();while(t=t.parentNode)}),f.contentStyles.push(".mce-content-body {-webkit-touch-callout: none}")}function j(){f.on("init",function(){f.dom.bind(f.getBody(),"submit",function(e){e.preventDefault()})})}function Y(){oe.addNodeFilter("br",function(e){for(var t=e.length;t--;)"Apple-interchange-newline"==e[t].attr("class")&&e[t].remove()})}function X(){f.on("dragstart",function(e){g(e)}),f.on("drop",function(e){if(!m(e)){var n=v(e);if(n&&n.id!=f.id){e.preventDefault();var r=t.getCaretRangeFromPoint(e.x,e.y,f.getDoc());re.setRng(r),y(n.html)}}})}function K(){}function G(){var e;return se?(e=f.selection.getSel(),!e||!e.rangeCount||0===e.rangeCount):0}function J(){function t(e){var t=new d(e.getBody()),n=e.selection.getRng(),r=u.fromRangeStart(n),i=u.fromRangeEnd(n);return!e.selection.isCollapsed()&&!t.prev(r)&&!t.next(i)}f.on("keypress",function(n){!m(n)&&!re.isCollapsed()&&n.charCode>31&&!e.metaKeyPressed(n)&&t(f)&&(n.preventDefault(),f.setContent(String.fromCharCode(n.charCode)),f.selection.select(f.getBody(),!0),f.selection.collapse(!1),f.nodeChanged())}),f.on("keydown",function(e){var n=e.keyCode;m(e)||n!=te&&n!=ee||t(f)&&(e.preventDefault(),f.setContent(""),f.nodeChanged())})}var Q=s.each,Z=f.$,ee=e.BACKSPACE,te=e.DELETE,ne=f.dom,re=f.selection,ie=f.settings,oe=f.parser,ae=f.serializer,se=a.gecko,le=a.ie,ce=a.webkit,ue="data:text/mce-internal,",de=le?"Text":"URL";return B(),C(),a.windowsPhone||F(),ce&&(J(),b(),w(),_(),M(),j(),T(),Y(),a.iOS?(U(),W(),q()):x()),le&&a.ie<11&&(E(),k(),R(),A(),P(),O(),H(),I()),a.ie>=11&&(W(),T()),a.ie&&(x(),$(),X()),se&&(J(),E(),N(),S(),D(),L(),z(),V(),T()),{refreshContentEditable:K,isHidden:G}}}),r(Ue,[he,w,m],function(e,t,n){function r(e,t){return"selectionchange"==t?e.getDoc():!e.inline&&/^mouse|touch|click|contextmenu|drop|dragover|dragend/.test(t)?e.getDoc().documentElement:e.settings.event_root?(e.eventRoot||(e.eventRoot=o.select(e.settings.event_root)[0]),e.eventRoot):e.getBody()}function i(e,t){function n(e){return!e.hidden&&!e.readonly}var i=r(e,t),s;if(e.delegates||(e.delegates={}),!e.delegates[t])if(e.settings.event_root){if(a||(a={},e.editorManager.on("removeEditor",function(){var t;if(!e.editorManager.activeEditor&&a){for(t in a)e.dom.unbind(r(e,t));a=null}})),a[t])return;s=function(r){for(var i=r.target,a=e.editorManager.editors,s=a.length;s--;){var l=a[s].getBody();(l===i||o.isChildOf(i,l))&&n(a[s])&&a[s].fire(t,r)}},a[t]=s,o.bind(i,t,s)}else s=function(r){n(e)&&e.fire(t,r)},o.bind(i,t,s),e.delegates[t]=s}var o=t.DOM,a,s={bindPendingEventDelegates:function(){var e=this;n.each(e._pendingNativeEvents,function(t){i(e,t)})},toggleNativeEvent:function(e,t){var n=this;"focus"!=e&&"blur"!=e&&(t?n.initialized?i(n,e):n._pendingNativeEvents?n._pendingNativeEvents.push(e):n._pendingNativeEvents=[e]:n.initialized&&(n.dom.unbind(r(n,e),e,n.delegates[e]),delete n.delegates[e]))},unbindAllNativeEvents:function(){var e=this,t;if(e.delegates){for(t in e.delegates)e.dom.unbind(r(e,t),t,e.delegates[t]);delete e.delegates}e.inline||(e.getBody().onload=null,e.dom.unbind(e.getWin()),e.dom.unbind(e.getDoc())),e.dom.unbind(e.getBody()),e.dom.unbind(e.getContainer())}};return s=n.extend({},e,s)}),r(We,[],function(){function e(e,t,n){try{e.getDoc().execCommand(t,!1,n)}catch(r){}}function t(e){var t,n;return t=e.getBody(),n=function(t){e.dom.getParents(t.target,"a").length>0&&t.preventDefault()},e.dom.bind(t,"click",n),{unbind:function(){e.dom.unbind(t,"click",n)}}}function n(n,r){n._clickBlocker&&(n._clickBlocker.unbind(),n._clickBlocker=null),r?(n._clickBlocker=t(n),n.selection.controlSelection.hideResizeRect(),n.readonly=!0,n.getBody().contentEditable=!1):(n.readonly=!1,n.getBody().contentEditable=!0,e(n,"StyleWithCSS",!1),e(n,"enableInlineTableEditing",!1),e(n,"enableObjectResizing",!1),n.focus(),n.nodeChanged())}function r(e,t){var r=e.readonly?"readonly":"design";t!=r&&(e.initialized?n(e,"readonly"==t):e.on("init",function(){n(e,"readonly"==t)}),e.fire("SwitchMode",{mode:t}))}return{setMode:r}}),r(Ve,[m,d],function(e,t){var n=e.each,r=e.explode,i={f9:120,f10:121,f11:122},o=e.makeMap("alt,ctrl,shift,meta,access");return function(a){function s(e){var a,s,l={};n(r(e,"+"),function(e){e in o?l[e]=!0:/^[0-9]{2,}$/.test(e)?l.keyCode=parseInt(e,10):(l.charCode=e.charCodeAt(0),l.keyCode=i[e]||e.toUpperCase().charCodeAt(0))}),a=[l.keyCode];for(s in o)l[s]?a.push(s):l[s]=!1;return l.id=a.join(","),l.access&&(l.alt=!0,t.mac?l.ctrl=!0:l.shift=!0),l.meta&&(t.mac?l.meta=!0:(l.ctrl=!0,l.meta=!1)),l}function l(t,n,i,o){var l;return l=e.map(r(t,">"),s),l[l.length-1]=e.extend(l[l.length-1],{func:i,scope:o||a}),e.extend(l[0],{desc:a.translate(n),subpatterns:l.slice(1)})}function c(e){return e.altKey||e.ctrlKey||e.metaKey}function u(e){return"keydown"===e.type&&e.keyCode>=112&&e.keyCode<=123}function d(e,t){return!!t&&(t.ctrl==e.ctrlKey&&t.meta==e.metaKey&&(t.alt==e.altKey&&t.shift==e.shiftKey&&(!!(e.keyCode==t.keyCode||e.charCode&&e.charCode==t.charCode)&&(e.preventDefault(),!0))))}function f(e){return e.func?e.func.call(e.scope):null}var h=this,p={},m=[];a.on("keyup keypress keydown",function(e){!c(e)&&!u(e)||e.isDefaultPrevented()||(n(p,function(t){if(d(e,t))return m=t.subpatterns.slice(0),"keydown"==e.type&&f(t),!0}),d(e,m[0])&&(1===m.length&&"keydown"==e.type&&f(m[0]),m.shift()))}),h.add=function(t,i,o,s){var c;return c=o,"string"==typeof o?o=function(){a.execCommand(c,!1,null)}:e.isArray(c)&&(o=function(){a.execCommand(c[0],c[1],c[2])}),n(r(e.trim(t.toLowerCase())),function(e){var t=l(e,i,o,s);p[t.id]=t}),!0},h.remove=function(e){var t=l(e);return!!p[t.id]&&(delete p[t.id],!0)}}}),r($e,[c,m,z],function(e,t,n){return function(r,i){function o(e){var t,n;return n={"image/jpeg":"jpg","image/jpg":"jpg","image/gif":"gif","image/png":"png"},t=n[e.blob().type.toLowerCase()]||"dat",e.filename()+"."+t}function a(e,t){return e?e.replace(/\/$/,"")+"/"+t.replace(/^\//,""):t}function s(e){return{id:e.id,blob:e.blob,base64:e.base64,filename:n.constant(o(e))}}function l(e,t,n,r){var o,s;o=new XMLHttpRequest,o.open("POST",i.url),o.withCredentials=i.credentials,o.upload.onprogress=function(e){r(e.loaded/e.total*100)},o.onerror=function(){n("Image upload failed due to a XHR Transport error. Code: "+o.status)},o.onload=function(){var e;return 200!=o.status?void n("HTTP Error: "+o.status):(e=JSON.parse(o.responseText),e&&"string"==typeof e.location?void t(a(i.basePath,e.location)):void n("Invalid JSON: "+o.responseText))},s=new FormData,s.append("file",e.blob(),e.filename()),o.send(s)}function c(){return new e(function(e){e([])})}function u(e,t){return{url:t,blobInfo:e,status:!0}}function d(e,t){return{url:"",blobInfo:e,status:!1,error:t}}function f(e,n){t.each(y[e],function(e){e(n)}),delete y[e]}function h(t,n,i){return r.markPending(t.blobUri()),new e(function(e){var o,a,l=function(){};try{var c=function(){o&&(o.close(),a=l)},h=function(n){c(),r.markUploaded(t.blobUri(),n),f(t.blobUri(),u(t,n)),e(u(t,n))},p=function(){c(),r.removeFailed(t.blobUri()),f(t.blobUri(),d(t,p)),e(d(t,p))};a=function(e){e<0||e>100||(o||(o=i()),o.progressBar.value(e))},n(s(t),h,p,a)}catch(m){e(d(t,m.message))}})}function p(e){return e===l}function m(t){var n=t.blobUri();return new e(function(e){y[n]=y[n]||[],y[n].push(e)})}function g(n,o){return n=t.grep(n,function(e){return!r.isUploaded(e.blobUri())}),e.all(t.map(n,function(e){return r.isPending(e.blobUri())?m(e):h(e,i.handler,o)}))}function v(e,t){return!i.url&&p(i.handler)?c():g(e,t)}var y={};return i=t.extend({credentials:!1,handler:l},i),{upload:v}}}),r(qe,[c],function(e){function t(t){return new e(function(e){var n=new XMLHttpRequest;n.open("GET",t,!0),n.responseType="blob",n.onload=function(){200==this.status&&e(this.response)},n.send()})}function n(e){var t,n;return e=decodeURIComponent(e).split(","),n=/data:([^;]+)/.exec(e[0]),n&&(t=n[1]),{type:t,data:e[1]}}function r(t){return new e(function(e){var r,i,o;t=n(t);try{r=atob(t.data)}catch(a){return void e(new Blob([]))}for(i=new Uint8Array(r.length),o=0;o0&&(n&&(l*=-1),r.left+=l,r.right+=l),r}function l(){var n,r,o,a,s;for(n=i("*[contentEditable=false]",t),a=0;a').css(l).appendTo(t),o&&m.addClass("mce-visual-caret-before"),d(),c=a.ownerDocument.createRange(),c.setStart(g,0),c.setEnd(g,0),c):(g=e.insertInline(a,o),c=a.ownerDocument.createRange(),s(g.nextSibling)?(c.setStart(g,0),c.setEnd(g,0)):(c.setStart(g,1),c.setEnd(g,1)),c)}function u(){l(),g&&(e.remove(g),g=null),m&&(m.remove(),m=null),clearInterval(p)}function d(){p=a.setInterval(function(){i("div.mce-visual-caret",t).toggleClass("mce-visual-caret-hidden")},500)}function f(){a.clearInterval(p)}function h(){return".mce-visual-caret {position: absolute;background-color: black;background-color: currentcolor;}.mce-visual-caret-hidden {display: none;}*[data-mce-caret] {position: absolute;left: -1000px;right: auto;top: 0;margin: 0;padding: 0;}"}var p,m,g;return{show:c,hide:u,getCss:h,destroy:f}}}),r(Je,[p,_,W],function(e,t,n){function r(i){function o(t){return e.map(t,function(e){return e=n.clone(e),e.node=i,e})}if(e.isArray(i))return e.reduce(i,function(e,t){return e.concat(r(t))},[]);if(t.isElement(i))return o(i.getClientRects());if(t.isText(i)){var a=i.ownerDocument.createRange();return a.setStart(i,0),a.setEnd(i,i.data.length),o(a.getClientRects())}}return{getClientRects:r}}),r(Qe,[z,p,Je,U,ie,oe,$,W],function(e,t,n,r,i,o,a,s){function l(e,t,n,o){for(;o=i.findNode(o,e,r.isEditableCaretCandidate,t);)if(n(o))return}function c(e,r,i,o,a,s){function c(o){var s,l,c;for(c=n.getClientRects(o),e==-1&&(c=c.reverse()),s=0;s0&&r(l,t.last(f))&&u++,l.line=u,a(l))return!0;f.push(l)}}var u=0,d,f=[],h;return(h=t.last(s.getClientRects()))?(d=s.getNode(),c(d),l(e,o,c,d),f):f}function u(e,t){return t.line>e}function d(e,t){return t.line===e}function f(e,n,r,i){function l(n){return 1==e?t.last(n.getClientRects()):t.last(n.getClientRects())}var c=new o(n),u,d,f,h,p=[],m=0,g,v;1==e?(u=c.next,d=s.isBelow,f=s.isAbove,h=a.after(i)):(u=c.prev,d=s.isAbove,f=s.isBelow,h=a.before(i)),v=l(h);do if(h.isVisible()&&(g=l(h),!f(g,v))){if(p.length>0&&d(g,t.last(p))&&m++,g=s.clone(g),g.position=h,g.line=m,r(g))return p;p.push(g)}while(h=u(h));return p}var h=e.curry,p=h(c,-1,s.isAbove,s.isBelow),m=h(c,1,s.isBelow,s.isAbove);return{upUntil:p,downUntil:m,positionsUntil:f,isAboveLine:h(u),isLine:h(d)}}),r(Ze,[z,p,_,Je,W,ie,U],function(e,t,n,r,i,o,a){function s(e,t){return Math.abs(e.left-t)}function l(e,t){return Math.abs(e.right-t)}function c(e,n){function r(e,t){return e>=t.left&&e<=t.right}return t.reduce(e,function(e,t){var i,o;return i=Math.min(s(e,n),l(e,n)),o=Math.min(s(t,n),l(t,n)),r(n,t)?t:r(n,e)?e:o==i&&m(t.node)?t:o=e.top&&i<=e.bottom}),a=c(o,n),a&&(a=c(d(e,a),n),a&&m(a.node))?h(a,n):null}var m=n.isContentEditableFalse,g=o.findNode,v=e.curry;return{findClosestClientRect:c,findLineNodeRects:d,closestCaret:p}}),r(et,[],function(){var e=function(e){var t,n,r,i;return i=e.getBoundingClientRect(),t=e.ownerDocument,n=t.documentElement,r=t.defaultView,{top:i.top+r.pageYOffset-n.clientTop,left:i.left+r.pageXOffset-n.clientLeft}},t=function(t){return t.inline?e(t.getBody()):{left:0,top:0}},n=function(e){var t=e.getBody();return e.inline?{left:t.scrollLeft,top:t.scrollTop}:{left:0,top:0}},r=function(e){var t=e.getBody(),n=e.getDoc().documentElement,r={left:t.scrollLeft,top:t.scrollTop},i={left:t.scrollLeft||n.scrollLeft,top:t.scrollTop||n.scrollTop};return e.inline?r:i},i=function(t,n){if(n.target.ownerDocument!==t.getDoc()){var i=e(t.getContentAreaContainer()),o=r(t);return{left:n.pageX-i.left+o.left,top:n.pageY-i.top+o.top}}return{left:n.pageX,top:n.pageY}},o=function(e,t,n){return{pageX:n.left-e.left+t.left,pageY:n.top-e.top+t.top}},a=function(e,r){return o(t(e),n(e),i(e,r))};return{calc:a}}),r(tt,[_,p,z,u,w,et],function(e,t,n,r,i,o){var a=e.isContentEditableFalse,s=e.isContentEditableTrue,l=function(e){return a(e)},c=function(e,t,n){return t!==n&&!e.dom.isChildOf(t,n)&&!a(t)},u=function(e){var t=e.cloneNode(!0);return t.removeAttribute("data-mce-selected"),t},d=function(e,t,n,r){var i=t.cloneNode(!0);e.dom.setStyles(i,{width:n,height:r}),e.dom.setAttrib(i,"data-mce-selected",null);var o=e.dom.create("div",{"class":"mce-drag-container","data-mce-bogus":"all",unselectable:"on",contenteditable:"false"});return e.dom.setStyles(o,{position:"absolute",opacity:.5,overflow:"hidden",border:0,padding:0,margin:0,width:n,height:r}),e.dom.setStyles(i,{margin:0,boxSizing:"border-box"}),o.appendChild(i),o},f=function(e,t){e.parentNode!==t&&t.appendChild(e)},h=function(e,t,n,r,i,o){var a=0,s=0;e.style.left=t.pageX+"px",e.style.top=t.pageY+"px",t.pageX+n>i&&(a=t.pageX+n-i),t.pageY+r>o&&(s=t.pageY+r-o),e.style.width=n-a+"px",e.style.height=r-s+"px"},p=function(e){e&&e.parentNode&&e.parentNode.removeChild(e)},m=function(e){return 0===e.button},g=function(e){return e.element},v=function(e,t){return{pageX:t.pageX-e.relX,pageY:t.pageY+5}},y=function(e,r){return function(i){if(m(i)){var o=t.find(r.dom.getParents(i.target),n.or(a,s));if(l(o)){var c=r.dom.getPos(o),u=r.getBody(),f=r.getDoc().documentElement;e.element=o,e.screenX=i.screenX,e.screenY=i.screenY,e.maxX=(r.inline?u.scrollWidth:f.offsetWidth)-2,e.maxY=(r.inline?u.scrollHeight:f.offsetHeight)-2,e.relX=i.pageX-c.x,e.relY=i.pageY-c.y,e.width=o.offsetWidth,e.height=o.offsetHeight,e.ghost=d(r,o,e.width,e.height)}}}},b=function(e,t){var n=r.throttle(function(e,n){t._selectionOverrides.hideFakeCaret(),t.selection.placeCaretAt(e,n)},0);return function(r){var i=Math.max(Math.abs(r.screenX-e.screenX),Math.abs(r.screenY-e.screenY));if(g(e)&&!e.dragging&&i>10){var a=t.fire("dragstart",{target:e.element});if(a.isDefaultPrevented())return;e.dragging=!0,t.focus()}if(e.dragging){var s=v(e,o.calc(t,r));f(e.ghost,t.getBody()),h(e.ghost,s,e.width,e.height,e.maxX,e.maxY),n(r.clientX,r.clientY)}}},C=function(e){var t=e.getSel().getRangeAt(0),n=t.startContainer;return 3===n.nodeType?n.parentNode:n},x=function(e,t){return function(n){if(e.dragging&&c(t,C(t.selection),e.element)){var r=u(e.element),i=t.fire("drop",{targetClone:r,clientX:n.clientX,clientY:n.clientY});i.isDefaultPrevented()||(r=i.targetClone,t.undoManager.transact(function(){p(e.element),t.insertContent(t.dom.getOuterHTML(r)),t._selectionOverrides.hideFakeCaret()}))}E(e)}},w=function(e,t){return function(){E(e),e.dragging&&t.fire("dragend")}},E=function(e){e.dragging=!1,e.element=null,p(e.ghost)},N=function(e){var t={},n,r,o,a,s,l;n=i.DOM,l=document,r=y(t,e),o=b(t,e),a=x(t,e),s=w(t,e),e.on("mousedown",r),e.on("mousemove",o),e.on("mouseup",a),n.bind(l,"mousemove",o),n.bind(l,"mouseup",s),e.on("remove",function(){n.unbind(l,"mousemove",o),n.unbind(l,"mouseup",s)})},_=function(e){e.on("drop",function(t){var n="undefined"!=typeof t.clientX?e.getDoc().elementFromPoint(t.clientX,t.clientY):null;(a(n)||a(e.dom.getContentEditableParent(n)))&&t.preventDefault()})},S=function(e){N(e),_(e)};return{init:S}}),r(nt,[d,oe,$,k,ie,Ge,Qe,Ze,_,T,W,I,z,p,u,tt],function(e,t,n,r,i,o,a,s,l,c,u,d,f,h,p,m){function g(e,t){for(;t=e(t);)if(t.isVisible())return t;return t}function v(c){function v(e){return c.dom.hasClass(e,"mce-offscreen-selection")}function _(){var e=c.dom.get(le);return e?e.getElementsByTagName("*")[0]:e}function S(e){return c.dom.isBlock(e)}function k(e){e&&c.selection.setRng(e)}function T(){return c.selection.getRng()}function R(e,t){c.selection.scrollIntoView(e,t)}function A(e,t,n){var r;return r=c.fire("ShowCaret",{target:t,direction:e,before:n}),r.isDefaultPrevented()?null:(R(t,e===-1),se.show(n,t))}function B(e){var t;return t=c.fire("BeforeObjectSelected",{target:e}),t.isDefaultPrevented()?null:D(e)}function D(e){var t=e.ownerDocument.createRange();return t.selectNode(e),t}function L(e,t){var n=i.isInSameBlock(e,t);return!(n||!l.isBr(e.getNode()))||n}function M(e,t){return t=i.normalizeRange(e,re,t),e==-1?n.fromRangeStart(t):n.fromRangeEnd(t)}function P(e){return r.isCaretContainerBlock(e.startContainer)}function O(e,t,n,r){var i,o,a,s;return!r.collapsed&&(i=N(r),C(i))?A(e,i,e==-1):(s=P(r),o=M(e,r),n(o)?B(o.getNode(e==-1)):(o=t(o))?n(o)?A(e,o.getNode(e==-1),1==e):(a=t(o),n(a)&&L(o,a)?A(e,a.getNode(e==-1),1==e):s?$(o.toRange()):null):s?r:null)}function H(e,t,n){var r,i,o,l,c,u,d,f,p;if(p=N(n),r=M(e,n),i=t(re,a.isAboveLine(1),r),o=h.filter(i,a.isLine(1)),c=h.last(r.getClientRects()),E(r)&&(p=r.getNode()),w(r)&&(p=r.getNode(!0)),!c)return null;if(u=c.left,l=s.findClosestClientRect(o,u),l&&C(l.node))return d=Math.abs(u-l.left),f=Math.abs(u-l.right),A(e,l.node,d=11)&&(t.innerHTML='
'),t}var o,a,s;if(r.collapsed&&c.settings.forced_root_block){if(o=c.dom.getParent(r.startContainer,"PRE"),!o)return;a=1==t?oe(n.fromRangeStart(r)):ae(n.fromRangeStart(r)),a||(s=i(),1==t?c.$(o).after(s):c.$(o).before(s),c.selection.select(s,!0),c.selection.collapse())}}function F(e,t,n,r){var i;return(i=O(e,t,n,r))?i:(i=I(e,r),i?i:null)}function z(e,t,n){var r;return(r=H(e,t,n))?r:(r=I(e,n),r?r:null)}function U(){return ue("*[data-mce-caret]")[0]}function W(e){e.hasAttribute("data-mce-caret")&&(r.showCaretContainerBlock(e),k(T()),R(e[0]))}function V(e){var t,r;return e=i.normalizeRange(1,re,e),t=n.fromRangeStart(e),C(t.getNode())?A(1,t.getNode(),!t.isAtEnd()):C(t.getNode(!0))?A(1,t.getNode(!0),!1):(r=c.dom.getParent(t.getNode(),f.or(C,b)),C(r)?A(1,r,!1):null)}function $(e){var t;return e&&e.collapsed?(t=V(e),t?t:e):e}function q(e){var t,i,o,a;return C(e)?(C(e.previousSibling)&&(o=e.previousSibling),i=ae(n.before(e)),i||(t=oe(n.after(e))),t&&x(t.getNode())&&(a=t.getNode()),r.remove(e.previousSibling),r.remove(e.nextSibling),c.dom.remove(e),c.dom.isEmpty(c.getBody())?(c.setContent(""),void c.focus()):o?n.after(o).toRange():a?n.before(a).toRange():i?i.toRange():t?t.toRange():null):null}function j(e){var t=c.schema.getTextBlockElements();return e.nodeName in t}function Y(e){return c.dom.isEmpty(e)}function X(e,t,r){var i=c.dom,o,a,s,l;if(o=i.getParent(t.getNode(),i.isBlock),a=i.getParent(r.getNode(),i.isBlock),e===-1){if(l=r.getNode(!0),w(r)&&S(l))return j(o)?(Y(o)&&i.remove(o),n.after(l).toRange()):q(r.getNode(!0))}else if(l=t.getNode(),E(t)&&S(l))return j(a)?(Y(a)&&i.remove(a),n.before(l).toRange()):q(t.getNode());if(o===a||!j(o)||!j(a))return null;for(;s=o.firstChild;)a.appendChild(s);return c.dom.remove(o),r.toRange()}function K(e,t,n,i){var o,a,s,l;return!i.collapsed&&(o=N(i),C(o))?$(q(o)):(a=M(e,i),n(a)&&r.isCaretContainerBlock(i.startContainer)?(l=e==-1?ie.prev(a):ie.next(a),l?$(l.toRange()):i):t(a)?$(q(a.getNode(e==-1))):(s=e==-1?ie.prev(a):ie.next(a),t(s)?e===-1?X(e,a,s):X(e,s,a):void 0))}function G(){function i(e,t){var n=t(T());n&&!e.isDefaultPrevented()&&(e.preventDefault(),k(n))}function o(e){for(var t=c.getBody();e&&e!=t;){if(b(e)||C(e))return e;e=e.parentNode}return null}function l(e,t,n){return!n.collapsed&&h.reduce(n.getClientRects(),function(n,r){return n||u.containsXY(r,e,t)},!1)}function f(e){var t=!1;e.on("touchstart",function(){t=!1}),e.on("touchmove",function(){t=!0}),e.on("touchend",function(e){var n=o(e.target);C(n)&&(t||(e.preventDefault(),Z(B(n))))})}function g(){var e,t=o(c.selection.getNode());b(t)&&S(t)&&c.dom.isEmpty(t)&&(e=c.dom.create("br",{"data-mce-bogus":"1"}),c.$(t).empty().append(e),c.selection.setRng(n.before(e).toRange()))}function x(e){var t=U();if(t)return"compositionstart"==e.type?(e.preventDefault(),e.stopPropagation(),void W(t)):void(r.hasContent(t)&&W(t))}function N(e){var t;switch(e.keyCode){case d.DELETE:t=g();break;case d.BACKSPACE:t=g()}t&&e.preventDefault()}var R=y(F,1,oe,E),D=y(F,-1,ae,w),L=y(K,1,E,w),M=y(K,-1,w,E),P=y(z,-1,a.upUntil),O=y(z,1,a.downUntil);c.on("mouseup",function(){var e=T();e.collapsed&&k(V(e))}),c.on("click",function(e){var t;t=o(e.target),t&&(C(t)&&(e.preventDefault(),c.focus()),b(t)&&c.dom.isChildOf(t,c.selection.getNode())&&ee())}),c.on("blur NewBlock",function(){ee(),ne()});var H=function(e){var r=new t(e);if(!e.firstChild)return!1;var i=n.before(e.firstChild),o=r.next(i);return o&&!E(o)&&!w(o)},I=function(e,t){var n=c.dom.getParent(e,c.dom.isBlock),r=c.dom.getParent(t,c.dom.isBlock);return n===r},j=function(e){return!(e.keyCode>=112&&e.keyCode<=123)},Y=function(e,t){var n=c.dom.getParent(e,c.dom.isBlock),r=c.dom.getParent(t,c.dom.isBlock);return n&&!I(n,r)&&H(n)};f(c),c.on("mousedown",function(e){var t;if(t=o(e.target))C(t)?(e.preventDefault(),Z(B(t))):l(e.clientX,e.clientY,c.selection.getRng())||c.selection.placeCaretAt(e.clientX,e.clientY);else{ee(),ne();var n=s.closestCaret(re,e.clientX,e.clientY);n&&(Y(e.target,n.node)||(e.preventDefault(),c.getBody().focus(),k(A(1,n.node,n.before))))}}),c.on("keydown",function(e){if(!d.modifierPressed(e))switch(e.keyCode){case d.RIGHT:i(e,R);break;case d.DOWN:i(e,O);break;case d.LEFT:i(e,D);break;case d.UP:i(e,P);break;case d.DELETE:i(e,L);break;case d.BACKSPACE:i(e,M);break;default:C(c.selection.getNode())&&j(e)&&e.preventDefault()}}),c.on("keyup compositionstart",function(e){x(e),N(e)},!0),c.on("cut",function(){var e=c.selection.getNode();C(e)&&p.setEditorTimeout(c,function(){k($(q(e)))})}),c.on("getSelectionRange",function(e){var t=e.range;if(ce){if(!ce.parentNode)return void(ce=null);t=t.cloneRange(),t.selectNode(ce),e.range=t}}),c.on("setSelectionRange",function(e){var t;t=Z(e.range),t&&(e.range=t)}),c.on("AfterSetSelectionRange",function(e){var t=e.range;Q(t)||ne(),v(t.startContainer.parentNode)||ee()}),c.on("focus",function(){p.setEditorTimeout(c,function(){c.selection.setRng($(c.selection.getRng()))},0)}),c.on("copy",function(t){var n=t.clipboardData;if(!t.isDefaultPrevented()&&t.clipboardData&&!e.ie){var r=_();r&&(t.preventDefault(),n.clearData(),n.setData("text/html",r.outerHTML),n.setData("text/plain",r.outerText))}}),m.init(c)}function J(){var e=c.contentStyles,t=".mce-content-body";e.push(se.getCss()),e.push(t+" .mce-offscreen-selection {position: absolute;left: -9999999999px;max-width: 1000000px;}"+t+" *[contentEditable=false] {cursor: default;}"+t+" *[contentEditable=true] {cursor: text;}")}function Q(e){return r.isCaretContainer(e.startContainer)||r.isCaretContainer(e.endContainer)}function Z(t){var n,r=c.$,i=c.dom,o,a,s,l,u,d,f,h,p;if(!t)return null;if(t.collapsed){if(!Q(t)){if(f=M(1,t),C(f.getNode()))return A(1,f.getNode(),!f.isAtEnd());if(C(f.getNode(!0)))return A(1,f.getNode(!0),!1)}return null}return s=t.startContainer,l=t.startOffset,u=t.endOffset,3==s.nodeType&&0==l&&C(s.parentNode)&&(s=s.parentNode,l=i.nodeIndex(s),s=s.parentNode),1!=s.nodeType?null:(u==l+1&&(n=s.childNodes[l]),C(n)?(h=p=n.cloneNode(!0),d=c.fire("ObjectSelected",{target:n,targetClone:h}),d.isDefaultPrevented()?null:(h=d.targetClone,o=r("#"+le),0===o.length&&(o=r('
').attr("id",le),o.appendTo(c.getBody())),t=c.dom.createRng(),h===p&&e.ie?(o.empty().append('

\xa0

').append(h),t.setStartAfter(o[0].firstChild.firstChild),t.setEndAfter(h)):(o.empty().append("\xa0").append(h).append("\xa0"),t.setStart(o[0].firstChild,1),t.setEnd(o[0].lastChild,0)),o.css({top:i.getPos(n,c.getBody()).y}),o[0].focus(),a=c.selection.getSel(),a.removeAllRanges(),a.addRange(t),c.$("*[data-mce-selected]").removeAttr("data-mce-selected"),n.setAttribute("data-mce-selected",1),ce=n,t)):null)}function ee(){ce&&(ce.removeAttribute("data-mce-selected"),c.$("#"+le).remove(),ce=null)}function te(){se.destroy(),ce=null}function ne(){se.hide()}var re=c.getBody(),ie=new t(re),oe=y(g,ie.next),ae=y(g,ie.prev),se=new o(c.getBody(),S),le="sel-"+c.dom.uniqueId(),ce,ue=c.$;return e.ceFalse&&(G(),J()),{showBlockCaretContainer:W,hideFakeCaret:ne,destroy:te}}var y=f.curry,b=l.isContentEditableTrue,C=l.isContentEditableFalse,x=l.isElement,w=i.isAfterContentEditableFalse,E=i.isBeforeContentEditableFalse,N=c.getSelectedNode;return v}),r(rt,[],function(){var e=0,t=function(){var e=function(){return Math.round(4294967295*Math.random()).toString(36)},t=(new Date).getTime();return"s"+t.toString(36)+e()+e()+e()},n=function(n){return n+e++ +t()};return{uuid:n}}),r(it,[],function(){var e=function(e,t,n){var r=e.sidebars?e.sidebars:[];r.push({name:t,settings:n}),e.sidebars=r};return{add:e}}),r(ot,[w,g,N,R,A,O,P,Y,J,te,ne,re,le,ce,E,f,Le,Ie,B,L,ze,d,m,u,Ue,We,Ve,Ke,nt,rt,it],function(e,n,r,i,o,a,s,l,c,u,d,f,h,p,m,g,v,y,b,C,x,w,E,N,_,S,k,T,R,A,B){function D(e,t,i){var o=this,a,s,l;a=o.documentBaseUrl=i.documentBaseURL,s=i.baseURI,l=i.defaultSettings,t=O({id:e,theme:"modern",delta_width:0,delta_height:0,popup_css:"",plugins:"",document_base_url:a,add_form_submit_trigger:!0,submit_patch:!0,add_unload_trigger:!0,convert_urls:!0,relative_urls:!0,remove_script_host:!0,object_resizing:!0,doctype:"",visual:!0,font_size_style_values:"xx-small,x-small,small,medium,large,x-large,xx-large",font_size_legacy_values:"xx-small,small,medium,large,x-large,xx-large,300%",forced_root_block:"p",hidden_input:!0,padd_empty_editor:!0,render_ui:!0,indentation:"30px",inline_styles:!0,convert_fonts_to_spans:!0,indent:"simple",indent_before:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,figcaption,option,optgroup,datalist",indent_after:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,figcaption,option,optgroup,datalist",validate:!0,entity_encoding:"named",url_converter:o.convertURL,url_converter_scope:o,ie7_compat:!0},l,t),l&&l.external_plugins&&t.external_plugins&&(t.external_plugins=O({},l.external_plugins,t.external_plugins)),o.settings=t,r.language=t.language||"en",r.languageLoad=t.language_load,r.baseURL=i.baseURL,o.id=t.id=e,o.setDirty(!1),o.plugins={},o.documentBaseURI=new p(t.document_base_url||a,{base_uri:s}),o.baseURI=s,o.contentCSS=[],o.contentStyles=[],o.shortcuts=new k(o),o.loadedCSS={},o.editorCommands=new h(o),o.suffix=i.suffix,o.editorManager=i,o.inline=t.inline,o.settings.content_editable=o.inline,t.cache_suffix&&(w.cacheSuffix=t.cache_suffix.replace(/^[\?\&]+/,"")),t.override_viewport===!1&&(w.overrideViewPort=!1),i.fire("SetupEditor",o),o.execCallback("setup",o),o.$=n.overrideDefaults(function(){return{context:o.inline?o.getBody():o.getDoc(),element:o.getBody()}})}var L=e.DOM,M=r.ThemeManager,P=r.PluginManager,O=E.extend,H=E.each,I=E.explode,F=E.inArray,z=E.trim,U=E.resolve,W=g.Event,V=w.gecko,$=w.ie;return D.prototype={render:function(){function e(){L.unbind(window,"ready",e),n.render()}function t(){var e=m.ScriptLoader;if(r.language&&"en"!=r.language&&!r.language_url&&(r.language_url=n.editorManager.baseURL+"/langs/"+r.language+".js"),r.language_url&&e.add(r.language_url),r.theme&&"function"!=typeof r.theme&&"-"!=r.theme.charAt(0)&&!M.urls[r.theme]){var t=r.theme_url;t=t?n.documentBaseURI.toAbsolute(t):"themes/"+r.theme+"/theme"+o+".js",M.load(r.theme,t)}E.isArray(r.plugins)&&(r.plugins=r.plugins.join(" ")),H(r.external_plugins,function(e,t){P.load(t,e),r.plugins+=" "+t}),H(r.plugins.split(/[ ,]/),function(e){if(e=z(e),e&&!P.urls[e])if("-"==e.charAt(0)){e=e.substr(1,e.length);var t=P.dependencies(e);H(t,function(e){var t={prefix:"plugins/",resource:e,suffix:"/plugin"+o+".js"};e=P.createUrl(t,e),P.load(e.resource,e)})}else P.load(e,{prefix:"plugins/",resource:e,suffix:"/plugin"+o+".js"})}),e.loadQueue(function(){n.removed||n.init()})}var n=this,r=n.settings,i=n.id,o=n.suffix;if(!W.domLoaded)return void L.bind(window,"ready",e);if(n.getElement()&&w.contentEditable){r.inline?n.inline=!0:(n.orgVisibility=n.getElement().style.visibility,n.getElement().style.visibility="hidden");var a=n.getElement().form||L.getParent(i,"form");a&&(n.formElement=a,r.hidden_input&&!/TEXTAREA|INPUT/i.test(n.getElement().nodeName)&&(L.insertAfter(L.create("input",{type:"hidden",name:i}),i),n.hasHiddenInput=!0),n.formEventDelegate=function(e){n.fire(e.type,e)},L.bind(a,"submit reset",n.formEventDelegate),n.on("reset",function(){n.setContent(n.startContent,{format:"raw"})}),!r.submit_patch||a.submit.nodeType||a.submit.length||a._mceOldSubmit||(a._mceOldSubmit=a.submit,a.submit=function(){return n.editorManager.triggerSave(),n.setDirty(!1),a._mceOldSubmit(a)})),n.windowManager=new v(n),n.notificationManager=new y(n),"xml"==r.encoding&&n.on("GetContent",function(e){e.save&&(e.content=L.encode(e.content))}),r.add_form_submit_trigger&&n.on("submit",function(){n.initialized&&n.save()}),r.add_unload_trigger&&(n._beforeUnload=function(){!n.initialized||n.destroyed||n.isHidden()||n.save({format:"raw",no_events:!0,set_dirty:!1})},n.editorManager.on("BeforeUnload",n._beforeUnload)),n.editorManager.add(n),t()}},init:function(){function e(n){var r=P.get(n),i,o;if(i=P.urls[n]||t.documentBaseUrl.replace(/\/$/,""),n=z(n),r&&F(m,n)===-1){if(H(P.dependencies(n),function(t){e(t)}),t.plugins[n])return;o=new r(t,i,t.$),t.plugins[n]=o,o.init&&(o.init(t,i),m.push(n))}}var t=this,n=t.settings,r=t.getElement(),i,o,a,s,l,c,u,d,f,h,p,m=[];if(t.rtl=n.rtl_ui||t.editorManager.i18n.rtl,t.editorManager.i18n.setCode(n.language),n.aria_label=n.aria_label||L.getAttrib(r,"aria-label",t.getLang("aria.rich_text_area")),t.fire("ScriptsLoaded"),n.theme&&("function"!=typeof n.theme?(n.theme=n.theme.replace(/-/,""),c=M.get(n.theme),t.theme=new c(t,M.urls[n.theme]),t.theme.init&&t.theme.init(t,M.urls[n.theme]||t.documentBaseUrl.replace(/\/$/,""),t.$)):t.theme=n.theme),H(n.plugins.replace(/\-/g,"").split(/[ ,]/),e),n.render_ui&&t.theme&&(t.orgDisplay=r.style.display,"function"!=typeof n.theme?(i=n.width||r.style.width||r.offsetWidth,o=n.height||r.style.height||r.offsetHeight,a=n.min_height||100,h=/^[0-9\.]+(|px)$/i,h.test(""+i)&&(i=Math.max(parseInt(i,10),100)),h.test(""+o)&&(o=Math.max(parseInt(o,10),a)),l=t.theme.renderUI({targetNode:r,width:i,height:o,deltaWidth:n.delta_width,deltaHeight:n.delta_height}),n.content_editable||(o=(l.iframeHeight||o)+("number"==typeof o?l.deltaHeight||0:""),o",n.document_base_url!=t.documentBaseUrl&&(t.iframeHTML+=''),!w.caretAfter&&n.ie7_compat&&(t.iframeHTML+=''),t.iframeHTML+='',!/#$/.test(document.location.href))for(p=0;p',t.loadedCSS[g]=!0}d=n.body_id||"tinymce",d.indexOf("=")!=-1&&(d=t.getParam("body_id","","hash"),d=d[t.id]||d),f=n.body_class||"",f.indexOf("=")!=-1&&(f=t.getParam("body_class","","hash"),f=f[t.id]||""),n.content_security_policy&&(t.iframeHTML+=''),t.iframeHTML+='
';var v='javascript:(function(){document.open();document.domain="'+document.domain+'";var ed = window.parent.tinymce.get("'+t.id+'");document.write(ed.iframeHTML);document.close();ed.initContentBody(true);})()';document.domain!=location.hostname&&w.ie&&w.ie<12&&(u=v);var y=L.create("iframe",{id:t.id+"_ifr",frameBorder:"0",allowTransparency:"true",title:t.editorManager.translate("Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help"),style:{width:"100%",height:o,display:"block"}});if(y.onload=function(){y.onload=null,t.fire("load")},L.setAttrib(y,"src",u||'javascript:""'),t.contentAreaContainer=l.iframeContainer,t.iframeElement=y,s=L.add(l.iframeContainer,y),$)try{t.getDoc()}catch(b){s.src=u=v}l.editorContainer&&(L.get(l.editorContainer).style.display=t.orgDisplay,t.hidden=L.isHidden(l.editorContainer)),t.getElement().style.display="none",L.setAttrib(t.id,"aria-hidden",!0),u||t.initContentBody(),r=s=l=null},initContentBody:function(t){var n=this,r=n.settings,s=n.getElement(),h=n.getDoc(),p,m;r.inline||(n.getElement().style.visibility=n.orgVisibility),t||r.content_editable||(h.open(),h.write(n.iframeHTML),h.close()),r.content_editable&&(n.on("remove",function(){var e=this.getBody();L.removeClass(e,"mce-content-body"),L.removeClass(e,"mce-edit-focus"),L.setAttrib(e,"contentEditable",null)}),L.addClass(s,"mce-content-body"),n.contentDocument=h=r.content_document||document,n.contentWindow=r.content_window||window,n.bodyElement=s,r.content_document=r.content_window=null,r.root_name=s.nodeName.toLowerCase()),p=n.getBody(),p.disabled=!0,n.readonly=r.readonly,n.readonly||(n.inline&&"static"==L.getStyle(p,"position",!0)&&(p.style.position="relative"),p.contentEditable=n.getParam("content_editable_state",!0)),p.disabled=!1,n.editorUpload=new T(n),n.schema=new b(r),n.dom=new e(h,{keep_values:!0,url_converter:n.convertURL,url_converter_scope:n,hex_colors:r.force_hex_style_colors,class_filter:r.class_filter,update_styles:!0,root_element:n.inline?n.getBody():null,collect:r.content_editable,schema:n.schema,onSetAttrib:function(e){n.fire("SetAttrib",e)}}),n.parser=new C(r,n.schema),n.parser.addAttributeFilter("src,href,style,tabindex",function(e,t){for(var r=e.length,i,o=n.dom,a,s;r--;)if(i=e[r],a=i.attr(t),s="data-mce-"+t,!i.attributes.map[s]){if(0===a.indexOf("data:")||0===a.indexOf("blob:"))continue;"style"===t?(a=o.serializeStyle(o.parseStyle(a),i.name),a.length||(a=null),i.attr(s,a),i.attr(t,a)):"tabindex"===t?(i.attr(s,a),i.attr(t,null)):i.attr(s,n.convertURL(a,t,i.name))}}),n.parser.addNodeFilter("script",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.attr("type")||"no/type",0!==r.indexOf("mce-")&&n.attr("type","mce-"+r)}),n.parser.addNodeFilter("#cdata",function(e){for(var t=e.length,n;t--;)n=e[t],n.type=8,n.name="#comment",n.value="[CDATA["+n.value+"]]"}),n.parser.addNodeFilter("p,h1,h2,h3,h4,h5,h6,div",function(e){for(var t=e.length,r,i=n.schema.getNonEmptyElements();t--;)r=e[t],r.isEmpty(i)&&(r.append(new o("br",1)).shortEnded=!0)}),n.serializer=new a(r,n),n.selection=new l(n.dom,n.getWin(),n.serializer,n),n.formatter=new c(n),n.undoManager=new u(n),n.forceBlocks=new f(n),n.enterKey=new d(n),n._nodeChangeDispatcher=new i(n),n._selectionOverrides=new R(n),n.fire("PreInit"),r.browser_spellcheck||r.gecko_spellcheck||(h.body.spellcheck=!1,L.setAttrib(p,"spellcheck","false")),n.quirks=new x(n),n.fire("PostRender"),r.directionality&&(p.dir=r.directionality),r.nowrap&&(p.style.whiteSpace="nowrap"),r.protect&&n.on("BeforeSetContent",function(e){H(r.protect,function(t){e.content=e.content.replace(t,function(e){return""})})}),n.on("SetContent",function(){n.addVisual(n.getBody())}),r.padd_empty_editor&&n.on("PostProcess",function(e){e.content=e.content.replace(/^(]*>( | |\s|\u00a0|)<\/p>[\r\n]*|
[\r\n]*)$/,"")}),n.load({initial:!0,format:"html"}),n.startContent=n.getContent({format:"raw"}),n.initialized=!0,n.bindPendingEventDelegates(),n.fire("init"),n.focus(!0),n.nodeChanged({initial:!0}),n.execCallback("init_instance_callback",n),n.on("compositionstart compositionend",function(e){n.composing="compositionstart"===e.type}),n.contentStyles.length>0&&(m="",H(n.contentStyles,function(e){m+=e+"\r\n"}),n.dom.addStyle(m)),H(n.contentCSS,function(e){n.loadedCSS[e]||(n.dom.loadCSS(e),n.loadedCSS[e]=!0)}),r.auto_focus&&N.setEditorTimeout(n,function(){var e;e=r.auto_focus===!0?n:n.editorManager.get(r.auto_focus),e.destroyed||e.focus()},100),s=h=p=null},focus:function(e){function t(e){return n.dom.getParent(e,function(e){return"true"===n.dom.getContentEditable(e)})}var n=this,r=n.selection,i=n.settings.content_editable,o,a,s=n.getDoc(),l=n.getBody(),c;if(!e){if(o=r.getRng(),o.item&&(a=o.item(0)),n.quirks.refreshContentEditable(),c=t(r.getNode()),n.$.contains(l,c))return c.focus(),r.normalize(),void n.editorManager.setActive(n);if(i||(w.opera||n.getBody().focus(),n.getWin().focus()),V||i){if(l.setActive)try{l.setActive()}catch(u){l.focus()}else l.focus();i&&r.normalize()}a&&a.ownerDocument==s&&(o=s.body.createControlRange(),o.addElement(a),o.select())}n.editorManager.setActive(n)},execCallback:function(e){var t=this,n=t.settings[e],r;if(n)return t.callbackLookup&&(r=t.callbackLookup[e])&&(n=r.func,r=r.scope),"string"==typeof n&&(r=n.replace(/\.\w+$/,""),r=r?U(r):0,n=U(n),t.callbackLookup=t.callbackLookup||{},t.callbackLookup[e]={func:n,scope:r}),n.apply(r||t,Array.prototype.slice.call(arguments,1))},translate:function(e){var t=this.settings.language||"en",n=this.editorManager.i18n;return e?(e=n.data[t+"."+e]||e.replace(/\{\#([^\}]+)\}/g,function(e,r){return n.data[t+"."+r]||"{#"+r+"}"}),this.editorManager.translate(e)):""},getLang:function(e,n){return this.editorManager.i18n.data[(this.settings.language||"en")+"."+e]||(n!==t?n:"{#"+e+"}")},getParam:function(e,t,n){var r=e in this.settings?this.settings[e]:t,i;return"hash"===n?(i={},"string"==typeof r?H(r.indexOf("=")>0?r.split(/[;,](?![^=;,]*(?:[;,]|$))/):r.split(","),function(e){ +e=e.split("="),e.length>1?i[z(e[0])]=z(e[1]):i[z(e[0])]=z(e)}):i=r,i):r},nodeChanged:function(e){this._nodeChangeDispatcher.nodeChanged(e)},addButton:function(e,t){var n=this;t.cmd&&(t.onclick=function(){n.execCommand(t.cmd)}),t.text||t.icon||(t.icon=e),n.buttons=n.buttons||{},t.tooltip=t.tooltip||t.title,n.buttons[e]=t},addSidebar:function(e,t){return B.add(this,e,t)},addMenuItem:function(e,t){var n=this;t.cmd&&(t.onclick=function(){n.execCommand(t.cmd)}),n.menuItems=n.menuItems||{},n.menuItems[e]=t},addContextToolbar:function(e,t){var n=this,r;n.contextToolbars=n.contextToolbars||[],"string"==typeof e&&(r=e,e=function(e){return n.dom.is(e,r)}),n.contextToolbars.push({id:A.uuid("mcet"),predicate:e,items:t})},addCommand:function(e,t,n){this.editorCommands.addCommand(e,t,n)},addQueryStateHandler:function(e,t,n){this.editorCommands.addQueryStateHandler(e,t,n)},addQueryValueHandler:function(e,t,n){this.editorCommands.addQueryValueHandler(e,t,n)},addShortcut:function(e,t,n,r){this.shortcuts.add(e,t,n,r)},execCommand:function(e,t,n,r){return this.editorCommands.execCommand(e,t,n,r)},queryCommandState:function(e){return this.editorCommands.queryCommandState(e)},queryCommandValue:function(e){return this.editorCommands.queryCommandValue(e)},queryCommandSupported:function(e){return this.editorCommands.queryCommandSupported(e)},show:function(){var e=this;e.hidden&&(e.hidden=!1,e.inline?e.getBody().contentEditable=!0:(L.show(e.getContainer()),L.hide(e.id)),e.load(),e.fire("show"))},hide:function(){var e=this,t=e.getDoc();e.hidden||($&&t&&!e.inline&&t.execCommand("SelectAll"),e.save(),e.inline?(e.getBody().contentEditable=!1,e==e.editorManager.focusedEditor&&(e.editorManager.focusedEditor=null)):(L.hide(e.getContainer()),L.setStyle(e.id,"display",e.orgDisplay)),e.hidden=!0,e.fire("hide"))},isHidden:function(){return!!this.hidden},setProgressState:function(e,t){this.fire("ProgressState",{state:e,time:t})},load:function(e){var n=this,r=n.getElement(),i;if(r)return e=e||{},e.load=!0,i=n.setContent(r.value!==t?r.value:r.innerHTML,e),e.element=r,e.no_events||n.fire("LoadContent",e),e.element=r=null,i},save:function(e){var t=this,n=t.getElement(),r,i;if(n&&t.initialized)return e=e||{},e.save=!0,e.element=n,r=e.content=t.getContent(e),e.no_events||t.fire("SaveContent",e),"raw"==e.format&&t.fire("RawSaveContent",e),r=e.content,/TEXTAREA|INPUT/i.test(n.nodeName)?n.value=r:(t.inline||(n.innerHTML=r),(i=L.getParent(t.id,"form"))&&H(i.elements,function(e){if(e.name==t.id)return e.value=r,!1})),e.element=n=null,e.set_dirty!==!1&&t.setDirty(!1),r},setContent:function(e,t){var n=this,r=n.getBody(),i,o;return t=t||{},t.format=t.format||"html",t.set=!0,t.content=e,t.no_events||n.fire("BeforeSetContent",t),e=t.content,0===e.length||/^\s+$/.test(e)?(o=$&&$<11?"":'
',"TABLE"==r.nodeName?e=""+o+"":/^(UL|OL)$/.test(r.nodeName)&&(e="
  • "+o+"
  • "),i=n.settings.forced_root_block,i&&n.schema.isValidChild(r.nodeName.toLowerCase(),i.toLowerCase())?(e=o,e=n.dom.createHTML(i,n.settings.forced_root_block_attrs,e)):$||e||(e='
    '),n.dom.setHTML(r,e),n.fire("SetContent",t)):("raw"!==t.format&&(e=new s({validate:n.validate},n.schema).serialize(n.parser.parse(e,{isRootContent:!0}))),t.content=z(e),n.dom.setHTML(r,t.content),t.no_events||n.fire("SetContent",t)),t.content},getContent:function(e){var t=this,n,r=t.getBody();return e=e||{},e.format=e.format||"html",e.get=!0,e.getInner=!0,e.no_events||t.fire("BeforeGetContent",e),n="raw"==e.format?t.serializer.getTrimmedContent():"text"==e.format?r.innerText||r.textContent:t.serializer.serialize(r,e),"text"!=e.format?e.content=z(n):e.content=n,e.no_events||t.fire("GetContent",e),e.content},insertContent:function(e,t){t&&(e=O({content:e},t)),this.execCommand("mceInsertContent",!1,e)},isDirty:function(){return!this.isNotDirty},setDirty:function(e){var t=!this.isNotDirty;this.isNotDirty=!e,e&&e!=t&&this.fire("dirty")},setMode:function(e){S.setMode(this,e)},getContainer:function(){var e=this;return e.container||(e.container=L.get(e.editorContainer||e.id+"_parent")),e.container},getContentAreaContainer:function(){return this.contentAreaContainer},getElement:function(){return this.targetElm||(this.targetElm=L.get(this.id)),this.targetElm},getWin:function(){var e=this,t;return e.contentWindow||(t=e.iframeElement,t&&(e.contentWindow=t.contentWindow)),e.contentWindow},getDoc:function(){var e=this,t;return e.contentDocument||(t=e.getWin(),t&&(e.contentDocument=t.document)),e.contentDocument},getBody:function(){var e=this.getDoc();return this.bodyElement||(e?e.body:null)},convertURL:function(e,t,n){var r=this,i=r.settings;return i.urlconverter_callback?r.execCallback("urlconverter_callback",e,n,!0,t):!i.convert_urls||n&&"LINK"==n.nodeName||0===e.indexOf("file:")||0===e.length?e:i.relative_urls?r.documentBaseURI.toRelative(e):e=r.documentBaseURI.toAbsolute(e,i.remove_script_host)},addVisual:function(e){var n=this,r=n.settings,i=n.dom,o;e=e||n.getBody(),n.hasVisual===t&&(n.hasVisual=r.visual),H(i.select("table,a",e),function(e){var t;switch(e.nodeName){case"TABLE":return o=r.visual_table_class||"mce-item-table",t=i.getAttrib(e,"border"),void(t&&"0"!=t||!n.hasVisual?i.removeClass(e,o):i.addClass(e,o));case"A":return void(i.getAttrib(e,"href",!1)||(t=i.getAttrib(e,"name")||e.id,o=r.visual_anchor_class||"mce-item-anchor",t&&n.hasVisual?i.addClass(e,o):i.removeClass(e,o)))}}),n.fire("VisualAid",{element:e,hasVisual:n.hasVisual})},remove:function(){var e=this;e.removed||(e.save(),e.removed=1,e.unbindAllNativeEvents(),e.hasHiddenInput&&L.remove(e.getElement().nextSibling),e.inline||($&&$<10&&e.getDoc().execCommand("SelectAll",!1,null),L.setStyle(e.id,"display",e.orgDisplay),e.getBody().onload=null),e.fire("remove"),e.editorManager.remove(e),L.remove(e.getContainer()),e._selectionOverrides.destroy(),e.editorUpload.destroy(),e.destroy())},destroy:function(e){var t=this,n;if(!t.destroyed){if(!e&&!t.removed)return void t.remove();e||(t.editorManager.off("beforeunload",t._beforeUnload),t.theme&&t.theme.destroy&&t.theme.destroy(),t.selection.destroy(),t.dom.destroy()),n=t.formElement,n&&(n._mceOldSubmit&&(n.submit=n._mceOldSubmit,n._mceOldSubmit=null),L.unbind(n,"submit reset",t.formEventDelegate)),t.contentAreaContainer=t.formElement=t.container=t.editorContainer=null,t.bodyElement=t.contentDocument=t.contentWindow=null,t.iframeElement=t.targetElm=null,t.selection&&(t.selection=t.selection.win=t.selection.dom=t.selection.dom.doc=null),t.destroyed=1}},uploadImages:function(e){return this.editorUpload.uploadImages(e)},_scanForImages:function(){return this.editorUpload.scanForImages()}},O(D.prototype,_),D}),r(at,[m],function(e){var t={},n="en";return{setCode:function(e){e&&(n=e,this.rtl=!!this.data[e]&&"rtl"===this.data[e]._dir)},getCode:function(){return n},rtl:!1,add:function(e,n){var r=t[e];r||(t[e]=r={});for(var i in n)r[i]=n[i];this.setCode(e)},translate:function(r){function i(t){return e.is(t,"function")?Object.prototype.toString.call(t):o(t)?"":""+t}function o(t){return""===t||null===t||e.is(t,"undefined")}function a(t){return t=i(t),e.hasOwn(s,t)?i(s[t]):t}var s=t[n]||{};if(o(r))return"";if(e.is(r,"object")&&e.hasOwn(r,"raw"))return i(r.raw);if(e.is(r,"array")){var l=r.slice(1);r=a(r[0]).replace(/\{([0-9]+)\}/g,function(t,n){return e.hasOwn(l,n)?i(l[n]):t})}return a(r).replace(/{context:\w+}$/,"")},data:t}}),r(st,[w,u,d],function(e,t,n){function r(e){function l(){try{return document.activeElement}catch(e){return document.body}}function c(e,t){if(t&&t.startContainer){if(!e.isChildOf(t.startContainer,e.getRoot())||!e.isChildOf(t.endContainer,e.getRoot()))return;return{startContainer:t.startContainer,startOffset:t.startOffset,endContainer:t.endContainer,endOffset:t.endOffset}}return t}function u(e,t){var n;return t.startContainer?(n=e.getDoc().createRange(),n.setStart(t.startContainer,t.startOffset),n.setEnd(t.endContainer,t.endOffset)):n=t,n}function d(e){return!!s.getParent(e,r.isEditorUIElement)}function f(r){var f=r.editor;f.on("init",function(){(f.inline||n.ie)&&("onbeforedeactivate"in document&&n.ie<9?f.dom.bind(f.getBody(),"beforedeactivate",function(e){if(e.target==f.getBody())try{f.lastRng=f.selection.getRng()}catch(t){}}):f.on("nodechange mouseup keyup",function(e){var t=l();"nodechange"==e.type&&e.selectionChange||(t&&t.id==f.id+"_ifr"&&(t=f.getBody()),f.dom.isChildOf(t,f.getBody())&&(f.lastRng=f.selection.getRng()))}),n.webkit&&!i&&(i=function(){var t=e.activeEditor;if(t&&t.selection){var n=t.selection.getRng();n&&!n.collapsed&&(f.lastRng=n)}},s.bind(document,"selectionchange",i)))}),f.on("setcontent",function(){f.lastRng=null}),f.on("mousedown",function(){f.selection.lastFocusBookmark=null}),f.on("focusin",function(){var t=e.focusedEditor,n;f.selection.lastFocusBookmark&&(n=u(f,f.selection.lastFocusBookmark),f.selection.lastFocusBookmark=null,f.selection.setRng(n)),t!=f&&(t&&t.fire("blur",{focusedEditor:f}),e.setActive(f),e.focusedEditor=f,f.fire("focus",{blurredEditor:t}),f.focus(!0)),f.lastRng=null}),f.on("focusout",function(){t.setEditorTimeout(f,function(){var t=e.focusedEditor;d(l())||t!=f||(f.fire("blur",{focusedEditor:null}),e.focusedEditor=null,f.selection&&(f.selection.lastFocusBookmark=null))})}),o||(o=function(t){var n=e.activeEditor,r;r=t.target,n&&r.ownerDocument==document&&(n.selection&&r!=n.getBody()&&(n.selection.lastFocusBookmark=c(n.dom,n.lastRng)),r==document.body||d(r)||e.focusedEditor!=n||(n.fire("blur",{focusedEditor:null}),e.focusedEditor=null))},s.bind(document,"focusin",o)),f.inline&&!a&&(a=function(t){var n=e.activeEditor,r=n.dom;if(n.inline&&r&&!r.isChildOf(t.target,n.getBody())){var i=n.selection.getRng();i.collapsed||(n.lastRng=i)}},s.bind(document,"mouseup",a))}function h(t){e.focusedEditor==t.editor&&(e.focusedEditor=null),e.activeEditor||(s.unbind(document,"selectionchange",i),s.unbind(document,"focusin",o),s.unbind(document,"mouseup",a),i=o=a=null)}e.on("AddEditor",f),e.on("RemoveEditor",h)}var i,o,a,s=e.DOM;return r.isEditorUIElement=function(e){return e.className.toString().indexOf("mce-")!==-1},r}),r(lt,[ot,g,w,ce,d,m,c,he,at,st,N],function(e,t,n,r,i,o,a,s,l,c,u){function d(e){v(x.editors,function(t){"scroll"===e.type?t.fire("ScrollWindow",e):t.fire("ResizeWindow",e)})}function f(e,n){n!==w&&(n?t(window).on("resize scroll",d):t(window).off("resize scroll",d),w=n)}function h(e){var t=x.editors,n;delete t[e.id];for(var r=0;r0&&v(g(t),function(e){var t;(t=m.get(e))?n.push(t):v(document.forms,function(t){v(t.elements,function(t){t.name===e&&(e="mce_editor_"+b++,m.setAttrib(t,"id",e),n.push(t))})})});break;case"textareas":case"specific_textareas":v(m.select("textarea"),function(t){e.editor_deselector&&c(t,e.editor_deselector)||e.editor_selector&&!c(t,e.editor_selector)||n.push(t)})}return n}function d(){function a(t,n,r){var i=new e(t,n,f);h.push(i),i.on("init",function(){++c===g.length&&x(h)}),i.targetElm=i.targetElm||r,i.render()}var c=0,h=[],g;return m.unbind(window,"ready",d),l("onpageload"),g=t.unique(u(n)),n.types?void v(n.types,function(e){o.each(g,function(t){return!m.is(t,e.selector)||(a(s(t),y({},n,e),t),!1)})}):(o.each(g,function(e){p(f.get(e.id))}),g=o.grep(g,function(e){return!f.get(e.id)}),void v(g,function(e){r(n,e)?i("Could not initialize inline editor on invalid inline target element",e):a(s(e),n,e)}))}var f=this,h,C;C=o.makeMap("area base basefont br col frame hr img input isindex link meta param embed source wbr track colgroup option tbody tfoot thead tr script noscript style textarea video audio iframe object menu"," ");var x=function(e){h=e};return f.settings=n,m.bind(window,"ready",d),new a(function(e){h?e(h):x=function(t){e(t)}})},get:function(e){return arguments.length?e in this.editors?this.editors[e]:null:this.editors},add:function(e){var t=this,n=t.editors;return n[e.id]=e,n.push(e),f(n,!0),t.activeEditor=e,t.fire("AddEditor",{editor:e}),C||(C=function(){t.fire("BeforeUnload")},m.bind(window,"beforeunload",C)),e},createEditor:function(t,n){return this.add(new e(t,n,this))},remove:function(e){var t=this,n,r=t.editors,i;{if(e)return"string"==typeof e?(e=e.selector||e,void v(m.select(e),function(e){i=r[e.id],i&&t.remove(i)})):(i=e,r[i.id]?(h(i)&&t.fire("RemoveEditor",{editor:i}),r.length||m.unbind(window,"beforeunload",C),i.remove(),f(r,r.length>0),i):null);for(n=r.length-1;n>=0;n--)t.remove(r[n])}},execCommand:function(t,n,r){var i=this,o=i.get(r);switch(t){case"mceAddEditor":return i.get(r)||new e(r,i.settings,i).render(),!0;case"mceRemoveEditor":return o&&o.remove(),!0;case"mceToggleEditor":return o?(o.isHidden()?o.show():o.hide(),!0):(i.execCommand("mceAddEditor",0,r),!0)}return!!i.activeEditor&&i.activeEditor.execCommand(t,n,r)},triggerSave:function(){v(this.editors,function(e){e.save()})},addI18n:function(e,t){l.add(e,t)},translate:function(e){return l.translate(e)},setActive:function(e){var t=this.activeEditor;this.activeEditor!=e&&(t&&t.fire("deactivate",{relatedTarget:e}),e.fire("activate",{relatedTarget:t})),this.activeEditor=e}},y(x,s),x.setup(),window.tinymce=window.tinyMCE=x,x}),r(ct,[lt,m],function(e,t){var n=t.each,r=t.explode;e.on("AddEditor",function(e){var t=e.editor;t.on("preInit",function(){function e(e,t){n(t,function(t,n){t&&s.setStyle(e,n,t)}),s.rename(e,"span")}function i(e){s=t.dom,l.convert_fonts_to_spans&&n(s.select("font,u,strike",e.node),function(e){o[e.nodeName.toLowerCase()](s,e)})}var o,a,s,l=t.settings;l.inline_styles&&(a=r(l.font_size_legacy_values),o={font:function(t,n){e(n,{backgroundColor:n.style.backgroundColor,color:n.color,fontFamily:n.face,fontSize:a[parseInt(n.size,10)-1]})},u:function(n,r){"html4"===t.settings.schema&&e(r,{textDecoration:"underline"})},strike:function(t,n){e(n,{textDecoration:"line-through"})}},t.on("PreProcess SetContent",i))})})}),r(ut,[he,m],function(e,t){var n={send:function(e){function r(){!e.async||4==i.readyState||o++>1e4?(e.success&&o<1e4&&200==i.status?e.success.call(e.success_scope,""+i.responseText,i,e):e.error&&e.error.call(e.error_scope,o>1e4?"TIMED_OUT":"GENERAL",i,e),i=null):setTimeout(r,10)}var i,o=0;if(e.scope=e.scope||this,e.success_scope=e.success_scope||e.scope,e.error_scope=e.error_scope||e.scope,e.async=e.async!==!1,e.data=e.data||"",n.fire("beforeInitialize",{settings:e}),i=new XMLHttpRequest){if(i.overrideMimeType&&i.overrideMimeType(e.content_type),i.open(e.type||(e.data?"POST":"GET"),e.url,e.async),e.crossDomain&&(i.withCredentials=!0),e.content_type&&i.setRequestHeader("Content-Type",e.content_type),e.requestheaders&&t.each(e.requestheaders,function(e){i.setRequestHeader(e.key,e.value)}),i.setRequestHeader("X-Requested-With","XMLHttpRequest"),i=n.fire("beforeSend",{xhr:i,settings:e}).xhr,i.send(e.data),!e.async)return r();setTimeout(r,10)}}};return t.extend(n,e),n}),r(dt,[],function(){function e(t,n){var r,i,o,a;if(n=n||'"',null===t)return"null";if(o=typeof t,"string"==o)return i="\bb\tt\nn\ff\rr\"\"''\\\\",n+t.replace(/([\u0080-\uFFFF\x00-\x1f\"\'\\])/g,function(e,t){return'"'===n&&"'"===e?e:(r=i.indexOf(t),r+1?"\\"+i.charAt(r+1):(e=t.charCodeAt().toString(16),"\\u"+"0000".substring(e.length)+e))})+n;if("object"==o){if(t.hasOwnProperty&&"[object Array]"===Object.prototype.toString.call(t)){for(r=0,i="[";r0?",":"")+e(t[r],n);return i+"]"}i="{";for(a in t)t.hasOwnProperty(a)&&(i+="function"!=typeof t[a]?(i.length>1?","+n:n)+a+n+":"+e(t[a],n):"");return i+"}"}return""+t}return{serialize:e,parse:function(e){try{return window[String.fromCharCode(101)+"val"]("("+e+")")}catch(t){}}}}),r(ft,[dt,ut,m],function(e,t,n){function r(e){this.settings=i({},e),this.count=0}var i=n.extend;return r.sendRPC=function(e){return(new r).send(e)},r.prototype={send:function(n){var r=n.error,o=n.success;n=i(this.settings,n),n.success=function(t,i){t=e.parse(t),"undefined"==typeof t&&(t={error:"JSON Parse error."}),t.error?r.call(n.error_scope||n.scope,t.error,i):o.call(n.success_scope||n.scope,t.result)},n.error=function(e,t){r&&r.call(n.error_scope||n.scope,e,t)},n.data=e.serialize({id:n.id||"c"+this.count++,method:n.method,params:n.params}),n.content_type="application/json",t.send(n)}},r}),r(ht,[w],function(e){return{callbacks:{},count:0,send:function(n){var r=this,i=e.DOM,o=n.count!==t?n.count:r.count,a="tinymce_jsonp_"+o;r.callbacks[o]=function(e){i.remove(a),delete r.callbacks[o],n.callback(e)},i.add(i.doc.body,"script",{id:a,src:n.url,type:"text/javascript"}),r.count++}}}),r(pt,[],function(){function e(){s=[];for(var e in a)s.push(e);i.length=s.length}function n(){function n(e){var n,r;return r=e!==t?u+e:i.indexOf(",",u),r===-1||r>i.length?null:(n=i.substring(u,r),u=r+1,n)}var r,i,s,u=0;if(a={},c){o.load(l),i=o.getAttribute(l)||"";do{var d=n();if(null===d)break;if(r=n(parseInt(d,32)||0),null!==r){if(d=n(),null===d)break;s=n(parseInt(d,32)||0),r&&(a[r]=s)}}while(null!==r);e()}}function r(){var t,n="";if(c){for(var r in a)t=a[r],n+=(n?",":"")+r.length.toString(32)+","+r+","+t.length.toString(32)+","+t;o.setAttribute(l,n);try{o.save(l)}catch(i){}e()}}var i,o,a,s,l,c;try{if(window.localStorage)return localStorage}catch(u){}return l="tinymce",o=document.documentElement,c=!!o.addBehavior,c&&o.addBehavior("#default#userData"),i={key:function(e){return s[e]},getItem:function(e){return e in a?a[e]:null},setItem:function(e,t){a[e]=""+t,r()},removeItem:function(e){delete a[e],r()},clear:function(){a={},r()}},n(),i}),r(mt,[w,f,E,N,m,d],function(e,t,n,r,i,o){var a=window.tinymce;return a.DOM=e.DOM,a.ScriptLoader=n.ScriptLoader,a.PluginManager=r.PluginManager,a.ThemeManager=r.ThemeManager,a.dom=a.dom||{},a.dom.Event=t.Event,i.each("trim isArray is toArray makeMap each map grep inArray extend create walk createNS resolve explode _addCacheSuffix".split(" "),function(e){a[e]=i[e]}),i.each("isOpera isWebKit isIE isGecko isMac".split(" "),function(e){a[e]=o[e.substr(2).toLowerCase()]}),{}}),r(gt,[ue,m],function(e,t){return e.extend({Defaults:{firstControlClass:"first",lastControlClass:"last"},init:function(e){this.settings=t.extend({},this.Defaults,e)},preRender:function(e){e.bodyClasses.add(this.settings.containerClass)},applyClasses:function(e){var t=this,n=t.settings,r,i,o,a;r=n.firstControlClass,i=n.lastControlClass,e.each(function(e){e.classes.remove(r).remove(i).add(n.controlClass),e.visible()&&(o||(o=e),a=e)}),o&&o.classes.add(r),a&&a.classes.add(i)},renderHtml:function(e){var t=this,n="";return t.applyClasses(e.items()),e.items().each(function(e){n+=e.renderHtml()}),n},recalc:function(){},postRender:function(){},isNative:function(){return!1}})}),r(vt,[gt],function(e){return e.extend({Defaults:{containerClass:"abs-layout",controlClass:"abs-layout-item"},recalc:function(e){e.items().filter(":visible").each(function(e){var t=e.settings;e.layoutRect({x:t.x,y:t.y,w:t.w,h:t.h}),e.recalc&&e.recalc()})},renderHtml:function(e){return'
    '+this._super(e)}})}),r(yt,[Pe],function(e){return e.extend({Defaults:{classes:"widget btn",role:"button"},init:function(e){var t=this,n;t._super(e),e=t.settings,n=t.settings.size,t.on("click mousedown",function(e){e.preventDefault()}),t.on("touchstart",function(e){t.fire("click",e),e.preventDefault()}),e.subtype&&t.classes.add(e.subtype),n&&t.classes.add("btn-"+n),e.icon&&t.icon(e.icon)},icon:function(e){return arguments.length?(this.state.set("icon",e),this):this.state.get("icon")},repaint:function(){var e=this.getEl().firstChild,t;e&&(t=e.style,t.width=t.height="100%"),this._super()},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,r=e.state.get("icon"),i,o=e.state.get("text"),a="";return i=e.settings.image,i?(r="none","string"!=typeof i&&(i=window.getSelection?i[0]:i[1]),i=" style=\"background-image: url('"+i+"')\""):i="",o&&(e.classes.add("btn-has-text"),a=''+e.encode(o)+""),r=r?n+"ico "+n+"i-"+r:"",'
    "},bindStates:function(){function e(e){var i=n("span."+r,t.getEl());e?(i[0]||(n("button:first",t.getEl()).append(''),i=n("span."+r,t.getEl())),i.html(t.encode(e))):i.remove(),t.classes.toggle("btn-has-text",!!e)}var t=this,n=t.$,r=t.classPrefix+"txt";return t.state.on("change:text",function(t){e(t.value)}),t.state.on("change:icon",function(n){var r=n.value,i=t.classPrefix;t.settings.icon=r,r=r?i+"ico "+i+"i-"+t.settings.icon:"";var o=t.getEl().firstChild,a=o.getElementsByTagName("i")[0];r?(a&&a==o.firstChild||(a=document.createElement("i"),o.insertBefore(a,o.firstChild)),a.className=r):a&&o.removeChild(a),e(t.state.get("text"))}),t._super()}})}),r(bt,[Ne],function(e){return e.extend({Defaults:{defaultType:"button",role:"group"},renderHtml:function(){var e=this,t=e._layout;return e.classes.add("btn-group"),e.preRender(),t.preRender(e),'
    '+(e.settings.html||"")+t.renderHtml(e)+"
    "}})}),r(Ct,[Pe],function(e){return e.extend({Defaults:{classes:"checkbox",role:"checkbox",checked:!1},init:function(e){var t=this;t._super(e),t.on("click mousedown",function(e){e.preventDefault()}),t.on("click",function(e){e.preventDefault(),t.disabled()||t.checked(!t.checked())}),t.checked(t.settings.checked)},checked:function(e){return arguments.length?(this.state.set("checked",e),this):this.state.get("checked")},value:function(e){return arguments.length?this.checked(e):this.checked()},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix;return'
    '+e.encode(e.state.get("text"))+"
    "},bindStates:function(){function e(e){t.classes.toggle("checked",e),t.aria("checked",e)}var t=this;return t.state.on("change:text",function(e){t.getEl("al").firstChild.data=t.translate(e.value)}),t.state.on("change:checked change:value",function(n){t.fire("change"),e(n.value)}),t.state.on("change:icon",function(e){var n=e.value,r=t.classPrefix;if("undefined"==typeof n)return t.settings.icon;t.settings.icon=n,n=n?r+"ico "+r+"i-"+t.settings.icon:"";var i=t.getEl().firstChild,o=i.getElementsByTagName("i")[0];n?(o&&o==i.firstChild||(o=document.createElement("i"),i.insertBefore(o,i.firstChild)),o.className=n):o&&i.removeChild(o)}),t.state.get("checked")&&e(!0),t._super()}})}),r(xt,[Pe,we,ve,g,I,m],function(e,t,n,r,i,o){return e.extend({init:function(e){var t=this;t._super(e),e=t.settings,t.classes.add("combobox"),t.subinput=!0,t.ariaTarget="inp",e.menu=e.menu||e.values,e.menu&&(e.icon="caret"),t.on("click",function(n){var i=n.target,o=t.getEl();if(r.contains(o,i)||i==o)for(;i&&i!=o;)i.id&&i.id.indexOf("-open")!=-1&&(t.fire("action"),e.menu&&(t.showMenu(),n.aria&&t.menu.items()[0].focus())),i=i.parentNode}),t.on("keydown",function(e){var n;13==e.keyCode&&"INPUT"===e.target.nodeName&&(e.preventDefault(),t.parents().reverse().each(function(e){if(e.toJSON)return n=e,!1}),t.fire("submit",{data:n.toJSON()}))}),t.on("keyup",function(e){if("INPUT"==e.target.nodeName){var n=t.state.get("value"),r=e.target.value;r!==n&&(t.state.set("value",r),t.fire("autocomplete",e))}}),t.on("mouseover",function(e){var n=t.tooltip().moveTo(-65535);if(t.statusLevel()&&e.target.className.indexOf(t.classPrefix+"status")!==-1){var r=t.statusMessage()||"Ok",i=n.text(r).show().testMoveRel(e.target,["bc-tc","bc-tl","bc-tr"]);n.classes.toggle("tooltip-n","bc-tc"==i),n.classes.toggle("tooltip-nw","bc-tl"==i),n.classes.toggle("tooltip-ne","bc-tr"==i),n.moveRel(e.target,i)}})},statusLevel:function(e){return arguments.length>0&&this.state.set("statusLevel",e),this.state.get("statusLevel")},statusMessage:function(e){return arguments.length>0&&this.state.set("statusMessage",e),this.state.get("statusMessage")},showMenu:function(){var e=this,n=e.settings,r;e.menu||(r=n.menu||[],r.length?r={type:"menu",items:r}:r.type=r.type||"menu",e.menu=t.create(r).parent(e).renderTo(e.getContainerElm()),e.fire("createmenu"),e.menu.reflow(),e.menu.on("cancel",function(t){t.control===e.menu&&e.focus()}),e.menu.on("show hide",function(t){t.control.items().each(function(t){t.active(t.value()==e.value())})}).fire("show"),e.menu.on("select",function(t){e.value(t.control.value())}),e.on("focusin",function(t){"INPUT"==t.target.tagName.toUpperCase()&&e.menu.hide()}),e.aria("expanded",!0)),e.menu.show(),e.menu.layoutRect({w:e.layoutRect().w}),e.menu.moveRel(e.getEl(),e.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"])},focus:function(){this.getEl("inp").focus()},repaint:function(){var e=this,t=e.getEl(),i=e.getEl("open"),o=e.layoutRect(),a,s,l=0,c=t.firstChild;e.statusLevel()&&"none"!==e.statusLevel()&&(l=parseInt(n.getRuntimeStyle(c,"padding-right"),10)-parseInt(n.getRuntimeStyle(c,"padding-left"),10)),a=i?o.w-n.getSize(i).width-10:o.w-10;var u=document;return u.all&&(!u.documentMode||u.documentMode<=8)&&(s=e.layoutRect().h-2+"px"),r(c).css({width:a-l,lineHeight:s}),e._super(),e},postRender:function(){var e=this;return r(this.getEl("inp")).on("change",function(t){e.state.set("value",t.target.value),e.fire("change",t)}),e._super()},renderHtml:function(){var e=this,t=e._id,n=e.settings,r=e.classPrefix,i=e.state.get("value")||"",o,a,s="",l="",c="";return"spellcheck"in n&&(l+=' spellcheck="'+n.spellcheck+'"'),n.maxLength&&(l+=' maxlength="'+n.maxLength+'"'),n.size&&(l+=' size="'+n.size+'"'),n.subtype&&(l+=' type="'+n.subtype+'"'),c='',e.disabled()&&(l+=' disabled="disabled"'),o=n.icon,o&&"caret"!=o&&(o=r+"ico "+r+"i-"+n.icon),a=e.state.get("text"),(o||a)&&(s='
    ",e.classes.add("has-open")),'
    '+c+s+"
    "},value:function(e){return arguments.length?(this.state.set("value",e),this):(this.state.get("rendered")&&this.state.set("value",this.getEl("inp").value),this.state.get("value"))},showAutoComplete:function(e,n){var r=this;if(0===e.length)return void r.hideMenu();var i=function(e,t){return function(){r.fire("selectitem",{title:t,value:e})}};r.menu?r.menu.items().remove():r.menu=t.create({type:"menu",classes:"combobox-menu",layout:"flow"}).parent(r).renderTo(),o.each(e,function(e){r.menu.add({text:e.title,url:e.previewUrl,match:n,classes:"menu-item-ellipsis",onclick:i(e.value,e.title)})}),r.menu.renderNew(),r.hideMenu(),r.menu.on("cancel",function(e){e.control.parent()===r.menu&&(e.stopPropagation(),r.focus(),r.hideMenu())}),r.menu.on("select",function(){r.focus()});var a=r.layoutRect().w;r.menu.layoutRect({w:a,minW:0,maxW:a}),r.menu.reflow(),r.menu.show(),r.menu.moveRel(r.getEl(),r.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"])},hideMenu:function(){this.menu&&this.menu.hide()},bindStates:function(){var e=this;e.state.on("change:value",function(t){e.getEl("inp").value!=t.value&&(e.getEl("inp").value=t.value)}),e.state.on("change:disabled",function(t){e.getEl("inp").disabled=t.value}),e.state.on("change:statusLevel",function(t){var r=e.getEl("status"),i=e.classPrefix,o=t.value;n.css(r,"display","none"===o?"none":""),n.toggleClass(r,i+"i-checkmark","ok"===o),n.toggleClass(r,i+"i-warning","warn"===o),n.toggleClass(r,i+"i-error","error"===o),e.classes.toggle("has-status","none"!==o),e.repaint()}),n.on(e.getEl("status"),"mouseleave",function(){e.tooltip().hide()}),e.on("cancel",function(t){e.menu&&e.menu.visible()&&(t.stopPropagation(),e.hideMenu())});var t=function(e,t){t&&t.items().length>0&&t.items().eq(e)[0].focus()};return e.on("keydown",function(n){var r=n.keyCode;"INPUT"===n.target.nodeName&&(r===i.DOWN?(n.preventDefault(),e.fire("autocomplete"),t(0,e.menu)):r===i.UP&&(n.preventDefault(),t(-1,e.menu)))}),e._super()},remove:function(){r(this.getEl("inp")).off(),this.menu&&this.menu.remove(),this._super()}})}),r(wt,[xt],function(e){return e.extend({init:function(e){var t=this;e.spellcheck=!1,e.onaction&&(e.icon="none"),t._super(e),t.classes.add("colorbox"),t.on("change keyup postrender",function(){t.repaintColor(t.value())})},repaintColor:function(e){var t=this.getEl("open"),n=t?t.getElementsByTagName("i")[0]:null;if(n)try{n.style.background=e}catch(r){}},bindStates:function(){var e=this;return e.state.on("change:value",function(t){e.state.get("rendered")&&e.repaintColor(t.value)}),e._super()}})}),r(Et,[yt,Ae],function(e,t){return e.extend({showPanel:function(){var e=this,n=e.settings;if(e.active(!0),e.panel)e.panel.show();else{var r=n.panel;r.type&&(r={layout:"grid",items:r}),r.role=r.role||"dialog",r.popover=!0,r.autohide=!0,r.ariaRoot=!0,e.panel=new t(r).on("hide",function(){e.active(!1)}).on("cancel",function(t){t.stopPropagation(),e.focus(),e.hidePanel()}).parent(e).renderTo(e.getContainerElm()),e.panel.fire("show"),e.panel.reflow()}e.panel.moveRel(e.getEl(),n.popoverAlign||(e.isRtl()?["bc-tr","bc-tc"]:["bc-tl","bc-tc"]))},hidePanel:function(){var e=this;e.panel&&e.panel.hide()},postRender:function(){var e=this;return e.aria("haspopup",!0),e.on("click",function(t){t.control===e&&(e.panel&&e.panel.visible()?e.hidePanel():(e.showPanel(),e.panel.focus(!!t.aria)))}),e._super()},remove:function(){return this.panel&&(this.panel.remove(),this.panel=null),this._super()}})}),r(Nt,[Et,w],function(e,t){var n=t.DOM;return e.extend({init:function(e){this._super(e),this.classes.add("colorbutton")},color:function(e){return e?(this._color=e,this.getEl("preview").style.backgroundColor=e,this):this._color},resetColor:function(){ +return this._color=null,this.getEl("preview").style.backgroundColor=null,this},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,r=e.state.get("text"),i=e.settings.icon?n+"ico "+n+"i-"+e.settings.icon:"",o=e.settings.image?" style=\"background-image: url('"+e.settings.image+"')\"":"",a="";return r&&(e.classes.add("btn-has-text"),a=''+e.encode(r)+""),'
    '},postRender:function(){var e=this,t=e.settings.onclick;return e.on("click",function(r){r.aria&&"down"==r.aria.key||r.control!=e||n.getParent(r.target,"."+e.classPrefix+"open")||(r.stopImmediatePropagation(),t.call(e,r))}),delete e.settings.onclick,e._super()}})}),r(_t,[],function(){function e(e){function i(e,i,o){var a,s,l,c,u,d;return a=0,s=0,l=0,e/=255,i/=255,o/=255,u=t(e,t(i,o)),d=n(e,n(i,o)),u==d?(l=u,{h:0,s:0,v:100*l}):(c=e==u?i-o:o==u?e-i:o-e,a=e==u?3:o==u?1:5,a=60*(a-c/(d-u)),s=(d-u)/d,l=d,{h:r(a),s:r(100*s),v:r(100*l)})}function o(e,i,o){var a,s,l,c;if(e=(parseInt(e,10)||0)%360,i=parseInt(i,10)/100,o=parseInt(o,10)/100,i=n(0,t(i,1)),o=n(0,t(o,1)),0===i)return void(d=f=h=r(255*o));switch(a=e/60,s=o*i,l=s*(1-Math.abs(a%2-1)),c=o-s,Math.floor(a)){case 0:d=s,f=l,h=0;break;case 1:d=l,f=s,h=0;break;case 2:d=0,f=s,h=l;break;case 3:d=0,f=l,h=s;break;case 4:d=l,f=0,h=s;break;case 5:d=s,f=0,h=l;break;default:d=f=h=0}d=r(255*(d+c)),f=r(255*(f+c)),h=r(255*(h+c))}function a(){function e(e){return e=parseInt(e,10).toString(16),e.length>1?e:"0"+e}return"#"+e(d)+e(f)+e(h)}function s(){return{r:d,g:f,b:h}}function l(){return i(d,f,h)}function c(e){var t;return"object"==typeof e?"r"in e?(d=e.r,f=e.g,h=e.b):"v"in e&&o(e.h,e.s,e.v):(t=/rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)[^\)]*\)/gi.exec(e))?(d=parseInt(t[1],10),f=parseInt(t[2],10),h=parseInt(t[3],10)):(t=/#([0-F]{2})([0-F]{2})([0-F]{2})/gi.exec(e))?(d=parseInt(t[1],16),f=parseInt(t[2],16),h=parseInt(t[3],16)):(t=/#([0-F])([0-F])([0-F])/gi.exec(e))&&(d=parseInt(t[1]+t[1],16),f=parseInt(t[2]+t[2],16),h=parseInt(t[3]+t[3],16)),d=d<0?0:d>255?255:d,f=f<0?0:f>255?255:f,h=h<0?0:h>255?255:h,u}var u=this,d=0,f=0,h=0;e&&c(e),u.toRgb=s,u.toHsv=l,u.toHex=a,u.parse=c}var t=Math.min,n=Math.max,r=Math.round;return e}),r(St,[Pe,_e,ve,_t],function(e,t,n,r){return e.extend({Defaults:{classes:"widget colorpicker"},init:function(e){this._super(e)},postRender:function(){function e(e,t){var r=n.getPos(e),i,o;return i=t.pageX-r.x,o=t.pageY-r.y,i=Math.max(0,Math.min(i/e.clientWidth,1)),o=Math.max(0,Math.min(o/e.clientHeight,1)),{x:i,y:o}}function i(e,t){var i=(360-e.h)/360;n.css(d,{top:100*i+"%"}),t||n.css(h,{left:e.s+"%",top:100-e.v+"%"}),f.style.background=new r({s:100,v:100,h:e.h}).toHex(),s.color().parse({s:e.s,v:e.v,h:e.h})}function o(t){var n;n=e(f,t),c.s=100*n.x,c.v=100*(1-n.y),i(c),s.fire("change")}function a(t){var n;n=e(u,t),c=l.toHsv(),c.h=360*(1-n.y),i(c,!0),s.fire("change")}var s=this,l=s.color(),c,u,d,f,h;u=s.getEl("h"),d=s.getEl("hp"),f=s.getEl("sv"),h=s.getEl("svp"),s._repaint=function(){c=l.toHsv(),i(c)},s._super(),s._svdraghelper=new t(s._id+"-sv",{start:o,drag:o}),s._hdraghelper=new t(s._id+"-h",{start:a,drag:a}),s._repaint()},rgb:function(){return this.color().toRgb()},value:function(e){var t=this;return arguments.length?(t.color().parse(e),void(t._rendered&&t._repaint())):t.color().toHex()},color:function(){return this._color||(this._color=new r),this._color},renderHtml:function(){function e(){var e,t,n="",i,a;for(i="filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr=",a=o.split(","),e=0,t=a.length-1;e';return n}var t=this,n=t._id,r=t.classPrefix,i,o="#ff0000,#ff0080,#ff00ff,#8000ff,#0000ff,#0080ff,#00ffff,#00ff80,#00ff00,#80ff00,#ffff00,#ff8000,#ff0000",a="background: -ms-linear-gradient(top,"+o+");background: linear-gradient(to bottom,"+o+");";return i='
    '+e()+'
    ','
    '+i+"
    "}})}),r(kt,[Pe],function(e){return e.extend({init:function(e){var t=this;e.delimiter||(e.delimiter="\xbb"),t._super(e),t.classes.add("path"),t.canFocus=!0,t.on("click",function(e){var n,r=e.target;(n=r.getAttribute("data-index"))&&t.fire("select",{value:t.row()[n],index:n})}),t.row(t.settings.row)},focus:function(){var e=this;return e.getEl().firstChild.focus(),e},row:function(e){return arguments.length?(this.state.set("row",e),this):this.state.get("row")},renderHtml:function(){var e=this;return'
    '+e._getDataPathHtml(e.state.get("row"))+"
    "},bindStates:function(){var e=this;return e.state.on("change:row",function(t){e.innerHtml(e._getDataPathHtml(t.value))}),e._super()},_getDataPathHtml:function(e){var t=this,n=e||[],r,i,o="",a=t.classPrefix;for(r=0,i=n.length;r0?'":"")+'
    '+n[r].name+"
    ";return o||(o='
    \xa0
    '),o}})}),r(Tt,[kt],function(e){return e.extend({postRender:function(){function e(e){if(1===e.nodeType){if("BR"==e.nodeName||e.getAttribute("data-mce-bogus"))return!0;if("bookmark"===e.getAttribute("data-mce-type"))return!0}return!1}var t=this,n=t.settings.editor;return n.settings.elementpath!==!1&&(t.on("select",function(e){n.focus(),n.selection.select(this.row()[e.index].element),n.nodeChanged()}),n.on("nodeChange",function(r){for(var i=[],o=r.parents,a=o.length;a--;)if(1==o[a].nodeType&&!e(o[a])){var s=n.fire("ResolveName",{name:o[a].nodeName.toLowerCase(),target:o[a]});if(s.isDefaultPrevented()||i.push({name:s.name,element:o[a]}),s.isPropagationStopped())break}t.row(i)})),t._super()}})}),r(Rt,[Ne],function(e){return e.extend({Defaults:{layout:"flex",align:"center",defaults:{flex:1}},renderHtml:function(){var e=this,t=e._layout,n=e.classPrefix;return e.classes.add("formitem"),t.preRender(e),'
    '+(e.settings.title?'
    '+e.settings.title+"
    ":"")+'
    '+(e.settings.html||"")+t.renderHtml(e)+"
    "}})}),r(At,[Ne,Rt,m],function(e,t,n){return e.extend({Defaults:{containerCls:"form",layout:"flex",direction:"column",align:"stretch",flex:1,padding:20,labelGap:30,spacing:10,callbacks:{submit:function(){this.submit()}}},preRender:function(){var e=this,r=e.items();e.settings.formItemDefaults||(e.settings.formItemDefaults={layout:"flex",autoResize:"overflow",defaults:{flex:1}}),r.each(function(r){var i,o=r.settings.label;o&&(i=new t(n.extend({items:{type:"label",id:r._id+"-l",text:o,flex:0,forId:r._id,disabled:r.disabled()}},e.settings.formItemDefaults)),i.type="formitem",r.aria("labelledby",r._id+"-l"),"undefined"==typeof r.settings.flex&&(r.settings.flex=1),e.replace(r,i),i.add(r))})},submit:function(){return this.fire("submit",{data:this.toJSON()})},postRender:function(){var e=this;e._super(),e.fromJSON(e.settings.data)},bindStates:function(){function e(){var e=0,n=[],r,i,o;if(t.settings.labelGapCalc!==!1)for(o="children"==t.settings.labelGapCalc?t.find("formitem"):t.items(),o.filter("formitem").each(function(t){var r=t.items()[0],i=r.getEl().clientWidth;e=i>e?i:e,n.push(r)}),i=t.settings.labelGap||0,r=n.length;r--;)n[r].settings.minWidth=e+i}var t=this;t._super(),t.on("show",e),e()}})}),r(Bt,[At],function(e){return e.extend({Defaults:{containerCls:"fieldset",layout:"flex",direction:"column",align:"stretch",flex:1,padding:"25 15 5 15",labelGap:30,spacing:10,border:1},renderHtml:function(){var e=this,t=e._layout,n=e.classPrefix;return e.preRender(),t.preRender(e),'
    '+(e.settings.title?''+e.settings.title+"":"")+'
    '+(e.settings.html||"")+t.renderHtml(e)+"
    "}})}),r(Dt,[w,z,p,rt,m,_],function(e,t,n,r,i,o){var a=i.trim,s=function(e,t,n,r,i){return{type:e,title:t,url:n,level:r,attach:i}},l=function(e){for(;e=e.parentNode;){var t=e.contentEditable;if(t&&"inherit"!==t)return o.isContentEditableTrue(e)}return!1},c=function(t,n){return e.DOM.select(t,n)},u=function(e){return e.innerText||e.textContent},d=function(e){return e.id?e.id:r.uuid("h")},f=function(e){return e&&"A"===e.nodeName&&(e.id||e.name)},h=function(e){return f(e)&&m(e)},p=function(e){return e&&/^(H[1-6])$/.test(e.nodeName)},m=function(e){return l(e)&&!o.isContentEditableFalse(e)},g=function(e){return p(e)&&m(e)},v=function(e){return p(e)?parseInt(e.nodeName.substr(1),10):0},y=function(e){var t=d(e),n=function(){e.id=t};return s("header",u(e),"#"+t,v(e),n)},b=function(e){var n=e.id||e.name,r=u(e);return s("anchor",r?r:"#"+n,"#"+n,0,t.noop)},C=function(e){return n.map(n.filter(e,g),y)},x=function(e){return n.map(n.filter(e,h),b)},w=function(e){var t=c("h1,h2,h3,h4,h5,h6,a:not([href])",e);return t},E=function(e){return a(e.title).length>0},N=function(e){var t=w(e);return n.filter(C(t).concat(x(t)),E)};return{find:N}}),r(Lt,[xt,m,p,z,I,Dt],function(e,t,n,r,i,o){var a={},s=5,l=function(e){return{title:e.title,value:{title:{raw:e.title},url:e.url,attach:e.attach}}},c=function(e){return t.map(e,l)},u=function(e,t){return{title:e,value:{title:e,url:t,attach:r.noop}}},d=function(e,t){var r=n.find(t,function(t){return t.url===e});return!r},f=function(e,t,n){var r=t in e?e[t]:n;return r===!1?null:r},h=function(e,i,o,s){var l={title:"-"},h=function(e){var a=n.filter(e[o],function(e){return d(e,i)});return t.map(a,function(e){return{title:e,value:{title:e,url:e,attach:r.noop}}})},p=function(e){var t=n.filter(i,function(t){return t.type==e});return c(t)},g=function(){var e=p("anchor"),t=f(s,"anchor_top","#top"),n=f(s,"anchor_bottom","#bottom");return null!==t&&e.unshift(u("",t)),null!==n&&e.push(u("",n)),e},v=function(e){return n.reduce(e,function(e,t){var n=0===e.length||0===t.length;return n?e.concat(t):e.concat(l,t)},[])};return s.typeahead_urls===!1?[]:"file"===o?v([m(e,h(a)),m(e,p("header")),m(e,g())]):m(e,h(a))},p=function(e,t){var r=a[t];/^https?/.test(e)&&(r?n.indexOf(r,e)===-1&&(a[t]=r.slice(0,s).concat(e)):a[t]=[e])},m=function(e,n){var r=e.toLowerCase(),i=t.grep(n,function(e){return e.title.toLowerCase().indexOf(r)!==-1});return 1===i.length&&i[0].title===e?[]:i},g=function(e){var t=e.title;return t.raw?t.raw:t},v=function(e,t,n,r){var i=function(i){var a=o.find(n),s=h(i,a,r,t);e.showAutoComplete(s,i)};e.on("autocomplete",function(){i(e.value())}),e.on("selectitem",function(t){var n=t.value;e.value(n.url);var i=g(n);"image"===r?e.fire("change",{meta:{alt:i,attach:n.attach}}):e.fire("change",{meta:{text:i,attach:n.attach}}),e.focus()}),e.on("click",function(t){0===e.value().length&&"INPUT"===t.target.nodeName&&i("")}),e.on("PostRender",function(){e.getRoot().on("submit",function(t){t.isDefaultPrevented()||p(e.value(),r)})})},y=function(e){var t=e.status,n=e.message;return"valid"===t?{status:"ok",message:n}:"unknown"===t?{status:"warn",message:n}:"invalid"===t?{status:"warn",message:n}:{status:"none",message:""}},b=function(e,t,n){var r=t.filepicker_validator_handler;if(r){var i=function(t){return 0===t.length?void e.statusLevel("none"):void r({url:t,type:n},function(t){var n=y(t);e.statusMessage(n.message),e.statusLevel(n.status)})};e.state.on("change:value",function(e){i(e.value)})}};return e.extend({init:function(e){var n=this,r=tinymce.activeEditor,i=r.settings,o,a,s,l=e.filetype;e.spellcheck=!1,s=i.file_picker_types||i.file_browser_callback_types,s&&(s=t.makeMap(s,/[, ]/)),s&&!s[l]||(a=i.file_picker_callback,!a||s&&!s[l]?(a=i.file_browser_callback,!a||s&&!s[l]||(o=function(){a(n.getEl("inp").id,n.value(),l,window)})):o=function(){var e=n.fire("beforecall").meta;e=t.extend({filetype:l},e),a.call(r,function(e,t){n.value(e).fire("change",{meta:t})},n.value(),e)}),o&&(e.icon="browse",e.onaction=o),n._super(e),v(n,i,r.getBody(),l),b(n,i,l)}})}),r(Mt,[vt],function(e){return e.extend({recalc:function(e){var t=e.layoutRect(),n=e.paddingBox;e.items().filter(":visible").each(function(e){e.layoutRect({x:n.left,y:n.top,w:t.innerW-n.right-n.left,h:t.innerH-n.top-n.bottom}),e.recalc&&e.recalc()})}})}),r(Pt,[vt],function(e){return e.extend({recalc:function(e){var t,n,r,i,o,a,s,l,c,u,d,f,h,p,m,g,v=[],y,b,C,x,w,E,N,_,S,k,T,R,A,B,D,L,M,P,O,H,I,F,z=Math.max,U=Math.min;for(r=e.items().filter(":visible"),i=e.layoutRect(),o=e.paddingBox,a=e.settings,f=e.isRtl()?a.direction||"row-reversed":a.direction,s=a.align,l=e.isRtl()?a.pack||"end":a.pack,c=a.spacing||0,"row-reversed"!=f&&"column-reverse"!=f||(r=r.set(r.toArray().reverse()),f=f.split("-")[0]),"column"==f?(S="y",N="h",_="minH",k="maxH",R="innerH",T="top",A="deltaH",B="contentH",O="left",M="w",D="x",L="innerW",P="minW",H="right",I="deltaW",F="contentW"):(S="x",N="w",_="minW",k="maxW",R="innerW",T="left",A="deltaW",B="contentW",O="top",M="h",D="y",L="innerH",P="minH",H="bottom",I="deltaH",F="contentH"),d=i[R]-o[T]-o[T],E=u=0,t=0,n=r.length;t0&&(u+=g,p[k]&&v.push(h),p.flex=g),d-=p[_],y=o[O]+p[P]+o[H],y>E&&(E=y);if(x={},d<0?x[_]=i[_]-d+i[A]:x[_]=i[R]-d+i[A],x[P]=E+i[I],x[B]=i[R]-d,x[F]=E,x.minW=U(x.minW,i.maxW),x.minH=U(x.minH,i.maxH),x.minW=z(x.minW,i.startMinWidth),x.minH=z(x.minH,i.startMinHeight),!i.autoResize||x.minW==i.minW&&x.minH==i.minH){for(C=d/u,t=0,n=v.length;tb?(d-=p[k]-p[_],u-=p.flex,p.flex=0,p.maxFlexSize=b):p.maxFlexSize=0;for(C=d/u,w=o[T],x={},0===u&&("end"==l?w=d+o[T]:"center"==l?(w=Math.round(i[R]/2-(i[R]-d)/2)+o[T],w<0&&(w=o[T])):"justify"==l&&(w=o[T],c=Math.floor(d/(r.length-1)))),x[D]=o[O],t=0,n=r.length;t0&&(y+=p.flex*C),x[N]=y,x[S]=w,h.layoutRect(x),h.recalc&&h.recalc(),w+=y+c}else if(x.w=x.minW,x.h=x.minH,e.layoutRect(x),this.recalc(e),null===e._lastRect){var W=e.parent();W&&(W._lastRect=null,W.recalc())}}})}),r(Ot,[gt],function(e){return e.extend({Defaults:{containerClass:"flow-layout",controlClass:"flow-layout-item",endClass:"break"},recalc:function(e){e.items().filter(":visible").each(function(e){e.recalc&&e.recalc()})},isNative:function(){return!0}})}),r(Ht,[xe,Pe,Ae,m,p,w,lt,d],function(e,t,n,r,i,o,a,s){function l(e){e.settings.ui_container&&(s.container=o.DOM.select(e.settings.ui_container)[0])}function c(t){t.on("ScriptsLoaded",function(){t.rtl&&(e.rtl=!0)})}function u(e){function t(t,n){return function(){var r=this;e.on("nodeChange",function(i){var o=e.formatter,a=null;d(i.parents,function(e){if(d(t,function(t){if(n?o.matchNode(e,n,{value:t.value})&&(a=t.value):o.matchNode(e,t.value)&&(a=t.value),a)return!1}),a)return!1}),r.value(a)})}}function i(e){e=e.replace(/;$/,"").split(";");for(var t=e.length;t--;)e[t]=e[t].split("=");return e}function o(){function t(e){var n=[];if(e)return d(e,function(e){var o={text:e.title,icon:e.icon};if(e.items)o.menu=t(e.items);else{var a=e.format||"custom"+r++;e.format||(e.name=a,i.push(e)),o.format=a,o.cmd=e.cmd}n.push(o)}),n}function n(){var n;return n=t(e.settings.style_formats_merge?e.settings.style_formats?o.concat(e.settings.style_formats):o:e.settings.style_formats||o)}var r=0,i=[],o=[{title:"Headings",items:[{title:"Heading 1",format:"h1"},{title:"Heading 2",format:"h2"},{title:"Heading 3",format:"h3"},{title:"Heading 4",format:"h4"},{title:"Heading 5",format:"h5"},{title:"Heading 6",format:"h6"}]},{title:"Inline",items:[{title:"Bold",icon:"bold",format:"bold"},{title:"Italic",icon:"italic",format:"italic"},{title:"Underline",icon:"underline",format:"underline"},{title:"Strikethrough",icon:"strikethrough",format:"strikethrough"},{title:"Superscript",icon:"superscript",format:"superscript"},{title:"Subscript",icon:"subscript",format:"subscript"},{title:"Code",icon:"code",format:"code"}]},{title:"Blocks",items:[{title:"Paragraph",format:"p"},{title:"Blockquote",format:"blockquote"},{title:"Div",format:"div"},{title:"Pre",format:"pre"}]},{title:"Alignment",items:[{title:"Left",icon:"alignleft",format:"alignleft"},{title:"Center",icon:"aligncenter",format:"aligncenter"},{title:"Right",icon:"alignright",format:"alignright"},{title:"Justify",icon:"alignjustify",format:"alignjustify"}]}];return e.on("init",function(){d(i,function(t){e.formatter.register(t.name,t)})}),{type:"menu",items:n(),onPostRender:function(t){e.fire("renderFormatsMenu",{control:t.control})},itemDefaults:{preview:!0,textStyle:function(){if(this.settings.format)return e.formatter.getCssText(this.settings.format)},onPostRender:function(){var t=this;t.parent().on("show",function(){var n,r;n=t.settings.format,n&&(t.disabled(!e.formatter.canApply(n)),t.active(e.formatter.match(n))),r=t.settings.cmd,r&&t.active(e.queryCommandState(r))})},onclick:function(){this.settings.format&&c(this.settings.format),this.settings.cmd&&e.execCommand(this.settings.cmd)}}}}function a(t){return function(){var n=this;e.formatter?e.formatter.formatChanged(t,function(e){n.active(e)}):e.on("init",function(){e.formatter.formatChanged(t,function(e){n.active(e)})})}}function s(t){return function(){function n(){return!!e.undoManager&&e.undoManager[t]()}var r=this;t="redo"==t?"hasRedo":"hasUndo",r.disabled(!n()),e.on("Undo Redo AddUndo TypingUndo ClearUndos SwitchMode",function(){r.disabled(e.readonly||!n())})}}function l(){var t=this;e.on("VisualAid",function(e){t.active(e.hasVisual)}),t.active(e.hasVisual)}function c(t){t.control&&(t=t.control.value()),t&&e.execCommand("mceToggleFormat",!1,t)}function u(t){var n=t.length;return r.each(t,function(t){t.menu&&(t.hidden=0===u(t.menu));var r=t.format;r&&(t.hidden=!e.formatter.canApply(r)),t.hidden&&n--}),n}function h(t){var n=t.items().length;return t.items().each(function(t){t.menu&&t.visible(h(t.menu)>0),!t.menu&&t.settings.menu&&t.visible(u(t.settings.menu)>0);var r=t.settings.format;r&&t.visible(e.formatter.canApply(r)),t.visible()||n--}),n}var p;p=o(),d({bold:"Bold",italic:"Italic",underline:"Underline",strikethrough:"Strikethrough",subscript:"Subscript",superscript:"Superscript"},function(t,n){e.addButton(n,{tooltip:t,onPostRender:a(n),onclick:function(){c(n)}})}),d({outdent:["Decrease indent","Outdent"],indent:["Increase indent","Indent"],cut:["Cut","Cut"],copy:["Copy","Copy"],paste:["Paste","Paste"],help:["Help","mceHelp"],selectall:["Select all","SelectAll"],removeformat:["Clear formatting","RemoveFormat"],visualaid:["Visual aids","mceToggleVisualAid"],newdocument:["New document","mceNewDocument"]},function(t,n){e.addButton(n,{tooltip:t[0],cmd:t[1]})}),d({blockquote:["Blockquote","mceBlockQuote"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"],alignleft:["Align left","JustifyLeft"],aligncenter:["Align center","JustifyCenter"],alignright:["Align right","JustifyRight"],alignjustify:["Justify","JustifyFull"],alignnone:["No alignment","JustifyNone"]},function(t,n){e.addButton(n,{tooltip:t[0],cmd:t[1],onPostRender:a(n)})});var m=function(e){var t=e;return t.length>0&&"-"===t[0].text&&(t=t.slice(1)),t.length>0&&"-"===t[t.length-1].text&&(t=t.slice(0,t.length-1)),t},g=function(t){var n,i;if("string"==typeof t)i=t.split(" ");else if(r.isArray(t))return f(r.map(t,g));return n=r.grep(i,function(t){return"|"===t||t in e.menuItems}),r.map(n,function(t){return"|"===t?{text:"-"}:e.menuItems[t]})},v=function(t){var n=[{text:"-"}],i=r.grep(e.menuItems,function(e){return e.context===t});return r.each(i,function(e){"before"==e.separator&&n.push({text:"|"}),e.prependToContext?n.unshift(e):n.push(e),"after"==e.separator&&n.push({text:"|"})}),n},y=function(e){return m(e.insert_button_items?g(e.insert_button_items):v("insert"))};e.addButton("undo",{tooltip:"Undo",onPostRender:s("undo"),cmd:"undo"}),e.addButton("redo",{tooltip:"Redo",onPostRender:s("redo"),cmd:"redo"}),e.addMenuItem("newdocument",{text:"New document",icon:"newdocument",cmd:"mceNewDocument"}),e.addMenuItem("undo",{text:"Undo",icon:"undo",shortcut:"Meta+Z",onPostRender:s("undo"),cmd:"undo"}),e.addMenuItem("redo",{text:"Redo",icon:"redo",shortcut:"Meta+Y",onPostRender:s("redo"),cmd:"redo"}),e.addMenuItem("visualaid",{text:"Visual aids",selectable:!0,onPostRender:l,cmd:"mceToggleVisualAid"}),e.addButton("remove",{tooltip:"Remove",icon:"remove",cmd:"Delete"}),e.addButton("insert",{type:"menubutton",icon:"insert",menu:[],oncreatemenu:function(){this.menu.add(y(e.settings)),this.menu.renderNew()}}),d({cut:["Cut","Cut","Meta+X"],copy:["Copy","Copy","Meta+C"],paste:["Paste","Paste","Meta+V"],selectall:["Select all","SelectAll","Meta+A"],bold:["Bold","Bold","Meta+B"],italic:["Italic","Italic","Meta+I"],underline:["Underline","Underline"],strikethrough:["Strikethrough","Strikethrough"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"],removeformat:["Clear formatting","RemoveFormat"]},function(t,n){e.addMenuItem(n,{text:t[0],icon:n,shortcut:t[2],cmd:t[1]})}),e.on("mousedown",function(){n.hideAll()}),e.addButton("styleselect",{type:"menubutton",text:"Formats",menu:p,onShowMenu:function(){e.settings.style_formats_autohide&&h(this.menu)}}),e.addButton("formatselect",function(){var n=[],r=i(e.settings.block_formats||"Paragraph=p;Heading 1=h1;Heading 2=h2;Heading 3=h3;Heading 4=h4;Heading 5=h5;Heading 6=h6;Preformatted=pre");return d(r,function(t){n.push({text:t[0],value:t[1],textStyle:function(){return e.formatter.getCssText(t[1])}})}),{type:"listbox",text:r[0][0],values:n,fixedWidth:!0,onselect:c,onPostRender:t(n)}}),e.addButton("fontselect",function(){var n="Andale Mono=andale mono,monospace;Arial=arial,helvetica,sans-serif;Arial Black=arial black,sans-serif;Book Antiqua=book antiqua,palatino,serif;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier,monospace;Georgia=georgia,palatino,serif;Helvetica=helvetica,arial,sans-serif;Impact=impact,sans-serif;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco,monospace;Times New Roman=times new roman,times,serif;Trebuchet MS=trebuchet ms,geneva,sans-serif;Verdana=verdana,geneva,sans-serif;Webdings=webdings;Wingdings=wingdings,zapf dingbats",r=[],o=i(e.settings.font_formats||n);return d(o,function(e){r.push({text:{raw:e[0]},value:e[1],textStyle:e[1].indexOf("dings")==-1?"font-family:"+e[1]:""})}),{type:"listbox",text:"Font Family",tooltip:"Font Family",values:r,fixedWidth:!0,onPostRender:t(r,"fontname"),onselect:function(t){t.control.settings.value&&e.execCommand("FontName",!1,t.control.settings.value)}}}),e.addButton("fontsizeselect",function(){var n=[],r="8pt 10pt 12pt 14pt 18pt 24pt 36pt",i=e.settings.fontsize_formats||r;return d(i.split(" "),function(e){var t=e,r=e,i=e.split("=");i.length>1&&(t=i[0],r=i[1]),n.push({text:t,value:r})}),{type:"listbox",text:"Font Sizes",tooltip:"Font Sizes",values:n,fixedWidth:!0,onPostRender:t(n,"fontsize"),onclick:function(t){t.control.settings.value&&e.execCommand("FontSize",!1,t.control.settings.value)}}}),e.addMenuItem("formats",{text:"Formats",menu:p})}var d=r.each,f=function(e){return i.reduce(e,function(e,t){return e.concat(t)},[])};a.on("AddEditor",function(e){var t=e.editor;c(t),u(t),l(t)}),e.translate=function(e){return a.translate(e)},t.tooltips=!s.iOS}),r(It,[vt],function(e){return e.extend({recalc:function(e){var t,n,r,i,o,a,s,l,c,u,d,f,h,p,m,g,v,y,b,C,x,w,E,N=[],_=[],S,k,T,R,A,B;t=e.settings,i=e.items().filter(":visible"),o=e.layoutRect(),r=t.columns||Math.ceil(Math.sqrt(i.length)),n=Math.ceil(i.length/r),y=t.spacingH||t.spacing||0,b=t.spacingV||t.spacing||0,C=t.alignH||t.align,x=t.alignV||t.align,g=e.paddingBox,A="reverseRows"in t?t.reverseRows:e.isRtl(),C&&"string"==typeof C&&(C=[C]),x&&"string"==typeof x&&(x=[x]);for(d=0;dN[d]?S:N[d],_[f]=k>_[f]?k:_[f];for(T=o.innerW-g.left-g.right,w=0,d=0;d0?y:0),T-=(d>0?y:0)+N[d];for(R=o.innerH-g.top-g.bottom,E=0,f=0;f0?b:0),R-=(f>0?b:0)+_[f];if(w+=g.left+g.right,E+=g.top+g.bottom,l={},l.minW=w+(o.w-o.innerW),l.minH=E+(o.h-o.innerH),l.contentW=l.minW-o.deltaW,l.contentH=l.minH-o.deltaH,l.minW=Math.min(l.minW,o.maxW),l.minH=Math.min(l.minH,o.maxH),l.minW=Math.max(l.minW,o.startMinWidth),l.minH=Math.max(l.minH,o.startMinHeight),!o.autoResize||l.minW==o.minW&&l.minH==o.minH){o.autoResize&&(l=e.layoutRect(l),l.contentW=l.minW-o.deltaW,l.contentH=l.minH-o.deltaH);var D;D="start"==t.packV?0:R>0?Math.floor(R/n):0;var L=0,M=t.flexWidths;if(M)for(d=0;d'},src:function(e){this.getEl().src=e},html:function(e,n){var r=this,i=this.getEl().contentWindow.document.body;return i?(i.innerHTML=e,n&&n()):t.setTimeout(function(){r.html(e)}),this}})}),r(zt,[Pe],function(e){return e.extend({init:function(e){var t=this;t._super(e),t.classes.add("widget").add("infobox"),t.canFocus=!1},severity:function(e){this.classes.remove("error"),this.classes.remove("warning"),this.classes.remove("success"),this.classes.add(e)},help:function(e){this.state.set("help",e)},renderHtml:function(){var e=this,t=e.classPrefix;return'
    '+e.encode(e.state.get("text"))+'
    '},bindStates:function(){var e=this;return e.state.on("change:text",function(t){e.getEl("body").firstChild.data=e.encode(t.value),e.state.get("rendered")&&e.updateLayoutRect()}),e.state.on("change:help",function(t){e.classes.toggle("has-help",t.value),e.state.get("rendered")&&e.updateLayoutRect()}),e._super()}})}),r(Ut,[Pe,ve],function(e,t){return e.extend({init:function(e){var t=this;t._super(e),t.classes.add("widget").add("label"),t.canFocus=!1,e.multiline&&t.classes.add("autoscroll"),e.strong&&t.classes.add("strong")},initLayoutRect:function(){var e=this,n=e._super();if(e.settings.multiline){var r=t.getSize(e.getEl());r.width>n.maxW&&(n.minW=n.maxW,e.classes.add("multiline")),e.getEl().style.width=n.minW+"px",n.startMinH=n.h=n.minH=Math.min(n.maxH,t.getSize(e.getEl()).height)}return n},repaint:function(){var e=this;return e.settings.multiline||(e.getEl().style.lineHeight=e.layoutRect().h+"px"),e._super()},severity:function(e){this.classes.remove("error"),this.classes.remove("warning"),this.classes.remove("success"),this.classes.add(e)},renderHtml:function(){var e=this,t,n,r=e.settings.forId;return!r&&(n=e.settings.forName)&&(t=e.getRoot().find("#"+n)[0],t&&(r=t._id)),r?'":''+e.encode(e.state.get("text"))+""},bindStates:function(){var e=this;return e.state.on("change:text",function(t){e.innerHtml(e.encode(t.value)),e.state.get("rendered")&&e.updateLayoutRect()}),e._super()}})}),r(Wt,[Ne],function(e){return e.extend({Defaults:{role:"toolbar",layout:"flow"},init:function(e){var t=this;t._super(e),t.classes.add("toolbar")},postRender:function(){var e=this;return e.items().each(function(e){e.classes.add("toolbar-item")}),e._super()}})}),r(Vt,[Wt],function(e){return e.extend({Defaults:{role:"menubar",containerCls:"menubar",ariaRoot:!0,defaults:{type:"menubutton"}}})}),r($t,[yt,we,Vt],function(e,t,n){function r(e,t){for(;e;){if(t===e)return!0;e=e.parentNode}return!1}var i=e.extend({init:function(e){var t=this;t._renderOpen=!0,t._super(e),e=t.settings,t.classes.add("menubtn"),e.fixedWidth&&t.classes.add("fixed-width"),t.aria("haspopup",!0),t.state.set("menu",e.menu||t.render())},showMenu:function(){var e=this,n;return e.menu&&e.menu.visible()?e.hideMenu():(e.menu||(n=e.state.get("menu")||[],n.length?n={type:"menu",items:n}:n.type=n.type||"menu",n.renderTo?e.menu=n.parent(e).show().renderTo():e.menu=t.create(n).parent(e).renderTo(),e.fire("createmenu"),e.menu.reflow(),e.menu.on("cancel",function(t){t.control.parent()===e.menu&&(t.stopPropagation(),e.focus(),e.hideMenu())}),e.menu.on("select",function(){e.focus()}),e.menu.on("show hide",function(t){t.control==e.menu&&e.activeMenu("show"==t.type),e.aria("expanded","show"==t.type)}).fire("show")),e.menu.show(),e.menu.layoutRect({w:e.layoutRect().w}),e.menu.moveRel(e.getEl(),e.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"]),void e.fire("showmenu"))},hideMenu:function(){var e=this;e.menu&&(e.menu.items().each(function(e){e.hideMenu&&e.hideMenu()}),e.menu.hide())},activeMenu:function(e){this.classes.toggle("active",e)},renderHtml:function(){var e=this,t=e._id,r=e.classPrefix,i=e.settings.icon,o,a=e.state.get("text"),s="";return o=e.settings.image,o?(i="none","string"!=typeof o&&(o=window.getSelection?o[0]:o[1]),o=" style=\"background-image: url('"+o+"')\""):o="",a&&(e.classes.add("btn-has-text"),s=''+e.encode(a)+""),i=e.settings.icon?r+"ico "+r+"i-"+i:"",e.aria("role",e.parent()instanceof n?"menuitem":"button"),'
    '},postRender:function(){var e=this;return e.on("click",function(t){t.control===e&&r(t.target,e.getEl())&&(e.showMenu(),t.aria&&e.menu.items().filter(":visible")[0].focus())}),e.on("mouseenter",function(t){var n=t.control,r=e.parent(),o;n&&r&&n instanceof i&&n.parent()==r&&(r.items().filter("MenuButton").each(function(e){e.hideMenu&&e!=n&&(e.menu&&e.menu.visible()&&(o=!0),e.hideMenu())}),o&&(n.focus(),n.showMenu()))}),e._super()},bindStates:function(){var e=this;return e.state.on("change:menu",function(){e.menu&&e.menu.remove(),e.menu=null}),e._super()},remove:function(){this._super(),this.menu&&this.menu.remove()}});return i}),r(qt,[Pe,we,d,u],function(e,t,n,r){return e.extend({Defaults:{border:0,role:"menuitem"},init:function(e){var t=this,n;t._super(e),e=t.settings,t.classes.add("menu-item"),e.menu&&t.classes.add("menu-item-expand"),e.preview&&t.classes.add("menu-item-preview"),n=t.state.get("text"),"-"!==n&&"|"!==n||(t.classes.add("menu-item-sep"),t.aria("role","separator"), +t.state.set("text","-")),e.selectable&&(t.aria("role","menuitemcheckbox"),t.classes.add("menu-item-checkbox"),e.icon="selected"),e.preview||e.selectable||t.classes.add("menu-item-normal"),t.on("mousedown",function(e){e.preventDefault()}),e.menu&&!e.ariaHideMenu&&t.aria("haspopup",!0)},hasMenus:function(){return!!this.settings.menu},showMenu:function(){var e=this,n=e.settings,r,i=e.parent();if(i.items().each(function(t){t!==e&&t.hideMenu()}),n.menu){r=e.menu,r?r.show():(r=n.menu,r.length?r={type:"menu",items:r}:r.type=r.type||"menu",i.settings.itemDefaults&&(r.itemDefaults=i.settings.itemDefaults),r=e.menu=t.create(r).parent(e).renderTo(),r.reflow(),r.on("cancel",function(t){t.stopPropagation(),e.focus(),r.hide()}),r.on("show hide",function(e){e.control.items&&e.control.items().each(function(e){e.active(e.settings.selected)})}).fire("show"),r.on("hide",function(t){t.control===r&&e.classes.remove("selected")}),r.submenu=!0),r._parentMenu=i,r.classes.add("menu-sub");var o=r.testMoveRel(e.getEl(),e.isRtl()?["tl-tr","bl-br","tr-tl","br-bl"]:["tr-tl","br-bl","tl-tr","bl-br"]);r.moveRel(e.getEl(),o),r.rel=o,o="menu-sub-"+o,r.classes.remove(r._lastRel).add(o),r._lastRel=o,e.classes.add("selected"),e.aria("expanded",!0)}},hideMenu:function(){var e=this;return e.menu&&(e.menu.items().each(function(e){e.hideMenu&&e.hideMenu()}),e.menu.hide(),e.aria("expanded",!1)),e},renderHtml:function(){function e(e){var t,r,i={};for(i=n.mac?{alt:"⌥",ctrl:"⌘",shift:"⇧",meta:"⌘"}:{meta:"Ctrl"},e=e.split("+"),t=0;t").replace(new RegExp(t("]mce~match!"),"g"),"")}var o=this,a=o._id,s=o.settings,l=o.classPrefix,c=o.state.get("text"),u=o.settings.icon,d="",f=s.shortcut,h=o.encode(s.url),p="";return u&&o.parent().classes.add("menu-has-icons"),s.image&&(d=" style=\"background-image: url('"+s.image+"')\""),f&&(f=e(f)),u=l+"ico "+l+"i-"+(o.settings.icon||"none"),p="-"!==c?'\xa0":"",c=i(o.encode(r(c))),h=i(o.encode(r(h))),'
    '+p+("-"!==c?''+c+"":"")+(f?'
    '+f+"
    ":"")+(s.menu?'
    ':"")+(h?'":"")+"
    "},postRender:function(){var e=this,t=e.settings,n=t.textStyle;if("function"==typeof n&&(n=n.call(this)),n){var i=e.getEl("text");i&&i.setAttribute("style",n)}return e.on("mouseenter click",function(n){n.control===e&&(t.menu||"click"!==n.type?(e.showMenu(),n.aria&&e.menu.focus(!0)):(e.fire("select"),r.requestAnimationFrame(function(){e.parent().hideAll()})))}),e._super(),e},hover:function(){var e=this;return e.parent().items().each(function(e){e.classes.remove("selected")}),e.classes.toggle("selected",!0),e},active:function(e){return"undefined"!=typeof e&&this.aria("checked",e),this._super(e)},remove:function(){this._super(),this.menu&&this.menu.remove()}})}),r(jt,[g,xe,u],function(e,t,n){return function(r,i){var o=this,a,s=t.classPrefix,l;o.show=function(t,c){function u(){a&&(e(r).append('
    '),c&&c())}return o.hide(),a=!0,t?l=n.setTimeout(u,t):u(),o},o.hide=function(){var e=r.lastChild;return n.clearTimeout(l),e&&e.className.indexOf("throbber")!=-1&&e.parentNode.removeChild(e),a=!1,o}}}),r(Yt,[Ae,qt,jt,m],function(e,t,n,r){return e.extend({Defaults:{defaultType:"menuitem",border:1,layout:"stack",role:"application",bodyRole:"menu",ariaRoot:!0},init:function(e){var t=this;if(e.autohide=!0,e.constrainToViewport=!0,"function"==typeof e.items&&(e.itemsFactory=e.items,e.items=[]),e.itemDefaults)for(var n=e.items,i=n.length;i--;)n[i]=r.extend({},e.itemDefaults,n[i]);t._super(e),t.classes.add("menu")},repaint:function(){return this.classes.toggle("menu-align",!0),this._super(),this.getEl().style.height="",this.getEl("body").style.height="",this},cancel:function(){var e=this;e.hideAll(),e.fire("select")},load:function(){function e(){t.throbber&&(t.throbber.hide(),t.throbber=null)}var t=this,r,i;i=t.settings.itemsFactory,i&&(t.throbber||(t.throbber=new n(t.getEl("body"),!0),0===t.items().length?(t.throbber.show(),t.fire("loading")):t.throbber.show(100,function(){t.items().remove(),t.fire("loading")}),t.on("hide close",e)),t.requestTime=r=(new Date).getTime(),t.settings.itemsFactory(function(n){return 0===n.length?void t.hide():void(t.requestTime===r&&(t.getEl().style.width="",t.getEl("body").style.width="",e(),t.items().remove(),t.getEl("body").innerHTML="",t.add(n),t.renderNew(),t.fire("loaded")))}))},hideAll:function(){var e=this;return this.find("menuitem").exec("hideMenu"),e._super()},preRender:function(){var e=this;return e.items().each(function(t){var n=t.settings;if(n.icon||n.image||n.selectable)return e._hasIcons=!0,!1}),e.settings.itemsFactory&&e.on("postrender",function(){e.settings.itemsFactory&&e.load()}),e._super()}})}),r(Xt,[$t,Yt],function(e,t){return e.extend({init:function(e){function t(r){for(var a=0;a0&&(o=r[0].text,n.state.set("value",r[0].value)),n.state.set("menu",r)),n.state.set("text",e.text||o),n.classes.add("listbox"),n.on("select",function(t){var r=t.control;a&&(t.lastControl=a),e.multiple?r.active(!r.active()):n.value(t.control.value()),a=r})},bindStates:function(){function e(e,n){e instanceof t&&e.items().each(function(e){e.hasMenus()||e.active(e.value()===n)})}function n(e,t){var r;if(e)for(var i=0;i'},postRender:function(){var e=this;e._super(),e.resizeDragHelper=new t(this._id,{start:function(){e.fire("ResizeStart")},drag:function(t){"both"!=e.settings.direction&&(t.deltaX=0),e.fire("Resize",t)},stop:function(){e.fire("ResizeEnd")}})},remove:function(){return this.resizeDragHelper&&this.resizeDragHelper.destroy(),this._super()}})}),r(Jt,[Pe],function(e){function t(e){var t="";if(e)for(var n=0;n'+e[n]+"";return t}return e.extend({Defaults:{classes:"selectbox",role:"selectbox",options:[]},init:function(e){var t=this;t._super(e),t.settings.size&&(t.size=t.settings.size),t.settings.options&&(t._options=t.settings.options),t.on("keydown",function(e){var n;13==e.keyCode&&(e.preventDefault(),t.parents().reverse().each(function(e){if(e.toJSON)return n=e,!1}),t.fire("submit",{data:n.toJSON()}))})},options:function(e){return arguments.length?(this.state.set("options",e),this):this.state.get("options")},renderHtml:function(){var e=this,n,r="";return n=t(e._options),e.size&&(r=' size = "'+e.size+'"'),'"},bindStates:function(){var e=this;return e.state.on("change:options",function(n){e.getEl().innerHTML=t(n.value)}),e._super()}})}),r(Qt,[Pe,_e,ve],function(e,t,n){function r(e,t,n){return en&&(e=n),e}function i(e,t,n){e.setAttribute("aria-"+t,n)}function o(e,t){var r,o,a,s,l,c;"v"==e.settings.orientation?(s="top",a="height",o="h"):(s="left",a="width",o="w"),c=e.getEl("handle"),r=(e.layoutRect()[o]||100)-n.getSize(c)[a],l=r*((t-e._minValue)/(e._maxValue-e._minValue))+"px",c.style[s]=l,c.style.height=e.layoutRect().h+"px",i(c,"valuenow",t),i(c,"valuetext",""+e.settings.previewFilter(t)),i(c,"valuemin",e._minValue),i(c,"valuemax",e._maxValue)}return e.extend({init:function(e){var t=this;e.previewFilter||(e.previewFilter=function(e){return Math.round(100*e)/100}),t._super(e),t.classes.add("slider"),"v"==e.orientation&&t.classes.add("vertical"),t._minValue=e.minValue||0,t._maxValue=e.maxValue||100,t._initValue=t.state.get("value")},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix;return'
    '},reset:function(){this.value(this._initValue).repaint()},postRender:function(){function e(e,t,n){return(n+e)/(t-e)}function i(e,t,n){return n*(t-e)-e}function o(t,n){function o(o){var a;a=s.value(),a=i(t,n,e(t,n,a)+.05*o),a=r(a,t,n),s.value(a),s.fire("dragstart",{value:a}),s.fire("drag",{value:a}),s.fire("dragend",{value:a})}s.on("keydown",function(e){switch(e.keyCode){case 37:case 38:o(-1);break;case 39:case 40:o(1)}})}function a(e,i,o){var a,l,c,p,m;s._dragHelper=new t(s._id,{handle:s._id+"-handle",start:function(e){a=e[u],l=parseInt(s.getEl("handle").style[d],10),c=(s.layoutRect()[h]||100)-n.getSize(o)[f],s.fire("dragstart",{value:m})},drag:function(t){var n=t[u]-a;p=r(l+n,0,c),o.style[d]=p+"px",m=e+p/c*(i-e),s.value(m),s.tooltip().text(""+s.settings.previewFilter(m)).show().moveRel(o,"bc tc"),s.fire("drag",{value:m})},stop:function(){s.tooltip().hide(),s.fire("dragend",{value:m})}})}var s=this,l,c,u,d,f,h;l=s._minValue,c=s._maxValue,"v"==s.settings.orientation?(u="screenY",d="top",f="height",h="h"):(u="screenX",d="left",f="width",h="w"),s._super(),o(l,c,s.getEl("handle")),a(l,c,s.getEl("handle"))},repaint:function(){this._super(),o(this,this.value())},bindStates:function(){var e=this;return e.state.on("change:value",function(t){o(e,t.value)}),e._super()}})}),r(Zt,[Pe],function(e){return e.extend({renderHtml:function(){var e=this;return e.classes.add("spacer"),e.canFocus=!1,'
    '}})}),r(en,[$t,ve,g],function(e,t,n){return e.extend({Defaults:{classes:"widget btn splitbtn",role:"button"},repaint:function(){var e=this,r=e.getEl(),i=e.layoutRect(),o,a;return e._super(),o=r.firstChild,a=r.lastChild,n(o).css({width:i.w-t.getSize(a).width,height:i.h-2}),n(a).css({height:i.h-2}),e},activeMenu:function(e){var t=this;n(t.getEl().lastChild).toggleClass(t.classPrefix+"active",e)},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,r,i=e.state.get("icon"),o=e.state.get("text"),a="";return r=e.settings.image,r?(i="none","string"!=typeof r&&(r=window.getSelection?r[0]:r[1]),r=" style=\"background-image: url('"+r+"')\""):r="",i=e.settings.icon?n+"ico "+n+"i-"+i:"",o&&(e.classes.add("btn-has-text"),a=''+e.encode(o)+""),'
    '},postRender:function(){var e=this,t=e.settings.onclick;return e.on("click",function(e){var n=e.target;if(e.control==this)for(;n;){if(e.aria&&"down"!=e.aria.key||"BUTTON"==n.nodeName&&n.className.indexOf("open")==-1)return e.stopImmediatePropagation(),void(t&&t.call(this,e));n=n.parentNode}}),delete e.settings.onclick,e._super()}})}),r(tn,[Ot],function(e){return e.extend({Defaults:{containerClass:"stack-layout",controlClass:"stack-layout-item",endClass:"break"},isNative:function(){return!0}})}),r(nn,[ke,g,ve],function(e,t,n){return e.extend({Defaults:{layout:"absolute",defaults:{type:"panel"}},activateTab:function(e){var n;this.activeTabId&&(n=this.getEl(this.activeTabId),t(n).removeClass(this.classPrefix+"active"),n.setAttribute("aria-selected","false")),this.activeTabId="t"+e,n=this.getEl("t"+e),n.setAttribute("aria-selected","true"),t(n).addClass(this.classPrefix+"active"),this.items()[e].show().fire("showtab"),this.reflow(),this.items().each(function(t,n){e!=n&&t.hide()})},renderHtml:function(){var e=this,t=e._layout,n="",r=e.classPrefix;return e.preRender(),t.preRender(e),e.items().each(function(t,i){var o=e._id+"-t"+i;t.aria("role","tabpanel"),t.aria("labelledby",o),n+='"}),'
    '+n+'
    '+t.renderHtml(e)+"
    "},postRender:function(){var e=this;e._super(),e.settings.activeTab=e.settings.activeTab||0,e.activateTab(e.settings.activeTab),this.on("click",function(t){var n=t.target.parentNode;if(n&&n.id==e._id+"-head")for(var r=n.childNodes.length;r--;)n.childNodes[r]==t.target&&e.activateTab(r)})},initLayoutRect:function(){var e=this,t,r,i;r=n.getSize(e.getEl("head")).width,r=r<0?0:r,i=0,e.items().each(function(e){r=Math.max(r,e.layoutRect().minW),i=Math.max(i,e.layoutRect().minH)}),e.items().each(function(e){e.settings.x=0,e.settings.y=0,e.settings.w=r,e.settings.h=i,e.layoutRect({x:0,y:0,w:r,h:i})});var o=n.getSize(e.getEl("head")).height;return e.settings.minWidth=r,e.settings.minHeight=i+o,t=e._super(),t.deltaH+=o,t.innerH=t.h-t.deltaH,t}})}),r(rn,[Pe,m,ve],function(e,t,n){return e.extend({init:function(e){var t=this;t._super(e),t.classes.add("textbox"),e.multiline?t.classes.add("multiline"):(t.on("keydown",function(e){var n;13==e.keyCode&&(e.preventDefault(),t.parents().reverse().each(function(e){if(e.toJSON)return n=e,!1}),t.fire("submit",{data:n.toJSON()}))}),t.on("keyup",function(e){t.state.set("value",e.target.value)}))},repaint:function(){var e=this,t,n,r,i,o=0,a;t=e.getEl().style,n=e._layoutRect,a=e._lastRepaintRect||{};var s=document;return!e.settings.multiline&&s.all&&(!s.documentMode||s.documentMode<=8)&&(t.lineHeight=n.h-o+"px"),r=e.borderBox,i=r.left+r.right+8,o=r.top+r.bottom+(e.settings.multiline?8:0),n.x!==a.x&&(t.left=n.x+"px",a.x=n.x),n.y!==a.y&&(t.top=n.y+"px",a.y=n.y),n.w!==a.w&&(t.width=n.w-i+"px",a.w=n.w),n.h!==a.h&&(t.height=n.h-o+"px",a.h=n.h),e._lastRepaintRect=a,e.fire("repaint",{},!1),e},renderHtml:function(){var e=this,r=e.settings,i,o;return i={id:e._id,hidefocus:"1"},t.each(["rows","spellcheck","maxLength","size","readonly","min","max","step","list","pattern","placeholder","required","multiple"],function(e){i[e]=r[e]}),e.disabled()&&(i.disabled="disabled"),r.subtype&&(i.type=r.subtype),o=n.create(r.multiline?"textarea":"input",i),o.value=e.state.get("value"),o.className=e.classes,o.outerHTML},value:function(e){return arguments.length?(this.state.set("value",e),this):(this.state.get("rendered")&&this.state.set("value",this.getEl().value),this.state.get("value"))},postRender:function(){var e=this;e.getEl().value=e.state.get("value"),e._super(),e.$el.on("change",function(t){e.state.set("value",t.target.value),e.fire("change",t)})},bindStates:function(){var e=this;return e.state.on("change:value",function(t){e.getEl().value!=t.value&&(e.getEl().value=t.value)}),e.state.on("change:disabled",function(t){e.getEl().disabled=t.value}),e._super()},remove:function(){this.$el.off(),this._super()}})}),r(on,[],function(){var e=this||window,t=function(){return e.tinymce};return"function"==typeof e.define&&(e.define.amd||e.define("ephox/tinymce",[],t)),"object"==typeof module&&(module.exports=window.tinymce),{}}),a([l,c,u,d,f,h,m,g,v,y,C,w,E,N,T,A,B,D,L,M,P,O,I,F,j,Y,J,te,le,ce,ue,de,he,me,ge,Ce,xe,we,Ee,Ne,_e,Se,ke,Te,Re,Ae,Be,De,Le,Me,Pe,Oe,He,Ie,Ue,Ve,ot,at,st,lt,ut,dt,ft,ht,pt,mt,gt,vt,yt,bt,Ct,xt,wt,Et,Nt,_t,St,kt,Tt,Rt,At,Bt,Lt,Mt,Pt,Ot,Ht,It,Ft,zt,Ut,Wt,Vt,$t,qt,jt,Yt,Xt,Kt,Gt,Jt,Qt,Zt,en,tn,nn,rn])}(window); \ No newline at end of file diff --git a/data/web/rc/program/js/treelist.js b/data/web/rc/program/js/treelist.js new file mode 100644 index 0000000000000000000000000000000000000000..7ea0d012c689e1962a244af7162a5e8ac563d1fb --- /dev/null +++ b/data/web/rc/program/js/treelist.js @@ -0,0 +1,1198 @@ +/** + * Roundcube Treelist Widget + * + * This file is part of the Roundcube Webmail client + * + * @licstart The following is the entire license notice for the + * JavaScript code in this file. + * + * Copyright (c) 2013-2014, The Roundcube Dev Team + * + * The JavaScript code in this page is free software: you can + * redistribute it and/or modify it under the terms of the GNU + * General Public License (GNU GPL) as published by the Free Software + * Foundation, either version 3 of the License, or (at your option) + * any later version. The code is distributed WITHOUT ANY WARRANTY; + * without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU GPL for more details. + * + * As additional permission under GNU GPL version 3 section 7, you + * may distribute non-source (e.g., minimized or compacted) forms of + * that code without the copy of the GNU GPL normally required by + * section 4, provided you include this license notice and a URL + * through which recipients can access the Corresponding Source. + * + * @licend The above is the entire license notice + * for the JavaScript code in this file. + * + * @author Thomas Bruederli + * @requires jquery.js, common.js + */ + + +/** + * Roundcube Treelist widget class + * @contructor + */ +function rcube_treelist_widget(node, p) +{ + // apply some defaults to p + p = $.extend({ + id_prefix: '', + autoexpand: 1000, + selectable: false, + scroll_delay: 500, + scroll_step: 5, + scroll_speed: 20, + save_state: false, + keyboard: true, + tabexit: true, + parent_focus: false, + check_droptarget: function(node) { return !node.virtual; } + }, p || {}); + + var container = $(node), + data = p.data || [], + indexbyid = {}, + selection = null, + drag_active = false, + search_active = false, + last_search = '', + has_focus = false, + box_coords = {}, + item_coords = [], + autoexpand_timer, + autoexpand_item, + body_scroll_top = 0, + list_scroll_top = 0, + scroll_timer, + searchfield, + tree_state, + ui_droppable, + ui_draggable, + draggable_opts, + droppable_opts, + list_id = (container.attr('id') || p.id_prefix || '0'), + me = this; + + + /////// export public members and methods + + this.container = container; + this.expand = expand; + this.collapse = collapse; + this.select = select; + this.render = render; + this.reset = reset; + this.drag_start = drag_start; + this.drag_end = drag_end; + this.intersects = intersects; + this.droppable = droppable; + this.draggable = draggable; + this.update = update_node; + this.insert = insert; + this.remove = remove; + this.get_item = get_item; + this.get_node = get_node; + this.get_selection = get_selection; + this.is_search = is_search; + this.reset_search = reset_search; + + /////// startup code (constructor) + + // abort if node not found + if (!container.length) + return; + + if (p.data) + index_data({ children:data }); + // load data from DOM + else + update_data(); + + // scroll to the selected item + if (selection) { + scroll_to_node(id2dom(selection, true)); + } + + container.attr('role', 'tree') + .on('focusin', function(e) { + // TODO: only accept focus on virtual nodes from keyboard events + has_focus = true; + }) + .on('focusout', function(e) { + has_focus = false; + }) + // register click handlers on list + .on('click', 'div.treetoggle', function(e) { + toggle(dom2id($(this).parent())); + e.stopPropagation(); + }) + .on('click', 'li', function(e) { + // do not select record on checkbox/input click + if ($(e.target).is('input')) + return true; + + var node = p.selectable ? indexbyid[dom2id($(this))] : null; + if (node && !node.virtual) { + select(node.id); + e.stopPropagation(); + } + }) + // mute clicks on virtual folder links (they need tabindex="0" in order to be selectable by keyboard) + .on('mousedown', 'a', function(e) { + var link = $(e.target), node = indexbyid[dom2id(link.closest('li'))]; + if (node && node.virtual && !link.attr('href')) { + e.preventDefault(); + e.stopPropagation(); + return false; + } + }); + + // activate search function + if (p.searchbox) { + searchfield = $(p.searchbox).off('keyup.treelist').on('keyup.treelist', function(e) { + var key = rcube_event.get_keycode(e), + mod = rcube_event.get_modifier(e); + + switch (key) { + case 9: // tab + break; + + case 13: // enter + search(this.value, true); + return rcube_event.cancel(e); + + case 27: // escape + reset_search(); + break; + + case 38: // arrow up + case 37: // left + case 39: // right + case 40: // arrow down + return; // ignore arrow keys + + default: + search(this.value, false); + break; + } + }).attr('autocomplete', 'off'); + + // find the reset button for this search field + searchfield.parent().find('a.reset').off('click.treelist').on('click.treelist', function(e) { + reset_search(); + return false; + }) + } + + $(document.body).on('keydown', keypress); + + // catch focus when clicking the list container area + if (p.parent_focus) { + container.parent(':not(body)').click(function(e) { + // click on a checkbox does not catch the focus + if ($(e.target).is('input')) + return true; + + if (!has_focus && selection) { + $(get_item(selection)).find(':focusable').first().focus(); + } + else if (!has_focus) { + container.children('li:has(:focusable)').first().find(':focusable').first().focus(); + } + }); + } + + /////// private methods + + /** + * Collaps a the node with the given ID + */ + function collapse(id, recursive, set) + { + var node; + + if (node = indexbyid[id]) { + node.collapsed = typeof set == 'undefined' || set; + update_dom(node); + + if (recursive && node.children) { + for (var i=0; i < node.children.length; i++) { + collapse(node.children[i].id, recursive, set); + } + } + + me.triggerEvent(node.collapsed ? 'collapse' : 'expand', node); + save_state(id, node.collapsed); + } + } + + /** + * Expand a the node with the given ID + */ + function expand(id, recursive) + { + collapse(id, recursive, false); + } + + /** + * Toggle collapsed state of a list node + */ + function toggle(id, recursive) + { + var node; + if (node = indexbyid[id]) { + collapse(id, recursive, !node.collapsed); + } + } + + /** + * Select a tree node by it's ID + */ + function select(id) + { + // allow subscribes to prevent selection change + if (me.triggerEvent('beforeselect', indexbyid[id]) === false) { + return; + } + + if (selection) { + id2dom(selection, true).removeClass('selected').removeAttr('aria-selected'); + if (search_active) + id2dom(selection).removeClass('selected').removeAttr('aria-selected'); + selection = null; + } + + if (!id) + return; + + var li = id2dom(id, true); + if (li.length) { + li.addClass('selected').attr('aria-selected', 'true'); + selection = id; + // TODO: expand all parent nodes if collapsed + + if (search_active) + id2dom(id).addClass('selected').attr('aria-selected', 'true'); + + scroll_to_node(li); + } + + me.triggerEvent('select', indexbyid[id]); + } + + /** + * Getter for the currently selected node ID + */ + function get_selection() + { + return selection; + } + + /** + * Return the DOM element of the list item with the given ID + */ + function get_node(id) + { + return indexbyid[id]; + } + + /** + * Return the DOM element of the list item with the given ID + */ + function get_item(id, real) + { + return id2dom(id, real).get(0); + } + + /** + * Insert the given node + */ + function insert(node, parent_id, sort) + { + var li, parent_li, + parent_node = parent_id ? indexbyid[parent_id] : null + search_ = search_active; + + // ignore, already exists + if (indexbyid[node.id]) { + return; + } + + // apply saved state + state = get_state(node.id, node.collapsed); + if (state !== undefined) { + node.collapsed = state; + } + + // insert as child of an existing node + if (parent_node) { + node.level = parent_node.level + 1; + if (!parent_node.children) + parent_node.children = []; + + search_active = false; + parent_node.children.push(node); + parent_li = id2dom(parent_id); + + // re-render the entire subtree + if (parent_node.children.length == 1) { + render_node(parent_node, null, parent_li); + li = id2dom(node.id); + } + else { + // append new node to parent's child list + li = render_node(node, parent_li.children('ul').first()); + } + + // list is in search mode + if (search_) { + search_active = search_; + + // add clone to current search results (top level) + if (!li.is(':visible')) { + $('
  • ') + .attr('id', li.attr('id') + '--xsR') + .attr('class', li.attr('class')) + .addClass('searchresult__') + .append(li.children().first().clone(true, true)) + .appendTo(container); + } + } + } + // insert at top level + else { + node.level = 0; + data.push(node); + li = render_node(node, container); + } + + indexbyid[node.id] = node; + + // set new reference to node.html after insert + // will otherwise vanish in Firefox 3.6 + if (typeof node.html == 'object') { + indexbyid[node.id].html = id2dom(node.id, true).children(); + } + + if (sort) { + resort_node(li, typeof sort == 'string' ? '[class~="' + sort + '"]' : ''); + } + } + + /** + * Update properties of an existing node + */ + function update_node(id, updates, sort) + { + var li, parent_ul, parent_node, old_parent, + node = indexbyid[id]; + + if (node) { + li = id2dom(id); + parent_ul = li.parent(); + + if (updates.id || updates.html || updates.children || updates.classes || updates.parent) { + if (updates.parent && (parent_node = indexbyid[updates.parent])) { + // remove reference from old parent's child list + if (parent_ul.closest('li').length && (old_parent = indexbyid[dom2id(parent_ul.closest('li'))])) { + old_parent.children = $.grep(old_parent.children, function(elem, i){ return elem.id != node.id; }); + } + + // append to new parent node + parent_ul = id2dom(updates.parent).children('ul').first(); + if (!parent_node.children) + parent_node.children = []; + parent_node.children.push(node); + } + else if (updates.parent !== undefined) { + parent_ul = container; + } + + $.extend(node, updates); + li = render_node(node, parent_ul, li); + } + + if (node.id != id) { + delete indexbyid[id]; + indexbyid[node.id] = node; + } + + if (sort) { + resort_node(li, typeof sort == 'string' ? '[class~="' + sort + '"]' : ''); + } + } + } + + /** + * Helper method to sort the list of the given item + */ + function resort_node(li, filter) + { + var first, sibling, + myid = li.get(0).id, + sortname = li.children().first().text().toUpperCase(); + + li.parent().children('li' + filter).each(function(i, elem) { + if (i == 0) + first = elem; + if (elem.id == myid) { + // skip + } + else if (elem.id != myid && sortname >= $(elem).children().first().text().toUpperCase()) { + sibling = elem; + } + else { + return false; + } + }); + + if (sibling) { + li.insertAfter(sibling); + } + else if (first && first.id != myid) { + li.insertBefore(first); + } + + // reload data from dom + update_data(); + } + + /** + * Remove the item with the given ID + */ + function remove(id) + { + var node, li; + + if (node = indexbyid[id]) { + li = id2dom(id, true); + li.remove(); + + node.deleted = true; + delete indexbyid[id]; + + if (search_active) { + id2dom(id, false).remove(); + } + + return true; + } + + return false; + } + + /** + * (Re-)read tree data from DOM + */ + function update_data() + { + data = walk_list(container, 0); + } + + /** + * Apply the 'collapsed' status of the data node to the corresponding DOM element(s) + */ + function update_dom(node) + { + var li = id2dom(node.id, true); + li.attr('aria-expanded', node.collapsed ? 'false' : 'true'); + li.children('ul').first()[(node.collapsed ? 'hide' : 'show')](); + li.children('div.treetoggle').removeClass('collapsed expanded').addClass(node.collapsed ? 'collapsed' : 'expanded'); + me.triggerEvent('toggle', node); + } + + /** + * + */ + function reset(keep_content) + { + select(''); + + data = []; + indexbyid = {}; + drag_active = false; + + if (keep_content) { + if (draggable_opts) { + if (ui_draggable) + draggable('destroy'); + draggable(draggable_opts); + } + + if (droppable_opts) { + if (ui_droppable) + droppable('destroy'); + droppable(droppable_opts); + } + + update_data(); + } + else { + container.html(''); + } + + reset_search(); + } + + /** + * + */ + function search(q, enter) + { + q = String(q).toLowerCase(); + + if (!q.length) + return reset_search(); + else if (q == last_search && !enter) + return 0; + + var hits = []; + var search_tree = function(items) { + $.each(items, function(i, node) { + var li, sli; + if (!node.virtual && !node.deleted && String(node.text).toLowerCase().indexOf(q) >= 0 && hits.indexOf(node.id) < 0) { + li = id2dom(node.id); + + // skip already filtered nodes + if (li.data('filtered')) + return; + + sli = $('
  • ') + .attr('id', li.attr('id') + '--xsR') + .attr('class', li.attr('class')) + .addClass('searchresult__') + // append all elements like links and inputs, but not sub-trees + .append(li.children(':not(div.treetoggle,ul)').clone(true, true)) + .appendTo(container); + hits.push(node.id); + } + + if (node.children && node.children.length) { + search_tree(node.children); + } + }); + }; + + // reset old search results + if (search_active) { + $(container).children('li.searchresult__').remove(); + search_active = false; + } + + // hide all list items + $(container).children('li').hide().removeClass('selected'); + + // search recursively in tree (to keep sorting order) + search_tree(data); + search_active = true; + + me.triggerEvent('search', { query: q, last: last_search, count: hits.length, ids: hits, execute: enter||false }); + + last_search = q; + + return hits.count; + } + + /** + * + */ + function reset_search() + { + if (searchfield) + searchfield.val(''); + + $(container).children('li.searchresult__').remove(); + $(container).children('li').filter(function() { return !$(this).data('filtered'); }).show(); + + search_active = false; + + me.triggerEvent('search', { query: false, last: last_search }); + last_search = ''; + + if (selection) + select(selection); + } + + /** + * + */ + function is_search() + { + return search_active; + } + + /** + * Render the tree list from the internal data structure + */ + function render() + { + if (me.triggerEvent('renderBefore', data) === false) + return; + + // remove all child nodes + container.html(''); + + // render child nodes + for (var i=0; i < data.length; i++) { + data[i].level = 0; + render_node(data[i], container); + } + + me.triggerEvent('renderAfter', container); + } + + /** + * Render a specific node into the DOM list + */ + function render_node(node, parent, replace) + { + if (node.deleted) + return; + + var li = $('
  • ') + .attr('id', p.id_prefix + (p.id_encode ? p.id_encode(node.id) : node.id)) + .attr('role', 'treeitem') + .addClass((node.classes || []).join(' ')) + .data('id', node.id); + + if (replace) { + replace.replaceWith(li); + if (parent) + li.appendTo(parent); + } + else + li.appendTo(parent); + + if (typeof node.html == 'string') + li.html(node.html); + else if (typeof node.html == 'object') + li.append(node.html); + + if (!node.text) + node.text = li.children().first().text(); + + if (node.virtual) + li.addClass('virtual'); + if (node.id == selection) + li.addClass('selected'); + + // add child list and toggle icon + if (node.children && node.children.length) { + li.attr('aria-expanded', node.collapsed ? 'false' : 'true'); + $('
     
    ').appendTo(li); + var ul = $('