mirror of
https://github.com/SuiteCRM/SuiteCRM-Core.git
synced 2025-09-13 00:42:08 +08:00
Merge next into suite 8
This commit is contained in:
commit
deec3711e0
57 changed files with 2296 additions and 2364 deletions
|
@ -603,6 +603,8 @@ class ModuleScanner
|
|||
}
|
||||
$contents = file_get_contents($file);
|
||||
if (!$this->isPHPFile($contents)) {
|
||||
$issues[] = translate('ML_INVALID_PHP_FILE', 'Administration');
|
||||
$this->issues['file'][$file] = $issues;
|
||||
return $issues;
|
||||
}
|
||||
$tokens = @token_get_all($contents);
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<img width="180px" height="41px" src="https://suitecrm.com/wp-content/uploads/2017/12/logo.png" align="right" />
|
||||
</a>
|
||||
|
||||
# SuiteCRM 7.14.1
|
||||
# SuiteCRM 7.14.2
|
||||
|
||||
[](https://travis-ci.org/salesagility/SuiteCRM)
|
||||
[](https://codecov.io/gh/salesagility/SuiteCRM/branch/hotfix)
|
||||
|
|
50
public/legacy/composer.lock
generated
50
public/legacy/composer.lock
generated
|
@ -4,7 +4,7 @@
|
|||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "8965477c255ac1989284eec44f9f69c9",
|
||||
"content-hash": "8ddaa2e92629c2543c4b72cf48108edb",
|
||||
"packages": [
|
||||
{
|
||||
"name": "composer/semver",
|
||||
|
@ -811,25 +811,31 @@
|
|||
},
|
||||
{
|
||||
"name": "firebase/php-jwt",
|
||||
"version": "v5.5.1",
|
||||
"version": "v6.9.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/firebase/php-jwt.git",
|
||||
"reference": "83b609028194aa042ea33b5af2d41a7427de80e6"
|
||||
"reference": "f03270e63eaccf3019ef0f32849c497385774e11"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/firebase/php-jwt/zipball/83b609028194aa042ea33b5af2d41a7427de80e6",
|
||||
"reference": "83b609028194aa042ea33b5af2d41a7427de80e6",
|
||||
"url": "https://api.github.com/repos/firebase/php-jwt/zipball/f03270e63eaccf3019ef0f32849c497385774e11",
|
||||
"reference": "f03270e63eaccf3019ef0f32849c497385774e11",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.0"
|
||||
"php": "^7.4||^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": ">=4.8 <=9"
|
||||
"guzzlehttp/guzzle": "^6.5||^7.4",
|
||||
"phpspec/prophecy-phpunit": "^2.0",
|
||||
"phpunit/phpunit": "^9.5",
|
||||
"psr/cache": "^1.0||^2.0",
|
||||
"psr/http-client": "^1.0",
|
||||
"psr/http-factory": "^1.0"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-sodium": "Support EdDSA (Ed25519) signatures",
|
||||
"paragonie/sodium_compat": "Support EdDSA (Ed25519) signatures when libsodium is not present"
|
||||
},
|
||||
"type": "library",
|
||||
|
@ -860,11 +866,7 @@
|
|||
"jwt",
|
||||
"php"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/firebase/php-jwt/issues",
|
||||
"source": "https://github.com/firebase/php-jwt/tree/v5.5.1"
|
||||
},
|
||||
"time": "2021-11-08T20:18:51+00:00"
|
||||
"time": "2023-10-05T00:24:42+00:00"
|
||||
},
|
||||
{
|
||||
"name": "google/apiclient",
|
||||
|
@ -1962,16 +1964,16 @@
|
|||
},
|
||||
{
|
||||
"name": "league/oauth2-server",
|
||||
"version": "8.4.0",
|
||||
"version": "8.4.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/thephpleague/oauth2-server.git",
|
||||
"reference": "539f4340c14eca8d44578fd118f6bdc0ad16d1ce"
|
||||
"reference": "007dc5f6c0151a73b133fec36c9686cc956209d3"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/thephpleague/oauth2-server/zipball/539f4340c14eca8d44578fd118f6bdc0ad16d1ce",
|
||||
"reference": "539f4340c14eca8d44578fd118f6bdc0ad16d1ce",
|
||||
"url": "https://api.github.com/repos/thephpleague/oauth2-server/zipball/007dc5f6c0151a73b133fec36c9686cc956209d3",
|
||||
"reference": "007dc5f6c0151a73b133fec36c9686cc956209d3",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -2042,7 +2044,7 @@
|
|||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2023-02-15T16:08:35+00:00"
|
||||
"time": "2023-08-02T22:54:39+00:00"
|
||||
},
|
||||
{
|
||||
"name": "league/uri",
|
||||
|
@ -5384,16 +5386,16 @@
|
|||
},
|
||||
{
|
||||
"name": "tinymce/tinymce",
|
||||
"version": "5.10.7",
|
||||
"version": "5.10.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/tinymce/tinymce-dist.git",
|
||||
"reference": "f078d8eb7de81f20d34b2ae4326870d20e22d4ff"
|
||||
"reference": "b9c50833d455adcf5ae89a6da7648ae5d65468df"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/tinymce/tinymce-dist/zipball/f078d8eb7de81f20d34b2ae4326870d20e22d4ff",
|
||||
"reference": "f078d8eb7de81f20d34b2ae4326870d20e22d4ff",
|
||||
"url": "https://api.github.com/repos/tinymce/tinymce-dist/zipball/b9c50833d455adcf5ae89a6da7648ae5d65468df",
|
||||
"reference": "b9c50833d455adcf5ae89a6da7648ae5d65468df",
|
||||
"shasum": ""
|
||||
},
|
||||
"type": "component",
|
||||
|
@ -5435,9 +5437,9 @@
|
|||
"wysiwyg"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/tinymce/tinymce-dist/tree/5.10.7"
|
||||
"source": "https://github.com/tinymce/tinymce-dist/tree/5.10.8"
|
||||
},
|
||||
"time": "2022-12-07T03:50:54+00:00"
|
||||
"time": "2023-10-19T03:02:47+00:00"
|
||||
},
|
||||
{
|
||||
"name": "vlucas/phpdotenv",
|
||||
|
@ -10474,5 +10476,5 @@
|
|||
"platform-overrides": {
|
||||
"php": "7.4.0"
|
||||
},
|
||||
"plugin-api-version": "1.1.0"
|
||||
"plugin-api-version": "2.6.0"
|
||||
}
|
||||
|
|
|
@ -344,7 +344,7 @@ class One2MBeanRelationship extends One2MRelationship
|
|||
$alias = empty($params['join_table_alias']) ? "{$link->name}_rel": $params['join_table_alias'];
|
||||
$alias = DBManagerFactory::getInstance()->getValidDBName($alias, false, 'alias');
|
||||
|
||||
$tableInRoleFilter = "";
|
||||
$tableInRoleFilter = $startingTable;
|
||||
if (
|
||||
(
|
||||
$startingTable == "meetings"
|
||||
|
|
|
@ -680,7 +680,7 @@ class SugarBean
|
|||
$GLOBALS['log']->fatal('Relationship definitions should be an array');
|
||||
$RelationshipDefs = (array)$RelationshipDefs;
|
||||
}
|
||||
foreach ($RelationshipDefs as $rel_name) {
|
||||
foreach ($RelationshipDefs as $rel_name => $rel_def) {
|
||||
Relationship::delete($rel_name, $db);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -75,7 +75,8 @@ if ((!isset($_REQUEST['isProfile']) && empty($_REQUEST['id'])) || empty($_REQUES
|
|||
if ($bean_name == 'aCase') {
|
||||
$bean_name = 'Case';
|
||||
}
|
||||
if (!file_exists('modules/' . $module . '/' . $bean_name . '.php')) {
|
||||
global $beanFiles;
|
||||
if (!file_exists($beanFiles[$bean_name])){
|
||||
die($app_strings['ERROR_TYPE_NOT_VALID']);
|
||||
}
|
||||
|
||||
|
@ -272,7 +273,7 @@ if ((!isset($_REQUEST['isProfile']) && empty($_REQUEST['id'])) || empty($_REQUES
|
|||
$row['file_ext'] = pathinfo((string) $name, PATHINFO_EXTENSION);
|
||||
}
|
||||
|
||||
if (in_array($row['file_ext'], $allowedPreview, true)) {
|
||||
if (!empty($row['file_ext']) && in_array($row['file_ext'], $allowedPreview, true)) {
|
||||
$showPreview = isset($_REQUEST['preview']) && $_REQUEST['preview'] === 'yes' && $mime_type !== 'text/html';
|
||||
}
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -542,7 +542,7 @@ class DashletGeneric extends Dashlet
|
|||
}
|
||||
}
|
||||
if (!empty($req['dashletTitle'])) {
|
||||
$options['title'] = $req['dashletTitle'];
|
||||
$options['title'] = htmlentities(html_entity_decode($req['dashletTitle']));
|
||||
}
|
||||
|
||||
// Don't save the options for myItemsOnly if we're not even showing the options.
|
||||
|
|
|
@ -232,7 +232,7 @@ abstract class DashletGenericChart extends Dashlet
|
|||
}
|
||||
|
||||
if (!empty($req['dashletTitle'])) {
|
||||
$options['title'] = $req['dashletTitle'];
|
||||
$options['title'] = htmlentities(html_entity_decode($req['dashletTitle']));
|
||||
}
|
||||
|
||||
$options['autoRefresh'] = empty($req['autoRefresh']) ? '0' : $req['autoRefresh'];
|
||||
|
|
|
@ -25,7 +25,7 @@ class HtmlSanitizer
|
|||
/**
|
||||
* SugarCleaner constructor.
|
||||
*/
|
||||
public function __construct()
|
||||
public function __construct(array $extraConfigs = [])
|
||||
{
|
||||
$configurator = new \Configurator();
|
||||
$sugar_config = $configurator->config;
|
||||
|
@ -37,29 +37,31 @@ class HtmlSanitizer
|
|||
create_cache_directory("htmlclean/");
|
||||
}
|
||||
|
||||
$config->set('HTML.Doctype', 'XHTML 1.0 Transitional');
|
||||
$config->set('Core.Encoding', 'UTF-8');
|
||||
$baseConfigs = [];
|
||||
$baseConfigs['HTML.Doctype'] = 'XHTML 1.0 Transitional';
|
||||
$baseConfigs['Core.Encoding'] = 'UTF-8';
|
||||
$hidden_tags = array('script' => true, 'style' => true, 'title' => true, 'head' => true);
|
||||
$config->set('Core.HiddenElements', $hidden_tags);
|
||||
$config->set('Cache.SerializerPath', sugar_cached("htmlclean"));
|
||||
$config->set('URI.Base', isset($sugar_config['site_url']) ? $sugar_config['site_url'] : null);
|
||||
$config->set('CSS.Proprietary', true);
|
||||
$config->set('HTML.TidyLevel', 'light');
|
||||
$config->set('HTML.ForbiddenElements', array('body' => true, 'html' => true));
|
||||
$config->set('AutoFormat.RemoveEmpty', true);
|
||||
$config->set('Cache.SerializerPermissions', 0775);
|
||||
$config->set('Filter.ExtractStyleBlocks.TidyImpl', false);
|
||||
$baseConfigs['Core.HiddenElements'] = $hidden_tags;
|
||||
$baseConfigs['URI.Base'] = $sugar_config['site_url'] ?? null;
|
||||
$baseConfigs['CSS.Proprietary'] = true;
|
||||
$baseConfigs['HTML.TidyLevel'] = 'light';
|
||||
$baseConfigs['HTML.ForbiddenElements'] = array('body' => true, 'html' => true);
|
||||
$baseConfigs['AutoFormat.RemoveEmpty'] = true;
|
||||
$baseConfigs['Cache.SerializerPermissions'] = 0775;
|
||||
$baseConfigs['Filter.ExtractStyleBlocks.TidyImpl'] = false;
|
||||
if (!empty($sugar_config['html_allow_objects'])) {
|
||||
$config->set('HTML.SafeObject', true);
|
||||
$config->set('HTML.SafeEmbed', true);
|
||||
$baseConfigs['HTML.SafeObject'] = true;
|
||||
$baseConfigs['HTML.SafeEmbed'] = true;
|
||||
}
|
||||
$config->set('Output.FlashCompat', true);
|
||||
$config->set('Filter.Custom', array(new HTMLPurifierFilterXmp()));
|
||||
$config->set('HTML.DefinitionID', 'Sugar HTML Def');
|
||||
$config->set('HTML.DefinitionRev', 2);
|
||||
$config->set('Cache.SerializerPath', sugar_cached('htmlclean/'));
|
||||
$config->set('Attr.EnableID', true);
|
||||
$config->set('Attr.IDPrefix', 'sugar_text_');
|
||||
$baseConfigs['Output.FlashCompat'] = true;
|
||||
$baseConfigs['Filter.Custom'] = array(new HTMLPurifierFilterXmp());
|
||||
$baseConfigs['HTML.DefinitionID'] = 'Sugar HTML Def';
|
||||
$baseConfigs['HTML.DefinitionRev'] = 2;
|
||||
$baseConfigs['Cache.SerializerPath'] = sugar_cached('htmlclean/');
|
||||
$baseConfigs['Attr.EnableID'] = true;
|
||||
$baseConfigs['Attr.IDPrefix'] = 'sugar_text_';
|
||||
|
||||
$this->applyConfigs($baseConfigs, $extraConfigs, $config);
|
||||
|
||||
if ($def = $config->maybeGetRawHTMLDefinition()) {
|
||||
$iframe = $def->addElement(
|
||||
|
@ -111,26 +113,7 @@ class HtmlSanitizer
|
|||
*/
|
||||
public static function cleanHtml($dirtyHtml, $removeHtml = false)
|
||||
{
|
||||
// $encode_html previously effected the decoding process.
|
||||
// we should decode regardless, just in case, the calling method passing encoded html
|
||||
//Prevent that the email address in Outlook format are removed
|
||||
$pattern = '/(.*)(<([a-zA-Z0-9.!#$%&\'*+\=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)>)(.*)/';
|
||||
$replacement = '${1}<<a href="mailto:${3}">${3}</a>> ${4}';
|
||||
$dirtyHtml = preg_replace($pattern, $replacement, $dirtyHtml);
|
||||
$dirty_html_decoded = html_entity_decode($dirtyHtml);
|
||||
|
||||
// Re-encode html
|
||||
if ($removeHtml === true) {
|
||||
// remove all HTML tags
|
||||
$sugarCleaner = self::getInstance();
|
||||
$purifier = $sugarCleaner->purifier;
|
||||
$clean_html = $purifier->purify($dirty_html_decoded);
|
||||
} else {
|
||||
// encode all HTML tags
|
||||
$clean_html = $dirty_html_decoded;
|
||||
}
|
||||
|
||||
return $clean_html;
|
||||
return self::getInstance()->clean($dirtyHtml, $removeHtml);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -146,4 +129,74 @@ class HtmlSanitizer
|
|||
$dirtyHtml = filter_var($dirtyHtml, FILTER_SANITIZE_STRIPPED, FILTER_FLAG_NO_ENCODE_QUOTES);
|
||||
return $isEncoded ? to_html($dirtyHtml) : $dirtyHtml;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $dirtyHtml
|
||||
* @param bool $removeHtml
|
||||
* @return string
|
||||
*/
|
||||
public function clean(string $dirtyHtml, bool $removeHtml): string
|
||||
{
|
||||
// $encode_html previously effected the decoding process.
|
||||
// we should decode regardless, just in case, the calling method passing encoded html
|
||||
//Prevent that the email address in Outlook format are removed
|
||||
$pattern = '/(.*)(<([a-zA-Z0-9.!#$%&\'*+\=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)>)(.*)/';
|
||||
$replacement = '${1}<<a href="mailto:${3}">${3}</a>> ${4}';
|
||||
$dirtyHtml = preg_replace($pattern, $replacement, $dirtyHtml);
|
||||
$dirty_html_decoded = html_entity_decode($dirtyHtml);
|
||||
|
||||
// Re-encode html
|
||||
if ($removeHtml === true) {
|
||||
// remove all HTML tags
|
||||
$purifier = $this->purifier;
|
||||
$clean_html = $purifier->purify($dirty_html_decoded);
|
||||
} else {
|
||||
// encode all HTML tags
|
||||
$clean_html = $dirty_html_decoded;
|
||||
}
|
||||
|
||||
return $clean_html;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $baseConfigs
|
||||
* @param array $extraConfigs
|
||||
* @param \HTMLPurifier_Config $config
|
||||
*/
|
||||
protected function applyConfigs(array $baseConfigs, array $extraConfigs, \HTMLPurifier_Config $config): void
|
||||
{
|
||||
$configKeys = array_keys($baseConfigs);
|
||||
if (!empty($extraConfigs)) {
|
||||
$configKeys = array_merge($configKeys, array_keys($extraConfigs));
|
||||
}
|
||||
|
||||
foreach ($configKeys as $configKey) {
|
||||
// no base config, set the custom config
|
||||
if (!isset($baseConfigs[$configKey])) {
|
||||
$config->set($configKey, $extraConfigs[$configKey]);
|
||||
continue;
|
||||
}
|
||||
|
||||
// no extra config, set the base config
|
||||
if (!isset($extraConfigs[$configKey])) {
|
||||
$config->set($configKey, $baseConfigs[$configKey]);
|
||||
continue;
|
||||
}
|
||||
|
||||
// both values are arrays, merge and set
|
||||
if (is_array($baseConfigs[$configKey]) && is_array($extraConfigs[$configKey])) {
|
||||
$config->set($configKey, array_merge($baseConfigs[$configKey], $extraConfigs[$configKey]));
|
||||
continue;
|
||||
}
|
||||
|
||||
// custom value does not match base value type, keep base value
|
||||
if (is_array($baseConfigs[$configKey]) && !is_array($extraConfigs[$configKey])) {
|
||||
$config->set($configKey, $baseConfigs[$configKey]);
|
||||
continue;
|
||||
}
|
||||
|
||||
//Override base value with custom value
|
||||
$config->set($configKey, $extraConfigs[$configKey]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -350,7 +350,8 @@ $(document).on("click", function(e) {
|
|||
) + " " + message_field
|
||||
);
|
||||
if (r == true) {
|
||||
var output = setValueClose(output_value);
|
||||
// Fix #9412 - Wrong email value displayed when aborting an inline edition
|
||||
var output = setValueClose(output_value, false);
|
||||
clickListenerActive = false;
|
||||
} else {
|
||||
$("#" + field).focus();
|
||||
|
|
|
@ -810,7 +810,7 @@ class SugarApplication
|
|||
}
|
||||
if ($domain === null) {
|
||||
if (isset($_SERVER["HTTP_HOST"])) {
|
||||
$domain = $_SERVER["HTTP_HOST"];
|
||||
$domain = preg_replace('/(\:\d+)$/', '', $_SERVER["HTTP_HOST"]); // Fix #9898 Invalid cookie domain when using non-standard HTTP Port.
|
||||
} else {
|
||||
$domain = 'localhost';
|
||||
}
|
||||
|
|
|
@ -1342,8 +1342,8 @@ class SearchForm
|
|||
}
|
||||
|
||||
// Concat the fields and search for the value
|
||||
$where .= $this->seed->db->concat($concat_table, $concat_fields) . " LIKE " . $this->seed->db->quoted($field_value . $like_char);
|
||||
$where .= ' OR ' . $this->seed->db->concat($concat_table, array_reverse($concat_fields)) . " LIKE " . $this->seed->db->quoted($field_value . $like_char);
|
||||
$where .= $this->seed->db->concat($concat_table, $concat_fields) . " LIKE " . $this->seed->db->quoted(sql_like_string($field_value, $like_char));
|
||||
$where .= ' OR ' . $this->seed->db->concat($concat_table, array_reverse($concat_fields)) . " LIKE " . $this->seed->db->quoted(sql_like_string($field_value, $like_char));
|
||||
} else {
|
||||
//Check if this is a first_name, last_name search
|
||||
if (isset($this->seed->field_name_map) && isset($this->seed->field_name_map[$db_field])) {
|
||||
|
|
|
@ -95,7 +95,14 @@ class SugarFieldCurrency extends SugarFieldFloat
|
|||
) {
|
||||
$value = str_replace($settings->currency_symbol, "", $value);
|
||||
|
||||
return $settings->float($value, $vardef, $focus);
|
||||
$value = str_replace($settings->num_grp_sep, "", $value);
|
||||
|
||||
if (isset($vardef['len'])) {
|
||||
// check for field length
|
||||
$value = sugar_substr($value, $vardef['len']);
|
||||
}
|
||||
|
||||
return $value;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -618,7 +618,7 @@ class TimeDate
|
|||
return $this->asUserDate($date, true, $user);
|
||||
break;
|
||||
case 'time':
|
||||
return $this->asUserTime($date, true, $user);
|
||||
return $this->asUserTime($date, $user);
|
||||
break;
|
||||
case 'datetime':
|
||||
case 'datetimecombo':
|
||||
|
|
|
@ -2221,7 +2221,7 @@ abstract class DBManager
|
|||
return 0;
|
||||
}
|
||||
|
||||
return (int)$val;
|
||||
return $val === '' ? 'NULL' : (int)$val; // Fix #9440 - Forcing default null value for numeric fields.
|
||||
case 'bigint':
|
||||
$val = (float)$val;
|
||||
if (!empty($fieldDef['required']) && $val == false) {
|
||||
|
@ -2242,7 +2242,7 @@ abstract class DBManager
|
|||
return 0;
|
||||
}
|
||||
|
||||
return (float)$val;
|
||||
return $val === '' ? 'NULL' : (float)$val; // Fix #9440 - Forcing default null value for numeric fields.
|
||||
case 'time':
|
||||
case 'date':
|
||||
// empty date can't be '', so convert it to either NULL or empty date value
|
||||
|
|
|
@ -50,11 +50,13 @@ if (!defined('sugarEntry') || !sugarEntry) {
|
|||
class SugarWidgetFieldName extends SugarWidgetFieldVarchar
|
||||
{
|
||||
protected static $moduleSavePermissions = array();
|
||||
protected $sugarWidgetFieldId;
|
||||
|
||||
public function __construct(&$layout_manager)
|
||||
{
|
||||
parent::__construct($layout_manager);
|
||||
$this->reporter = $this->layout_manager->getAttribute('reporter');
|
||||
$this->sugarWidgetFieldId = new SugarWidgetFieldId($layout_manager);
|
||||
}
|
||||
|
||||
public function displayList(&$layout_def)
|
||||
|
@ -186,7 +188,7 @@ class SugarWidgetFieldName extends SugarWidgetFieldVarchar
|
|||
$input_name0 = $current_user->id;
|
||||
}
|
||||
|
||||
return SugarWidgetFieldid::_get_column_select($layout_def)."="
|
||||
return $this->sugarWidgetFieldId->_get_column_select($layout_def)."="
|
||||
.$this->reporter->db->quoted($input_name0)."\n";
|
||||
}
|
||||
|
||||
|
@ -204,7 +206,7 @@ class SugarWidgetFieldName extends SugarWidgetFieldVarchar
|
|||
$input_name0 = $current_user->id;
|
||||
}
|
||||
|
||||
return SugarWidgetFieldid::_get_column_select($layout_def)."<>"
|
||||
return $this->sugarWidgetFieldId->_get_column_select($layout_def)."<>"
|
||||
.$this->reporter->db->quoted($input_name0)."\n";
|
||||
}
|
||||
|
||||
|
@ -228,7 +230,7 @@ class SugarWidgetFieldName extends SugarWidgetFieldVarchar
|
|||
|
||||
$str = implode(",", $arr);
|
||||
|
||||
return SugarWidgetFieldid::_get_column_select($layout_def)." IN (".$str.")\n";
|
||||
return $this->sugarWidgetFieldId->_get_column_select($layout_def)." IN (".$str.")\n";
|
||||
}
|
||||
// $rename_columns, if true then you're coming from reports
|
||||
public function queryFilternot_one_of($layout_def, $rename_columns = true)
|
||||
|
@ -250,7 +252,7 @@ class SugarWidgetFieldName extends SugarWidgetFieldVarchar
|
|||
|
||||
$str = implode(",", $arr);
|
||||
|
||||
return SugarWidgetFieldid::_get_column_select($layout_def)." NOT IN (".$str.")\n";
|
||||
return $this->sugarWidgetFieldId->_get_column_select($layout_def)." NOT IN (".$str.")\n";
|
||||
}
|
||||
|
||||
public function &queryGroupBy($layout_def)
|
||||
|
@ -259,7 +261,7 @@ class SugarWidgetFieldName extends SugarWidgetFieldVarchar
|
|||
$layout_def['name'] = 'id';
|
||||
$layout_def['type'] = 'id';
|
||||
|
||||
$group_by = SugarWidgetFieldid::_get_column_select($layout_def)."\n";
|
||||
$group_by = $this->sugarWidgetFieldId->_get_column_select($layout_def)."\n";
|
||||
} else {
|
||||
// group by clause for user name passes through here.
|
||||
$group_by = $this->_get_column_select($layout_def)."\n";
|
||||
|
|
|
@ -772,6 +772,11 @@ $app_list_strings = array(
|
|||
'Inactive' => 'Inactive',
|
||||
],
|
||||
|
||||
'dom_email_body_filtering_option' => [
|
||||
'multi' => 'Multi Word Search',
|
||||
'single' => 'Single Word Search',
|
||||
],
|
||||
|
||||
'dom_email_types' => array(
|
||||
'out' => 'Sent',
|
||||
'archived' => 'Archived',
|
||||
|
|
|
@ -241,7 +241,6 @@ function make_sugar_config(&$sugar_config)
|
|||
'upload_dir' => $upload_dir, // this must be set!!
|
||||
'upload_maxsize' => empty($upload_maxsize) ? 30000000 : $upload_maxsize,
|
||||
'allowed_preview' => [
|
||||
'pdf',
|
||||
'gif',
|
||||
'png',
|
||||
'jpeg',
|
||||
|
@ -296,6 +295,9 @@ function make_sugar_config(&$sugar_config)
|
|||
'SecurityGroups' => false,
|
||||
'AOW_WorkFlow' => false
|
||||
],
|
||||
'valid_imap_ports' => [
|
||||
'110', '143', '993', '995'
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -519,7 +521,6 @@ function get_sugar_config_defaults(): array
|
|||
'bmp'
|
||||
],
|
||||
'allowed_preview' => [
|
||||
'pdf',
|
||||
'gif',
|
||||
'png',
|
||||
'jpeg',
|
||||
|
@ -600,6 +601,9 @@ function get_sugar_config_defaults(): array
|
|||
'SecurityGroups' => false,
|
||||
'AOW_WorkFlow' => false,
|
||||
],
|
||||
'valid_imap_ports' => [
|
||||
'110', '143', '993', '995'
|
||||
]
|
||||
];
|
||||
|
||||
if (!is_object($locale)) {
|
||||
|
@ -2017,7 +2021,7 @@ function get_select_options_with_id_separate_key($label_list, $key_list, $select
|
|||
// the system is evaluating $selected_key == 0 || '' to true. Be very careful when changing this. Test all cases.
|
||||
// The bug was only happening with one of the users in the drop down. It was being replaced by none.
|
||||
if (
|
||||
($option_key !== '' && $selected_key === $option_key) || (
|
||||
($option_key !== '' && $selected_key == $option_key) || (
|
||||
$option_key === '' && (($selected_key === '' && !$massupdate) || $selected_key === '__SugarMassUpdateClearField__')
|
||||
) || (is_array($selected_key) && in_array($option_key, $selected_key))
|
||||
) {
|
||||
|
@ -2764,7 +2768,7 @@ function securexss($uncleanString)
|
|||
$partialString = str_replace(array_keys($xss_cleanup), $xss_cleanup, $uncleanString);
|
||||
|
||||
$antiXss = new AntiXSS();
|
||||
$antiXss->removeEvilAttributes(['style']);
|
||||
$antiXss->removeEvilAttributes(['style', 'onerror']);
|
||||
|
||||
return $antiXss->xss_clean($partialString);
|
||||
}
|
||||
|
@ -2788,21 +2792,23 @@ function securexsskey($value, $die = true)
|
|||
* @param string|null $value
|
||||
* @return string
|
||||
*/
|
||||
function purify_html(?string $value): string {
|
||||
function purify_html(?string $value, array $extraOptions = []): string {
|
||||
|
||||
if (($value ?? '') === '') {
|
||||
return '';
|
||||
}
|
||||
|
||||
$cleanedValue = htmlentities((string) SugarCleaner::cleanHtml($value, true));
|
||||
$sanitizer = new SuiteCRM\HtmlSanitizer($extraOptions);
|
||||
|
||||
$cleanedValue = htmlentities($sanitizer->clean($value, true));
|
||||
$decoded = html_entity_decode($cleanedValue);
|
||||
$doubleDecoded = html_entity_decode($decoded);
|
||||
|
||||
if (stripos($decoded, '<script>') !== false || stripos($doubleDecoded, '<script>') !== false){
|
||||
$cleanedValue = '';
|
||||
$doubleDecoded = '';
|
||||
}
|
||||
|
||||
$doubleCleanedValue = htmlentities((string) SugarCleaner::cleanHtml($doubleDecoded, true));
|
||||
$doubleCleanedValue = htmlentities($sanitizer->clean($doubleDecoded, true));
|
||||
|
||||
return $doubleCleanedValue;
|
||||
}
|
||||
|
|
|
@ -84,7 +84,16 @@ function unzip_file($zip_archive, $archive_file, $zip_dir)
|
|||
}
|
||||
|
||||
if ($archive_file !== null) {
|
||||
$res = $zip->extractTo(UploadFile::realpath($zip_dir), $archive_file);
|
||||
try {
|
||||
$res = $zip->extractTo(UploadFile::realpath($zip_dir), $archive_file);
|
||||
} catch (ValueError $t) {
|
||||
if (file_exists($zip_archive)){
|
||||
LoggerManager::getLogger()->fatal(sprintf('ZIP Error(%d): Invalid file(%s). Deleting.', $res, $zip_archive));
|
||||
unlink($zip_archive);
|
||||
}
|
||||
throw $t;
|
||||
}
|
||||
|
||||
if ((new SplFileInfo($archive_file))->getExtension() == 'php') {
|
||||
SugarCache::cleanFile(UploadFile::realpath($zip_dir).'/'.$archive_file);
|
||||
}
|
||||
|
|
|
@ -196,7 +196,7 @@ if (!defined('SUGARCRM_MIN_UPLOAD_MAX_FILESIZE_BYTES')) {
|
|||
define('SUGARCRM_MIN_UPLOAD_MAX_FILESIZE_BYTES', 6 * 1024 * 1024);
|
||||
}
|
||||
|
||||
if ($upload_max_filesize_bytes > constant('SUGARCRM_MIN_UPLOAD_MAX_FILESIZE_BYTES')) {
|
||||
if ($upload_max_filesize_bytes >= constant('SUGARCRM_MIN_UPLOAD_MAX_FILESIZE_BYTES')) {
|
||||
$fileMaxStatus = "{$mod_strings['LBL_CHECKSYS_OK']}</font>";
|
||||
} else {
|
||||
$fileMaxStatus = "<span class='stop'><b>{$mod_strings['ERR_UPLOAD_MAX_FILESIZE']}</font></b></span>";
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -299,6 +299,9 @@ function display_single_update(AOP_Case_Updates $update)
|
|||
function display_case_attachments($case)
|
||||
{
|
||||
$html = '';
|
||||
if(empty($case->id)){
|
||||
return '';
|
||||
}
|
||||
$notes = $case->get_linked_beans('notes', 'Notes');
|
||||
if ($notes) {
|
||||
foreach ($notes as $note) {
|
||||
|
|
|
@ -39,8 +39,8 @@ class AOS_PDF_Templates extends AOS_PDF_Templates_sugar
|
|||
public function cleanBean()
|
||||
{
|
||||
parent::cleanBean();
|
||||
$this->pdfheader = purify_html($this->pdfheader);
|
||||
$this->description = purify_html($this->description);
|
||||
$this->pdffooter = purify_html($this->pdffooter);
|
||||
$this->pdfheader = purify_html($this->pdfheader, ['HTML.ForbiddenElements' => ['iframe' => true]]);
|
||||
$this->description = purify_html($this->description, ['HTML.ForbiddenElements' => ['iframe' => true]]);
|
||||
$this->pdffooter = purify_html($this->pdffooter, ['HTML.ForbiddenElements' => ['iframe' => true]]);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -348,12 +348,14 @@ class actionSendEmail extends actionBase
|
|||
} else {
|
||||
$this->parse_template($bean, $emailTemp);
|
||||
if ($emailTemp->text_only == '1') {
|
||||
$email_body_html = $emailTemp->body;
|
||||
$email_body = $emailTemp->body;
|
||||
$email_body_alt = null;
|
||||
} else {
|
||||
$email_body_html = $emailTemp->body_html;
|
||||
$email_body = $emailTemp->body_html;
|
||||
$email_body_alt = $emailTemp->body;
|
||||
}
|
||||
|
||||
if (!$this->sendEmail($emails['to'], $emailTemp->subject, $email_body_html, $emailTemp->body, $bean, $emailCC, $emailBCC, $attachments)) {
|
||||
if (!$this->sendEmail($emails['to'], $emailTemp->subject, $email_body, $email_body_alt, $bean, $emailCC, $emailBCC, $attachments)) {
|
||||
$ret = false;
|
||||
$this->lastEmailsFailed++;
|
||||
} else {
|
||||
|
@ -488,7 +490,9 @@ class actionSendEmail extends actionBase
|
|||
$mail->ClearReplyTos();
|
||||
$mail->Subject=from_html($emailSubject);
|
||||
$mail->Body=$emailBody;
|
||||
$mail->AltBody = $altemailBody;
|
||||
if($altemailBody){
|
||||
$mail->AltBody = $altemailBody;
|
||||
}
|
||||
$mail->handleAttachments($attachments);
|
||||
$mail->prepForOutbound();
|
||||
|
||||
|
|
|
@ -530,11 +530,12 @@ function getModuleField(
|
|||
if (isset($fieldlist[$name]['options']) && is_array($fieldlist[$name]['options']) && !isset($fieldlist[$name]['options'][''])) {
|
||||
$fieldlist[$name]['options'][''] = '';
|
||||
}
|
||||
|
||||
// Fix #9435 - The editview of a workflow is built using a Smarty template. When editing an existing workflow with an action
|
||||
// that sets to blank an enum field which has a not blank default value, the template does not show the blank value (as expected)
|
||||
// but the default value. In order to properly show the expected blank value, we hack the vardef definition overriding default value
|
||||
// with blank value when the stored workflow value (now in $value) is blank.
|
||||
if ($fieldlist[$name]['type'] == 'enum' || $fieldlist[$name]['type'] == 'multienum' || $fieldlist[$name]['type'] == 'dynamicenum') {
|
||||
if (($params['value_set'] ?? '') === true && $value === "") {
|
||||
$fieldlist[$name]['default'] = $value;
|
||||
}
|
||||
$fieldlist[$name]['default'] = $value === "" ? $value : $fieldlist[$name]['default'];
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -554,7 +554,7 @@ class AOW_WorkFlowController extends SugarController
|
|||
|
||||
$id = '';
|
||||
$params = array();
|
||||
if (isset($_REQUEST['id'])) {
|
||||
if (isset($_REQUEST['id']) && strlen(trim($_REQUEST['id'])) > 0 ) {
|
||||
require_once('modules/AOW_Actions/AOW_Action.php');
|
||||
$aow_action = BeanFactory::newBean('AOW_Actions');
|
||||
$aow_action->retrieve($_REQUEST['id']);
|
||||
|
|
|
@ -120,10 +120,7 @@ $searchFields['Accounts'] = array(
|
|||
'phone' =>
|
||||
array(
|
||||
'query_type' => 'default',
|
||||
'db_field' =>
|
||||
array(
|
||||
0 => 'phone_office',
|
||||
),
|
||||
'db_field' => array('phone_alternate', 'phone_fax', 'phone_office'),
|
||||
'vname' => 'LBL_ANY_PHONE',
|
||||
),
|
||||
'email' =>
|
||||
|
|
|
@ -680,6 +680,7 @@ $mod_strings = array(
|
|||
'ML_SUITE_DZ' => 'SuiteCRM Developer Zone',
|
||||
'ML_AVAIL_RESTRICTION' => 'The available restrictions and exceptions are detailed in the',
|
||||
'ML_OVERRIDE_CORE_FILES' => 'Overriding of core SuiteCRM files is not allowed ',
|
||||
'ML_INVALID_PHP_FILE' => 'Invalid file',
|
||||
'ML_PATH_MAY_NOT_CONTAIN' => 'File path may not contain',
|
||||
'ML_INVALID_ACTION_IN_MANIFEST' => 'Invalid action in your manifest:',
|
||||
'ML_NO_MANIFEST' => 'This package does not contain a manifest',
|
||||
|
|
|
@ -270,7 +270,7 @@ class Document extends File
|
|||
|
||||
$allowedPreview = $sugar_config['allowed_preview'] ?? [];
|
||||
|
||||
if (in_array($row['file_ext'], $allowedPreview, true)) {
|
||||
if (!empty($row['file_ext']) && in_array($row['file_ext'], $allowedPreview, true)) {
|
||||
$this->show_preview = true;
|
||||
}
|
||||
|
||||
|
|
|
@ -1566,13 +1566,13 @@ class Email extends Basic
|
|||
$this->cc_addrs_names = $this->cleanEmails($this->cc_addrs_names);
|
||||
$this->bcc_addrs_names = $this->cleanEmails($this->bcc_addrs_names);
|
||||
$this->reply_to_addr = $this->cleanEmails($this->reply_to_addr);
|
||||
$this->description = SugarCleaner::cleanHtml($this->description);
|
||||
$this->description = SugarCleaner::cleanHtml($this->description ?? '');
|
||||
if (empty($this->description_html)) {
|
||||
$this->description_html = $this->description;
|
||||
$this->description_html = nl2br($this->description_html);
|
||||
}
|
||||
$this->description_html = SugarCleaner::cleanHtml($this->description_html, true);
|
||||
$this->raw_source = SugarCleaner::cleanHtml($this->raw_source, true);
|
||||
$this->description_html = SugarCleaner::cleanHtml($this->description_html ?? '', true);
|
||||
$this->raw_source = SugarCleaner::cleanHtml($this->raw_source ?? '', true);
|
||||
$this->saveEmailText();
|
||||
$this->saveEmailAddresses();
|
||||
|
||||
|
|
|
@ -69,7 +69,7 @@ class ExternalOAuthConnection extends Basic
|
|||
{
|
||||
$result = parent::retrieve($id, $encode, $deleted);
|
||||
|
||||
if (!empty($result) && !$this->checkPersonalAccountAccess()) {
|
||||
if (!empty($result) && !$this->hasAccessToPersonalAccount()) {
|
||||
$this->logPersonalAccountAccessDenied('retrieve');
|
||||
|
||||
return null;
|
||||
|
@ -83,7 +83,7 @@ class ExternalOAuthConnection extends Basic
|
|||
*/
|
||||
public function save($check_notify = false)
|
||||
{
|
||||
if (!$this->checkPersonalAccountAccess()) {
|
||||
if (!$this->hasAccessToPersonalAccount()) {
|
||||
$this->logPersonalAccountAccessDenied('save');
|
||||
throw new RuntimeException('Access Denied');
|
||||
}
|
||||
|
@ -98,7 +98,7 @@ class ExternalOAuthConnection extends Basic
|
|||
* Check if user has access to personal account
|
||||
* @return bool
|
||||
*/
|
||||
public function checkPersonalAccountAccess(): bool
|
||||
public function hasAccessToPersonalAccount(): bool
|
||||
{
|
||||
global $current_user;
|
||||
|
||||
|
@ -162,7 +162,7 @@ class ExternalOAuthConnection extends Basic
|
|||
return false;
|
||||
}
|
||||
|
||||
if (!$this->checkPersonalAccountAccess()) {
|
||||
if (!$this->hasAccessToPersonalAccount()) {
|
||||
$this->logPersonalAccountAccessDenied("ACLAccess-$view");
|
||||
|
||||
return false;
|
||||
|
@ -171,7 +171,7 @@ class ExternalOAuthConnection extends Basic
|
|||
$isPersonal = $this->type === 'personal';
|
||||
$isAdmin = is_admin($current_user);
|
||||
|
||||
if ($isPersonal === true && $this->checkPersonalAccountAccess()) {
|
||||
if ($isPersonal === true && $this->hasAccessToPersonalAccount()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -60,7 +60,7 @@ class ExternalOAuthConnectionController extends SugarController
|
|||
return;
|
||||
}
|
||||
|
||||
if (!empty($this->bean) && $_REQUEST['type'] === 'personal' && $this->bean->checkPersonalAccountAccess()) {
|
||||
if (!empty($this->bean) && $_REQUEST['type'] === 'personal' && $this->bean->hasAccessToPersonalAccount()) {
|
||||
$this->hasAccess = true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -82,7 +82,7 @@ class ExternalOAuthProvider extends Basic
|
|||
{
|
||||
$result = parent::retrieve($id, $encode, $deleted);
|
||||
|
||||
if (!empty($result) && !$this->checkPersonalAccountAccess()) {
|
||||
if (!empty($result) && !$this->hasAccessToPersonalAccount()) {
|
||||
$this->logPersonalAccountAccessDenied('retrieve');
|
||||
|
||||
return null;
|
||||
|
@ -96,7 +96,7 @@ class ExternalOAuthProvider extends Basic
|
|||
*/
|
||||
public function save($check_notify = false)
|
||||
{
|
||||
if (!$this->checkPersonalAccountAccess()) {
|
||||
if (!$this->hasAccessToPersonalAccount()) {
|
||||
$this->logPersonalAccountAccessDenied('save');
|
||||
throw new RuntimeException('Access Denied');
|
||||
}
|
||||
|
@ -111,7 +111,7 @@ class ExternalOAuthProvider extends Basic
|
|||
* Check if user has access to personal account
|
||||
* @return bool
|
||||
*/
|
||||
public function checkPersonalAccountAccess(): bool
|
||||
public function hasAccessToPersonalAccount(): bool
|
||||
{
|
||||
global $current_user;
|
||||
|
||||
|
@ -175,7 +175,7 @@ class ExternalOAuthProvider extends Basic
|
|||
return false;
|
||||
}
|
||||
|
||||
if (!$this->checkPersonalAccountAccess()) {
|
||||
if (!$this->hasAccessToPersonalAccount()) {
|
||||
$this->logPersonalAccountAccessDenied("ACLAccess-$view");
|
||||
|
||||
return false;
|
||||
|
@ -184,7 +184,7 @@ class ExternalOAuthProvider extends Basic
|
|||
$isPersonal = $this->type === 'personal';
|
||||
$isAdmin = is_admin($current_user);
|
||||
|
||||
if ($isPersonal === true && $this->checkPersonalAccountAccess()) {
|
||||
if ($isPersonal === true && $this->hasAccessToPersonalAccount()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -61,7 +61,7 @@ class ExternalOAuthProviderController extends SugarController
|
|||
return;
|
||||
}
|
||||
|
||||
if (!empty($this->bean) && $this->bean->type === 'personal' && $this->bean->checkPersonalAccountAccess()) {
|
||||
if (!empty($this->bean) && $this->bean->type === 'personal' && $this->bean->hasAccessToPersonalAccount()) {
|
||||
$this->hasAccess = true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -42,7 +42,11 @@ if (!defined('sugarEntry') || !sugarEntry) {
|
|||
*/
|
||||
|
||||
$mod_strings = return_module_language($current_language, $_REQUEST['target_module']);
|
||||
$target_module = $_REQUEST['target_module']; // target class
|
||||
$target_module = $_REQUEST['target_module'] ?? ''; // target class
|
||||
|
||||
if (empty($target_module) || !isAllowedModuleName($target_module)) {
|
||||
throw new InvalidArgumentException('Invalid target_module');
|
||||
}
|
||||
|
||||
if (file_exists('modules/'. $_REQUEST['target_module'] . '/EditView.php')) {
|
||||
$tpl = $_REQUEST['tpl'];
|
||||
|
|
|
@ -235,6 +235,8 @@ class ImportFile extends ImportDataSource
|
|||
$this->_currentRow[$key] = $locale->translateCharset($value, $this->_encoding);
|
||||
}
|
||||
|
||||
$this->_currentRow[$key] = securexss($value);
|
||||
|
||||
// Convert all line endings to the same style as PHP_EOL
|
||||
// Use preg_replace instead of str_replace as str_replace may cause extra lines on Windows
|
||||
$this->_currentRow[$key] = preg_replace("[\r\n|\n|\r]", PHP_EOL, (string) $this->_currentRow[$key]);
|
||||
|
|
|
@ -79,6 +79,7 @@ class InboundEmail extends SugarBean
|
|||
public $mailbox_type;
|
||||
public $template_id;
|
||||
public $stored_options;
|
||||
public $email_body_filtering;
|
||||
public $group_id;
|
||||
public $is_personal;
|
||||
public $groupfolder_id;
|
||||
|
@ -302,6 +303,7 @@ class InboundEmail extends SugarBean
|
|||
*/
|
||||
public $move_messages_to_trash_after_import;
|
||||
|
||||
|
||||
/**
|
||||
* Email constructor
|
||||
* @param ImapHandlerInterface|null $imapHandler
|
||||
|
@ -383,7 +385,7 @@ class InboundEmail extends SugarBean
|
|||
$this->retrieveMailBoxFolders();
|
||||
}
|
||||
|
||||
if (!empty($ret) && !$this->checkPersonalAccountAccess()) {
|
||||
if (!empty($ret) && !$this->hasAccessToPersonalAccount()) {
|
||||
$this->logPersonalAccountAccessDenied('retrieve');
|
||||
return null;
|
||||
}
|
||||
|
@ -397,7 +399,7 @@ class InboundEmail extends SugarBean
|
|||
*/
|
||||
public function save($check_notify = false)
|
||||
{
|
||||
if (!$this->checkPersonalAccountAccess()) {
|
||||
if (!$this->hasAccessToPersonalAccount()) {
|
||||
$this->logPersonalAccountAccessDenied('save');
|
||||
throw new RuntimeException('Access Denied');
|
||||
}
|
||||
|
@ -426,7 +428,7 @@ class InboundEmail extends SugarBean
|
|||
* Check if user has access to personal account
|
||||
* @return bool
|
||||
*/
|
||||
public function checkPersonalAccountAccess() : bool {
|
||||
public function hasAccessToPersonalAccount() : bool {
|
||||
global $current_user;
|
||||
|
||||
if (is_admin($current_user)) {
|
||||
|
@ -471,7 +473,7 @@ class InboundEmail extends SugarBean
|
|||
return false;
|
||||
}
|
||||
|
||||
if (!$this->checkPersonalAccountAccess()) {
|
||||
if (!$this->hasAccessToPersonalAccount()) {
|
||||
$this->logPersonalAccountAccessDenied("ACLAccess-$view");
|
||||
return false;
|
||||
}
|
||||
|
@ -479,7 +481,7 @@ class InboundEmail extends SugarBean
|
|||
$isPersonal = isTrue($this->is_personal);
|
||||
$isAdmin = is_admin($current_user);
|
||||
|
||||
if ($isPersonal === true && $this->checkPersonalAccountAccess()) {
|
||||
if ($isPersonal === true && $this->hasAccessToPersonalAccount()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -6358,7 +6360,7 @@ class InboundEmail extends SugarBean
|
|||
*/
|
||||
public function connectMailserver($test = false, $force = false)
|
||||
{
|
||||
global $mod_strings;
|
||||
global $mod_strings, $sugar_config;
|
||||
|
||||
$msg = '';
|
||||
|
||||
|
@ -6381,6 +6383,11 @@ class InboundEmail extends SugarBean
|
|||
$requestSsl = $_REQUEST['ssl'];
|
||||
}
|
||||
|
||||
if (empty($this->port) || !in_array($this->port, $sugar_config['valid_imap_ports'] ?? [], true)) {
|
||||
$GLOBALS['log']->fatal("InboundEmail::connectMailserver - Invalid port provided: '" . ($this->port ?? '') . "'. See valid_imap_ports config.");
|
||||
return $mod_strings['ERR_INVALID_PORT'] ?? "Invalid port";
|
||||
}
|
||||
|
||||
$useSsl = ($requestSsl == 'true') ? true : false; // TODO: validate the ssl request variable value (for e.g its posibble to give a numeric 1 as true)
|
||||
if ($test) {
|
||||
$this->getImap()->setTimeout(1, 5); // 60 secs is the default
|
||||
|
@ -8531,12 +8538,17 @@ eoq;
|
|||
*/
|
||||
protected function getFilterCriteria(array $filter): ?string
|
||||
{
|
||||
// handle filtering
|
||||
// handle filtering
|
||||
$filterCriteria = null;
|
||||
$emailFilteringOption = 'multi';
|
||||
|
||||
if ($this->email_body_filtering) {
|
||||
$emailFilteringOption = $this->email_body_filtering;
|
||||
}
|
||||
|
||||
if (!empty($filter)) {
|
||||
foreach ($filter as $filterField => $filterFieldValue) {
|
||||
|
||||
if (empty($filterFieldValue)) {
|
||||
continue;
|
||||
}
|
||||
|
@ -8546,7 +8558,14 @@ eoq;
|
|||
$filterCriteria = '';
|
||||
}
|
||||
|
||||
$filterCriteria .= ' ' . $filterField . ' "' . $filterFieldValue . '" ';
|
||||
if ($filterField === 'BODY' && $emailFilteringOption !== 'multi') {
|
||||
$word = strtok($filterFieldValue, ' ') ?? '';
|
||||
if (!empty($word)){
|
||||
$filterCriteria .= ' ' . $filterField . ' "' . $word . '" ';
|
||||
}
|
||||
} else {
|
||||
$filterCriteria .= ' ' . $filterField . ' "' . $filterFieldValue . '" ';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -55,7 +55,7 @@ class InboundEmailController extends SugarController
|
|||
return;
|
||||
}
|
||||
|
||||
if (!empty($this->bean) && isTrue($this->bean->is_personal) && $this->bean->checkPersonalAccountAccess()) {
|
||||
if (!empty($this->bean) && isTrue($this->bean->is_personal) && $this->bean->hasAccessToPersonalAccount()) {
|
||||
$this->hasAccess = true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -52,6 +52,7 @@ $mod_strings = array(
|
|||
'ERR_NO_IMAP' => 'No IMAP libraries found. Please resolve this before continuing with Inbound Email',
|
||||
'ERR_NO_OPTS_SAVED' => 'No optimums were saved with your Inbound Email account. Please review the settings',
|
||||
'ERR_TEST_MAILBOX' => 'Please check your settings and try again.',
|
||||
'ERR_INVALID_PORT' => 'Invalid Port',
|
||||
|
||||
'LBL_ASSIGN_TO_USER' => 'Assign To User',
|
||||
'LBL_AUTOREPLY' => 'Auto-Reply Template',
|
||||
|
@ -128,6 +129,7 @@ $mod_strings = array(
|
|||
'LBL_ASSIGN_TO_TEAM_DESC' => 'The selected team has access to the mail account.',
|
||||
'LBL_SSL' => 'Use SSL',
|
||||
'LBL_STATUS' => 'Status',
|
||||
'LBL_EMAIL_BODY_FILTERING' => 'Email Body Filter Type',
|
||||
'LBL_SYSTEM_DEFAULT' => 'System Default',
|
||||
'LBL_TEST_BUTTON_TITLE' => 'Test',
|
||||
'LBL_TEST_SETTINGS' => 'Test Settings',
|
||||
|
|
|
@ -152,7 +152,9 @@ $viewdefs ['InboundEmail'] = [
|
|||
'connection_string',
|
||||
'sentFolder'
|
||||
],
|
||||
|
||||
[
|
||||
'email_body_filtering',
|
||||
],
|
||||
],
|
||||
'lbl_outbound_configuration' => [
|
||||
[
|
||||
|
|
|
@ -166,6 +166,9 @@ $viewdefs ['InboundEmail'] = [
|
|||
'customCode' => '<div style="display: flex; align-items:baseline;"><input id="sentFolder" name="sentFolder" tabindex="95" size="30" maxlength="100" type="text" value="{$fields.sentFolder.value}"/> <input type="button" id="sentFolderButton" class="button" onclick="openSentMailboxPopup()" value="{$MOD.LBL_SELECT}"/></div>',
|
||||
]
|
||||
],
|
||||
[
|
||||
'email_body_filtering',
|
||||
],
|
||||
],
|
||||
'lbl_outbound_configuration' => [
|
||||
[
|
||||
|
|
|
@ -221,6 +221,17 @@ $dictionary['InboundEmail'] = [
|
|||
'unified_search' => false,
|
||||
'comment' => 'Status of the inbound email mailbox (ex: Active or Inactive)'
|
||||
],
|
||||
'email_body_filtering' => [
|
||||
'name' => 'email_body_filtering',
|
||||
'vname' => 'LBL_EMAIL_BODY_FILTERING',
|
||||
'type' => 'enum',
|
||||
'default' => 'multi',
|
||||
'options' => 'dom_email_body_filtering_option',
|
||||
'reportable' => false,
|
||||
'inline_edit' => false,
|
||||
'unified_search' => false,
|
||||
'comment' => 'Set the filtering type for the emails body on listview'
|
||||
],
|
||||
'server_url' => [
|
||||
'name' => 'server_url',
|
||||
'vname' => 'LBL_SERVER_URL',
|
||||
|
|
|
@ -96,7 +96,7 @@ class ActivitiesRelationship extends OneToManyRelationship
|
|||
* Define the labels to be added to the module for the new relationships
|
||||
* @return array An array of system value => display value
|
||||
*/
|
||||
public function buildLabels()
|
||||
public function buildLabels($update = false)
|
||||
{
|
||||
$labelDefinitions = array( ) ;
|
||||
if (!$this->relationship_only) {
|
||||
|
@ -155,7 +155,7 @@ class ActivitiesRelationship extends OneToManyRelationship
|
|||
return $vardefs ;
|
||||
}
|
||||
|
||||
protected function getLinkFieldDefinition($sourceModule, $relationshipName)
|
||||
protected function getLinkFieldDefinition($sourceModule, $relationshipName, $right_side = false, $vname = "", $id_name = false)
|
||||
{
|
||||
$vardef = array( ) ;
|
||||
$vardef [ 'name' ] = $relationshipName;
|
||||
|
|
|
@ -93,7 +93,7 @@ class OutboundEmailAccounts extends OutboundEmailAccounts_sugar
|
|||
|
||||
public function save($check_notify = false)
|
||||
{
|
||||
if (!$this->checkPersonalAccountAccess()) {
|
||||
if (!$this->hasAccessToPersonalAccount()) {
|
||||
$this->logPersonalAccountAccessDenied('save');
|
||||
throw new RuntimeException('Access Denied');
|
||||
}
|
||||
|
@ -129,7 +129,7 @@ class OutboundEmailAccounts extends OutboundEmailAccounts_sugar
|
|||
{
|
||||
$results = parent::retrieve($id, $encode, $deleted);
|
||||
|
||||
if (!empty($results) && !$this->checkPersonalAccountAccess()) {
|
||||
if (!empty($results) && !$this->hasAccessToPersonalAccount()) {
|
||||
$this->logPersonalAccountAccessDenied('retrieve');
|
||||
return null;
|
||||
}
|
||||
|
@ -218,7 +218,7 @@ class OutboundEmailAccounts extends OutboundEmailAccounts_sugar
|
|||
* Check if user has access to personal account
|
||||
* @return bool
|
||||
*/
|
||||
public function checkPersonalAccountAccess() : bool {
|
||||
public function hasAccessToPersonalAccount() : bool {
|
||||
global $current_user;
|
||||
|
||||
if (is_admin($current_user)) {
|
||||
|
@ -267,15 +267,19 @@ class OutboundEmailAccounts extends OutboundEmailAccounts_sugar
|
|||
return false;
|
||||
}
|
||||
|
||||
if (!$this->checkPersonalAccountAccess()) {
|
||||
if (!$this->hasAccessToPersonalAccount()) {
|
||||
$this->logPersonalAccountAccessDenied("ACLAccess-$view");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (empty($this->type) && $this->assigned_user_id === $current_user->id){
|
||||
$this->type = 'user';
|
||||
}
|
||||
|
||||
$isPersonal = $this->type === 'user';
|
||||
$isAdmin = is_admin($current_user);
|
||||
|
||||
if ($isPersonal === true && $this->checkPersonalAccountAccess()) {
|
||||
if ($isPersonal === true && $this->hasAccessToPersonalAccount()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -56,7 +56,7 @@ class OutboundEmailAccountsController extends SugarController
|
|||
return;
|
||||
}
|
||||
|
||||
if (!empty($this->bean) && $type === 'user' && $this->bean->checkPersonalAccountAccess()) {
|
||||
if (!empty($this->bean) && $type === 'user' && $this->bean->hasAccessToPersonalAccount()) {
|
||||
$this->hasAccess = true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -43,12 +43,6 @@
|
|||
document.getElementById("mail_smtpserver").value = '';
|
||||
document.getElementById("mail_smtpport").value = '25';
|
||||
document.getElementById("mail_smtpauth_req").checked = true;
|
||||
document.getElementById("mailsettings1").style.display = '';
|
||||
document.getElementById("mailsettings2").style.display = '';
|
||||
document.getElementById("password_change_label").innerHTML = '{/literal}{$MOD.LBL_MAIL_SMTPPASS}{literal}';
|
||||
document.getElementById("mail_smtpport_label").innerHTML = '{/literal}{$MOD.LBL_MAIL_SMTPPORT}{literal}';
|
||||
document.getElementById("mail_smtpserver_label").innerHTML = '{/literal}{$MOD.LBL_MAIL_SMTPSERVER}{literal}';
|
||||
document.getElementById("mail_smtpuser_label").innerHTML = '{/literal}{$MOD.LBL_MAIL_SMTPUSER}{literal}';
|
||||
}
|
||||
|
||||
switch (smtptype) {
|
||||
|
|
|
@ -109,7 +109,11 @@ function convertQuestionResponseForDisplay($responseArr, $type)
|
|||
}
|
||||
// no break
|
||||
case "Rating":
|
||||
return str_repeat('<img width=20 src="modules/Surveys/imgs/star.png"/>', $responseArr[0]->answer);
|
||||
$answer = $responseArr[0]->answer ?? '';
|
||||
if (is_int($answer)) {
|
||||
return str_repeat('<img width=20 src="modules/Surveys/imgs/star.png"/>', $answer);
|
||||
}
|
||||
return '';
|
||||
case "Scale":
|
||||
return $responseArr[0]->answer . '/10';
|
||||
case "Textbox":
|
||||
|
|
|
@ -344,6 +344,12 @@ eoq;
|
|||
logThis('*** ERROR: could not write config.php! - upgrade will fail!');
|
||||
$errors[] = $mod_strings['ERR_UW_CONFIG_WRITE'];
|
||||
}
|
||||
|
||||
if (function_exists('post_install_config_rebuild')) {
|
||||
logThis('running post_install_config_rebuild() function');
|
||||
@post_install_config_rebuild();
|
||||
}
|
||||
|
||||
}
|
||||
logThis('post_install() done.');
|
||||
//// END POSTINSTALL SCRIPTS
|
||||
|
|
|
@ -1,154 +0,0 @@
|
|||
/*!
|
||||
* jQuery JavaScript Library v1.4.2
|
||||
* http://jquery.com/
|
||||
*
|
||||
* Copyright 2010, John Resig
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* Includes Sizzle.js
|
||||
* http://sizzlejs.com/
|
||||
* Copyright 2010, The Dojo Foundation
|
||||
* Released under the MIT, BSD, and GPL Licenses.
|
||||
*
|
||||
* Date: Sat Feb 13 22:33:48 2010 -0500
|
||||
*/
|
||||
(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o<i;o++)e(a[o],b,f?d.call(a[o],o,e(a[o],b)):d,j);return a}return i?
|
||||
e(a[0],b):w}function J(){return(new Date).getTime()}function Y(){return false}function Z(){return true}function na(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function oa(a){var b,d=[],f=[],e=arguments,j,i,o,k,n,r;i=c.data(this,"events");if(!(a.liveFired===this||!i||!i.live||a.button&&a.type==="click")){a.liveFired=this;var u=i.live.slice(0);for(k=0;k<u.length;k++){i=u[k];i.origType.replace(O,"")===a.type?f.push(i.selector):u.splice(k--,1)}j=c(a.target).closest(f,a.currentTarget);n=0;for(r=
|
||||
j.length;n<r;n++)for(k=0;k<u.length;k++){i=u[k];if(j[n].selector===i.selector){o=j[n].elem;f=null;if(i.preType==="mouseenter"||i.preType==="mouseleave")f=c(a.relatedTarget).closest(i.selector)[0];if(!f||f!==o)d.push({elem:o,handleObj:i})}}n=0;for(r=d.length;n<r;n++){j=d[n];a.currentTarget=j.elem;a.data=j.handleObj.data;a.handleObj=j.handleObj;if(j.handleObj.origHandler.apply(j.elem,e)===false){b=false;break}}return b}}function pa(a,b){return"live."+(a&&a!=="*"?a+".":"")+b.replace(/\./g,"`").replace(/ /g,
|
||||
"&")}function qa(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function ra(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var f=c.data(a[d++]),e=c.data(this,f);if(f=f&&f.events){delete e.handle;e.events={};for(var j in f)for(var i in f[j])c.event.add(this,j,f[j][i],f[j][i].data)}}})}function sa(a,b,d){var f,e,j;b=b&&b[0]?b[0].ownerDocument||b[0]:s;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===s&&!ta.test(a[0])&&(c.support.checkClone||!ua.test(a[0]))){e=
|
||||
true;if(j=c.fragments[a[0]])if(j!==1)f=j}if(!f){f=b.createDocumentFragment();c.clean(a,b,f,d)}if(e)c.fragments[a[0]]=j?f:1;return{fragment:f,cacheable:e}}function K(a,b){var d={};c.each(va.concat.apply([],va.slice(0,b)),function(){d[this]=a});return d}function wa(a){return"scrollTo"in a&&a.document?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var c=function(a,b){return new c.fn.init(a,b)},Ra=A.jQuery,Sa=A.$,s=A.document,T,Ta=/^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/,
|
||||
Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&&
|
||||
(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this,
|
||||
a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b===
|
||||
"find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this,
|
||||
function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b<d;b++)if((e=arguments[b])!=null)for(j in e){i=a[j];o=e[j];if(a!==o)if(f&&o&&(c.isPlainObject(o)||c.isArray(o))){i=i&&(c.isPlainObject(i)||
|
||||
c.isArray(i))?i:c.isArray(o)?[]:{};a[j]=c.extend(f,i,o)}else if(o!==w)a[j]=o}return a};c.extend({noConflict:function(a){A.$=Sa;if(a)A.jQuery=Ra;return c},isReady:false,ready:function(){if(!c.isReady){if(!s.body)return setTimeout(c.ready,13);c.isReady=true;if(Q){for(var a,b=0;a=Q[b++];)a.call(s,c);Q=null}c.fn.triggerHandler&&c(s).triggerHandler("ready")}},bindReady:function(){if(!xa){xa=true;if(s.readyState==="complete")return c.ready();if(s.addEventListener){s.addEventListener("DOMContentLoaded",
|
||||
L,false);A.addEventListener("load",c.ready,false)}else if(s.attachEvent){s.attachEvent("onreadystatechange",L);A.attachEvent("onload",c.ready);var a=false;try{a=A.frameElement==null}catch(b){}s.documentElement.doScroll&&a&&ma()}}},isFunction:function(a){return $.call(a)==="[object Function]"},isArray:function(a){return $.call(a)==="[object Array]"},isPlainObject:function(a){if(!a||$.call(a)!=="[object Object]"||a.nodeType||a.setInterval)return false;if(a.constructor&&!aa.call(a,"constructor")&&!aa.call(a.constructor.prototype,
|
||||
"isPrototypeOf"))return false;var b;for(b in a);return b===w||aa.call(a,b)},isEmptyObject:function(a){for(var b in a)return false;return true},error:function(a){throw a;},parseJSON:function(a){if(typeof a!=="string"||!a)return null;a=c.trim(a);if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return A.JSON&&A.JSON.parse?A.JSON.parse(a):(new Function("return "+
|
||||
a))();else c.error("Invalid JSON: "+a)},noop:function(){},globalEval:function(a){if(a&&Va.test(a)){var b=s.getElementsByTagName("head")[0]||s.documentElement,d=s.createElement("script");d.type="text/javascript";if(c.support.scriptEval)d.appendChild(s.createTextNode(a));else d.text=a;b.insertBefore(d,b.firstChild);b.removeChild(d)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,b,d){var f,e=0,j=a.length,i=j===w||c.isFunction(a);if(d)if(i)for(f in a){if(b.apply(a[f],
|
||||
d)===false)break}else for(;e<j;){if(b.apply(a[e++],d)===false)break}else if(i)for(f in a){if(b.call(a[f],f,a[f])===false)break}else for(d=a[0];e<j&&b.call(d,e,d)!==false;d=a[++e]);return a},trim:function(a){return(a||"").replace(Wa,"")},makeArray:function(a,b){b=b||[];if(a!=null)a.length==null||typeof a==="string"||c.isFunction(a)||typeof a!=="function"&&a.setInterval?ba.call(b,a):c.merge(b,a);return b},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var d=0,f=b.length;d<f;d++)if(b[d]===
|
||||
a)return d;return-1},merge:function(a,b){var d=a.length,f=0;if(typeof b.length==="number")for(var e=b.length;f<e;f++)a[d++]=b[f];else for(;b[f]!==w;)a[d++]=b[f++];a.length=d;return a},grep:function(a,b,d){for(var f=[],e=0,j=a.length;e<j;e++)!d!==!b(a[e],e)&&f.push(a[e]);return f},map:function(a,b,d){for(var f=[],e,j=0,i=a.length;j<i;j++){e=b(a[j],j,d);if(e!=null)f[f.length]=e}return f.concat.apply([],f)},guid:1,proxy:function(a,b,d){if(arguments.length===2)if(typeof b==="string"){d=a;a=d[b];b=w}else if(b&&
|
||||
!c.isFunction(b)){d=b;b=w}if(!b&&a)b=function(){return a.apply(d||this,arguments)};if(a)b.guid=a.guid=a.guid||b.guid||c.guid++;return b},uaMatch:function(a){a=a.toLowerCase();a=/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version)?[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||!/compatible/.test(a)&&/(mozilla)(?:.*? rv:([\w.]+))?/.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}},browser:{}});P=c.uaMatch(P);if(P.browser){c.browser[P.browser]=true;c.browser.version=P.version}if(c.browser.webkit)c.browser.safari=
|
||||
true;if(ya)c.inArray=function(a,b){return ya.call(b,a)};T=c(s);if(s.addEventListener)L=function(){s.removeEventListener("DOMContentLoaded",L,false);c.ready()};else if(s.attachEvent)L=function(){if(s.readyState==="complete"){s.detachEvent("onreadystatechange",L);c.ready()}};(function(){c.support={};var a=s.documentElement,b=s.createElement("script"),d=s.createElement("div"),f="script"+J();d.style.display="none";d.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
|
||||
var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected,
|
||||
parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent=
|
||||
false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n=
|
||||
s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true,
|
||||
applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando];
|
||||
else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this,
|
||||
a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===
|
||||
w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i,
|
||||
cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1)if(e.className){for(var j=" "+e.className+" ",
|
||||
i=e.className,o=0,k=b.length;o<k;o++)if(j.indexOf(" "+b[o]+" ")<0)i+=" "+b[o];e.className=c.trim(i)}else e.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(k){var n=c(this);n.removeClass(a.call(this,k,n.attr("class")))});if(a&&typeof a==="string"||a===w)for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1&&e.className)if(a){for(var j=(" "+e.className+" ").replace(Aa," "),i=0,o=b.length;i<o;i++)j=j.replace(" "+b[i]+" ",
|
||||
" ");e.className=c.trim(j)}else e.className=""}return this},toggleClass:function(a,b){var d=typeof a,f=typeof b==="boolean";if(c.isFunction(a))return this.each(function(e){var j=c(this);j.toggleClass(a.call(this,e,j.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var e,j=0,i=c(this),o=b,k=a.split(ca);e=k[j++];){o=f?o:!i.hasClass(e);i[o?"addClass":"removeClass"](e)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,"__className__",this.className);this.className=
|
||||
this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(Aa," ").indexOf(a)>-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j<d;j++){var i=
|
||||
e[j];if(i.selected){a=c(i).val();if(b)return a;f.push(a)}}return f}if(Ba.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Za,"")}return w}var o=c.isFunction(a);return this.each(function(k){var n=c(this),r=a;if(this.nodeType===1){if(o)r=a.call(this,k,n.val());if(typeof r==="number")r+="";if(c.isArray(r)&&Ba.test(this.type))this.checked=c.inArray(n.val(),r)>=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected=
|
||||
c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");
|
||||
a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g,
|
||||
function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split(".");
|
||||
k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a),
|
||||
C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B<r.length;B++){u=r[B];if(d.guid===u.guid){if(i||k.test(u.namespace)){f==null&&r.splice(B--,1);n.remove&&n.remove.call(a,u)}if(f!=
|
||||
null)break}}if(r.length===0||f!=null&&r.length===1){if(!n.teardown||n.teardown.call(a,o)===false)Ca(a,e,z.handle);delete C[e]}}else for(var B=0;B<r.length;B++){u=r[B];if(i||k.test(u.namespace)){c.event.remove(a,n,u.handler,B);r.splice(B--,1)}}}if(c.isEmptyObject(C)){if(b=z.handle)b.elem=null;delete z.events;delete z.handle;c.isEmptyObject(z)&&c.removeData(a)}}}}},trigger:function(a,b,d,f){var e=a.type||a;if(!f){a=typeof a==="object"?a[G]?a:c.extend(c.Event(e),a):c.Event(e);if(e.indexOf("!")>=0){a.type=
|
||||
e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&&
|
||||
f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;
|
||||
if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e<j;e++){var i=d[e];if(b||f.test(i.namespace)){a.handler=i.handler;a.data=i.data;a.handleObj=i;i=i.handler.apply(this,arguments);if(i!==w){a.result=i;if(i===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
|
||||
fix:function(a){if(a[G])return a;var b=a;a=c.Event(b);for(var d=this.props.length,f;d;){f=this.props[--d];a[f]=b[f]}if(!a.target)a.target=a.srcElement||s;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=s.documentElement;d=s.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop||
|
||||
d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(!a.which&&(a.charCode||a.charCode===0?a.charCode:a.keyCode))a.which=a.charCode||a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==w)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,a.origType,c.extend({},a,{handler:oa}))},remove:function(a){var b=true,d=a.origType.replace(O,"");c.each(c.data(this,
|
||||
"events").live||[],function(){if(d===this.origType.replace(O,""))return b=false});b&&c.event.remove(this,a.origType,oa)}},beforeunload:{setup:function(a,b,d){if(this.setInterval)this.onbeforeunload=d;return false},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};var Ca=s.removeEventListener?function(a,b,d){a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=
|
||||
a;this.type=a.type}else this.type=a;this.timeStamp=J();this[G]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=Z;var a=this.originalEvent;if(a){a.preventDefault&&a.preventDefault();a.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=Z;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Z;this.stopPropagation()},isDefaultPrevented:Y,isPropagationStopped:Y,
|
||||
isImmediatePropagationStopped:Y};var Da=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},Ea=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?Ea:Da,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?Ea:Da)}}});if(!c.support.submitBubbles)c.event.special.submit=
|
||||
{setup:function(){if(this.nodeName.toLowerCase()!=="form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length)return na("submit",this,arguments)});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13)return na("submit",this,arguments)})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}};
|
||||
if(!c.support.changeBubbles){var da=/textarea|input|select/i,ea,Fa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",
|
||||
e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,
|
||||
"_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a,
|
||||
d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j<o;j++)c.event.add(this[j],d,i,f)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&&
|
||||
!a.preventDefault)for(var d in a)this.unbind(d,a[d]);else{d=0;for(var f=this.length;d<f;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,f){return this.live(b,d,f,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){a=c.Event(a);a.preventDefault();a.stopPropagation();c.event.trigger(a,b,this[0]);return a.result}},
|
||||
toggle:function(a){for(var b=arguments,d=1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(f){var e=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,e+1);f.preventDefault();return b[e].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var Ga={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,f,e,j){var i,o=0,k,n,r=j||this.selector,
|
||||
u=j?this:c(this.context);if(c.isFunction(f)){e=f;f=w}for(d=(d||"").split(" ");(i=d[o++])!=null;){j=O.exec(i);k="";if(j){k=j[0];i=i.replace(O,"")}if(i==="hover")d.push("mouseenter"+k,"mouseleave"+k);else{n=i;if(i==="focus"||i==="blur"){d.push(Ga[i]+k);i+=k}else i=(Ga[i]||i)+k;b==="live"?u.each(function(){c.event.add(this,pa(i,r),{data:f,selector:r,handler:e,origType:i,origHandler:e,preType:n})}):u.unbind(pa(i,r),e)}}return this}});c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),
|
||||
function(a,b){c.fn[b]=function(d){return d?this.bind(b,d):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});A.attachEvent&&!A.addEventListener&&A.attachEvent("onunload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});(function(){function a(g){for(var h="",l,m=0;g[m];m++){l=g[m];if(l.nodeType===3||l.nodeType===4)h+=l.nodeValue;else if(l.nodeType!==8)h+=a(l.childNodes)}return h}function b(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];
|
||||
if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1&&!p){t.sizcache=l;t.sizset=q}if(t.nodeName.toLowerCase()===h){y=t;break}t=t[g]}m[q]=y}}}function d(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1){if(!p){t.sizcache=l;t.sizset=q}if(typeof h!=="string"){if(t===h){y=true;break}}else if(k.filter(h,[t]).length>0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
|
||||
e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift();
|
||||
t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D||
|
||||
g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h<g.length;h++)g[h]===g[h-1]&&g.splice(h--,1)}return g};k.matches=function(g,h){return k(g,null,null,h)};k.find=function(g,h,l){var m,q;if(!g)return[];
|
||||
for(var p=0,v=n.order.length;p<v;p++){var t=n.order[p];if(q=n.leftMatch[t].exec(g)){var y=q[1];q.splice(1,1);if(y.substr(y.length-1)!=="\\"){q[1]=(q[1]||"").replace(/\\/g,"");m=n.find[t](q,h,l);if(m!=null){g=g.replace(n.match[t],"");break}}}}m||(m=h.getElementsByTagName("*"));return{set:m,expr:g}};k.filter=function(g,h,l,m){for(var q=g,p=[],v=h,t,y,S=h&&h[0]&&x(h[0]);g&&h.length;){for(var H in n.filter)if((t=n.leftMatch[H].exec(g))!=null&&t[2]){var M=n.filter[H],I,D;D=t[1];y=false;t.splice(1,1);if(D.substr(D.length-
|
||||
1)!=="\\"){if(v===p)p=[];if(n.preFilter[H])if(t=n.preFilter[H](t,v,l,p,m,S)){if(t===true)continue}else y=I=true;if(t)for(var U=0;(D=v[U])!=null;U++)if(D){I=M(D,t,U,v);var Ha=m^!!I;if(l&&I!=null)if(Ha)y=true;else v[U]=false;else if(Ha){p.push(D);y=true}}if(I!==w){l||(v=p);g=g.replace(n.match[H],"");if(!y)return[];break}}}if(g===q)if(y==null)k.error(g);else break;q=g}return v};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var n=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF-]|\\.)+)/,
|
||||
CLASS:/\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},
|
||||
relative:{"+":function(g,h){var l=typeof h==="string",m=l&&!/\W/.test(h);l=l&&!m;if(m)h=h.toLowerCase();m=0;for(var q=g.length,p;m<q;m++)if(p=g[m]){for(;(p=p.previousSibling)&&p.nodeType!==1;);g[m]=l||p&&p.nodeName.toLowerCase()===h?p||false:p===h}l&&k.filter(h,g,true)},">":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m<q;m++){var p=g[m];if(p){l=p.parentNode;g[m]=l.nodeName.toLowerCase()===h?l:false}}}else{m=0;for(q=g.length;m<q;m++)if(p=g[m])g[m]=
|
||||
l?p.parentNode:p.parentNode===h;l&&k.filter(h,g,true)}},"":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("parentNode",h,m,g,p,l)},"~":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("previousSibling",h,m,g,p,l)}},find:{ID:function(g,h,l){if(typeof h.getElementById!=="undefined"&&!l)return(g=h.getElementById(g[1]))?[g]:[]},NAME:function(g,h){if(typeof h.getElementsByName!=="undefined"){var l=[];
|
||||
h=h.getElementsByName(g[1]);for(var m=0,q=h.length;m<q;m++)h[m].getAttribute("name")===g[1]&&l.push(h[m]);return l.length===0?null:l}},TAG:function(g,h){return h.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,h,l,m,q,p){g=" "+g[1].replace(/\\/g,"")+" ";if(p)return g;p=0;for(var v;(v=h[p])!=null;p++)if(v)if(q^(v.className&&(" "+v.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},
|
||||
CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m,
|
||||
g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},
|
||||
text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},
|
||||
setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return h<l[3]-0},gt:function(g,h,l){return h>l[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h=
|
||||
h[3];l=0;for(m=h.length;l<m;l++)if(h[l]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+q)},CHILD:function(g,h){var l=h[1],m=g;switch(l){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(l==="first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":l=h[2];var q=h[3];if(l===1&&q===0)return true;h=h[0];var p=g.parentNode;if(p&&(p.sizcache!==h||!g.nodeIndex)){var v=0;for(m=p.firstChild;m;m=
|
||||
m.nextSibling)if(m.nodeType===1)m.nodeIndex=++v;p.sizcache=h}g=g.nodeIndex-q;return l===0?g===0:g%l===0&&g/l>=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m===
|
||||
"="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g,
|
||||
h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l<m;l++)h.push(g[l]);else for(l=0;g[l];l++)h.push(g[l]);return h}}var B;if(s.documentElement.compareDocumentPosition)B=function(g,h){if(!g.compareDocumentPosition||
|
||||
!h.compareDocumentPosition){if(g==h)i=true;return g.compareDocumentPosition?-1:1}g=g.compareDocumentPosition(h)&4?-1:g===h?0:1;if(g===0)i=true;return g};else if("sourceIndex"in s.documentElement)B=function(g,h){if(!g.sourceIndex||!h.sourceIndex){if(g==h)i=true;return g.sourceIndex?-1:1}g=g.sourceIndex-h.sourceIndex;if(g===0)i=true;return g};else if(s.createRange)B=function(g,h){if(!g.ownerDocument||!h.ownerDocument){if(g==h)i=true;return g.ownerDocument?-1:1}var l=g.ownerDocument.createRange(),m=
|
||||
h.ownerDocument.createRange();l.setStart(g,0);l.setEnd(g,0);m.setStart(h,0);m.setEnd(h,0);g=l.compareBoundaryPoints(Range.START_TO_END,m);if(g===0)i=true;return g};(function(){var g=s.createElement("div"),h="script"+(new Date).getTime();g.innerHTML="<a name='"+h+"'/>";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&&
|
||||
q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML="<a href='#'></a>";
|
||||
if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="<p class='TEST'></p>";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}();
|
||||
(function(){var g=s.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}:
|
||||
function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q<p;q++)k(g,h[q],l);return k.filter(m,l)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=a;c.isXMLDoc=x;c.contains=E})();var eb=/Until$/,fb=/^(?:parents|prevUntil|prevAll)/,
|
||||
gb=/,/;R=Array.prototype.slice;var Ia=function(a,b,d){if(c.isFunction(b))return c.grep(a,function(e,j){return!!b.call(e,j,e)===d});else if(b.nodeType)return c.grep(a,function(e){return e===b===d});else if(typeof b==="string"){var f=c.grep(a,function(e){return e.nodeType===1});if(Ua.test(b))return c.filter(b,f,!d);else b=c.filter(b,f)}return c.grep(a,function(e){return c.inArray(e,b)>=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f<e;f++){d=b.length;
|
||||
c.find(a,this[f],b);if(f>0)for(var j=d;j<b.length;j++)for(var i=0;i<d;i++)if(b[i]===b[j]){b.splice(j--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,f=b.length;d<f;d++)if(c.contains(this,b[d]))return true})},not:function(a){return this.pushStack(Ia(this,a,false),"not",a)},filter:function(a){return this.pushStack(Ia(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j=
|
||||
{},i;if(f&&a.length){e=0;for(var o=a.length;e<o;e++){i=a[e];j[i]||(j[i]=c.expr.match.POS.test(i)?c(i,b||this.context):i)}for(;f&&f.ownerDocument&&f!==b;){for(i in j){e=j[i];if(e.jquery?e.index(f)>-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a===
|
||||
"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",
|
||||
d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?
|
||||
a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType===
|
||||
1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/<tbody/i,jb=/<|&#?\w+;/,ta=/<script|<object|<embed|<option|<style/i,ua=/checked\s*(?:[^=]|=\s*.checked.)/i,Ma=function(a,b,d){return hb.test(d)?
|
||||
a:b+"></"+d+">"},F={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=
|
||||
c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},
|
||||
wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},
|
||||
prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,
|
||||
this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild);
|
||||
return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja,
|
||||
""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(f){this.empty().append(a)}}else c.isFunction(a)?this.each(function(e){var j=c(this),i=j.html();j.empty().append(function(){return a.call(this,e,i)})}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&
|
||||
this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=c(this),f=d.html();d.replaceWith(a.call(this,b,f))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){function f(u){return c.nodeName(u,"table")?u.getElementsByTagName("tbody")[0]||
|
||||
u.appendChild(u.ownerDocument.createElement("tbody")):u}var e,j,i=a[0],o=[],k;if(!c.support.checkClone&&arguments.length===3&&typeof i==="string"&&ua.test(i))return this.each(function(){c(this).domManip(a,b,d,true)});if(c.isFunction(i))return this.each(function(u){var z=c(this);a[0]=i.call(this,u,b?z.html():w);z.domManip(a,b,d)});if(this[0]){e=i&&i.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:sa(a,this,o);k=e.fragment;if(j=k.childNodes.length===
|
||||
1?(k=k.firstChild):k.firstChild){b=b&&c.nodeName(j,"tr");for(var n=0,r=this.length;n<r;n++)d.call(b?f(this[n],j):this[n],n>0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]);
|
||||
return this}else{e=0;for(var j=d.length;e<j;e++){var i=(e>0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["",
|
||||
""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]==="<table>"&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e=
|
||||
c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]?
|
||||
c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja=
|
||||
function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter=
|
||||
Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a,
|
||||
"border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f=
|
||||
a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=
|
||||
a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=/<script(.|\s)*?\/script>/gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!==
|
||||
"string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("<div />").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this},
|
||||
serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),
|
||||
function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,
|
||||
global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&&
|
||||
e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)?
|
||||
"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache===
|
||||
false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B=
|
||||
false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since",
|
||||
c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E||
|
||||
d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x);
|
||||
g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===
|
||||
1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b===
|
||||
"json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional;
|
||||
if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");
|
||||
this[a].style.display=d||"";if(c.css(this[a],"display")==="none"){d=this[a].nodeName;var f;if(la[d])f=la[d];else{var e=c("<"+d+" />").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a<b;a++)this[a].style.display=c.data(this[a],"olddisplay")||"";return this}},hide:function(a,b){if(a||a===0)return this.animate(K("hide",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");!d&&d!=="none"&&c.data(this[a],
|
||||
"olddisplay",c.css(this[a],"display"))}a=0;for(b=this.length;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b){var d=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||d?this.each(function(){var f=d?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(K("toggle",3),a,b);return this},fadeTo:function(a,b,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d)},
|
||||
animate:function(a,b,d,f){var e=c.speed(b,d,f);if(c.isEmptyObject(a))return this.each(e.complete);return this[e.queue===false?"each":"queue"](function(){var j=c.extend({},e),i,o=this.nodeType===1&&c(this).is(":hidden"),k=this;for(i in a){var n=i.replace(ia,ja);if(i!==n){a[n]=a[i];delete a[i];i=n}if(a[i]==="hide"&&o||a[i]==="show"&&!o)return j.complete.call(this);if((i==="height"||i==="width")&&this.style){j.display=c.css(this,"display");j.overflow=this.style.overflow}if(c.isArray(a[i])){(j.specialEasing=
|
||||
j.specialEasing||{})[i]=a[i][1];a[i]=a[i][0]}}if(j.overflow!=null)this.style.overflow="hidden";j.curAnim=c.extend({},a);c.each(a,function(r,u){var z=new c.fx(k,j,r);if(Ab.test(u))z[u==="toggle"?o?"show":"hide":u](a);else{var C=Bb.exec(u),B=z.cur(true)||0;if(C){u=parseFloat(C[2]);var E=C[3]||"px";if(E!=="px"){k.style[r]=(u||1)+E;B=(u||1)/z.cur(true)*B;k.style[r]=B+E}if(C[1])u=(C[1]==="-="?-1:1)*u+B;z.custom(B,u,E)}else z.custom(B,u,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);
|
||||
this.each(function(){for(var f=d.length-1;f>=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration===
|
||||
"number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||
|
||||
c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;
|
||||
this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=
|
||||
this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem,
|
||||
e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||
|
||||
c.fx.stop()},stop:function(){clearInterval(W);W=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===b.elem}).length};c.fn.offset="getBoundingClientRect"in s.documentElement?
|
||||
function(a){var b=this[0];if(a)return this.each(function(e){c.offset.setOffset(this,a,e)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);var d=b.getBoundingClientRect(),f=b.ownerDocument;b=f.body;f=f.documentElement;return{top:d.top+(self.pageYOffset||c.support.boxModel&&f.scrollTop||b.scrollTop)-(f.clientTop||b.clientTop||0),left:d.left+(self.pageXOffset||c.support.boxModel&&f.scrollLeft||b.scrollLeft)-(f.clientLeft||b.clientLeft||0)}}:function(a){var b=
|
||||
this[0];if(a)return this.each(function(r){c.offset.setOffset(this,a,r)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d=b.offsetParent,f=b,e=b.ownerDocument,j,i=e.documentElement,o=e.body;f=(e=e.defaultView)?e.getComputedStyle(b,null):b.currentStyle;for(var k=b.offsetTop,n=b.offsetLeft;(b=b.parentNode)&&b!==o&&b!==i;){if(c.offset.supportsFixedPosition&&f.position==="fixed")break;j=e?e.getComputedStyle(b,null):b.currentStyle;
|
||||
k-=b.scrollTop;n-=b.scrollLeft;if(b===d){k+=b.offsetTop;n+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(b.nodeName))){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=d;d=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&j.overflow!=="visible"){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=j}if(f.position==="relative"||f.position==="static"){k+=o.offsetTop;n+=o.offsetLeft}if(c.offset.supportsFixedPosition&&
|
||||
f.position==="fixed"){k+=Math.max(i.scrollTop,o.scrollTop);n+=Math.max(i.scrollLeft,o.scrollLeft)}return{top:k,left:n}};c.offset={initialize:function(){var a=s.body,b=s.createElement("div"),d,f,e,j=parseFloat(c.curCSS(a,"marginTop",true))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";
|
||||
a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b);
|
||||
c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a,
|
||||
d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top-
|
||||
f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset":
|
||||
"pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in
|
||||
e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window);
|
File diff suppressed because one or more lines are too long
|
@ -95,7 +95,7 @@ class Jjwg_AreasViewArea_Edit_Map extends SugarView
|
|||
</style>
|
||||
|
||||
<script type="text/javascript" src="//maps.googleapis.com/maps/api/js?key=<?= $GLOBALS['jjwg_config']['google_maps_api_key']; ?>&sensor=false&libraries=drawing"></script>
|
||||
<script type="text/javascript" src="modules/jjwg_Areas/javascript/jquery-1.8.0.min.js"></script>
|
||||
<script src="include/javascript/jquery/jquery-min.js"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -117,8 +117,8 @@ class jjwg_MapsController extends SugarController
|
|||
$this->bean->geocoded_headings[] = $code;
|
||||
}
|
||||
}
|
||||
$responses['Approximate'] = 'APPROXIMATE';
|
||||
$responses['Empty'] = 'Empty';
|
||||
$responses['APPROXIMATE'] = 'APPROXIMATE';
|
||||
$responses['EMPTY'] = 'EMPTY';
|
||||
$this->bean->geocoded_headings[] = 'APPROXIMATE';
|
||||
$this->bean->geocoded_headings[] = 'EMPTY';
|
||||
|
||||
|
@ -1106,7 +1106,9 @@ class jjwg_MapsController extends SugarController
|
|||
$this->sugarSmarty->assign("address", $display['jjwg_maps_address_c']);
|
||||
$this->sugarSmarty->assign("fields", $display); // display fields array
|
||||
// Use @ error suppression to avoid issues with SugarCRM On-Demand
|
||||
$marker['html'] = @$this->sugarSmarty->fetch('./custom/modules/jjwg_Maps/tpls/' . $module_type . 'InfoWindow.tpl');
|
||||
if (file_exists('./custom/modules/jjwg_Maps/tpls/' . $module_type . 'InfoWindow.tpl')) {
|
||||
$marker['html'] = $this->sugarSmarty->fetch('./custom/modules/jjwg_Maps/tpls/' . $module_type . 'InfoWindow.tpl');
|
||||
}
|
||||
if (empty($marker['html'])) {
|
||||
$marker['html'] = $this->sugarSmarty->fetch('./modules/jjwg_Maps/tpls/' . $module_type . 'InfoWindow.tpl');
|
||||
}
|
||||
|
@ -1154,7 +1156,9 @@ class jjwg_MapsController extends SugarController
|
|||
$this->sugarSmarty->assign("module_type", 'jjwg_Markers');
|
||||
$this->sugarSmarty->assign("fields", $fields); // display fields array
|
||||
// Use @ error suppression to avoid issues with SugarCRM On-Demand
|
||||
$marker['html'] = @$this->sugarSmarty->fetch('./custom/modules/jjwg_Markers/tpls/MarkersInfoWindow.tpl');
|
||||
if (file_exists('./custom/modules/jjwg_Markers/tpls/MarkersInfoWindow.tpl')) {
|
||||
$marker['html'] = $this->sugarSmarty->fetch('./custom/modules/jjwg_Markers/tpls/MarkersInfoWindow.tpl');
|
||||
}
|
||||
if (empty($marker['html'])) {
|
||||
$marker['html'] = $this->sugarSmarty->fetch('./modules/jjwg_Markers/tpls/MarkersInfoWindow.tpl');
|
||||
}
|
||||
|
@ -1192,7 +1196,9 @@ class jjwg_MapsController extends SugarController
|
|||
$this->sugarSmarty->assign("module_type", 'jjwg_Areas');
|
||||
$this->sugarSmarty->assign("fields", $fields); // display fields array
|
||||
// Use @ error suppression to avoid issues with SugarCRM On-Demand
|
||||
$area['html'] = @$this->sugarSmarty->fetch('./custom/modules/jjwg_Areas/tpls/AreasInfoWindow.tpl');
|
||||
if (file_exists('./custom/modules/jjwg_Areas/tpls/AreasInfoWindow.tpl')) {
|
||||
$area['html'] = $this->sugarSmarty->fetch();
|
||||
}
|
||||
if (empty($area['html'])) {
|
||||
$area['html'] = $this->sugarSmarty->fetch('./modules/jjwg_Areas/tpls/AreasInfoWindow.tpl');
|
||||
}
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -85,7 +85,7 @@ class Jjwg_MapsViewMap_Markers extends SugarView
|
|||
<link rel="stylesheet" type="text/css" href="//cdnjs.cloudflare.com/ajax/libs/datatables/1.9.4/css/jquery.dataTables.min.css" />
|
||||
<link rel="stylesheet" type="text/css" href="//cdnjs.cloudflare.com/ajax/libs/datatables-tabletools/2.1.5/css/TableTools.min.css" />
|
||||
<script type="text/javascript" src="//maps.googleapis.com/maps/api/js?key=<?= $GLOBALS['jjwg_config']['google_maps_api_key']; ?>&sensor=false&libraries=drawing,geometry"></script>
|
||||
<script type="text/javascript" src="modules/jjwg_Areas/javascript/jquery-1.8.0.min.js"></script>
|
||||
<script src="include/javascript/jquery/jquery-min.js"></script>
|
||||
<script type="text/javascript" src="modules/jjwg_Maps/javascript/jquery.iframe-auto-height.plugin.1.9.3.min.js"></script>
|
||||
<script type="text/javascript" src="modules/jjwg_Maps/javascript/markerclusterer_packed.js"></script>
|
||||
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/datatables/1.9.4/jquery.dataTables.min.js"></script>
|
||||
|
|
|
@ -4,5 +4,5 @@ if (!defined('sugarEntry') || !sugarEntry) {
|
|||
}
|
||||
|
||||
$suitecrm_version = '8.4.1';
|
||||
$suitecrm_timestamp = '2023-10-03 12:00:00';
|
||||
$suitecrm_legacy = '7.14.1';
|
||||
$suitecrm_timestamp = '2023-11-14 12:00:00';
|
||||
$suitecrm_legacy = '7.14.2';
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue