mirror of
https://github.com/SuiteCRM/SuiteCRM-Core.git
synced 2025-08-29 04:21:06 +08:00
Squashed 'public/legacy/' changes from 817a12dc0c..f058c4c306
f058c4c306 Fix #9106 - Update securexss for backwards compatibility 05471a51f3 Update composer.lock dee3305fce 7.11.19 0952712425 Fix Calender display issues in FullCalender 3.10 91bfb1cf3a Fix #7999 - Prevent securitygroups mass assign damage e36e1a52f5 Fix #5624 - Make SWSPEditRoleButton::displayList compatible w. parent 8265b5e29b Fix #8571 - Remove duplicate code in users detailviewdefs f63f05a4a2 Fix #8514 - Implement effective opcache file clearing 5e671f3b1b Fix #8461, #8462 - PHP files are potentially overwritten 0b18500b42 Fix #8700 - Various problems in PHPDocs throughout the codebase. 25dce7954d Fix #9067 - Fix the drop down width 28eecb4198 Add Additional api filter option `like` 8b5a152f7f Add filters in relationship API 7a92e5ec8a Add Relationship Beans in V8 API Response c192ccdf2e Fix #9090 - User menu alignment 466f2d96e7 Fix #6051 - Modulebuilder labels edit fixes fe5ed90fd9 Update JQuery JS Library to v3.6.0 e0382c1a6c Update FullCalendar JS Library to v3.10.2 86882a4d4f Update YUI JS Library to 2.9.1 540245494b Fix #8999 - Hardcoded 'by' label in calls e4f3c6a2fb Fix #9034 - Business Hours does not work in non-english languages b0a51cc667 Fix #8910 - Update the V8 Api to allow for upload of documents similar to notes 8408cd8e91 Fix #9010 - Add missing 'view task' label on calendar faa46f5a4c Fix #8894 - Add missing label for calendar dashlet 5905f3d308 Fix #9032 - Prevent Notice Error During Import 5c9e8700ba Fix #8182 - Update updateTimeDateFields to handle undefined dates fc3dd03386 Fix #9075 - Removing deleted related beans via link 039d9a69d2 Fix #8988 - Improve upon solution which doesn't cache incomplete beans f562c57c8d Fix #7772 - Only index ElasticSearch when enabled dd1a5bc244 Fix #9101 LangText exception breaking ElasticSearch 0c861d3f1a Fix #8472 - No or not complete Searchresults using elasticsearch engine e4e884667c Fix #6800 - Elasticsearch: Elastic index name is hardcoded e525634d7b Fix #8916 - Misspelled elasticsearch labels 28d7afaa59 Fix #9080 - Update config for google/apiclient at composer.json 66bd8998ec Fix #9060 - Project Form action should not be changed if delete is not confirmed 06195fe5f1 Fix #8676 - New Scheduled Reports does not run 89341758e2 Fix #2645 - Calendar quick create ignores required fields a329377bc0 Deprecate PdfParser e5c03ad198 Deprecate advanced open discovery (AOD) git-subtree-dir: public/legacy git-subtree-split: f058c4c3062e7fff72cc2b62440bf064a63e6843
This commit is contained in:
parent
8e4cc94994
commit
2473298dc6
406 changed files with 18907 additions and 17805 deletions
|
@ -208,6 +208,35 @@ class BeanManager
|
|||
return $linkFieldName;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param \SugarBean $sourceBean
|
||||
* @param string $linkFieldName
|
||||
* @return SugarBean
|
||||
*/
|
||||
public function getLinkedFieldBean(\SugarBean $sourceBean, $linkFieldName)
|
||||
{
|
||||
if (!$sourceBean->load_relationship($linkFieldName)) {
|
||||
throw new \RuntimeException(
|
||||
sprintf('Cannot load relationship %s for %s module', $linkFieldName, $sourceBean->getObjectName())
|
||||
);
|
||||
}
|
||||
|
||||
$linkFieldModule = $sourceBean->$linkFieldName->getRelatedModuleName();
|
||||
$linkFieldBean = $this->getBean($linkFieldModule);
|
||||
|
||||
if (!$linkFieldBean) {
|
||||
throw new \DomainException(
|
||||
sprintf(
|
||||
'Link field has not found in %s to determine relationship for %s',
|
||||
$sourceBean->getObjectName(),
|
||||
$linkFieldName
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
return $linkFieldBean;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $module
|
||||
* @param string $where
|
||||
|
|
|
@ -57,7 +57,8 @@ return CustomLoader::mergeCustomArray([
|
|||
Service\RelationshipService::class => function (Container $container) {
|
||||
return new Service\RelationshipService(
|
||||
$container->get(BeanManager::class),
|
||||
$container->get(AttributeObjectHelper::class)
|
||||
$container->get(AttributeObjectHelper::class),
|
||||
$container->get(PaginationObjectHelper::class)
|
||||
);
|
||||
},
|
||||
], basename(__FILE__));
|
||||
|
|
|
@ -35,7 +35,7 @@ class RelationshipController extends BaseController
|
|||
public function getRelationship(Request $request, Response $response, array $args, GetRelationshipParams $params)
|
||||
{
|
||||
try {
|
||||
$jsonResponse = $this->relationshipService->getRelationship($params);
|
||||
$jsonResponse = $this->relationshipService->getRelationship($params, $request);
|
||||
|
||||
return $this->generateResponse($response, $jsonResponse, 200);
|
||||
} catch (\Exception $exception) {
|
||||
|
|
|
@ -120,7 +120,8 @@ class ModuleListProvider
|
|||
}
|
||||
|
||||
/**
|
||||
* @param $actions
|
||||
* @param mixed $moduleName
|
||||
* @param mixed $actions
|
||||
* @return array
|
||||
*/
|
||||
private function buildAccessArray($moduleName, $actions)
|
||||
|
@ -136,8 +137,8 @@ class ModuleListProvider
|
|||
}
|
||||
|
||||
/**
|
||||
* @param $level
|
||||
* @param $module
|
||||
* @param mixed $level
|
||||
* @param mixed $module
|
||||
* @return bool
|
||||
*/
|
||||
private function hasACL($level, $module)
|
||||
|
|
|
@ -10,6 +10,7 @@ class Filter
|
|||
const OP_GTE = '>=';
|
||||
const OP_LT = '<';
|
||||
const OP_LTE = '<=';
|
||||
const OP_LIKE = 'LIKE';
|
||||
|
||||
const OP_AND = 'AND';
|
||||
const OP_OR = 'OR';
|
||||
|
|
|
@ -39,6 +39,32 @@ class GetRelationshipParams extends BaseParam
|
|||
return $this->parameters['sourceBean'];
|
||||
}
|
||||
|
||||
/**
|
||||
* @return PageParams
|
||||
*/
|
||||
public function getPage()
|
||||
{
|
||||
return isset($this->parameters['page'])
|
||||
? $this->parameters['page']
|
||||
: new PageParams($this->validatorFactory, $this->beanManager);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getSort()
|
||||
{
|
||||
return isset($this->parameters['sort']) ? $this->parameters['sort'] : '';
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getFilter()
|
||||
{
|
||||
return isset($this->parameters['filter']) ? $this->parameters['filter'] : '';
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
|
@ -64,5 +90,14 @@ class GetRelationshipParams extends BaseParam
|
|||
|
||||
// dependency on sourceBean field
|
||||
$this->setOptions($resolver, [ParamOption\LinkFieldName::class]);
|
||||
$this->setOptions(
|
||||
$resolver,
|
||||
[
|
||||
ParamOption\LinkFieldName::class,
|
||||
ParamOption\Page::class,
|
||||
ParamOption\Sort::class,
|
||||
ParamOption\Filter::class
|
||||
]
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,7 +25,11 @@ class Filter extends BaseOption
|
|||
]))
|
||||
->setNormalizer('filter', function (Options $options, $values) {
|
||||
// we don't support multiple level filtering. for now.
|
||||
if ($options->offsetExists('linkFieldName')) {
|
||||
$bean = $this->beanManager->getLinkedFieldBean($options->offsetGet('sourceBean'), $options->offsetGet('linkFieldName'));
|
||||
} else {
|
||||
$bean = $this->beanManager->newBeanSafe($options->offsetGet('moduleName'));
|
||||
}
|
||||
$filter = new FilterRepository($bean->db);
|
||||
|
||||
return $filter->parseWhere($bean, $values);
|
||||
|
|
|
@ -26,7 +26,11 @@ class Sort extends BaseOption
|
|||
]),
|
||||
], true))
|
||||
->setNormalizer('sort', function (Options $options, $value) {
|
||||
if ($options->offsetExists('linkFieldName')) {
|
||||
$bean = $this->beanManager->getLinkedFieldBean($options->offsetGet('sourceBean'), $options->offsetGet('linkFieldName'));
|
||||
} else {
|
||||
$bean = $this->beanManager->newBeanSafe($options->offsetGet('moduleName'));
|
||||
}
|
||||
$sort = new SortRepository();
|
||||
|
||||
return $sort->parseOrderBy($bean, $value);
|
||||
|
|
|
@ -11,11 +11,17 @@ use Api\V8\JsonApi\Response\DataResponse;
|
|||
use Api\V8\JsonApi\Response\DocumentResponse;
|
||||
use Api\V8\JsonApi\Response\MetaResponse;
|
||||
use Api\V8\Param\CreateModuleParams;
|
||||
use BeanFactory;
|
||||
use DocumentRevision;
|
||||
use Api\V8\Param\DeleteModuleParams;
|
||||
use Api\V8\Param\GetModuleParams;
|
||||
use Api\V8\Param\GetModulesParams;
|
||||
use Api\V8\Param\UpdateModuleParams;
|
||||
use Exception;
|
||||
use InvalidArgumentException;
|
||||
use LoggerManager;
|
||||
use Slim\Http\Request;
|
||||
use SugarBean;
|
||||
use SuiteCRM\Exception\AccessDeniedException;
|
||||
|
||||
class ModuleService
|
||||
|
@ -145,12 +151,12 @@ class ModuleService
|
|||
$where = $modifiedWhere;
|
||||
|
||||
// Sets and adds deleted to the query
|
||||
if ($deleted == 0) {
|
||||
if ($deleted === 0) {
|
||||
$whereAuto = '' . $bean->table_name . ' .deleted=0';
|
||||
} elseif ($deleted == 1) {
|
||||
} else {
|
||||
$whereAuto = '' . $bean->table_name . ' .deleted=1';
|
||||
}
|
||||
if ($where != '') {
|
||||
if ($where !== '') {
|
||||
$where = ' where (' . $where . ') AND ' . $whereAuto . '';
|
||||
} else {
|
||||
$where = ' where ' . $whereAuto . '';
|
||||
|
@ -172,7 +178,7 @@ class ModuleService
|
|||
$beanList = [];
|
||||
|
||||
foreach ($result['list'] as $resultBean) {
|
||||
$queryModuleBean = \BeanFactory::newBean($module);
|
||||
$queryModuleBean = BeanFactory::newBean($module);
|
||||
$queryModuleBean->id = $resultBean->id;
|
||||
$beanList[] = $queryModuleBean;
|
||||
}
|
||||
|
@ -231,8 +237,9 @@ class ModuleService
|
|||
* @param Request $request
|
||||
*
|
||||
* @return DocumentResponse
|
||||
* @throws \InvalidArgumentException When bean is already exist.
|
||||
* @throws InvalidArgumentException When bean is already exist.
|
||||
* @throws AccessDeniedException
|
||||
* @throws Exception
|
||||
*/
|
||||
public function createRecord(CreateModuleParams $params, Request $request)
|
||||
{
|
||||
|
@ -240,12 +247,14 @@ class ModuleService
|
|||
$id = $params->getData()->getId();
|
||||
$attributes = $params->getData()->getAttributes();
|
||||
|
||||
if ($id !== null && $this->beanManager->getBean($module, $id, [], false) instanceof \SugarBean) {
|
||||
throw new \InvalidArgumentException(sprintf(
|
||||
if ($id !== null && $this->beanManager->getBean($module, $id, [], false) instanceof SugarBean) {
|
||||
throw new InvalidArgumentException(
|
||||
sprintf(
|
||||
'Bean %s with id %s is already exist',
|
||||
$module,
|
||||
$id
|
||||
));
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
$bean = $this->beanManager->newBeanSafe($module);
|
||||
|
@ -263,9 +272,12 @@ class ModuleService
|
|||
$fileUpload = $this->processAttributes($bean, $attributes);
|
||||
|
||||
$bean->save();
|
||||
if ($fileUpload) {
|
||||
if ($fileUpload && $bean->module_dir === 'Notes') {
|
||||
$this->addFileToNote($bean->id, $attributes);
|
||||
}
|
||||
if ($fileUpload && $bean->module_dir === 'Documents') {
|
||||
$this->addFileToDocument($bean, $attributes);
|
||||
}
|
||||
$bean->retrieve($bean->id);
|
||||
|
||||
$dataResponse = $this->getDataResponse(
|
||||
|
@ -281,16 +293,41 @@ class ModuleService
|
|||
}
|
||||
|
||||
/**
|
||||
* @param $beanId
|
||||
* @param $attributes
|
||||
* @throws \Exception
|
||||
* @param SugarBean $bean
|
||||
* @param array $attributes
|
||||
* @throws Exception
|
||||
*/
|
||||
private function addFileToNote($beanId, $attributes)
|
||||
private function addFileToDocument(SugarBean $bean, array $attributes)
|
||||
{
|
||||
global $sugar_config, $log;
|
||||
|
||||
\BeanFactory::unregisterBean('Notes', $beanId);
|
||||
$bean = $this->beanManager->getBeanSafe('Notes', $beanId);
|
||||
global $sugar_config;
|
||||
BeanFactory::unregisterBean('Documents', $bean->id);
|
||||
$bean = BeanFactory::getBean('Documents', $bean->id);
|
||||
$bean->filename = $attributes['filename'];
|
||||
// Core code in this function
|
||||
$Revision = new DocumentRevision();
|
||||
$Revision->in_workflow = true;
|
||||
$Revision->not_use_rel_in_req = true;
|
||||
$Revision->new_rel_id = $bean->id;
|
||||
$Revision->new_rel_relname = 'Documents';
|
||||
$Revision->change_log = translate('DEF_CREATE_LOG', 'Documents');
|
||||
$Revision->revision = '1';
|
||||
$Revision->document_id = $bean->id;
|
||||
$Revision->filename = $bean->filename;
|
||||
if (isset($bean->file_ext)) {
|
||||
$Revision->file_ext = $bean->file_ext;
|
||||
}
|
||||
if (isset($bean->file_mime_type)) {
|
||||
$Revision->file_mime_type = $bean->file_mime_type;
|
||||
}
|
||||
$Revision->doc_type = $bean->doc_type;
|
||||
if (isset($bean->doc_id)) {
|
||||
$Revision->doc_id = $bean->doc_id;
|
||||
}
|
||||
if (isset($bean->doc_url)) {
|
||||
$Revision->doc_url = $this->doc_url;
|
||||
}
|
||||
$Revision->id = create_guid();
|
||||
$Revision->new_with_id = true;
|
||||
|
||||
// Write file to upload dir
|
||||
try {
|
||||
|
@ -298,9 +335,60 @@ class ModuleService
|
|||
$extPos = strrpos($attributes['filename'], '.');
|
||||
$fileExtension = substr($attributes['filename'], $extPos + 1);
|
||||
|
||||
if ($extPos === false || empty($fileExtension) || in_array($fileExtension, $sugar_config['upload_badext'],
|
||||
true)) {
|
||||
throw new \Exception('File upload failed: File extension is not included or is not valid.');
|
||||
if ($extPos === false || empty($fileExtension) || in_array(
|
||||
$fileExtension,
|
||||
$sugar_config['upload_badext'],
|
||||
true
|
||||
)) {
|
||||
throw new Exception('File upload failed: File extension is not included or is not valid.');
|
||||
}
|
||||
|
||||
$fileName = $Revision->id;
|
||||
$fileContents = $attributes['filecontents'];
|
||||
$targetPath = 'upload/' . $fileName;
|
||||
$content = base64_decode($fileContents);
|
||||
|
||||
$file = fopen($targetPath, 'wb');
|
||||
fwrite($file, $content);
|
||||
fclose($file);
|
||||
} catch (Exception $e) {
|
||||
LoggerManager::getLogger()->error('addFileToNote: ' . $e->getMessage());
|
||||
throw new Exception($e->getMessage());
|
||||
}
|
||||
$Revision->save();
|
||||
$bean->document_revision_id = $Revision->id;
|
||||
$bean->save();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $beanId
|
||||
* @param $attributes
|
||||
* @throws Exception
|
||||
*/
|
||||
protected function addFileToNote($beanId, $attributes)
|
||||
{
|
||||
global $sugar_config, $log;
|
||||
|
||||
$module = 'Notes';
|
||||
if (!empty($attributes['moduleName'])) {
|
||||
$module = $attributes['moduleName'];
|
||||
unset($attributes['moduleName']);
|
||||
}
|
||||
BeanFactory::unregisterBean($module, $beanId);
|
||||
$bean = $this->beanManager->getBeanSafe($module, $beanId);
|
||||
|
||||
// Write file to upload dir
|
||||
try {
|
||||
// Checking file extension
|
||||
$extPos = strrpos($attributes['filename'], '.');
|
||||
$fileExtension = substr($attributes['filename'], $extPos + 1);
|
||||
|
||||
if ($extPos === false || empty($fileExtension) || in_array(
|
||||
$fileExtension,
|
||||
$sugar_config['upload_badext'],
|
||||
true
|
||||
)) {
|
||||
throw new Exception('File upload failed: File extension is not included or is not valid.');
|
||||
}
|
||||
|
||||
$fileName = $bean->id;
|
||||
|
@ -311,9 +399,9 @@ class ModuleService
|
|||
$file = fopen($targetPath, 'wb');
|
||||
fwrite($file, $content);
|
||||
fclose($file);
|
||||
} catch (\Exception $e) {
|
||||
} catch (Exception $e) {
|
||||
$log->error('addFileToNote: ' . $e->getMessage());
|
||||
throw new \Exception($e->getMessage());
|
||||
throw new Exception($e->getMessage());
|
||||
}
|
||||
|
||||
// Fill in file details for use with upload checks
|
||||
|
@ -329,6 +417,7 @@ class ModuleService
|
|||
* @param Request $request
|
||||
* @return DocumentResponse
|
||||
* @throws AccessDeniedException
|
||||
* @throws Exception
|
||||
*/
|
||||
public function updateRecord(UpdateModuleParams $params, Request $request)
|
||||
{
|
||||
|
@ -387,10 +476,10 @@ class ModuleService
|
|||
}
|
||||
|
||||
/**
|
||||
* @param \SugarBean $bean
|
||||
* @param SugarBean $bean
|
||||
* @param array $attributes
|
||||
*/
|
||||
protected function setRecordUpdateParams(\SugarBean $bean, array $attributes)
|
||||
protected function setRecordUpdateParams(SugarBean $bean, array $attributes)
|
||||
{
|
||||
$bean->set_created_by = !(isset($attributes['created_by']) || isset($attributes['created_by_name']));
|
||||
$bean->update_modified_by = !(isset($attributes['modified_user_id']) || isset($attributes['modified_by_name']));
|
||||
|
@ -425,13 +514,13 @@ class ModuleService
|
|||
}
|
||||
|
||||
/**
|
||||
* @param \SugarBean $bean
|
||||
* @param SugarBean $bean
|
||||
* @param array|null $fields
|
||||
* @param string|null $path
|
||||
*
|
||||
* @return DataResponse
|
||||
*/
|
||||
public function getDataResponse(\SugarBean $bean, $fields = null, $path = null)
|
||||
public function getDataResponse(SugarBean $bean, $fields = null, $path = null)
|
||||
{
|
||||
// this will be split into separated classed later
|
||||
$dataResponse = new DataResponse($bean->getObjectName(), $bean->id);
|
||||
|
|
|
@ -3,6 +3,7 @@ namespace Api\V8\Service;
|
|||
|
||||
use Api\V8\BeanDecorator\BeanManager;
|
||||
use Api\V8\JsonApi\Helper\AttributeObjectHelper;
|
||||
use Api\V8\JsonApi\Helper\PaginationObjectHelper;
|
||||
use Api\V8\JsonApi\Response\DataResponse;
|
||||
use Api\V8\JsonApi\Response\DocumentResponse;
|
||||
use Api\V8\JsonApi\Response\LinksResponse;
|
||||
|
@ -12,6 +13,7 @@ use Api\V8\Param\CreateRelationshipByLinkParams;
|
|||
use Api\V8\Param\DeleteRelationshipParams;
|
||||
use Api\V8\Param\GetRelationshipParams;
|
||||
|
||||
use Slim\Http\Request;
|
||||
use \SugarBean;
|
||||
use \DomainException;
|
||||
|
||||
|
@ -27,27 +29,46 @@ class RelationshipService
|
|||
*/
|
||||
protected $attributeHelper;
|
||||
|
||||
/**
|
||||
* @var PaginationObjectHelper
|
||||
*/
|
||||
protected $paginationHelper;
|
||||
|
||||
/**
|
||||
* @param BeanManager $beanManager
|
||||
* @param AttributeObjectHelper $attributeHelper
|
||||
* @param PaginationObjectHelper $paginationHelper
|
||||
*/
|
||||
public function __construct(BeanManager $beanManager, AttributeObjectHelper $attributeHelper)
|
||||
public function __construct(BeanManager $beanManager, AttributeObjectHelper $attributeHelper, PaginationObjectHelper $paginationHelper)
|
||||
{
|
||||
$this->beanManager = $beanManager;
|
||||
$this->attributeHelper = $attributeHelper;
|
||||
$this->paginationHelper = $paginationHelper;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param GetRelationshipParams $params
|
||||
*
|
||||
* @param Request $request
|
||||
* @return DocumentResponse
|
||||
*/
|
||||
public function getRelationship(GetRelationshipParams $params)
|
||||
public function getRelationship(GetRelationshipParams $params, Request $request)
|
||||
{
|
||||
$sourceBean = $params->getSourceBean();
|
||||
$linkFieldName = $params->getLinkedFieldName();
|
||||
$relatedBeans = $sourceBean->get_linked_beans($linkFieldName);
|
||||
$response = new DocumentResponse();
|
||||
$sourceBean = $params->getSourceBean();
|
||||
|
||||
$linkFieldName = $params->getLinkedFieldName();
|
||||
|
||||
$size = $params->getPage()->getSize();
|
||||
$number = $params->getPage()->getNumber();
|
||||
|
||||
$linkParams = [
|
||||
'order_by' => $params->getSort(),
|
||||
'where' => $params->getFilter(),
|
||||
'limit' => $size,
|
||||
'offset' => $number !== 0 ? ($number - 1) * $size : $number
|
||||
];
|
||||
|
||||
$relatedBeans = $sourceBean->$linkFieldName->getBeans($linkParams);
|
||||
|
||||
if (!$relatedBeans) {
|
||||
$response->setMeta(new MetaResponse(
|
||||
|
@ -67,10 +88,25 @@ class RelationshipService
|
|||
$linkResponse->setSelf(sprintf('V8/module/%s/%s', $relatedBean->getObjectName(), $relatedBean->id));
|
||||
|
||||
$dataResponse = new DataResponse($relatedBean->getObjectName(), $relatedBean->id);
|
||||
$dataResponse->setAttributes($this->attributeHelper->getAttributes($relatedBean));
|
||||
$dataResponse->setLinks($linkResponse);
|
||||
$data[] = $dataResponse;
|
||||
}
|
||||
|
||||
if ($size > 0) {
|
||||
unset($linkParams['limit'], $linkParams['offset']);
|
||||
$realRowCount = $sourceBean->_get_num_rows_in_query($sourceBean->$linkFieldName->getQuery($linkParams));
|
||||
$totalPages = ceil($realRowCount / $size);
|
||||
$paginationLinks = $this->paginationHelper->getPaginationLinks($request, $totalPages, $number);
|
||||
$response->setLinks($paginationLinks);
|
||||
} else {
|
||||
$totalPages = 1;
|
||||
$realRowCount = count($data);
|
||||
}
|
||||
|
||||
$paginationMeta = new MetaResponse(['total-records' => $realRowCount, 'total-pages' => $totalPages, 'records-on-this-page' => count($data)]);
|
||||
$response->setMeta($paginationMeta);
|
||||
|
||||
$response->setData($data);
|
||||
}
|
||||
|
||||
|
|
|
@ -474,7 +474,7 @@ class ModuleInstaller
|
|||
public function rebuildExt($ext, $filename)
|
||||
{
|
||||
$this->log(translate('LBL_MI_REBUILDING') . " $ext...");
|
||||
$this->merge_files("Ext/$ext/", $filename);
|
||||
$this->merge_files("Ext/$ext", $filename);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1369,9 +1369,10 @@ class ModuleInstaller
|
|||
}
|
||||
|
||||
$relName = strpos($filename, "MetaData") !== false ? substr($filename, 0, strlen($filename) - 12) : $filename;
|
||||
$out = sugar_fopen("custom/Extension/application/Ext/TableDictionary/$relName.php", 'w') ;
|
||||
fwrite($out, $str . "include('custom/metadata/$filename');\n\n?>") ;
|
||||
fclose($out) ;
|
||||
sugar_file_put_contents(
|
||||
"custom/Extension/application/Ext/TableDictionary/$relName.php",
|
||||
$str . "include('custom/metadata/$filename');\n\n?>"
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
|
@ -1736,7 +1737,7 @@ class ModuleInstaller
|
|||
{
|
||||
foreach ($languages as $language=>$value) {
|
||||
$this->log(translate('LBL_MI_REBUILDING') . " Language...$language");
|
||||
$this->merge_files('Ext/Language/', $language.'.lang.ext.php', $language);
|
||||
$this->merge_files('Ext/Language', $language.'.lang.ext.php', $language);
|
||||
if ($modules!="") {
|
||||
foreach ($modules as $module) {
|
||||
LanguageManager::clearLanguageCache($module, $language);
|
||||
|
@ -1755,7 +1756,7 @@ class ModuleInstaller
|
|||
public function rebuild_dashletcontainers()
|
||||
{
|
||||
$this->log(translate('LBL_MI_REBUILDING') . " DC Actions...");
|
||||
$this->merge_files('Ext/DashletContainer/Containers/', 'dcactions.ext.php');
|
||||
$this->merge_files('Ext/DashletContainer/Containers', 'dcactions.ext.php');
|
||||
}
|
||||
|
||||
public function rebuild_tabledictionary()
|
||||
|
@ -1860,9 +1861,7 @@ class ModuleInstaller
|
|||
if (!file_exists("custom/$extpath")) {
|
||||
mkdir_recursive("custom/$extpath", true);
|
||||
}
|
||||
$out = sugar_fopen("custom/$extpath/$name", 'w');
|
||||
fwrite($out, $extension);
|
||||
fclose($out);
|
||||
sugar_file_put_contents("custom/$extpath/$name", $extension);
|
||||
} else {
|
||||
if (file_exists("custom/$extpath/$name")) {
|
||||
unlink("custom/$extpath/$name");
|
||||
|
@ -1893,9 +1892,7 @@ class ModuleInstaller
|
|||
if (!file_exists("custom/$extpath")) {
|
||||
mkdir_recursive("custom/$extpath", true);
|
||||
}
|
||||
$out = sugar_fopen("custom/$extpath/$name", 'w');
|
||||
fwrite($out, $extension);
|
||||
fclose($out);
|
||||
sugar_file_put_contents("custom/$extpath/$name", $extension);
|
||||
} else {
|
||||
if (file_exists("custom/$extpath/$name")) {
|
||||
unlink("custom/$extpath/$name");
|
||||
|
@ -1936,7 +1933,7 @@ class ModuleInstaller
|
|||
if (!file_exists("custom/Extension/application/Ext/Include")) {
|
||||
mkdir_recursive("custom/Extension/application/Ext/Include", true);
|
||||
}
|
||||
file_put_contents("custom/Extension/application/Ext/Include/{$this->id_name}.php", $str);
|
||||
sugar_file_put_contents("custom/Extension/application/Ext/Include/{$this->id_name}.php", $str);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -57,8 +57,15 @@ class ListViewPackages extends ListViewSmarty
|
|||
/**
|
||||
* Override the setup method in ListViewSmarty since we are not passing in a bean
|
||||
*
|
||||
* @param data the data to display on the page
|
||||
* @param file the template file to parse
|
||||
* @param mixed $data the data to display on the page
|
||||
* @param mixed $file the template file to parse
|
||||
* @param mixed $where
|
||||
* @param mixed $params
|
||||
* @param mixed $offset
|
||||
* @param mixed $limit
|
||||
* @param mixed $filter_fields
|
||||
* @param mixed $id_field
|
||||
* @param null|mixed $id
|
||||
*/
|
||||
public function setup($data, $file, $where, $params = array(), $offset = 0, $limit = -1, $filter_fields = array(), $id_field = 'id', $id=null)
|
||||
{
|
||||
|
@ -68,6 +75,8 @@ class ListViewPackages extends ListViewSmarty
|
|||
|
||||
/**
|
||||
* Override the display method
|
||||
*
|
||||
* @param boolean $end
|
||||
*/
|
||||
public function display($end = true)
|
||||
{
|
||||
|
|
|
@ -46,12 +46,12 @@ class PackageManagerDownloader
|
|||
/**
|
||||
* Using curl we will download the file from the depot server
|
||||
*
|
||||
* @param session_id the session_id this file is queued for
|
||||
* @param file_name the file_name to download
|
||||
* @param save_dir (optional) if specified it will direct where to save the file once downloaded
|
||||
* @param download_sever (optional) if specified it will direct the url for the download
|
||||
* @param mixed $session_id the session_id this file is queued for
|
||||
* @param mixed $file_name the file_name to download
|
||||
* @param mixed $save_dir (optional) if specified it will direct where to save the file once downloaded
|
||||
* @param mixed $download_server (optional) if specified it will direct the url for the download
|
||||
*
|
||||
* @return the full path of the saved file
|
||||
* @return string the full path of the saved file
|
||||
*/
|
||||
public function download($session_id, $file_name, $save_dir = '', $download_server = '')
|
||||
{
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
"php": ">=7.2.9",
|
||||
"ext-curl": "*",
|
||||
"ext-gd": "*",
|
||||
"ext-imap": "*",
|
||||
"ext-json": "*",
|
||||
"ext-openssl": "*",
|
||||
"ext-zip": "*",
|
||||
|
@ -35,14 +36,14 @@
|
|||
"ezyang/htmlpurifier": "^4.10",
|
||||
"google/apiclient": "^2.0",
|
||||
"google/recaptcha": "^1.1",
|
||||
"gymadarasz/imagesloaded": "^4.1",
|
||||
"gymadarasz/ace": "^1.2",
|
||||
"gymadarasz/imagesloaded": "^4.1",
|
||||
"justinrainbow/json-schema": "^5.2",
|
||||
"league/oauth2-server": "^5.1",
|
||||
"league/uri": "^4.2.3",
|
||||
"monolog/monolog": "^1.23",
|
||||
"nesbot/carbon": "^1.31",
|
||||
"onelogin/php-saml": "^3.0.0",
|
||||
"onelogin/php-saml": "3.4.1",
|
||||
"paragonie/random_compat": "^2.0",
|
||||
"phpmailer/phpmailer": "^6.0",
|
||||
"psr/container": "^1.0",
|
||||
|
@ -55,6 +56,7 @@
|
|||
"tedivm/jshrink": "^1.3",
|
||||
"tuupola/slim-jwt-auth": "^2.0",
|
||||
"vlucas/phpdotenv": "^3.5",
|
||||
"voku/anti-xss": "^2.3",
|
||||
"wikimedia/composer-merge-plugin": "^1.4",
|
||||
"zbateson/mail-mime-parser": "^1.1",
|
||||
"zf1/zend-gdata": "^1.12",
|
||||
|
@ -62,7 +64,6 @@
|
|||
"zf1/zend-oauth": "^1.12",
|
||||
"zf1/zend-registry": "^1.12",
|
||||
"zf1/zend-search-lucene": "^1.12",
|
||||
"ext-imap": "*",
|
||||
"lcobucci/jwt": "3.3.3"
|
||||
},
|
||||
"require-dev": {
|
||||
|
@ -82,9 +83,7 @@
|
|||
"scripts": {
|
||||
"post-install-cmd": [
|
||||
"rm -Rf vendor/elasticsearch/elasticsearch/tests/Elasticsearch/Tests",
|
||||
"mv vendor/google/apiclient-services/src/Google/Service/Calendar* vendor/google/apiclient-services/src/Google/",
|
||||
"rm -Rf vendor/google/apiclient-services/src/Google/Service/*",
|
||||
"mv vendor/google/apiclient-services/src/Google/Calendar* vendor/google/apiclient-services/src/Google/Service/"
|
||||
"Google\\Task\\Composer::cleanup"
|
||||
]
|
||||
},
|
||||
"prefer-stable": true,
|
||||
|
@ -122,7 +121,10 @@
|
|||
"merge-dev": true,
|
||||
"merge-extra": false,
|
||||
"merge-extra-deep": false,
|
||||
"merge-scripts": false
|
||||
"merge-scripts": false,
|
||||
"google/apiclient-services": [
|
||||
"Calendar"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
757
composer.lock
generated
757
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": "eedeb06dfd2e25f390e67c2bf21f1e22",
|
||||
"content-hash": "7e121e0f8e0b09a3d0d009bd1de01750",
|
||||
"packages": [
|
||||
{
|
||||
"name": "defuse/php-encryption",
|
||||
|
@ -1413,27 +1413,27 @@
|
|||
},
|
||||
{
|
||||
"name": "onelogin/php-saml",
|
||||
"version": "3.6.1",
|
||||
"version": "3.4.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/onelogin/php-saml.git",
|
||||
"reference": "a7328b11887660ad248ea10952dd67a5aa73ba3b"
|
||||
"reference": "5fbf3486704ac9835b68184023ab54862c95f213"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/onelogin/php-saml/zipball/a7328b11887660ad248ea10952dd67a5aa73ba3b",
|
||||
"reference": "a7328b11887660ad248ea10952dd67a5aa73ba3b",
|
||||
"url": "https://api.github.com/repos/onelogin/php-saml/zipball/5fbf3486704ac9835b68184023ab54862c95f213",
|
||||
"reference": "5fbf3486704ac9835b68184023ab54862c95f213",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.4",
|
||||
"robrichards/xmlseclibs": ">=3.1.1"
|
||||
"robrichards/xmlseclibs": ">=3.0.4"
|
||||
},
|
||||
"require-dev": {
|
||||
"pdepend/pdepend": "^2.5.0",
|
||||
"php-coveralls/php-coveralls": "^1.0.2 || ^2.0",
|
||||
"phploc/phploc": "^2.1 || ^3.0 || ^4.0",
|
||||
"phpunit/phpunit": "<7.5.18",
|
||||
"phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1",
|
||||
"sebastian/phpcpd": "^2.0 || ^3.0 || ^4.0",
|
||||
"squizlabs/php_codesniffer": "^3.1.1"
|
||||
},
|
||||
|
@ -1459,7 +1459,7 @@
|
|||
"onelogin",
|
||||
"saml"
|
||||
],
|
||||
"time": "2021-03-02T10:13:07+00:00"
|
||||
"time": "2019-11-25T17:30:07+00:00"
|
||||
},
|
||||
{
|
||||
"name": "paragonie/constant_time_encoding",
|
||||
|
@ -2352,281 +2352,75 @@
|
|||
"time": "2017-04-19T22:01:50+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-ctype",
|
||||
"name": "symfony/polyfill",
|
||||
"version": "v1.22.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-ctype.git",
|
||||
"reference": "c6c942b1ac76c82448322025e084cadc56048b4e"
|
||||
"url": "https://github.com/symfony/polyfill.git",
|
||||
"reference": "712c20dd05bf98da7a9ab6eace8daa937ba05d20"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/c6c942b1ac76c82448322025e084cadc56048b4e",
|
||||
"reference": "c6c942b1ac76c82448322025e084cadc56048b4e",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill/zipball/712c20dd05bf98da7a9ab6eace8daa937ba05d20",
|
||||
"reference": "712c20dd05bf98da7a9ab6eace8daa937ba05d20",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-ctype": "For best performance"
|
||||
"replace": {
|
||||
"symfony/polyfill-apcu": "self.version",
|
||||
"symfony/polyfill-ctype": "self.version",
|
||||
"symfony/polyfill-iconv": "self.version",
|
||||
"symfony/polyfill-intl-grapheme": "self.version",
|
||||
"symfony/polyfill-intl-icu": "self.version",
|
||||
"symfony/polyfill-intl-idn": "self.version",
|
||||
"symfony/polyfill-intl-messageformatter": "self.version",
|
||||
"symfony/polyfill-intl-normalizer": "self.version",
|
||||
"symfony/polyfill-mbstring": "self.version",
|
||||
"symfony/polyfill-php72": "self.version",
|
||||
"symfony/polyfill-php73": "self.version",
|
||||
"symfony/polyfill-php74": "self.version",
|
||||
"symfony/polyfill-php80": "self.version",
|
||||
"symfony/polyfill-php81": "self.version",
|
||||
"symfony/polyfill-util": "self.version",
|
||||
"symfony/polyfill-uuid": "self.version",
|
||||
"symfony/polyfill-xml": "self.version"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/intl": "^4.4|^5.0",
|
||||
"symfony/phpunit-bridge": "^5.3",
|
||||
"symfony/var-dumper": "^4.4|^5.1"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.22-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Ctype\\": ""
|
||||
"Symfony\\Polyfill\\": "src/"
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Gert de Pagter",
|
||||
"email": "BackEndTea@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony polyfill for ctype functions",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"compatibility",
|
||||
"ctype",
|
||||
"polyfill",
|
||||
"portable"
|
||||
],
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://symfony.com/sponsor",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-01-07T16:49:33+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-iconv",
|
||||
"version": "v1.22.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-iconv.git",
|
||||
"reference": "06fb361659649bcfd6a208a0f1fcaf4e827ad342"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/06fb361659649bcfd6a208a0f1fcaf4e827ad342",
|
||||
"reference": "06fb361659649bcfd6a208a0f1fcaf4e827ad342",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-iconv": "For best performance"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.22-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Iconv\\": ""
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nicolas Grekas",
|
||||
"email": "p@tchwork.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony polyfill for the Iconv extension",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"compatibility",
|
||||
"iconv",
|
||||
"polyfill",
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://symfony.com/sponsor",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-01-22T09:19:47+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-intl-idn",
|
||||
"version": "v1.22.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-intl-idn.git",
|
||||
"reference": "2d63434d922daf7da8dd863e7907e67ee3031483"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/2d63434d922daf7da8dd863e7907e67ee3031483",
|
||||
"reference": "2d63434d922daf7da8dd863e7907e67ee3031483",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1",
|
||||
"symfony/polyfill-intl-normalizer": "^1.10",
|
||||
"symfony/polyfill-php72": "^1.10"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-intl": "For best performance"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.22-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Intl\\Idn\\": ""
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Laurent Bassin",
|
||||
"email": "laurent@bassin.info"
|
||||
},
|
||||
{
|
||||
"name": "Trevor Rowbotham",
|
||||
"email": "trevor.rowbotham@pm.me"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"compatibility",
|
||||
"idn",
|
||||
"intl",
|
||||
"polyfill",
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://symfony.com/sponsor",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-01-22T09:19:47+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-intl-normalizer",
|
||||
"version": "v1.22.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
|
||||
"reference": "43a0283138253ed1d48d352ab6d0bdb3f809f248"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/43a0283138253ed1d48d352ab6d0bdb3f809f248",
|
||||
"reference": "43a0283138253ed1d48d352ab6d0bdb3f809f248",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-intl": "For best performance"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.22-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Intl\\Normalizer\\": ""
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
"src/bootstrap.php",
|
||||
"src/Apcu/bootstrap.php",
|
||||
"src/Ctype/bootstrap.php",
|
||||
"src/Uuid/bootstrap.php",
|
||||
"src/Iconv/bootstrap.php",
|
||||
"src/Intl/Grapheme/bootstrap.php",
|
||||
"src/Intl/Idn/bootstrap.php",
|
||||
"src/Intl/Icu/bootstrap.php",
|
||||
"src/Intl/MessageFormatter/bootstrap.php",
|
||||
"src/Intl/Normalizer/bootstrap.php",
|
||||
"src/Mbstring/bootstrap.php"
|
||||
],
|
||||
"classmap": [
|
||||
"Resources/stubs"
|
||||
"src/Intl/Icu/Resources/stubs",
|
||||
"src/Intl/MessageFormatter/Resources/stubs",
|
||||
"src/Intl/Normalizer/Resources/stubs",
|
||||
"src/Php80/Resources/stubs",
|
||||
"src/Php73/Resources/stubs"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
|
@ -2643,14 +2437,12 @@
|
|||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony polyfill for intl's Normalizer class and related functions",
|
||||
"description": "Symfony polyfills backporting features to lower PHP versions",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"compat",
|
||||
"compatibility",
|
||||
"intl",
|
||||
"normalizer",
|
||||
"polyfill",
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"funding": [
|
||||
|
@ -2667,157 +2459,7 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-01-22T09:19:47+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-mbstring",
|
||||
"version": "v1.22.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-mbstring.git",
|
||||
"reference": "5232de97ee3b75b0360528dae24e73db49566ab1"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/5232de97ee3b75b0360528dae24e73db49566ab1",
|
||||
"reference": "5232de97ee3b75b0360528dae24e73db49566ab1",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-mbstring": "For best performance"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.22-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Mbstring\\": ""
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nicolas Grekas",
|
||||
"email": "p@tchwork.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony polyfill for the Mbstring extension",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"compatibility",
|
||||
"mbstring",
|
||||
"polyfill",
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://symfony.com/sponsor",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-01-22T09:19:47+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-php72",
|
||||
"version": "v1.22.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-php72.git",
|
||||
"reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9",
|
||||
"reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.22-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Php72\\": ""
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nicolas Grekas",
|
||||
"email": "p@tchwork.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"compatibility",
|
||||
"polyfill",
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://symfony.com/sponsor",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-01-07T16:49:33+00:00"
|
||||
"time": "2021-02-15T12:43:29+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/translation",
|
||||
|
@ -3273,6 +2915,133 @@
|
|||
],
|
||||
"time": "2021-01-20T14:39:46+00:00"
|
||||
},
|
||||
{
|
||||
"name": "voku/anti-xss",
|
||||
"version": "2.3.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/voku/anti-xss.git",
|
||||
"reference": "3f74c3c60931ebce07d6372abeeadf3f02b1ee7f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/voku/anti-xss/zipball/3f74c3c60931ebce07d6372abeeadf3f02b1ee7f",
|
||||
"reference": "3f74c3c60931ebce07d6372abeeadf3f02b1ee7f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.0",
|
||||
"voku/portable-utf8": "~3.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "~4.0|~5.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"voku\\helper\\": "src/voku/helper/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "EllisLab Dev Team",
|
||||
"homepage": "http://ellislab.com/"
|
||||
},
|
||||
{
|
||||
"name": "Lars Moelleken",
|
||||
"email": "lars@moelleken.org",
|
||||
"homepage": "http://www.moelleken.org/"
|
||||
}
|
||||
],
|
||||
"description": "anti xss-library",
|
||||
"homepage": "https://github.com/voku/anti-xss",
|
||||
"keywords": [
|
||||
"anti-xss",
|
||||
"clean",
|
||||
"security",
|
||||
"xss"
|
||||
],
|
||||
"time": "2018-04-26T18:43:51+00:00"
|
||||
},
|
||||
{
|
||||
"name": "voku/portable-utf8",
|
||||
"version": "3.1.30",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/voku/portable-utf8.git",
|
||||
"reference": "162de9c40d8a7dff84697296f375b424aef53df8"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/voku/portable-utf8/zipball/162de9c40d8a7dff84697296f375b424aef53df8",
|
||||
"reference": "162de9c40d8a7dff84697296f375b424aef53df8",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.0",
|
||||
"symfony/polyfill": "~1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "~4.0|~5.0"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-iconv": "Use iconv for best performance",
|
||||
"ext-intl": "Use Intl for best performance",
|
||||
"ext-mbstring": "Use Mbstring for best performance"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "3.1.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"voku\\": "src/voku/"
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"(Apache-2.0 or GPL-2.0)"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Hamid Sarfraz",
|
||||
"homepage": "http://pageconfig.com/"
|
||||
},
|
||||
{
|
||||
"name": "Lars Moelleken",
|
||||
"homepage": "http://www.moelleken.org/"
|
||||
},
|
||||
{
|
||||
"name": "Nicolas Grekas",
|
||||
"email": "p@tchwork.com"
|
||||
}
|
||||
],
|
||||
"description": "Portable UTF-8 library with polyfill / shim for Iconv, Intl, Mbstring, Normalizrer etc.",
|
||||
"homepage": "https://github.com/voku/portable-utf8",
|
||||
"keywords": [
|
||||
"UTF",
|
||||
"clean",
|
||||
"php",
|
||||
"unicode",
|
||||
"utf-8",
|
||||
"utf8"
|
||||
],
|
||||
"time": "2017-10-08T23:25:51+00:00"
|
||||
},
|
||||
{
|
||||
"name": "wikimedia/composer-merge-plugin",
|
||||
"version": "v1.4.1",
|
||||
|
@ -8836,162 +8605,6 @@
|
|||
],
|
||||
"time": "2020-10-23T14:02:19+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-php73",
|
||||
"version": "v1.22.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-php73.git",
|
||||
"reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/a678b42e92f86eca04b7fa4c0f6f19d097fb69e2",
|
||||
"reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.22-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Php73\\": ""
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
],
|
||||
"classmap": [
|
||||
"Resources/stubs"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nicolas Grekas",
|
||||
"email": "p@tchwork.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"compatibility",
|
||||
"polyfill",
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://symfony.com/sponsor",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-01-07T16:49:33+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-php80",
|
||||
"version": "v1.22.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-php80.git",
|
||||
"reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dc3063ba22c2a1fd2f45ed856374d79114998f91",
|
||||
"reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.22-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Php80\\": ""
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
],
|
||||
"classmap": [
|
||||
"Resources/stubs"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Ion Bazan",
|
||||
"email": "ion.bazan@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Nicolas Grekas",
|
||||
"email": "p@tchwork.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"compatibility",
|
||||
"polyfill",
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://symfony.com/sponsor",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-01-07T16:49:33+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/process",
|
||||
"version": "v4.4.20",
|
||||
|
@ -9295,10 +8908,10 @@
|
|||
"php": ">=7.2.9",
|
||||
"ext-curl": "*",
|
||||
"ext-gd": "*",
|
||||
"ext-imap": "*",
|
||||
"ext-json": "*",
|
||||
"ext-openssl": "*",
|
||||
"ext-zip": "*",
|
||||
"ext-imap": "*"
|
||||
"ext-zip": "*"
|
||||
},
|
||||
"platform-dev": [],
|
||||
"platform-overrides": {
|
||||
|
|
|
@ -57,6 +57,11 @@ class BeanFactory
|
|||
*/
|
||||
protected static $loadedBeans = [];
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
protected static $shallowBeans = [];
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
|
@ -146,6 +151,37 @@ class BeanFactory
|
|||
return $bean;
|
||||
}
|
||||
|
||||
/**
|
||||
* Shallow beans are created by SugarBean during the fill_in_relationship_fields method, and they differ from
|
||||
* 'complete' bean in that they do not have their own relate fields completed.
|
||||
*
|
||||
* We can use these beans for filling relate fields, but we should not be caching them and serving them anywhere
|
||||
* else.
|
||||
*
|
||||
* @param $module
|
||||
* @param null $id
|
||||
* @param array $params
|
||||
* @param bool $deleted
|
||||
* @return bool|mixed|SugarBean
|
||||
*/
|
||||
public static function getShallowBean($module, $id = null, $params = array(), $deleted = true)
|
||||
{
|
||||
if (isset(self::$loadedBeans[$module][$id])) {
|
||||
return self::getBean($module, $id, $params, $deleted);
|
||||
}
|
||||
$key = $module . $id;
|
||||
if (isset(self::$shallowBeans[$key])) {
|
||||
return self::$shallowBeans[$key];
|
||||
}
|
||||
if (count(self::$shallowBeans) > self::$maxLoaded) {
|
||||
array_shift(self::$shallowBeans);
|
||||
}
|
||||
$bean = self::getBean($module, $id, $params, $deleted);
|
||||
self::$shallowBeans[$key] = $bean;
|
||||
self::unregisterBean($module, $id);
|
||||
return $bean;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array|bool $params
|
||||
* @return array
|
||||
|
|
|
@ -76,9 +76,9 @@ class Link2
|
|||
protected $tempBeans = array();
|
||||
|
||||
/**
|
||||
* @param $linkName String name of a link field in the module's vardefs
|
||||
* @param $bean SugarBean focus bean for this link (one half of a relationship)
|
||||
* @param $linkDef array Optional vardef for the link in case it can't be found in the passed in bean
|
||||
* @param string $linkName name of a link field in the module's vardefs
|
||||
* @param SugarBean $bean focus bean for this link (one half of a relationship)
|
||||
* @param array $linkDef Optional vardef for the link in case it can't be found in the passed in bean
|
||||
* for the global dictionary
|
||||
*/
|
||||
public function __construct($linkName, $bean, $linkDef = array())
|
||||
|
@ -577,27 +577,29 @@ class Link2
|
|||
|
||||
foreach ($rel_keys as $key) {
|
||||
//We must use beans for LogicHooks and other business logic to fire correctly
|
||||
if (!($key instanceof SugarBean)) {
|
||||
$key = $this->getRelatedBean($key);
|
||||
if (!($key instanceof SugarBean)) {
|
||||
$keyBean = $key;
|
||||
if (!($keyBean instanceof SugarBean)) {
|
||||
$keyBean = $this->getRelatedBean($keyBean);
|
||||
if (!($keyBean instanceof SugarBean)) {
|
||||
$GLOBALS['log']->error('Unable to load related bean by id');
|
||||
|
||||
return false;
|
||||
// Note these beans as failed and continue
|
||||
$failures[] = $key;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if (empty($key->id) || empty($this->focus->id)) {
|
||||
if (empty($keyBean->id) || empty($this->focus->id)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($this->getSide() == REL_LHS) {
|
||||
$success = $this->relationship->remove($this->focus, $key);
|
||||
$success = $this->relationship->remove($this->focus, $keyBean);
|
||||
} else {
|
||||
$success = $this->relationship->remove($key, $this->focus);
|
||||
$success = $this->relationship->remove($keyBean, $this->focus);
|
||||
}
|
||||
|
||||
if ($success == false) {
|
||||
$failures[] = $key->id;
|
||||
$failures[] = $keyBean->id;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -611,7 +613,7 @@ class Link2
|
|||
/**
|
||||
* Marks the relationship deleted for this given record pair.
|
||||
*
|
||||
* @param $id string id of the Parent/Focus SugarBean
|
||||
* @param string $id id of the Parent/Focus SugarBean
|
||||
* @param string $related_id id or SugarBean to unrelate. Pass a SugarBean if you have it.
|
||||
*
|
||||
* @return bool true if delete was successful or false if it was not
|
||||
|
|
|
@ -52,9 +52,10 @@ class EmailAddressRelationship extends M2MRelationship
|
|||
{
|
||||
/**
|
||||
* For Email Addresses, there is only a link from the left side, so we need a new add function that ignores rhs
|
||||
* @param $lhs SugarBean left side bean to add to the relationship.
|
||||
* @param $rhs SugarBean right side bean to add to the relationship.
|
||||
* @param $additionalFields key=>value pairs of fields to save on the relationship
|
||||
*
|
||||
* @param SugarBean $lhs left side bean to add to the relationship.
|
||||
* @param SugarBean $rhs right side bean to add to the relationship.
|
||||
* @param mixed $additionalFields key=>value pairs of fields to save on the relationship
|
||||
* @return boolean true if successful
|
||||
*/
|
||||
public function add($lhs, $rhs, $additionalFields = array())
|
||||
|
|
|
@ -130,9 +130,9 @@ class M2MRelationship extends SugarRelationship
|
|||
return $links[0];
|
||||
}
|
||||
/**
|
||||
* @param $lhs SugarBean left side bean to add to the relationship.
|
||||
* @param $rhs SugarBean right side bean to add to the relationship.
|
||||
* @param $additionalFields key=>value pairs of fields to save on the relationship
|
||||
* @param SugarBean $lhs left side bean to add to the relationship.
|
||||
* @param SugarBean $rhs right side bean to add to the relationship.
|
||||
* @param mixed $additionalFields key=>value pairs of fields to save on the relationship
|
||||
* @return boolean true if successful
|
||||
*/
|
||||
public function add($lhs, $rhs, $additionalFields = array())
|
||||
|
@ -375,7 +375,7 @@ class M2MRelationship extends SugarRelationship
|
|||
}
|
||||
|
||||
/**
|
||||
* @param $link Link2 loads the relationship for this link.
|
||||
* @param Link2 $link loads the relationship for this link.
|
||||
* @return void
|
||||
*/
|
||||
public function load($link, $params = array())
|
||||
|
@ -556,7 +556,7 @@ class M2MRelationship extends SugarRelationship
|
|||
/**
|
||||
* Similar to getQuery or Get join, except this time we are starting from the related table and
|
||||
* searching for items with id's matching the $link->focus->id
|
||||
* @param $link
|
||||
* @param mixed $link
|
||||
* @param array $params
|
||||
* @param bool $return_array
|
||||
* @return String|Array
|
||||
|
|
|
@ -59,9 +59,9 @@ class One2MBeanRelationship extends One2MRelationship
|
|||
}
|
||||
|
||||
/**
|
||||
* @param $lhs SugarBean left side bean to add to the relationship.
|
||||
* @param $rhs SugarBean right side bean to add to the relationship.
|
||||
* @param $additionalFields key=>value pairs of fields to save on the relationship
|
||||
* @param SugarBean $lhs left side bean to add to the relationship.
|
||||
* @param SugarBean $rhs right side bean to add to the relationship.
|
||||
* @param mixed $additionalFields key=>value pairs of fields to save on the relationship
|
||||
* @return boolean true if successful
|
||||
*/
|
||||
public function add($lhs, $rhs, $additionalFields = array())
|
||||
|
@ -176,7 +176,7 @@ class One2MBeanRelationship extends One2MRelationship
|
|||
}
|
||||
|
||||
/**
|
||||
* @param $link Link2 loads the relationship for this link.
|
||||
* @param Link2 $link loads the relationship for this link.
|
||||
* @return void
|
||||
*/
|
||||
public function load($link, $params = array())
|
||||
|
|
|
@ -120,9 +120,9 @@ class One2MRelationship extends M2MRelationship
|
|||
}
|
||||
|
||||
/**
|
||||
* @param $lhs SugarBean left side bean to add to the relationship.
|
||||
* @param $rhs SugarBean right side bean to add to the relationship.
|
||||
* @param $additionalFields key=>value pairs of fields to save on the relationship
|
||||
* @param SugarBean $lhs left side bean to add to the relationship.
|
||||
* @param SugarBean $rhs right side bean to add to the relationship.
|
||||
* @param mixed $additionalFields key=>value pairs of fields to save on the relationship
|
||||
* @return boolean true if successful
|
||||
*/
|
||||
public function add($lhs, $rhs, $additionalFields = array())
|
||||
|
|
|
@ -55,9 +55,9 @@ class One2OneBeanRelationship extends One2MBeanRelationship
|
|||
parent::__construct($def);
|
||||
}
|
||||
/**
|
||||
* @param $lhs SugarBean left side bean to add to the relationship.
|
||||
* @param $rhs SugarBean right side bean to add to the relationship.
|
||||
* @param $additionalFields key=>value pairs of fields to save on the relationship
|
||||
* @param SugarBean $lhs left side bean to add to the relationship.
|
||||
* @param SugarBean $rhs right side bean to add to the relationship.
|
||||
* @param mixed $additionalFields key=>value pairs of fields to save on the relationship
|
||||
* @return boolean true if successful
|
||||
*/
|
||||
public function add($lhs, $rhs, $additionalFields = array())
|
||||
|
|
|
@ -56,9 +56,9 @@ class One2OneRelationship extends M2MRelationship
|
|||
parent::__construct($def);
|
||||
}
|
||||
/**
|
||||
* @param $lhs SugarBean left side bean to add to the relationship.
|
||||
* @param $rhs SugarBean right side bean to add to the relationship.
|
||||
* @param $additionalFields key=>value pairs of fields to save on the relationship
|
||||
* @param SugarBean $lhs left side bean to add to the relationship.
|
||||
* @param SugarBean $rhs right side bean to add to the relationship.
|
||||
* @param mixed $additionalFields key=>value pairs of fields to save on the relationship
|
||||
* @return boolean true if successful
|
||||
*/
|
||||
public function add($lhs, $rhs, $additionalFields = array())
|
||||
|
|
|
@ -92,7 +92,7 @@ class SugarRelationshipFactory
|
|||
}
|
||||
|
||||
/**
|
||||
* @param $relationshipName String name of relationship to load
|
||||
* @param string $relationshipName name of relationship to load
|
||||
*
|
||||
* @return SugarRelationship|bool
|
||||
*/
|
||||
|
@ -146,7 +146,7 @@ class SugarRelationshipFactory
|
|||
}
|
||||
|
||||
/**
|
||||
* @param $relationshipName
|
||||
* @param string $relationshipName
|
||||
* @return bool
|
||||
*/
|
||||
public function getRelationshipDef($relationshipName)
|
||||
|
|
|
@ -87,8 +87,8 @@ abstract class SugarRelationship
|
|||
/**
|
||||
* @abstract
|
||||
*
|
||||
* @param $lhs SugarBean
|
||||
* @param $rhs SugarBean
|
||||
* @param SugarBean $lhs
|
||||
* @param SugarBean $rhs
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
|
@ -97,7 +97,7 @@ abstract class SugarRelationship
|
|||
/**
|
||||
* @abstract
|
||||
*
|
||||
* @param $link Link2 loads the rows for this relationship that match the given link
|
||||
* @param Link2 $link loads the rows for this relationship that match the given link
|
||||
* @param array $params
|
||||
*/
|
||||
abstract public function load($link, $params = array());
|
||||
|
@ -109,7 +109,7 @@ abstract class SugarRelationship
|
|||
*
|
||||
* @abstract
|
||||
*
|
||||
* @param $link Link2 Object to get query for.
|
||||
* @param Link2 $link Object to get query for.
|
||||
* @param array $params
|
||||
*
|
||||
* @return array|string query used to load this relationship
|
||||
|
@ -145,7 +145,7 @@ abstract class SugarRelationship
|
|||
abstract public function getRelationshipTable();
|
||||
|
||||
/**
|
||||
* @param $link Link2 removes all the beans associated with this link from the relationship
|
||||
* @param Link2 $link removes all the beans associated with this link from the relationship
|
||||
*
|
||||
* @return bool true if all beans were successfully removed or there
|
||||
* were not related beans, false otherwise
|
||||
|
@ -173,7 +173,7 @@ abstract class SugarRelationship
|
|||
}
|
||||
|
||||
/**
|
||||
* @param $rowID string id of SugarBean to remove from the relationship
|
||||
* @param string $rowID id of SugarBean to remove from the relationship
|
||||
*/
|
||||
public function removeById($rowID)
|
||||
{
|
||||
|
@ -250,8 +250,8 @@ abstract class SugarRelationship
|
|||
}
|
||||
|
||||
/**
|
||||
* @param $id string id of row to update
|
||||
* @param $values array values to insert into row
|
||||
* @param string $id id of row to update
|
||||
* @param array $values values to insert into row
|
||||
*
|
||||
* @return resource result of update statement
|
||||
*/
|
||||
|
@ -276,7 +276,7 @@ abstract class SugarRelationship
|
|||
/**
|
||||
* Removes one or more rows from the relationship table.
|
||||
*
|
||||
* @param $where array of field=>value pairs to match
|
||||
* @param array $where array of field=>value pairs to match
|
||||
*
|
||||
* @return bool|resource
|
||||
*/
|
||||
|
|
|
@ -4970,7 +4970,7 @@ class SugarBean
|
|||
($this->object_name == $related_module && $this->$id_name != $this->id))
|
||||
) {
|
||||
if (!empty($this->$id_name) && isset($this->$name)) {
|
||||
$mod = BeanFactory::getBean($related_module, $this->$id_name);
|
||||
$mod = BeanFactory::getShallowBean($related_module, $this->$id_name);
|
||||
if ($mod) {
|
||||
if (!empty($field['rname'])) {
|
||||
$rname = $field['rname'];
|
||||
|
@ -4980,8 +4980,6 @@ class SugarBean
|
|||
$this->$name = $mod->name;
|
||||
}
|
||||
}
|
||||
// The related bean is incomplete due to $fill_in_rel_depth, we don't want to cache it
|
||||
BeanFactory::unregisterBean($related_module, $this->$id_name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -6039,7 +6037,7 @@ class SugarBean
|
|||
|
||||
/**
|
||||
* Check whether the user has access to a particular view for the current bean/module
|
||||
* @param $view string required, the view to determine access for i.e. DetailView, ListView...
|
||||
* @param string $view required, the view to determine access for i.e. DetailView, ListView...
|
||||
* @param bool|string $is_owner bool optional, this is part of the ACL check if the current user
|
||||
* is an owner they will receive different access
|
||||
* @param bool|string $in_group
|
||||
|
|
|
@ -106,9 +106,10 @@ class DetailView2 extends EditView
|
|||
if (!file_exists('modules/'.$this->module.'/metadata')) {
|
||||
sugar_mkdir('modules/'.$this->module.'/metadata');
|
||||
}
|
||||
$fp = sugar_fopen('modules/'.$this->module.'/metadata/$metadataFileName.php', 'w');
|
||||
fwrite($fp, $parser->parse($htmlFile, $dictionary[$focus->object_name]['fields'], $this->module));
|
||||
fclose($fp);
|
||||
sugar_file_put_contents(
|
||||
'modules/'.$this->module.'/metadata/$metadataFileName.php',
|
||||
$parser->parse($htmlFile, $dictionary[$focus->object_name]['fields'], $this->module)
|
||||
);
|
||||
}
|
||||
|
||||
//Flag an error... we couldn't create the best guess meta-data file
|
||||
|
|
|
@ -261,9 +261,10 @@ class EditView
|
|||
sugar_mkdir('modules/' . $this->module . '/metadata');
|
||||
}
|
||||
|
||||
$fp = sugar_fopen('modules/' . $this->module . '/metadata/' . $metadataFileName . '.php', 'w');
|
||||
fwrite($fp, $parser->parse($htmlFile, $dictionary[$focus->object_name]['fields'], $this->module));
|
||||
fclose($fp);
|
||||
sugar_file_put_contents(
|
||||
'modules/' . $this->module . '/metadata/' . $metadataFileName . '.php',
|
||||
$parser->parse($htmlFile, $dictionary[$focus->object_name]['fields'], $this->module)
|
||||
);
|
||||
}
|
||||
|
||||
// Flag an error... we couldn't create the best guess meta-data file
|
||||
|
|
|
@ -186,8 +186,8 @@ class SubpanelQuickCreate
|
|||
* 3. custom/module/editviewdefs.php
|
||||
* 4. module/editviewdefs.php
|
||||
*
|
||||
* @param $module
|
||||
* @param $view
|
||||
* @param string $module
|
||||
* @param string $view
|
||||
* @return string The path to the viewdefs file to use
|
||||
*/
|
||||
public function getModuleViewDefsSourceFile($module, $view)
|
||||
|
|
|
@ -369,12 +369,21 @@ class SugarController
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Exception $e
|
||||
*/
|
||||
protected function showException(Exception $e)
|
||||
{
|
||||
$GLOBALS['log']->fatal('Exception in Controller: ' . $e->getMessage());
|
||||
$GLOBALS['log']->fatal("backtrace:\n" . $e->getTraceAsString());
|
||||
global $sugar_config;
|
||||
|
||||
LoggerManager::getLogger()->fatal('Exception in Controller: ' . $e->getMessage());
|
||||
|
||||
if ($sugar_config['stackTrace']) {
|
||||
LoggerManager::getLogger()->fatal("backtrace:\n" . $e->getTraceAsString());
|
||||
}
|
||||
|
||||
if ($prev = $e->getPrevious()) {
|
||||
$GLOBALS['log']->fatal("Previous:\n");
|
||||
LoggerManager::getLogger()->fatal("Previous:\n");
|
||||
$this->showException($prev);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -316,9 +316,10 @@ class SubPanel
|
|||
// $GLOBALS['log']->debug('SubPanel.php->saveSubPanelDefOverride(): '.$name);
|
||||
$newValue = override_value_to_string($name, 'override_subpanel_name', $filename);
|
||||
mkdir_recursive('custom/Extension/modules/'. $panel->parent_bean->module_dir . '/Ext/Layoutdefs', true);
|
||||
$fp = sugar_fopen('custom/Extension/modules/'. $panel->parent_bean->module_dir . "/Ext/Layoutdefs/$extname.php", 'w');
|
||||
fwrite($fp, "<?php\n//auto-generated file DO NOT EDIT\n$newValue\n?>");
|
||||
fclose($fp);
|
||||
sugar_file_put_contents(
|
||||
'custom/Extension/modules/'. $panel->parent_bean->module_dir . "/Ext/Layoutdefs/$extname.php",
|
||||
"<?php\n//auto-generated file DO NOT EDIT\n$newValue\n?>"
|
||||
);
|
||||
require_once('ModuleInstall/ModuleInstaller.php');
|
||||
$moduleInstaller = new ModuleInstaller();
|
||||
$moduleInstaller->silent = true; // make sure that the ModuleInstaller->log() function doesn't echo while rebuilding the layoutdefs
|
||||
|
|
|
@ -108,9 +108,12 @@ class SugarCache
|
|||
/**
|
||||
* Try to reset any opcode caches we know about
|
||||
*
|
||||
* @param Bool $full_reset -- only reset the opcache on full reset,
|
||||
* for removing individual files from cache use the fine grained method cleanFile
|
||||
*
|
||||
* @todo make it so developers can extend this somehow
|
||||
*/
|
||||
public static function cleanOpcodes()
|
||||
public static function cleanOpcodes($full_reset = false)
|
||||
{
|
||||
// APC
|
||||
if (function_exists('apc_clear_cache') && ini_get('apc.stat') == 0) {
|
||||
|
@ -138,8 +141,14 @@ class SugarCache
|
|||
}
|
||||
}
|
||||
// Zend OPcache
|
||||
if (function_exists('opcache_reset')) {
|
||||
opcache_reset();
|
||||
if (
|
||||
extension_loaded('Zend OPcache') &&
|
||||
($opcache_status = opcache_get_status(false)) !== false &&
|
||||
$opcache_status['opcache_enabled'] && $full_reset
|
||||
) {
|
||||
if (!opcache_reset()) {
|
||||
LoggerManager::getLogger()->error("OPCache - could not reset");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -154,9 +163,35 @@ class SugarCache
|
|||
}
|
||||
|
||||
// Zend OPcache
|
||||
if (function_exists('opcache_invalidate'))
|
||||
if (
|
||||
extension_loaded('Zend OPcache') &&
|
||||
($opcache_status = opcache_get_status(false)) !== false &&
|
||||
$opcache_status['opcache_enabled']
|
||||
) {
|
||||
// three attempts incase concurrent opcache operations pose a lock
|
||||
for ($i = 3; $i && !opcache_invalidate($file, true); --$i) {
|
||||
sleep(0.2);
|
||||
}
|
||||
|
||||
if (!$i) {
|
||||
LoggerManager::getLogger()->warn("OPCache - could not invalidate file: $file");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* cleanDir
|
||||
* Call this function to remove files in a directory from cache
|
||||
*
|
||||
* @param string $dir - String value of the directory to remove from cache
|
||||
*
|
||||
*/
|
||||
public static function cleanDir($dir)
|
||||
{
|
||||
opcache_invalidate($file, true);
|
||||
foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir)) as $file) {
|
||||
if ((new SplFileInfo($file))->getExtension() == 'php') {
|
||||
sugarCache::cleanFile($file);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -215,7 +250,7 @@ function sugar_cache_reset()
|
|||
function sugar_cache_reset_full()
|
||||
{
|
||||
SugarCache::instance()->resetFull();
|
||||
SugarCache::cleanOpcodes();
|
||||
SugarCache::cleanOpcodes(true);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -200,7 +200,7 @@ abstract class source
|
|||
if (!file_exists("custom/modules/Connectors/connectors/sources/{$dir}")) {
|
||||
mkdir_recursive("custom/modules/Connectors/connectors/sources/{$dir}");
|
||||
}
|
||||
file_put_contents("custom/modules/Connectors/connectors/sources/{$dir}/config.php", $config_str);
|
||||
sugar_file_put_contents("custom/modules/Connectors/connectors/sources/{$dir}/config.php", $config_str);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -997,7 +997,7 @@ class MssqlManager extends DBManager
|
|||
|
||||
/**
|
||||
* Get tables like expression
|
||||
* @param $like string
|
||||
* @param string $like
|
||||
* @return array
|
||||
*/
|
||||
public function tablesLike($like)
|
||||
|
|
|
@ -460,7 +460,7 @@ class MysqlManager extends DBManager
|
|||
|
||||
/**
|
||||
* Get tables like expression
|
||||
* @param $like string
|
||||
* @param string $like
|
||||
* @return array
|
||||
*/
|
||||
public function tablesLike($like)
|
||||
|
|
|
@ -42,11 +42,16 @@ if (!defined('sugarEntry') || !sugarEntry) {
|
|||
*/
|
||||
|
||||
|
||||
require_once 'include/SugarCache/SugarCache.php';
|
||||
|
||||
function copy_recursive($source, $dest)
|
||||
{
|
||||
if (is_file($source)) {
|
||||
return(copy($source, $dest));
|
||||
$result = copy($source, $dest);
|
||||
if ((new SplFileInfo($dest))->getExtension() == 'php') {
|
||||
SugarCache::cleanFile($dest);
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
if (!is_dir($dest)) {
|
||||
sugar_mkdir($dest);
|
||||
|
|
|
@ -451,8 +451,8 @@ function export($type, $records = null, $members = false, $sample=false)
|
|||
|
||||
/**
|
||||
* Parse custom related fields
|
||||
* @param $line string CSV line
|
||||
* @param $record array of current line
|
||||
* @param string $line CSV line
|
||||
* @param array $record of current line
|
||||
* @return mixed string CSV line
|
||||
*/
|
||||
function parseRelateFields($line, $record, $customRelateFields)
|
||||
|
|
|
@ -211,8 +211,8 @@ abstract class ExternalAPIBase implements ExternalAPIPlugin
|
|||
* that are being checked deal with handling the behavior of closing/hiding windows/tabs that
|
||||
* are displayed when prompting for OAUTH validation
|
||||
*
|
||||
* @param $callback_url String value of callback URL
|
||||
* @return String value of URL with applicable formatting
|
||||
* @param string $callback_url value of callback URL
|
||||
* @return string value of URL with applicable formatting
|
||||
*/
|
||||
protected function formatCallbackURL($callback_url)
|
||||
{
|
||||
|
|
|
@ -227,7 +227,7 @@ class SugarWidgetFieldCurrency extends SugarWidgetFieldInt
|
|||
|
||||
/**
|
||||
* Return currency for layout_def
|
||||
* @param $layout_def mixed
|
||||
* @param mixed $layout_def
|
||||
* @return array Array with currency symbol and currency ID
|
||||
*/
|
||||
protected function getCurrency($layout_def)
|
||||
|
|
|
@ -53,7 +53,7 @@ class SugarWidgetSubPanelEditRoleButton extends SugarWidgetField
|
|||
return ' ';
|
||||
}
|
||||
|
||||
public function displayList($layout_def)
|
||||
public function displayList(&$layout_def)
|
||||
{
|
||||
global $app_strings;
|
||||
global $subpanel_item_count;
|
||||
|
|
|
@ -45,5 +45,6 @@ else{populateModuleName=$(this).attr('data-record-name');if(dataEmailName!==''){
|
|||
populateModule=$(this).attr('data-record-module');populateModuleRecord=$(this).attr('data-record-id');if(populateModuleName===''){populateModuleName=populateEmailAddress;}}
|
||||
populateEmailAddress=$(this).attr('data-record-email');if(dataEmailAddress!==''){populateEmailAddress=dataEmailAddress;}
|
||||
if(populateEmailAddress!==''){if(targetCount>0){targetList=targetList+',';}
|
||||
targetList=targetList+dataEmailName+' <'+populateEmailAddress+'>';targetCount++;}});if(targetCount>0){$(self.emailComposeView).find('#to_addrs_names').val(targetList);}if(targetCount<2){$(self.emailComposeView).find('#parent_type').val(populateModule);$(self.emailComposeView).find('#parent_name').val(populateModuleName);$(self.emailComposeView).find('#parent_id').val(populateModuleRecord);}
|
||||
targetList=targetList+dataEmailName+' <'+populateEmailAddress+'>';targetCount++;}});if(targetCount>0){$(self.emailComposeView).find('#to_addrs_names').val(targetList);}
|
||||
if(targetCount<2){$(self.emailComposeView).find('#parent_type').val(populateModule);$(self.emailComposeView).find('#parent_name').val(populateModuleName);$(self.emailComposeView).find('#parent_id').val(populateModuleRecord);}
|
||||
$(self.emailComposeView).on('sentEmail',function(event,composeView){composeBox.hide();composeBox.remove();});$(self.emailComposeView).on('disregardDraft',function(event,composeView){if(typeof messageBox!=="undefined"){var mb=messageBox({size:'lg'});mb.setTitle(SUGAR.language.translate('','LBL_CONFIRM_DISREGARD_DRAFT_TITLE'));mb.setBody(SUGAR.language.translate('','LBL_CONFIRM_DISREGARD_DRAFT_BODY'));mb.on('ok',function(){mb.remove();composeBox.hide();composeBox.remove();});mb.on('cancel',function(){mb.remove();});mb.show();}else{if(confirm(self.translatedErrorMessage)){composeBox.hide();composeBox.remove();}}});composeBox.on('cancel',function(){composeBox.remove();});composeBox.on('hide.bs.modal',function(e){e.preventDefault();var mb=messageBox({size:'lg'});mb.setTitle(SUGAR.language.translate('','LBL_CONFIRM_DISREGARD_EMAIL_TITLE'));mb.setBody(SUGAR.language.translate('','LBL_CONFIRM_DISREGARD_EMAIL_BODY'));mb.on('ok',function(){mb.remove();composeBox.hide();composeBox.remove();});mb.on('cancel',function(){mb.remove();});mb.show();});}).fail(function(data){composeBox.controls.modal.content.html(SUGAR.language.translate('','LBL_EMAIL_ERROR_GENERAL_TITLE'));});return $(self);};$.fn.EmailsComposeViewModal.defaults={'selected':'INBOX','buttonSelector':'[data-action=emails-show-compose-modal]','contentSelector':'#content'};}(jQuery));
|
4
include/javascript/jquery.js
vendored
4
include/javascript/jquery.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
6
include/javascript/jquery/jquery-min.js
vendored
6
include/javascript/jquery/jquery-min.js
vendored
File diff suppressed because one or more lines are too long
4
include/javascript/jquery/jquery.js
vendored
4
include/javascript/jquery/jquery.js
vendored
File diff suppressed because one or more lines are too long
|
@ -1,5 +1,68 @@
|
|||
YUI Library Release Notes
|
||||
|
||||
*** version 2.9.1 ***
|
||||
|
||||
see https://clarle.github.io/yui3/support/20121030-vulnerability/
|
||||
|
||||
*** version 2.8.1 ***
|
||||
|
||||
2.8.1 is a bug fix release that includes:
|
||||
- Proper version of Uploader SWF now included in /build
|
||||
- A fix to an IE issue in History
|
||||
- Updates to DataTable's Row Expansion example
|
||||
|
||||
|
||||
*** version 2.8.0 ***
|
||||
|
||||
The 2.8.0 release of YUI contains:
|
||||
|
||||
New components:
|
||||
- Storage
|
||||
- SWFStore
|
||||
_ SWF
|
||||
- ProgressBar
|
||||
|
||||
Significant additions. To the following components:
|
||||
- Calendar
|
||||
- Year offset support
|
||||
- Carousel
|
||||
- Gallery
|
||||
- Charts
|
||||
- Support for multiple Y axes
|
||||
- Visibility control for individual series
|
||||
- Custom event marker
|
||||
- Connection
|
||||
- Cross-domain support
|
||||
- Event
|
||||
- Event Delegation
|
||||
|
||||
|
||||
There have been bug fixes and feature enhancements to many components. Refer to the README files for full
|
||||
details of the specific changes made to each component.
|
||||
|
||||
|
||||
*** version 2.7.0 ***
|
||||
|
||||
The 2.7.0 release of YUI contains:
|
||||
|
||||
One new component:
|
||||
- StyleSheet
|
||||
|
||||
Three components promoted from Beta to GA status
|
||||
- Element
|
||||
- ProfilerViewer
|
||||
- Selector
|
||||
|
||||
One components promoted from Experimental to Beta status
|
||||
- Uploader
|
||||
|
||||
2.7.0 contains a number of updates to the components to provide IE8 compatibility based on the testing we
|
||||
have done with the pre-release distributions. Further updates will be made, if needed, following the
|
||||
official launch of the browser.
|
||||
|
||||
Bug fixes and feature enhancements were added to many components. Refer to the README files for full
|
||||
details on the specific changes to each component.
|
||||
|
||||
*** version 2.6.0 ***
|
||||
|
||||
The 2.6.0 release of YUI contains:
|
||||
|
@ -55,7 +118,7 @@ This update contains the following:
|
|||
- additions to the Yahoo, Uploader, Editor, and DataSource components to improve YUI support for Adobe AIR
|
||||
- Douglas Crockford's fix for a security vulnerability where the JSON parser could be tricked into processing
|
||||
an unquoted string as quoted which could allow unsafe scripts to be evaled
|
||||
- a new aggregate file Ñ yuiloader-dom-event.js that is the ideal baseline rollup to use to be able to
|
||||
- a new aggregate file <EFBFBD> yuiloader-dom-event.js that is the ideal baseline rollup to use to be able to
|
||||
lazy-load any part of YUI on-demand
|
||||
- over 60 bug fixes
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -2,7 +2,7 @@
|
|||
Copyright (c) 2011, Yahoo! Inc. All rights reserved.
|
||||
Code licensed under the BSD License:
|
||||
http://developer.yahoo.com/yui/license.html
|
||||
version: 2.9.0
|
||||
version: 2.9.1
|
||||
*/
|
||||
(function() {
|
||||
|
||||
|
@ -1422,4 +1422,4 @@ YAHOO.util.Easing = {
|
|||
|
||||
Y.Scroll = Scroll;
|
||||
})();
|
||||
YAHOO.register("animation", YAHOO.util.Anim, {version: "2.9.0", build: "2800"});
|
||||
YAHOO.register("animation", YAHOO.util.Anim, {version: "2.9.1", build: "2800"});
|
||||
|
|
|
@ -2,6 +2,6 @@
|
|||
Copyright (c) 2011, Yahoo! Inc. All rights reserved.
|
||||
Code licensed under the BSD License:
|
||||
http://developer.yahoo.com/yui/license.html
|
||||
version: 2.9.0
|
||||
version: 2.9.1
|
||||
*/
|
||||
.yui-skin-sam .yui-ac{position:relative;font-family:arial;font-size:100%}.yui-skin-sam .yui-ac-input{position:absolute;width:100%}.yui-skin-sam .yui-ac-container{position:absolute;top:1.6em;width:100%}.yui-skin-sam .yui-ac-content{position:absolute;width:100%;border:1px solid #808080;background:#fff;overflow:hidden;z-index:9050}.yui-skin-sam .yui-ac-shadow{position:absolute;margin:.3em;width:100%;background:#000;-moz-opacity:.10;opacity:.10;filter:alpha(opacity=10);z-index:9049}.yui-skin-sam .yui-ac iframe{opacity:0;filter:alpha(opacity=0);padding-right:.3em;padding-bottom:.3em}.yui-skin-sam .yui-ac-content ul{margin:0;padding:0;width:100%}.yui-skin-sam .yui-ac-content li{margin:0;padding:2px 5px;cursor:default;white-space:nowrap;list-style:none;zoom:1}.yui-skin-sam .yui-ac-content li.yui-ac-prehighlight{background:#b3d4ff}.yui-skin-sam .yui-ac-content li.yui-ac-highlight{background:#426fd9;color:#FFF}
|
||||
|
|
|
@ -2,6 +2,6 @@
|
|||
Copyright (c) 2011, Yahoo! Inc. All rights reserved.
|
||||
Code licensed under the BSD License:
|
||||
http://developer.yahoo.com/yui/license.html
|
||||
version: 2.9.0
|
||||
version: 2.9.1
|
||||
*/
|
||||
.yui-button{display:-moz-inline-box;display:inline-block;vertical-align:text-bottom;}.yui-button .first-child{display:block;*display:inline-block;}.yui-button button,.yui-button a{display:block;*display:inline-block;border:none;margin:0;}.yui-button button{background-color:transparent;*overflow:visible;cursor:pointer;}.yui-button a{text-decoration:none;}.yui-skin-sam .yui-button{border-width:1px 0;border-style:solid;border-color:#808080;background:url(sprite.png) repeat-x 0 0;margin:auto .25em;}.yui-skin-sam .yui-button .first-child{border-width:0 1px;border-style:solid;border-color:#808080;margin:0 -1px;_margin:0;}.yui-skin-sam .yui-button button,.yui-skin-sam .yui-button a,.yui-skin-sam .yui-button a:visited{padding:0 10px;font-size:93%;line-height:2;*line-height:1.7;min-height:2em;*min-height:auto;color:#000;}.yui-skin-sam .yui-button a{*line-height:1.875;*padding-bottom:1px;}.yui-skin-sam .yui-split-button button,.yui-skin-sam .yui-menu-button button{padding-right:20px;background-position:right center;background-repeat:no-repeat;}.yui-skin-sam .yui-menu-button button{background-image:url(menu-button-arrow.png);}.yui-skin-sam .yui-split-button button{background-image:url(split-button-arrow.png);}.yui-skin-sam .yui-button-focus{border-color:#7D98B8;background-position:0 -1300px;}.yui-skin-sam .yui-button-focus .first-child{border-color:#7D98B8;}.yui-skin-sam .yui-split-button-focus button{background-image:url(split-button-arrow-focus.png);}.yui-skin-sam .yui-button-hover{border-color:#7D98B8;background-position:0 -1300px;}.yui-skin-sam .yui-button-hover .first-child{border-color:#7D98B8;}.yui-skin-sam .yui-split-button-hover button{background-image:url(split-button-arrow-hover.png);}.yui-skin-sam .yui-button-active{border-color:#7D98B8;background-position:0 -1700px;}.yui-skin-sam .yui-button-active .first-child{border-color:#7D98B8;}.yui-skin-sam .yui-split-button-activeoption{border-color:#808080;background-position:0 0;}.yui-skin-sam .yui-split-button-activeoption .first-child{border-color:#808080;}.yui-skin-sam .yui-split-button-activeoption button{background-image:url(split-button-arrow-active.png);}.yui-skin-sam .yui-radio-button-checked,.yui-skin-sam .yui-checkbox-button-checked{border-color:#304369;background-position:0 -1400px;}.yui-skin-sam .yui-radio-button-checked .first-child,.yui-skin-sam .yui-checkbox-button-checked .first-child{border-color:#304369;}.yui-skin-sam .yui-radio-button-checked button,.yui-skin-sam .yui-checkbox-button-checked button{color:#fff;}.yui-skin-sam .yui-button-disabled{border-color:#ccc;background-position:0 -1500px;}.yui-skin-sam .yui-button-disabled .first-child{border-color:#ccc;}.yui-skin-sam .yui-button-disabled button,.yui-skin-sam .yui-button-disabled a,.yui-skin-sam .yui-button-disabled a:visited{color:#A6A6A6;cursor:default;}.yui-skin-sam .yui-menu-button-disabled button{background-image:url(menu-button-arrow-disabled.png);}.yui-skin-sam .yui-split-button-disabled button{background-image:url(split-button-arrow-disabled.png);}
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -2,6 +2,6 @@
|
|||
Copyright (c) 2011, Yahoo! Inc. All rights reserved.
|
||||
Code licensed under the BSD License:
|
||||
http://developer.yahoo.com/yui/license.html
|
||||
version: 2.9.0
|
||||
version: 2.9.1
|
||||
*/
|
||||
.yui-carousel{visibility:hidden;overflow:hidden;position:relative;text-align:left;zoom:1;}.yui-carousel.yui-carousel-visible{visibility:visible;}.yui-carousel-content{overflow:hidden;position:relative;text-align:center;}.yui-carousel-element li{border:1px solid #ccc;list-style:none;margin:1px;overflow:hidden;padding:0;position:absolute;text-align:center;}.yui-carousel-vertical .yui-carousel-element li{display:block;float:none;}.yui-log .carousel{background:#f2e886;}.yui-carousel-nav{zoom:1;}.yui-carousel-nav:after{content:".";display:block;height:0;clear:both;visibility:hidden;}.yui-carousel-button-focus{outline:1px dotted #000;}.yui-carousel-min-width{min-width:115px;}.yui-carousel-element{overflow:hidden;position:relative;margin:0 auto;padding:0;text-align:left;*margin:0;}.yui-carousel-horizontal .yui-carousel-element{width:320000px;}.yui-carousel-vertical .yui-carousel-element{height:320000px;}.yui-skin-sam .yui-carousel-nav select{position:static;}.yui-carousel .yui-carousel-item-selected{border:1px dashed #000;margin:1px;}.yui-skin-sam .yui-carousel,.yui-skin-sam .yui-carousel-vertical{border:1px solid #808080;}.yui-skin-sam .yui-carousel-nav{background:url(sprite.png) repeat-x 0 0;padding:3px;text-align:right;}.yui-skin-sam .yui-carousel-button{background:url(sprite.png) no-repeat 0 -600px;float:right;height:19px;margin:5px;overflow:hidden;width:40px;}.yui-skin-sam .yui-carousel-vertical .yui-carousel-button{background-position:0 -800px;}.yui-skin-sam .yui-carousel-button-disabled{background-position:0 -2000px;}.yui-skin-sam .yui-carousel-vertical .yui-carousel-button-disabled{background-position:0 -2100px;}.yui-skin-sam .yui-carousel-button input,.yui-skin-sam .yui-carousel-button button{background-color:transparent;border:0;cursor:pointer;display:block;height:44px;margin:-2px 0 0 -2px;padding:0 0 0 50px;}.yui-skin-sam span.yui-carousel-first-button{background-position:0 -550px;margin-left:-100px;margin-right:50px;*margin:5px 5px 5px -90px;}.yui-skin-sam .yui-carousel-vertical span.yui-carousel-first-button{background-position:0 -750px;}.yui-skin-sam span.yui-carousel-first-button-disabled{background-position:0 -1950px;}.yui-skin-sam .yui-carousel-vertical span.yui-carousel-first-button-disabled{background-position:0 -2050px;}.yui-skin-sam .yui-carousel-nav ul{float:right;height:19px;margin:0;margin-left:-220px;margin-right:100px;*margin-left:-160px;*margin-right:0;padding:0;}.yui-skin-sam .yui-carousel-min-width .yui-carousel-nav ul{*margin-left:-170px;}.yui-skin-sam .yui-carousel-nav select{position:relative;*right:50px;top:4px;}.yui-skin-sam .yui-carousel-vertical .yui-carousel-nav select{position:static;}.yui-skin-sam .yui-carousel-vertical .yui-carousel-nav ul,.yui-skin-sam .yui-carousel-vertical .yui-carousel-nav select{float:none;margin:0;*zoom:1;}.yui-skin-sam .yui-carousel-nav ul li{background:url(sprite.png) no-repeat 0 -650px;cursor:pointer;float:left;height:9px;list-style:none;margin:10px 0 0 5px;overflow:hidden;padding:0;width:9px;}.yui-skin-sam .yui-carousel-nav ul:after{content:".";display:block;height:0;clear:both;visibility:hidden;}.yui-skin-sam .yui-carousel-nav ul li a{display:block;width:100%;height:100%;text-indent:-10000px;text-align:left;overflow:hidden;}.yui-skin-sam .yui-carousel-nav ul li.yui-carousel-nav-page-focus{outline:1px dotted #000;}.yui-skin-sam .yui-carousel-nav ul li.yui-carousel-nav-page-selected{background-position:0 -700px;}.yui-skin-sam .yui-carousel-item-loading{background:url(ajax-loader.gif) no-repeat 50% 50%;position:absolute;text-indent:-150px;}
|
||||
|
|
|
@ -2,6 +2,6 @@
|
|||
Copyright (c) 2011, Yahoo! Inc. All rights reserved.
|
||||
Code licensed under the BSD License:
|
||||
http://developer.yahoo.com/yui/license.html
|
||||
version: 2.9.0
|
||||
version: 2.9.1
|
||||
*/
|
||||
.yui-picker-panel{background:#e3e3e3;border-color:#888}.yui-picker-panel .hd{background-color:#ccc;font-size:100%;line-height:100%;border:1px solid #e3e3e3;font-weight:bold;overflow:hidden;padding:6px;color:#000}.yui-picker-panel .bd{background:#e8e8e8;margin:1px;height:200px}.yui-picker-panel .ft{background:#e8e8e8;margin:1px;padding:1px}.yui-picker{position:relative}.yui-picker-hue-thumb{cursor:default;width:18px;height:18px;top:-8px;left:-2px;z-index:9;position:absolute}.yui-picker-hue-bg{-moz-outline:0;outline:0 none;position:absolute;left:200px;height:183px;width:14px;background:url(hue_bg.png) no-repeat;top:4px}.yui-picker-bg{-moz-outline:0;outline:0 none;position:absolute;top:4px;left:4px;height:182px;width:182px;background-color:#F00;background-image:url(picker_mask.png)}*html .yui-picker-bg{background-image:none;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='picker_mask.png',sizingMethod='scale')}.yui-picker-mask{position:absolute;z-index:1;top:0;left:0}.yui-picker-thumb{cursor:default;width:11px;height:11px;z-index:9;position:absolute;top:-4px;left:-4px}.yui-picker-swatch{position:absolute;left:240px;top:4px;height:60px;width:55px;border:1px solid #888}.yui-picker-websafe-swatch{position:absolute;left:304px;top:4px;height:24px;width:24px;border:1px solid #888}.yui-picker-controls{position:absolute;top:72px;left:226px;font:1em monospace}.yui-picker-controls .hd{background:transparent;border-width:0!important}.yui-picker-controls .bd{height:100px;border-width:0!important}.yui-picker-controls ul{float:left;padding:0 2px 0 0;margin:0}.yui-picker-controls li{padding:2px;list-style:none;margin:0}.yui-picker-controls input{font-size:.85em;width:2.4em}.yui-picker-hex-controls{clear:both;padding:2px}.yui-picker-hex-controls input{width:4.6em}.yui-picker-controls a{font:1em arial,helvetica,clean,sans-serif;display:block;*display:inline-block;padding:0;color:#000}
|
||||
|
|
|
@ -2,6 +2,6 @@
|
|||
Copyright (c) 2011, Yahoo! Inc. All rights reserved.
|
||||
Code licensed under the BSD License:
|
||||
http://developer.yahoo.com/yui/license.html
|
||||
version: 2.9.0
|
||||
version: 2.9.1
|
||||
*/
|
||||
.yui-overlay,.yui-panel-container{visibility:hidden;position:absolute;z-index:2}.yui-panel{position:relative}.yui-panel-container form{margin:0}.mask{z-index:1;display:none;position:absolute;top:0;left:0;right:0;bottom:0}.mask.block-scrollbars{overflow:auto}.masked select,.drag select,.hide-select select{_visibility:hidden}.yui-panel-container select{_visibility:inherit}.hide-scrollbars,.hide-scrollbars *{overflow:hidden}.hide-scrollbars select{display:none}.show-scrollbars{overflow:auto}.yui-panel-container.show-scrollbars,.yui-tt.show-scrollbars{overflow:visible}.yui-panel-container.show-scrollbars .underlay,.yui-tt.show-scrollbars .yui-tt-shadow{overflow:auto}.yui-panel-container.shadow .underlay.yui-force-redraw{padding-bottom:1px}.yui-effect-fade .underlay,.yui-effect-fade .yui-tt-shadow{display:none}.yui-tt-shadow{position:absolute}.yui-override-padding{padding:0!important}.yui-panel-container .container-close{overflow:hidden;text-indent:-10000em;text-decoration:none}.yui-overlay.yui-force-redraw,.yui-panel-container.yui-force-redraw{margin-bottom:1px}.yui-skin-sam .mask{background-color:#000;opacity:.25;filter:alpha(opacity=25)}.yui-skin-sam .yui-panel-container{padding:0 1px;*padding:2px}.yui-skin-sam .yui-panel{position:relative;left:0;top:0;border-style:solid;border-width:1px 0;border-color:#808080;z-index:1;*border-width:1px;*zoom:1;_zoom:normal}.yui-skin-sam .yui-panel .hd,.yui-skin-sam .yui-panel .bd,.yui-skin-sam .yui-panel .ft{border-style:solid;border-width:0 1px;border-color:#808080;margin:0 -1px;*margin:0;*border:0}.yui-skin-sam .yui-panel .hd{border-bottom:solid 1px #ccc}.yui-skin-sam .yui-panel .bd,.yui-skin-sam .yui-panel .ft{background-color:#f2f2f2}.yui-skin-sam .yui-panel .hd{padding:0 10px;font-size:93%;line-height:2;*line-height:1.9;font-weight:bold;color:#000;background:url(sprite.png) repeat-x 0 -200px}.yui-skin-sam .yui-panel .bd{padding:10px}.yui-skin-sam .yui-panel .ft{border-top:solid 1px #808080;padding:5px 10px;font-size:77%}.yui-skin-sam .container-close{position:absolute;top:5px;right:6px;width:25px;height:15px;background:url(sprite.png) no-repeat 0 -300px;cursor:pointer}.yui-skin-sam .yui-panel-container .underlay{right:-1px;left:-1px}.yui-skin-sam .yui-panel-container.matte{padding:9px 10px;background-color:#fff}.yui-skin-sam .yui-panel-container.shadow{_padding:2px 4px 0 2px}.yui-skin-sam .yui-panel-container.shadow .underlay{position:absolute;top:2px;left:-3px;right:-3px;bottom:-3px;*top:4px;*left:-1px;*right:-1px;*bottom:-1px;_top:0;_left:0;_right:0;_bottom:0;_margin-top:3px;_margin-left:-1px;background-color:#000;opacity:.12;filter:alpha(opacity=12)}.yui-skin-sam .yui-dialog .ft{border-top:0;padding:0 10px 10px 10px;font-size:100%}.yui-skin-sam .yui-dialog .ft .button-group{display:block;text-align:right}.yui-skin-sam .yui-dialog .ft button.default{font-weight:bold}.yui-skin-sam .yui-dialog .ft span.default{border-color:#304369;background-position:0 -1400px}.yui-skin-sam .yui-dialog .ft span.default .first-child{border-color:#304369}.yui-skin-sam .yui-dialog .ft span.default button{color:#fff}.yui-skin-sam .yui-dialog .ft span.yui-button-disabled{background-position:0 -1500px;border-color:#ccc}.yui-skin-sam .yui-dialog .ft span.yui-button-disabled .first-child{border-color:#ccc}.yui-skin-sam .yui-dialog .ft span.yui-button-disabled button{color:#a6a6a6}.yui-skin-sam .yui-simple-dialog .bd .yui-icon{background:url(sprite.png) no-repeat 0 0;width:16px;height:16px;margin-right:10px;float:left}.yui-skin-sam .yui-simple-dialog .bd span.blckicon{background-position:0 -1100px}.yui-skin-sam .yui-simple-dialog .bd span.alrticon{background-position:0 -1050px}.yui-skin-sam .yui-simple-dialog .bd span.hlpicon{background-position:0 -1150px}.yui-skin-sam .yui-simple-dialog .bd span.infoicon{background-position:0 -1200px}.yui-skin-sam .yui-simple-dialog .bd span.warnicon{background-position:0 -1900px}.yui-skin-sam .yui-simple-dialog .bd span.tipicon{background-position:0 -1250px}.yui-skin-sam .yui-tt .bd{position:relative;top:0;left:0;z-index:1;color:#000;padding:2px 5px;border-color:#d4c237 #A6982b #a6982b #A6982B;border-width:1px;border-style:solid;background-color:#ffee69}.yui-skin-sam .yui-tt.show-scrollbars .bd{overflow:auto}.yui-skin-sam .yui-tt-shadow{top:2px;right:-3px;left:-3px;bottom:-3px;background-color:#000}.yui-skin-sam .yui-tt-shadow-visible{opacity:.12;filter:alpha(opacity=12)}
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -2,6 +2,6 @@
|
|||
Copyright (c) 2011, Yahoo! Inc. All rights reserved.
|
||||
Code licensed under the BSD License:
|
||||
http://developer.yahoo.com/yui/license.html
|
||||
version: 2.9.0
|
||||
version: 2.9.1
|
||||
*/
|
||||
.yui-crop{position:relative;}.yui-crop .yui-crop-mask{position:absolute;top:0;left:0;height:100%;width:100%;}.yui-crop .yui-resize{position:absolute;top:10px;left:10px;border:0;}.yui-crop .yui-crop-resize-mask{position:absolute;top:0;left:0;height:100%;width:100%;background-position:-10px -10px;overflow:hidden;}.yui-skin-sam .yui-crop .yui-crop-mask{background-color:#000;opacity:.5;filter:alpha(opacity=50);}.yui-skin-sam .yui-crop .yui-resize{border:1px dashed #fff;}
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -2,6 +2,6 @@
|
|||
Copyright (c) 2011, Yahoo! Inc. All rights reserved.
|
||||
Code licensed under the BSD License:
|
||||
http://developer.yahoo.com/yui/license.html
|
||||
version: 2.9.0
|
||||
version: 2.9.1
|
||||
*/
|
||||
.yui-skin-sam .yui-log{padding:1em;width:31em;background-color:#AAA;color:#000;border:1px solid black;font-family:monospace;font-size:77%;text-align:left;z-index:9000}.yui-skin-sam .yui-log-container{position:absolute;top:1em;right:1em}.yui-skin-sam .yui-log input{margin:0;padding:0;font-family:arial;font-size:100%;font-weight:normal}.yui-skin-sam .yui-log .yui-log-btns{position:relative;float:right;bottom:.25em}.yui-skin-sam .yui-log .yui-log-hd{margin-top:1em;padding:.5em;background-color:#575757}.yui-skin-sam .yui-log .yui-log-hd h4{margin:0;padding:0;font-size:108%;font-weight:bold;color:#FFF}.yui-skin-sam .yui-log .yui-log-bd{width:100%;height:20em;background-color:#FFF;border:1px solid gray;overflow:auto}.yui-skin-sam .yui-log p{margin:1px;padding:.1em}.yui-skin-sam .yui-log pre{margin:0;padding:0}.yui-skin-sam .yui-log pre.yui-log-verbose{white-space:pre-wrap;white-space:-moz-pre-wrap!important;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word}.yui-skin-sam .yui-log .yui-log-ft{margin-top:.5em}.yui-skin-sam .yui-log .yui-log-ft .yui-log-sourcefilters{width:100%;border-top:1px solid #575757;margin-top:.75em;padding-top:.75em}.yui-skin-sam .yui-log .yui-log-filtergrp{margin-right:.5em}.yui-skin-sam .yui-log .info{background-color:#a7cc25}.yui-skin-sam .yui-log .warn{background-color:#f58516}.yui-skin-sam .yui-log .error{background-color:#e32f0b}.yui-skin-sam .yui-log .time{background-color:#a6c9d7}.yui-skin-sam .yui-log .window{background-color:#f2e886}
|
||||
|
|
|
@ -2,6 +2,6 @@
|
|||
Copyright (c) 2011, Yahoo! Inc. All rights reserved.
|
||||
Code licensed under the BSD License:
|
||||
http://developer.yahoo.com/yui/license.html
|
||||
version: 2.9.0
|
||||
version: 2.9.1
|
||||
*/
|
||||
.yuimenu{top:-999em;left:-999em;}.yuimenubar{position:static;}.yuimenu .yuimenu,.yuimenubar .yuimenu{position:absolute;}.yuimenubar li,.yuimenu li{list-style-type:none;}.yuimenubar ul,.yuimenu ul,.yuimenubar li,.yuimenu li,.yuimenu h6,.yuimenubar h6{margin:0;padding:0;}.yuimenuitemlabel,.yuimenubaritemlabel{text-align:left;white-space:nowrap;}.yuimenubar ul{*zoom:1;}.yuimenubar .yuimenu ul{*zoom:normal;}.yuimenubar>.bd>ul:after{content:".";display:block;clear:both;visibility:hidden;height:0;line-height:0;}.yuimenubaritem{float:left;}.yuimenubaritemlabel,.yuimenuitemlabel{display:block;}.yuimenuitemlabel .helptext{font-style:normal;display:block;margin:-1em 0 0 10em;}.yui-menu-shadow{position:absolute;visibility:hidden;z-index:-1;}.yui-menu-shadow-visible{top:2px;right:-3px;left:-3px;bottom:-3px;visibility:visible;}.hide-scrollbars *{overflow:hidden;}.hide-scrollbars select{display:none;}.yuimenu.show-scrollbars,.yuimenubar.show-scrollbars{overflow:visible;}.yuimenu.hide-scrollbars .yui-menu-shadow,.yuimenubar.hide-scrollbars .yui-menu-shadow{overflow:hidden;}.yuimenu.show-scrollbars .yui-menu-shadow,.yuimenubar.show-scrollbars .yui-menu-shadow{overflow:auto;}.yui-overlay.yui-force-redraw{margin-bottom:1px;}.yui-skin-sam .yuimenubar{font-size:93%;line-height:2;*line-height:1.9;border:solid 1px #808080;background:url(sprite.png) repeat-x 0 0;}.yui-skin-sam .yuimenubarnav .yuimenubaritem{border-right:solid 1px #ccc;}.yui-skin-sam .yuimenubaritemlabel{padding:0 10px;color:#000;text-decoration:none;cursor:default;border-style:solid;border-color:#808080;border-width:1px 0;*position:relative;margin:-1px 0;}.yui-skin-sam .yuimenubaritemlabel:visited{color:#000;}.yui-skin-sam .yuimenubarnav .yuimenubaritemlabel{padding-right:20px;*display:inline-block;}.yui-skin-sam .yuimenubarnav .yuimenubaritemlabel-hassubmenu{background:url(menubaritem_submenuindicator.png) right center no-repeat;}.yui-skin-sam .yuimenubaritem-selected{background:url(sprite.png) repeat-x 0 -1700px;}.yui-skin-sam .yuimenubaritemlabel-selected{border-color:#7D98B8;}.yui-skin-sam .yuimenubarnav .yuimenubaritemlabel-selected{border-left-width:1px;margin-left:-1px;*left:-1px;}.yui-skin-sam .yuimenubaritemlabel-disabled,.yui-skin-sam .yuimenubaritemlabel-disabled:visited{cursor:default;color:#A6A6A6;}.yui-skin-sam .yuimenubarnav .yuimenubaritemlabel-hassubmenu-disabled{background-image:url(menubaritem_submenuindicator_disabled.png);}.yui-skin-sam .yuimenu{font-size:93%;line-height:1.5;*line-height:1.45;}.yui-skin-sam .yuimenubar .yuimenu,.yui-skin-sam .yuimenu .yuimenu{font-size:100%;}.yui-skin-sam .yuimenu .bd{*zoom:1;_zoom:normal;border:solid 1px #808080;background-color:#fff;}.yui-skin-sam .yuimenu .yuimenu .bd{*zoom:normal;}.yui-skin-sam .yuimenu ul{padding:3px 0;border-width:1px 0 0 0;border-color:#ccc;border-style:solid;}.yui-skin-sam .yuimenu ul.first-of-type{border-width:0;}.yui-skin-sam .yuimenu h6{font-weight:bold;border-style:solid;border-color:#ccc;border-width:1px 0 0 0;color:#a4a4a4;padding:3px 10px 0 10px;}.yui-skin-sam .yuimenu ul.hastitle,.yui-skin-sam .yuimenu h6.first-of-type{border-width:0;}.yui-skin-sam .yuimenu .yui-menu-body-scrolled{border-color:#ccc #808080;overflow:hidden;}.yui-skin-sam .yuimenu .topscrollbar,.yui-skin-sam .yuimenu .bottomscrollbar{height:16px;border:solid 1px #808080;background:#fff url(sprite.png) no-repeat 0 0;}.yui-skin-sam .yuimenu .topscrollbar{border-bottom-width:0;background-position:center -950px;}.yui-skin-sam .yuimenu .topscrollbar_disabled{background-position:center -975px;}.yui-skin-sam .yuimenu .bottomscrollbar{border-top-width:0;background-position:center -850px;}.yui-skin-sam .yuimenu .bottomscrollbar_disabled{background-position:center -875px;}.yui-skin-sam .yuimenuitem{_border-bottom:solid 1px #fff;}.yui-skin-sam .yuimenuitemlabel{padding:0 20px;color:#000;text-decoration:none;cursor:default;}.yui-skin-sam .yuimenuitemlabel:visited{color:#000;}.yui-skin-sam .yuimenuitemlabel .helptext{margin-top:-1.5em;*margin-top:-1.45em;}.yui-skin-sam .yuimenuitem-hassubmenu{background-image:url(menuitem_submenuindicator.png);background-position:right center;background-repeat:no-repeat;}.yui-skin-sam .yuimenuitem-checked{background-image:url(menuitem_checkbox.png);background-position:left center;background-repeat:no-repeat;}.yui-skin-sam .yui-menu-shadow-visible{background-color:#000;opacity:.12;filter:alpha(opacity=12);}.yui-skin-sam .yuimenuitem-selected{background-color:#B3D4FF;}.yui-skin-sam .yuimenuitemlabel-disabled,.yui-skin-sam .yuimenuitemlabel-disabled:visited{cursor:default;color:#A6A6A6;}.yui-skin-sam .yuimenuitem-hassubmenu-disabled{background-image:url(menuitem_submenuindicator_disabled.png);}.yui-skin-sam .yuimenuitem-checked-disabled{background-image:url(menuitem_checkbox_disabled.png);}
|
||||
|
|
|
@ -2,6 +2,6 @@
|
|||
Copyright (c) 2011, Yahoo! Inc. All rights reserved.
|
||||
Code licensed under the BSD License:
|
||||
http://developer.yahoo.com/yui/license.html
|
||||
version: 2.9.0
|
||||
version: 2.9.1
|
||||
*/
|
||||
.yui-skin-sam .yui-pg-container{display:block;margin:6px 0;white-space:nowrap}.yui-skin-sam .yui-pg-first,.yui-skin-sam .yui-pg-previous,.yui-skin-sam .yui-pg-next,.yui-skin-sam .yui-pg-last,.yui-skin-sam .yui-pg-current,.yui-skin-sam .yui-pg-pages,.yui-skin-sam .yui-pg-page{display:inline-block;font-family:arial,helvetica,clean,sans-serif;padding:3px 6px;zoom:1}.yui-skin-sam .yui-pg-pages{padding:0}.yui-skin-sam .yui-pg-current{padding:3px 0}.yui-skin-sam a.yui-pg-first:link,.yui-skin-sam a.yui-pg-first:visited,.yui-skin-sam a.yui-pg-first:active,.yui-skin-sam a.yui-pg-first:hover,.yui-skin-sam a.yui-pg-previous:link,.yui-skin-sam a.yui-pg-previous:visited,.yui-skin-sam a.yui-pg-previous:active,.yui-skin-sam a.yui-pg-previous:hover,.yui-skin-sam a.yui-pg-next:link,.yui-skin-sam a.yui-pg-next:visited,.yui-skin-sam a.yui-pg-next:active,.yui-skin-sam a.yui-pg-next:hover,.yui-skin-sam a.yui-pg-last:link,.yui-skin-sam a.yui-pg-last:visited,.yui-skin-sam a.yui-pg-last:active,.yui-skin-sam a.yui-pg-last:hover,.yui-skin-sam a.yui-pg-page:link,.yui-skin-sam a.yui-pg-page:visited,.yui-skin-sam a.yui-pg-page:active,.yui-skin-sam a.yui-pg-page:hover{color:#06c;text-decoration:underline;outline:0}.yui-skin-sam span.yui-pg-first,.yui-skin-sam span.yui-pg-previous,.yui-skin-sam span.yui-pg-next,.yui-skin-sam span.yui-pg-last{color:#a6a6a6}.yui-skin-sam .yui-pg-page{background-color:#fff;border:1px solid #cbcbcb;padding:2px 6px;text-decoration:none}.yui-skin-sam .yui-pg-current-page{background-color:transparent;border:0;font-weight:bold;padding:3px 6px}.yui-skin-sam .yui-pg-page{margin-left:1px;margin-right:1px}.yui-skin-sam .yui-pg-first,.yui-skin-sam .yui-pg-previous{padding-left:0}.yui-skin-sam .yui-pg-next,.yui-skin-sam .yui-pg-last{padding-right:0}.yui-skin-sam .yui-pg-current,.yui-skin-sam .yui-pg-rpp-options{margin-left:1em;margin-right:1em}
|
||||
|
|
|
@ -2,6 +2,6 @@
|
|||
Copyright (c) 2011, Yahoo! Inc. All rights reserved.
|
||||
Code licensed under the BSD License:
|
||||
http://developer.yahoo.com/yui/license.html
|
||||
version: 2.9.0
|
||||
version: 2.9.1
|
||||
*/
|
||||
.yui-skin-sam .yui-pv{background-color:#4a4a4a;font-family:arial;position:relative;width:99%;z-index:1000;margin-bottom:1em;overflow:hidden;}.yui-skin-sam .yui-pv .hd{background:url(header_background.png) repeat-x;min-height:30px;overflow:hidden;zoom:1;padding:2px 0;}.yui-skin-sam .yui-pv .hd h4{padding:8px 10px;margin:0;font:bold 14px arial;color:#fff;}.yui-skin-sam .yui-pv .hd a{background:#3f6bc3;font:bold 11px arial;color:#fff;padding:4px;margin:3px 10px 0 0;border:1px solid #3f567d;cursor:pointer;display:block;float:right;}.yui-skin-sam .yui-pv .hd span{display:none;}.yui-skin-sam .yui-pv .hd span.yui-pv-busy{height:18px;width:18px;background:url(wait.gif) no-repeat;overflow:hidden;display:block;float:right;margin:4px 10px 0 0;}.yui-skin-sam .yui-pv .hd:after,.yui-pv .bd:after,.yui-skin-sam .yui-pv-chartlegend dl:after{content:'.';visibility:hidden;clear:left;height:0;display:block;}.yui-skin-sam .yui-pv .bd{position:relative;zoom:1;overflow-x:auto;overflow-y:hidden;}.yui-skin-sam .yui-pv .yui-pv-table{padding:0 10px;margin:5px 0 10px 0;}.yui-skin-sam .yui-pv .yui-pv-table .yui-dt-bd td{color:#eeee5c;font:12px arial;}.yui-skin-sam .yui-pv .yui-pv-table tr.yui-dt-odd{background:#929292;}.yui-skin-sam .yui-pv .yui-pv-table tr.yui-dt-even{background:#58637a;}.yui-skin-sam .yui-pv .yui-pv-table tr.yui-dt-even td.yui-dt-asc,.yui-skin-sam .yui-pv .yui-pv-table tr.yui-dt-even td.yui-dt-desc{background:#384970;}.yui-skin-sam .yui-pv .yui-pv-table tr.yui-dt-odd td.yui-dt-asc,.yui-skin-sam .yui-pv .yui-pv-table tr.yui-dt-odd td.yui-dt-desc{background:#6F6E6E;}.yui-skin-sam .yui-pv .yui-pv-table .yui-dt-hd th{background-image:none;background:#2E2D2D;}.yui-skin-sam .yui-pv th.yui-dt-asc .yui-dt-liner{background:transparent url(asc.gif) no-repeat scroll right center;}.yui-skin-sam .yui-pv th.yui-dt-desc .yui-dt-liner{background:transparent url(desc.gif) no-repeat scroll right center;}.yui-skin-sam .yui-pv .yui-pv-table .yui-dt-hd th a{color:#fff;font:bold 12px arial;}.yui-skin-sam .yui-pv .yui-pv-table .yui-dt-hd th.yui-dt-asc,.yui-skin-sam .yui-pv .yui-pv-table .yui-dt-hd th.yui-dt-desc{background:#333;}.yui-skin-sam .yui-pv-chartcontainer{padding:0 10px;}.yui-skin-sam .yui-pv-chart{height:250px;clear:right;margin:5px 0 0 0;color:#fff;}.yui-skin-sam .yui-pv-chartlegend div{float:right;margin:0 0 0 10px;_width:250px;}.yui-skin-sam .yui-pv-chartlegend dl{border:1px solid #999;padding:.2em 0 .2em .5em;zoom:1;margin:5px 0;}.yui-skin-sam .yui-pv-chartlegend dt{float:left;display:block;height:.7em;width:.7em;padding:0;}.yui-skin-sam .yui-pv-chartlegend dd{float:left;display:block;color:#fff;margin:0 1em 0 .5em;padding:0;font:11px arial;}.yui-skin-sam .yui-pv-minimized{height:35px;}.yui-skin-sam .yui-pv-minimized .bd{top:-3000px;}.yui-skin-sam .yui-pv-minimized .hd a.yui-pv-refresh{display:none;}
|
||||
|
|
|
@ -2,6 +2,6 @@
|
|||
Copyright (c) 2011, Yahoo! Inc. All rights reserved.
|
||||
Code licensed under the BSD License:
|
||||
http://developer.yahoo.com/yui/license.html
|
||||
version: 2.9.0
|
||||
version: 2.9.1
|
||||
*/
|
||||
.yui-pb-bar,.yui-pb-mask{width:100%;height:100%}.yui-pb{position:relative;top:0;left:0;width:200px;height:20px;padding:0;border:0;margin:0;text-align:left}.yui-pb-mask{position:absolute;top:0;left:0;z-index:2}.yui-pb-mask div{width:50%;height:50%;background-repeat:no-repeat;padding:0;position:absolute}.yui-pb-tl{background-position:top left}.yui-pb-tr{background-position:top right;left:50%}.yui-pb-bl{background-position:bottom left;top:50%}.yui-pb-br{background-position:bottom right;left:50%;top:50%}.yui-pb-bar{margin:0;position:absolute;left:0;top:0;z-index:1}.yui-pb-ltr .yui-pb-bar{_position:static}.yui-pb-rtl .yui-pb-bar{background-position:right}.yui-pb-btt .yui-pb-bar{background-position:left bottom}.yui-pb-bar{background-color:blue}.yui-pb{border:thin solid #808080}.yui-skin-sam .yui-pb{background-color:transparent;border:solid #808080;border-width:1px 0}.yui-skin-sam .yui-pb-rtl,.yui-skin-sam .yui-pb-ltr{background-image:url(back-h.png);background-repeat:repeat-x}.yui-skin-sam .yui-pb-ttb,.yui-skin-sam .yui-pb-btt{background-image:url(back-v.png);background-repeat:repeat-y}.yui-skin-sam .yui-pb-bar{background-color:transparent}.yui-skin-sam .yui-pb-ltr .yui-pb-bar,.yui-skin-sam .yui-pb-rtl .yui-pb-bar{background-image:url(bar-h.png);background-repeat:repeat-x}.yui-skin-sam .yui-pb-ttb .yui-pb-bar,.yui-skin-sam .yui-pb-btt .yui-pb-bar{background-image:url(bar-v.png);background-repeat:repeat-y}.yui-skin-sam .yui-pb-mask{border:solid #808080;border-width:0 1px;margin:0 -1px}.yui-skin-sam .yui-pb-caption{color:#000;text-align:center;margin:0 auto}.yui-skin-sam .yui-pb-range{color:#a6a6a6}
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -2,7 +2,7 @@
|
|||
Copyright (c) 2011, Yahoo! Inc. All rights reserved.
|
||||
Code licensed under the BSD License:
|
||||
http://developer.yahoo.com/yui/license.html
|
||||
version: 2.9.0
|
||||
version: 2.9.1
|
||||
*/
|
||||
.yui-skin-sam .yui-ac{position:relative;font-family:arial;font-size:100%}.yui-skin-sam .yui-ac-input{position:absolute;width:100%}.yui-skin-sam .yui-ac-container{position:absolute;top:1.6em;width:100%}.yui-skin-sam .yui-ac-content{position:absolute;width:100%;border:1px solid #808080;background:#fff;overflow:hidden;z-index:9050}.yui-skin-sam .yui-ac-shadow{position:absolute;margin:.3em;width:100%;background:#000;-moz-opacity:.10;opacity:.10;filter:alpha(opacity=10);z-index:9049}.yui-skin-sam .yui-ac iframe{opacity:0;filter:alpha(opacity=0);padding-right:.3em;padding-bottom:.3em}.yui-skin-sam .yui-ac-content ul{margin:0;padding:0;width:100%}.yui-skin-sam .yui-ac-content li{margin:0;padding:2px 5px;cursor:default;white-space:nowrap;list-style:none;zoom:1}.yui-skin-sam .yui-ac-content li.yui-ac-prehighlight{background:#b3d4ff}.yui-skin-sam .yui-ac-content li.yui-ac-highlight{background:#426fd9;color:#FFF}
|
||||
.yui-button{display:-moz-inline-box;display:inline-block;vertical-align:text-bottom;}.yui-button .first-child{display:block;*display:inline-block;}.yui-button button,.yui-button a{display:block;*display:inline-block;border:none;margin:0;}.yui-button button{background-color:transparent;*overflow:visible;cursor:pointer;}.yui-button a{text-decoration:none;}.yui-skin-sam .yui-button{border-width:1px 0;border-style:solid;border-color:#808080;background:url(sprite.png) repeat-x 0 0;margin:auto .25em;}.yui-skin-sam .yui-button .first-child{border-width:0 1px;border-style:solid;border-color:#808080;margin:0 -1px;_margin:0;}.yui-skin-sam .yui-button button,.yui-skin-sam .yui-button a,.yui-skin-sam .yui-button a:visited{padding:0 10px;font-size:93%;line-height:2;*line-height:1.7;min-height:2em;*min-height:auto;color:#000;}.yui-skin-sam .yui-button a{*line-height:1.875;*padding-bottom:1px;}.yui-skin-sam .yui-split-button button,.yui-skin-sam .yui-menu-button button{padding-right:20px;background-position:right center;background-repeat:no-repeat;}.yui-skin-sam .yui-menu-button button{background-image:url(menu-button-arrow.png);}.yui-skin-sam .yui-split-button button{background-image:url(split-button-arrow.png);}.yui-skin-sam .yui-button-focus{border-color:#7D98B8;background-position:0 -1300px;}.yui-skin-sam .yui-button-focus .first-child{border-color:#7D98B8;}.yui-skin-sam .yui-split-button-focus button{background-image:url(split-button-arrow-focus.png);}.yui-skin-sam .yui-button-hover{border-color:#7D98B8;background-position:0 -1300px;}.yui-skin-sam .yui-button-hover .first-child{border-color:#7D98B8;}.yui-skin-sam .yui-split-button-hover button{background-image:url(split-button-arrow-hover.png);}.yui-skin-sam .yui-button-active{border-color:#7D98B8;background-position:0 -1700px;}.yui-skin-sam .yui-button-active .first-child{border-color:#7D98B8;}.yui-skin-sam .yui-split-button-activeoption{border-color:#808080;background-position:0 0;}.yui-skin-sam .yui-split-button-activeoption .first-child{border-color:#808080;}.yui-skin-sam .yui-split-button-activeoption button{background-image:url(split-button-arrow-active.png);}.yui-skin-sam .yui-radio-button-checked,.yui-skin-sam .yui-checkbox-button-checked{border-color:#304369;background-position:0 -1400px;}.yui-skin-sam .yui-radio-button-checked .first-child,.yui-skin-sam .yui-checkbox-button-checked .first-child{border-color:#304369;}.yui-skin-sam .yui-radio-button-checked button,.yui-skin-sam .yui-checkbox-button-checked button{color:#fff;}.yui-skin-sam .yui-button-disabled{border-color:#ccc;background-position:0 -1500px;}.yui-skin-sam .yui-button-disabled .first-child{border-color:#ccc;}.yui-skin-sam .yui-button-disabled button,.yui-skin-sam .yui-button-disabled a,.yui-skin-sam .yui-button-disabled a:visited{color:#A6A6A6;cursor:default;}.yui-skin-sam .yui-menu-button-disabled button{background-image:url(menu-button-arrow-disabled.png);}.yui-skin-sam .yui-split-button-disabled button{background-image:url(split-button-arrow-disabled.png);}
|
||||
|
|
|
@ -2,6 +2,6 @@
|
|||
Copyright (c) 2011, Yahoo! Inc. All rights reserved.
|
||||
Code licensed under the BSD License:
|
||||
http://developer.yahoo.com/yui/license.html
|
||||
version: 2.9.0
|
||||
version: 2.9.1
|
||||
*/
|
||||
.yui-h-slider,.yui-v-slider,.yui-region-slider{position:relative;}.yui-h-slider .yui-slider-thumb,.yui-v-slider .yui-slider-thumb,.yui-region-slider .yui-slider-thumb{position:absolute;cursor:default;}.yui-skin-sam .yui-h-slider{background:url(bg-h.gif) no-repeat 5px 0;height:28px;width:228px;}.yui-skin-sam .yui-h-slider .yui-slider-thumb{top:4px;}.yui-skin-sam .yui-v-slider{background:url(bg-v.gif) no-repeat 12px 0;height:228px;width:48px;}.yui-skin-sam .yui-region-slider{height:228px;width:228px;}
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -2,6 +2,6 @@
|
|||
Copyright (c) 2011, Yahoo! Inc. All rights reserved.
|
||||
Code licensed under the BSD License:
|
||||
http://developer.yahoo.com/yui/license.html
|
||||
version: 2.9.0
|
||||
version: 2.9.1
|
||||
*/
|
||||
table.ygtvtable{margin-bottom:0;border:0;border-collapse:collapse}td.ygtvcell{border:0;padding:0}a.ygtvspacer{text-decoration:none;outline-style:none;display:block}.ygtvtn{width:18px;height:22px;background:url(treeview-sprite.gif) 0 -5600px no-repeat;cursor:pointer}.ygtvtm{width:18px;height:22px;cursor:pointer;background:url(treeview-sprite.gif) 0 -4000px no-repeat}.ygtvtmh,.ygtvtmhh{width:18px;height:22px;cursor:pointer;background:url(treeview-sprite.gif) 0 -4800px no-repeat}.ygtvtp{width:18px;height:22px;cursor:pointer;background:url(treeview-sprite.gif) 0 -6400px no-repeat}.ygtvtph,.ygtvtphh{width:18px;height:22px;cursor:pointer;background:url(treeview-sprite.gif) 0 -7200px no-repeat}.ygtvln{width:18px;height:22px;background:url(treeview-sprite.gif) 0 -1600px no-repeat;cursor:pointer}.ygtvlm{width:18px;height:22px;cursor:pointer;background:url(treeview-sprite.gif) 0 0 no-repeat}.ygtvlmh,.ygtvlmhh{width:18px;height:22px;cursor:pointer;background:url(treeview-sprite.gif) 0 -800px no-repeat}.ygtvlp{width:18px;height:22px;cursor:pointer;background:url(treeview-sprite.gif) 0 -2400px no-repeat}.ygtvlph,.ygtvlphh{width:18px;height:22px;cursor:pointer;background:url(treeview-sprite.gif) 0 -3200px no-repeat;cursor:pointer}.ygtvloading{width:18px;height:22px;background:url(treeview-loading.gif) 0 0 no-repeat}.ygtvdepthcell{width:18px;height:22px;background:url(treeview-sprite.gif) 0 -8000px no-repeat}.ygtvblankdepthcell{width:18px;height:22px}* html .ygtvchildren{height:2%}.ygtvlabel,.ygtvlabel:link,.ygtvlabel:visited,.ygtvlabel:hover{margin-left:2px;text-decoration:none;background-color:white;cursor:pointer}.ygtvcontent{cursor:default}.ygtvspacer{height:22px;width:18px}.ygtvfocus{background-color:#c0e0e0;border:0}.ygtvfocus .ygtvlabel,.ygtvfocus .ygtvlabel:link,.ygtvfocus .ygtvlabel:visited,.ygtvfocus .ygtvlabel:hover{background-color:#c0e0e0}.ygtvfocus a{outline-style:none}.ygtvok{width:18px;height:22px;background:url(treeview-sprite.gif) 0 -8800px no-repeat}.ygtvok:hover{background:url(treeview-sprite.gif) 0 -8844px no-repeat}.ygtvcancel{width:18px;height:22px;background:url(treeview-sprite.gif) 0 -8822px no-repeat}.ygtvcancel:hover{background:url(treeview-sprite.gif) 0 -8866px no-repeat}.ygtv-label-editor{background-color:#f2f2f2;border:1px solid silver;position:absolute;display:none;overflow:hidden;margin:auto;z-index:9000}.ygtv-edit-TextNode{width:190px}.ygtv-edit-TextNode .ygtvcancel,.ygtv-edit-TextNode .ygtvok{border:0}.ygtv-edit-TextNode .ygtv-button-container{float:right}.ygtv-edit-TextNode .ygtv-input input{width:140px}.ygtv-edit-DateNode .ygtvcancel{border:0}.ygtv-edit-DateNode .ygtvok{display:none}.ygtv-edit-DateNode .ygtv-button-container{text-align:right;margin:auto}.ygtv-highlight .ygtv-highlight1,.ygtv-highlight .ygtv-highlight1 .ygtvlabel{background-color:blue;color:white}.ygtv-highlight .ygtv-highlight2,.ygtv-highlight .ygtv-highlight2 .ygtvlabel{background-color:silver}.ygtv-highlight .ygtv-highlight0 .ygtvfocus .ygtvlabel,.ygtv-highlight .ygtv-highlight1 .ygtvfocus .ygtvlabel,.ygtv-highlight .ygtv-highlight2 .ygtvfocus .ygtvlabel{background-color:#c0e0e0}.ygtv-highlight .ygtvcontent{padding-right:1em}.ygtv-checkbox .ygtv-highlight0 .ygtvcontent{padding-left:1em;background:url(check0.gif) no-repeat}.ygtv-checkbox .ygtv-highlight0 .ygtvfocus.ygtvcontent,.ygtv-checkbox .ygtv-highlight1 .ygtvfocus.ygtvcontent,.ygtv-checkbox .ygtv-highlight2 .ygtvfocus.ygtvcontent{background-color:#c0e0e0}.ygtv-checkbox .ygtv-highlight1 .ygtvcontent{padding-left:1em;background:url(check1.gif) no-repeat}.ygtv-checkbox .ygtv-highlight2 .ygtvcontent{padding-left:1em;background:url(check2.gif) no-repeat}
|
||||
|
|
|
@ -2,6 +2,6 @@
|
|||
Copyright (c) 2011, Yahoo! Inc. All rights reserved.
|
||||
Code licensed under the BSD License:
|
||||
http://developer.yahoo.com/yui/license.html
|
||||
version: 2.9.0
|
||||
version: 2.9.1
|
||||
*/
|
||||
|
||||
|
|
|
@ -2,6 +2,6 @@
|
|||
Copyright (c) 2011, Yahoo! Inc. All rights reserved.
|
||||
Code licensed under the BSD License:
|
||||
http://developer.yahoo.com/yui/license.html
|
||||
version: 2.9.0
|
||||
version: 2.9.1
|
||||
*/
|
||||
/* This file intentionally left blank */
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
Copyright (c) 2011, Yahoo! Inc. All rights reserved.
|
||||
Code licensed under the BSD License:
|
||||
http://developer.yahoo.com/yui/license.html
|
||||
version: 2.9.0
|
||||
version: 2.9.1
|
||||
*/
|
||||
/* styles for entire widget */
|
||||
.yui-skin-sam .yui-ac {
|
||||
|
|
|
@ -2,6 +2,6 @@
|
|||
Copyright (c) 2011, Yahoo! Inc. All rights reserved.
|
||||
Code licensed under the BSD License:
|
||||
http://developer.yahoo.com/yui/license.html
|
||||
version: 2.9.0
|
||||
version: 2.9.1
|
||||
*/
|
||||
.yui-skin-sam .yui-ac{position:relative;font-family:arial;font-size:100%}.yui-skin-sam .yui-ac-input{position:absolute;width:100%}.yui-skin-sam .yui-ac-container{position:absolute;top:1.6em;width:100%}.yui-skin-sam .yui-ac-content{position:absolute;width:100%;border:1px solid #808080;background:#fff;overflow:hidden;z-index:9050}.yui-skin-sam .yui-ac-shadow{position:absolute;margin:.3em;width:100%;background:#000;-moz-opacity:.10;opacity:.10;filter:alpha(opacity=10);z-index:9049}.yui-skin-sam .yui-ac iframe{opacity:0;filter:alpha(opacity=0);padding-right:.3em;padding-bottom:.3em}.yui-skin-sam .yui-ac-content ul{margin:0;padding:0;width:100%}.yui-skin-sam .yui-ac-content li{margin:0;padding:2px 5px;cursor:default;white-space:nowrap;list-style:none;zoom:1}.yui-skin-sam .yui-ac-content li.yui-ac-prehighlight{background:#b3d4ff}.yui-skin-sam .yui-ac-content li.yui-ac-highlight{background:#426fd9;color:#FFF}
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -2,7 +2,7 @@
|
|||
Copyright (c) 2011, Yahoo! Inc. All rights reserved.
|
||||
Code licensed under the BSD License:
|
||||
http://developer.yahoo.com/yui/license.html
|
||||
version: 2.9.0
|
||||
version: 2.9.1
|
||||
*/
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
|
@ -3020,4 +3020,4 @@ YAHOO.widget.AutoComplete._cloneObject = function(o) {
|
|||
|
||||
|
||||
|
||||
YAHOO.register("autocomplete", YAHOO.widget.AutoComplete, {version: "2.9.0", build: "2800"});
|
||||
YAHOO.register("autocomplete", YAHOO.widget.AutoComplete, {version: "2.9.1", build: "2800"});
|
||||
|
|
|
@ -2,6 +2,6 @@
|
|||
Copyright (c) 2011, Yahoo! Inc. All rights reserved.
|
||||
Code licensed under the BSD License:
|
||||
http://developer.yahoo.com/yui/license.html
|
||||
version: 2.9.0
|
||||
version: 2.9.1
|
||||
*/
|
||||
body{margin:10px}h1{font-size:138.5%}h2{font-size:123.1%}h3{font-size:108%}h1,h2,h3{margin:1em 0}h1,h2,h3,h4,h5,h6,strong,dt{font-weight:bold}optgroup{font-weight:normal}abbr,acronym{border-bottom:1px dotted #000;cursor:help}em{font-style:italic}del{text-decoration:line-through}blockquote,ul,ol,dl{margin:1em}ol,ul,dl{margin-left:2em}ol{list-style:decimal outside}ul{list-style:disc outside}dl dd{margin-left:1em}th,td{border:1px solid #000;padding:.5em}th{font-weight:bold;text-align:center}caption{margin-bottom:.5em;text-align:center}sup{vertical-align:super}sub{vertical-align:sub}p,fieldset,table,pre{margin-bottom:1em}button,input[type="checkbox"],input[type="radio"],input[type="reset"],input[type="submit"]{padding:1px}img{-ms-interpolation-mode:bicubic}
|
|
@ -2,7 +2,7 @@
|
|||
Copyright (c) 2011, Yahoo! Inc. All rights reserved.
|
||||
Code licensed under the BSD License:
|
||||
http://developer.yahoo.com/yui/license.html
|
||||
version: 2.9.0
|
||||
version: 2.9.1
|
||||
*/
|
||||
/**
|
||||
* YUI Base
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
Copyright (c) 2011, Yahoo! Inc. All rights reserved.
|
||||
Code licensed under the BSD License:
|
||||
http://developer.yahoo.com/yui/license.html
|
||||
version: 2.9.0
|
||||
version: 2.9.1
|
||||
*/
|
||||
.yui-button {
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
Copyright (c) 2011, Yahoo! Inc. All rights reserved.
|
||||
Code licensed under the BSD License:
|
||||
http://developer.yahoo.com/yui/license.html
|
||||
version: 2.9.0
|
||||
version: 2.9.1
|
||||
*/
|
||||
.yui-skin-sam .yui-button {
|
||||
|
||||
|
|
|
@ -2,6 +2,6 @@
|
|||
Copyright (c) 2011, Yahoo! Inc. All rights reserved.
|
||||
Code licensed under the BSD License:
|
||||
http://developer.yahoo.com/yui/license.html
|
||||
version: 2.9.0
|
||||
version: 2.9.1
|
||||
*/
|
||||
.yui-button{display:-moz-inline-box;display:inline-block;vertical-align:text-bottom;}.yui-button .first-child{display:block;*display:inline-block;}.yui-button button,.yui-button a{display:block;*display:inline-block;border:none;margin:0;}.yui-button button{background-color:transparent;*overflow:visible;cursor:pointer;}.yui-button a{text-decoration:none;}.yui-skin-sam .yui-button{border-width:1px 0;border-style:solid;border-color:#808080;background:url(../../../../assets/skins/sam/sprite.png) repeat-x 0 0;margin:auto .25em;}.yui-skin-sam .yui-button .first-child{border-width:0 1px;border-style:solid;border-color:#808080;margin:0 -1px;_margin:0;}.yui-skin-sam .yui-button button,.yui-skin-sam .yui-button a,.yui-skin-sam .yui-button a:visited{padding:0 10px;font-size:93%;line-height:2;*line-height:1.7;min-height:2em;*min-height:auto;color:#000;}.yui-skin-sam .yui-button a{*line-height:1.875;*padding-bottom:1px;}.yui-skin-sam .yui-split-button button,.yui-skin-sam .yui-menu-button button{padding-right:20px;background-position:right center;background-repeat:no-repeat;}.yui-skin-sam .yui-menu-button button{background-image:url(menu-button-arrow.png);}.yui-skin-sam .yui-split-button button{background-image:url(split-button-arrow.png);}.yui-skin-sam .yui-button-focus{border-color:#7D98B8;background-position:0 -1300px;}.yui-skin-sam .yui-button-focus .first-child{border-color:#7D98B8;}.yui-skin-sam .yui-split-button-focus button{background-image:url(split-button-arrow-focus.png);}.yui-skin-sam .yui-button-hover{border-color:#7D98B8;background-position:0 -1300px;}.yui-skin-sam .yui-button-hover .first-child{border-color:#7D98B8;}.yui-skin-sam .yui-split-button-hover button{background-image:url(split-button-arrow-hover.png);}.yui-skin-sam .yui-button-active{border-color:#7D98B8;background-position:0 -1700px;}.yui-skin-sam .yui-button-active .first-child{border-color:#7D98B8;}.yui-skin-sam .yui-split-button-activeoption{border-color:#808080;background-position:0 0;}.yui-skin-sam .yui-split-button-activeoption .first-child{border-color:#808080;}.yui-skin-sam .yui-split-button-activeoption button{background-image:url(split-button-arrow-active.png);}.yui-skin-sam .yui-radio-button-checked,.yui-skin-sam .yui-checkbox-button-checked{border-color:#304369;background-position:0 -1400px;}.yui-skin-sam .yui-radio-button-checked .first-child,.yui-skin-sam .yui-checkbox-button-checked .first-child{border-color:#304369;}.yui-skin-sam .yui-radio-button-checked button,.yui-skin-sam .yui-checkbox-button-checked button{color:#fff;}.yui-skin-sam .yui-button-disabled{border-color:#ccc;background-position:0 -1500px;}.yui-skin-sam .yui-button-disabled .first-child{border-color:#ccc;}.yui-skin-sam .yui-button-disabled button,.yui-skin-sam .yui-button-disabled a,.yui-skin-sam .yui-button-disabled a:visited{color:#A6A6A6;cursor:default;}.yui-skin-sam .yui-menu-button-disabled button{background-image:url(menu-button-arrow-disabled.png);}.yui-skin-sam .yui-split-button-disabled button{background-image:url(split-button-arrow-disabled.png);}
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -2,7 +2,7 @@
|
|||
Copyright (c) 2011, Yahoo! Inc. All rights reserved.
|
||||
Code licensed under the BSD License:
|
||||
http://developer.yahoo.com/yui/license.html
|
||||
version: 2.9.0
|
||||
version: 2.9.1
|
||||
*/
|
||||
/**
|
||||
* @module button
|
||||
|
@ -4669,4 +4669,4 @@ version: 2.9.0
|
|||
});
|
||||
|
||||
})();
|
||||
YAHOO.register("button", YAHOO.widget.Button, {version: "2.9.0", build: "2800"});
|
||||
YAHOO.register("button", YAHOO.widget.Button, {version: "2.9.1", build: "2800"});
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
Copyright (c) 2011, Yahoo! Inc. All rights reserved.
|
||||
Code licensed under the BSD License:
|
||||
http://developer.yahoo.com/yui/license.html
|
||||
version: 2.9.0
|
||||
version: 2.9.1
|
||||
*/
|
||||
/**
|
||||
* CORE
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
Copyright (c) 2011, Yahoo! Inc. All rights reserved.
|
||||
Code licensed under the BSD License:
|
||||
http://developer.yahoo.com/yui/license.html
|
||||
version: 2.9.0
|
||||
version: 2.9.1
|
||||
*/
|
||||
.yui-calcontainer {
|
||||
position:relative;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
Copyright (c) 2011, Yahoo! Inc. All rights reserved.
|
||||
Code licensed under the BSD License:
|
||||
http://developer.yahoo.com/yui/license.html
|
||||
version: 2.9.0
|
||||
version: 2.9.1
|
||||
*/
|
||||
/**
|
||||
* SAM
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -2,7 +2,7 @@
|
|||
Copyright (c) 2011, Yahoo! Inc. All rights reserved.
|
||||
Code licensed under the BSD License:
|
||||
http://developer.yahoo.com/yui/license.html
|
||||
version: 2.9.0
|
||||
version: 2.9.1
|
||||
*/
|
||||
(function () {
|
||||
|
||||
|
@ -7387,4 +7387,4 @@ YAHOO.widget.CalendarNavigator.prototype = {
|
|||
__isMac : (navigator.userAgent.toLowerCase().indexOf("macintosh") != -1)
|
||||
|
||||
};
|
||||
YAHOO.register("calendar", YAHOO.widget.Calendar, {version: "2.9.0", build: "2800"});
|
||||
YAHOO.register("calendar", YAHOO.widget.Calendar, {version: "2.9.1", build: "2800"});
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
Copyright (c) 2011, Yahoo! Inc. All rights reserved.
|
||||
Code licensed under the BSD License:
|
||||
http://developer.yahoo.com/yui/license.html
|
||||
version: 2.9.0
|
||||
version: 2.9.1
|
||||
*/
|
||||
.yui-carousel {
|
||||
visibility: hidden;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
Copyright (c) 2011, Yahoo! Inc. All rights reserved.
|
||||
Code licensed under the BSD License:
|
||||
http://developer.yahoo.com/yui/license.html
|
||||
version: 2.9.0
|
||||
version: 2.9.1
|
||||
*/
|
||||
.yui-skin-sam .yui-carousel,
|
||||
.yui-skin-sam .yui-carousel-vertical {
|
||||
|
|
|
@ -2,6 +2,6 @@
|
|||
Copyright (c) 2011, Yahoo! Inc. All rights reserved.
|
||||
Code licensed under the BSD License:
|
||||
http://developer.yahoo.com/yui/license.html
|
||||
version: 2.9.0
|
||||
version: 2.9.1
|
||||
*/
|
||||
.yui-carousel{visibility:hidden;overflow:hidden;position:relative;text-align:left;zoom:1;}.yui-carousel.yui-carousel-visible{visibility:visible;}.yui-carousel-content{overflow:hidden;position:relative;text-align:center;}.yui-carousel-element li{border:1px solid #ccc;list-style:none;margin:1px;overflow:hidden;padding:0;position:absolute;text-align:center;}.yui-carousel-vertical .yui-carousel-element li{display:block;float:none;}.yui-log .carousel{background:#f2e886;}.yui-carousel-nav{zoom:1;}.yui-carousel-nav:after{content:".";display:block;height:0;clear:both;visibility:hidden;}.yui-carousel-button-focus{outline:1px dotted #000;}.yui-carousel-min-width{min-width:115px;}.yui-carousel-element{overflow:hidden;position:relative;margin:0 auto;padding:0;text-align:left;*margin:0;}.yui-carousel-horizontal .yui-carousel-element{width:320000px;}.yui-carousel-vertical .yui-carousel-element{height:320000px;}.yui-skin-sam .yui-carousel-nav select{position:static;}.yui-carousel .yui-carousel-item-selected{border:1px dashed #000;margin:1px;}.yui-skin-sam .yui-carousel,.yui-skin-sam .yui-carousel-vertical{border:1px solid #808080;}.yui-skin-sam .yui-carousel-nav{background:url(../../../../assets/skins/sam/sprite.png) repeat-x 0 0;padding:3px;text-align:right;}.yui-skin-sam .yui-carousel-button{background:url(../../../../assets/skins/sam/sprite.png) no-repeat 0 -600px;float:right;height:19px;margin:5px;overflow:hidden;width:40px;}.yui-skin-sam .yui-carousel-vertical .yui-carousel-button{background-position:0 -800px;}.yui-skin-sam .yui-carousel-button-disabled{background-position:0 -2000px;}.yui-skin-sam .yui-carousel-vertical .yui-carousel-button-disabled{background-position:0 -2100px;}.yui-skin-sam .yui-carousel-button input,.yui-skin-sam .yui-carousel-button button{background-color:transparent;border:0;cursor:pointer;display:block;height:44px;margin:-2px 0 0 -2px;padding:0 0 0 50px;}.yui-skin-sam span.yui-carousel-first-button{background-position:0 -550px;margin-left:-100px;margin-right:50px;*margin:5px 5px 5px -90px;}.yui-skin-sam .yui-carousel-vertical span.yui-carousel-first-button{background-position:0 -750px;}.yui-skin-sam span.yui-carousel-first-button-disabled{background-position:0 -1950px;}.yui-skin-sam .yui-carousel-vertical span.yui-carousel-first-button-disabled{background-position:0 -2050px;}.yui-skin-sam .yui-carousel-nav ul{float:right;height:19px;margin:0;margin-left:-220px;margin-right:100px;*margin-left:-160px;*margin-right:0;padding:0;}.yui-skin-sam .yui-carousel-min-width .yui-carousel-nav ul{*margin-left:-170px;}.yui-skin-sam .yui-carousel-nav select{position:relative;*right:50px;top:4px;}.yui-skin-sam .yui-carousel-vertical .yui-carousel-nav select{position:static;}.yui-skin-sam .yui-carousel-vertical .yui-carousel-nav ul,.yui-skin-sam .yui-carousel-vertical .yui-carousel-nav select{float:none;margin:0;*zoom:1;}.yui-skin-sam .yui-carousel-nav ul li{background:url(../../../../assets/skins/sam/sprite.png) no-repeat 0 -650px;cursor:pointer;float:left;height:9px;list-style:none;margin:10px 0 0 5px;overflow:hidden;padding:0;width:9px;}.yui-skin-sam .yui-carousel-nav ul:after{content:".";display:block;height:0;clear:both;visibility:hidden;}.yui-skin-sam .yui-carousel-nav ul li a{display:block;width:100%;height:100%;text-indent:-10000px;text-align:left;overflow:hidden;}.yui-skin-sam .yui-carousel-nav ul li.yui-carousel-nav-page-focus{outline:1px dotted #000;}.yui-skin-sam .yui-carousel-nav ul li.yui-carousel-nav-page-selected{background-position:0 -700px;}.yui-skin-sam .yui-carousel-item-loading{background:url(ajax-loader.gif) no-repeat 50% 50%;position:absolute;text-indent:-150px;}
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -2,7 +2,7 @@
|
|||
Copyright (c) 2011, Yahoo! Inc. All rights reserved.
|
||||
Code licensed under the BSD License:
|
||||
http://developer.yahoo.com/yui/license.html
|
||||
version: 2.9.0
|
||||
version: 2.9.1
|
||||
*/
|
||||
/**
|
||||
* The Carousel module provides a widget for browsing among a set of like
|
||||
|
@ -4472,5 +4472,5 @@ version: 2.9.0
|
|||
;; indent-tabs-mode: nil **
|
||||
;; End: **
|
||||
*/
|
||||
YAHOO.register("carousel", YAHOO.widget.Carousel, {version: "2.9.0", build: "2800"});
|
||||
YAHOO.register("carousel", YAHOO.widget.Carousel, {version: "2.9.0", build: "2800"});
|
||||
YAHOO.register("carousel", YAHOO.widget.Carousel, {version: "2.9.1", build: "2800"});
|
||||
YAHOO.register("carousel", YAHOO.widget.Carousel, {version: "2.9.1", build: "2800"});
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
Copyright (c) 2011, Yahoo! Inc. All rights reserved.
|
||||
Code licensed under the BSD License:
|
||||
http://developer.yahoo.com/yui/license.html
|
||||
version: 2.9.0
|
||||
version: 2.9.1
|
||||
*/
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
Copyright (c) 2011, Yahoo! Inc. All rights reserved.
|
||||
Code licensed under the BSD License:
|
||||
http://developer.yahoo.com/yui/license.html
|
||||
version: 2.9.0
|
||||
version: 2.9.1
|
||||
*/
|
||||
|
||||
.yui-picker-panel {
|
||||
|
|
|
@ -2,6 +2,6 @@
|
|||
Copyright (c) 2011, Yahoo! Inc. All rights reserved.
|
||||
Code licensed under the BSD License:
|
||||
http://developer.yahoo.com/yui/license.html
|
||||
version: 2.9.0
|
||||
version: 2.9.1
|
||||
*/
|
||||
.yui-picker-panel{background:#e3e3e3;border-color:#888}.yui-picker-panel .hd{background-color:#ccc;font-size:100%;line-height:100%;border:1px solid #e3e3e3;font-weight:bold;overflow:hidden;padding:6px;color:#000}.yui-picker-panel .bd{background:#e8e8e8;margin:1px;height:200px}.yui-picker-panel .ft{background:#e8e8e8;margin:1px;padding:1px}.yui-picker{position:relative}.yui-picker-hue-thumb{cursor:default;width:18px;height:18px;top:-8px;left:-2px;z-index:9;position:absolute}.yui-picker-hue-bg{-moz-outline:0;outline:0 none;position:absolute;left:200px;height:183px;width:14px;background:url(hue_bg.png) no-repeat;top:4px}.yui-picker-bg{-moz-outline:0;outline:0 none;position:absolute;top:4px;left:4px;height:182px;width:182px;background-color:#F00;background-image:url(picker_mask.png)}*html .yui-picker-bg{background-image:none;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='picker_mask.png',sizingMethod='scale')}.yui-picker-mask{position:absolute;z-index:1;top:0;left:0}.yui-picker-thumb{cursor:default;width:11px;height:11px;z-index:9;position:absolute;top:-4px;left:-4px}.yui-picker-swatch{position:absolute;left:240px;top:4px;height:60px;width:55px;border:1px solid #888}.yui-picker-websafe-swatch{position:absolute;left:304px;top:4px;height:24px;width:24px;border:1px solid #888}.yui-picker-controls{position:absolute;top:72px;left:226px;font:1em monospace}.yui-picker-controls .hd{background:transparent;border-width:0!important}.yui-picker-controls .bd{height:100px;border-width:0!important}.yui-picker-controls ul{float:left;padding:0 2px 0 0;margin:0}.yui-picker-controls li{padding:2px;list-style:none;margin:0}.yui-picker-controls input{font-size:.85em;width:2.4em}.yui-picker-hex-controls{clear:both;padding:2px}.yui-picker-hex-controls input{width:4.6em}.yui-picker-controls a{font:1em arial,helvetica,clean,sans-serif;display:block;*display:inline-block;padding:0;color:#000}
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -2,7 +2,7 @@
|
|||
Copyright (c) 2011, Yahoo! Inc. All rights reserved.
|
||||
Code licensed under the BSD License:
|
||||
http://developer.yahoo.com/yui/license.html
|
||||
version: 2.9.0
|
||||
version: 2.9.1
|
||||
*/
|
||||
/**
|
||||
* Provides color conversion and validation utils
|
||||
|
@ -1761,4 +1761,4 @@ YAHOO.util.Color = function() {
|
|||
|
||||
YAHOO.widget.ColorPicker = ColorPicker;
|
||||
})();
|
||||
YAHOO.register("colorpicker", YAHOO.widget.ColorPicker, {version: "2.9.0", build: "2800"});
|
||||
YAHOO.register("colorpicker", YAHOO.widget.ColorPicker, {version: "2.9.1", build: "2800"});
|
||||
|
|
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue