|
diff -r /var/www/typo3_src-7.6.9/typo3/sysext/backend/Classes/Clipboard/Clipboard.php /var/www/typo3_src-7.6.10/typo3/sysext/backend/Classes/Clipboard/Clipboard.php
|
|
719d718
|
|
<
|
|
diff -r /var/www/typo3_src-7.6.9/typo3/sysext/backend/Classes/ContextMenu/Pagetree/ContextMenuDataProvider.php /var/www/typo3_src-7.6.10/typo3/sysext/backend/Classes/ContextMenu/Pagetree/ContextMenuDataProvider.php
|
|
67c67,84
|
|
< return array_merge($disableItems, $additionalItems);
|
|
---
|
|
> $disableItems = array_merge($disableItems, $additionalItems);
|
|
>
|
|
> // Further manipulation of disableItems array via hook
|
|
> // @internal: This is an internal hook for extension impexp only, this hook may change without further notice
|
|
> if (!empty($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['backend']['contextMenu']['disableItems'])
|
|
> && is_array($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['backend']['contextMenu']['disableItems'])
|
|
> ) {
|
|
> $hooks = $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['backend']['contextMenu']['disableItems'];
|
|
> foreach ($hooks as $hook) {
|
|
> $parameterArray = [
|
|
> 'disableItems' => &$disableItems,
|
|
> ];
|
|
> $null = null;
|
|
> GeneralUtility::callUserFunction($hook, $parameterArray, $null);
|
|
> }
|
|
> }
|
|
>
|
|
> return $disableItems;
|
|
diff -r /var/www/typo3_src-7.6.9/typo3/sysext/backend/Classes/Controller/BackendController.php /var/www/typo3_src-7.6.10/typo3/sysext/backend/Classes/Controller/BackendController.php
|
|
484c484
|
|
< 'refresh_login_title' => sprintf($lang->sL('LLL:EXT:lang/locallang_core.xlf:mess.refresh_login_title'), htmlspecialchars($this->getBackendUser()->user['username'])),
|
|
---
|
|
> 'refresh_login_title' => $lang->sL('LLL:EXT:lang/locallang_core.xlf:mess.refresh_login_title'),
|
|
diff -r /var/www/typo3_src-7.6.9/typo3/sysext/backend/Classes/Controller/ContentElement/ElementInformationController.php /var/www/typo3_src-7.6.10/typo3/sysext/backend/Classes/Controller/ContentElement/ElementInformationController.php
|
|
406,407c406,407
|
|
< <strong>' . htmlspecialchars($GLOBALS['BE_USER']->user['username']) . '</strong><br>
|
|
< ' . ($GLOBALS['BE_USER']->user['realName'] ? htmlspecialchars($GLOBALS['BE_USER']->user['realName']) : '') . '
|
|
---
|
|
> <strong>' . htmlspecialchars($creatorRecord['username']) . '</strong><br>
|
|
> ' . ($creatorRecord['realName'] ? htmlspecialchars($creatorRecord['realName']) : '') . '
|
|
diff -r /var/www/typo3_src-7.6.9/typo3/sysext/backend/Classes/Controller/ContentElement/NewContentElementController.php /var/www/typo3_src-7.6.10/typo3/sysext/backend/Classes/Controller/ContentElement/NewContentElementController.php
|
|
545c545
|
|
< if ($authModeDeny || $fN === 'CType' && in_array($fV, $removeItems[$fN]) || $isNotInKeepItems) {
|
|
---
|
|
> if ($authModeDeny || $fN === 'CType' && (in_array($fV, $removeItems[$fN]) || $isNotInKeepItems)) {
|
|
diff -r /var/www/typo3_src-7.6.9/typo3/sysext/backend/Classes/Controller/File/FileController.php /var/www/typo3_src-7.6.10/typo3/sysext/backend/Classes/Controller/File/FileController.php
|
|
166,167d165
|
|
< // Push errors to flash message queue, if there are any
|
|
< $this->fileProcessor->pushErrorMessagesToFlashMessageQueue();
|
|
186,187d183
|
|
< // Push errors to flash message queue, if there are any
|
|
< $this->fileProcessor->pushErrorMessagesToFlashMessageQueue();
|
|
diff -r /var/www/typo3_src-7.6.9/typo3/sysext/backend/Classes/Controller/FormInlineAjaxController.php /var/www/typo3_src-7.6.10/typo3/sysext/backend/Classes/Controller/FormInlineAjaxController.php
|
|
796a797,800
|
|
> if (!$this->backendUserHasUcInlineView($backendUser)) {
|
|
> return [];
|
|
> }
|
|
>
|
|
799c803
|
|
< $inlineView = array();
|
|
---
|
|
> $inlineView = [];
|
|
800a805
|
|
>
|
|
804a810,820
|
|
> * Method to check whether the backend user has the property inline view for the current IRRE item.
|
|
> * In existing or old IRRE items the attribute may not exist, then the unserialize will fail.
|
|
> *
|
|
> * @param BackendUserAuthentication $backendUser
|
|
> * @return bool
|
|
> */
|
|
> protected function backendUserHasUcInlineView(BackendUserAuthentication $backendUser) {
|
|
> return !empty($backendUser->uc['inlineView']);
|
|
> }
|
|
>
|
|
> /**
|
|
875,911c891
|
|
< // Substitute FlexForm addition and make parsing a bit easier
|
|
< $domObjectId = str_replace('---', ':', $domObjectId);
|
|
< // The starting pattern of an object identifier (e.g. "data-<firstPidValue>-<anything>)
|
|
< $pattern = '/^data' . '-' . '(?<firstPidValue>.+?)' . '-' . '(?<anything>.+)$/';
|
|
<
|
|
< $flexFormPath = [];
|
|
< // Will be checked against the FlexForm configuration as an additional safeguard
|
|
< $foreignTableName = '';
|
|
<
|
|
< if (preg_match($pattern, $domObjectId, $match)) {
|
|
< // For new records the flexform path should be the second to last array element,
|
|
< // followed by the foreign table name. For existing records it should be the third
|
|
< // array element from the end as the UID of the inline record is provided as well.
|
|
< $parts = array_slice(explode('-', $match['anything'], 4), -2, 2);
|
|
<
|
|
< if (count($parts) !== 2 || !isset($parts[0]) || strpos($parts[0], ':') === false) {
|
|
< throw new \UnexpectedValueException(
|
|
< 'DOM Object ID ' . $domObjectId . ' does not contain required information '
|
|
< . 'to extract inline field configuration.',
|
|
< 1446996136
|
|
< );
|
|
< }
|
|
<
|
|
< $fieldParts = GeneralUtility::trimExplode(':', $parts[0]);
|
|
<
|
|
< // FlexForm parts start with data:
|
|
< if (empty($fieldParts) || !isset($fieldParts[1]) || $fieldParts[1] !== 'data') {
|
|
< throw new \UnexpectedValueException(
|
|
< 'Malformed flexform identifier: ' . $parts[2],
|
|
< 1446996254
|
|
< );
|
|
< }
|
|
<
|
|
< $flexFormPath = array_slice($fieldParts, 2);
|
|
< $foreignTableNameParts = explode('-', $parts[1]);
|
|
< $foreignTableName = $foreignTableNameParts[0];
|
|
< }
|
|
---
|
|
> list($flexFormPath, $foreignTableName) = $this->splitDomObjectId($domObjectId);
|
|
914c894
|
|
<
|
|
---
|
|
> $flexFormPath = explode(':', $flexFormPath);
|
|
970a951,994
|
|
> }
|
|
>
|
|
> /**
|
|
> * split the domObjectID and retrieve the needed parts
|
|
> *
|
|
> * @param string $domObjectId
|
|
> *
|
|
> * @return array
|
|
> */
|
|
> protected function splitDomObjectId($domObjectId)
|
|
> {
|
|
>
|
|
> // Substitute FlexForm addition and make parsing a bit easier
|
|
> $domObjectId = str_replace('---', ':', $domObjectId);
|
|
> $pattern = '/:data:(?<flexformPath>.*?)-(?<tableName>[^-]+)(?:-(?:NEW)?\w+)?$/';
|
|
>
|
|
> /* EXPLANATION for the regex:
|
|
> * according https://regex101.com/
|
|
> *
|
|
> * :data: matches the characters :data: literally (case sensitive)
|
|
> * (?<flexformPath>.*?) Named capturing group flexformPath
|
|
> * .*? matches any character (except newline)
|
|
> * Quantifier: *? Between zero and unlimited times, as few times as possible, expanding as needed [lazy]
|
|
> * - matches the character - literally
|
|
> * (?<tableName>[^-]+) Named capturing group tableName
|
|
> * [^-]+ match a single character not present in the list below
|
|
> * Quantifier: + Between one and unlimited times, as many times as possible, giving back as needed [greedy]
|
|
> * - the literal character -
|
|
> * (?:-(?:NEW)?\w+)? Non-capturing group
|
|
> * Quantifier: ? Between zero and one time, as many times as possible, giving back as needed [greedy]
|
|
> * - matches the character - literally
|
|
> * (?:NEW)? Non-capturing group
|
|
> * Quantifier: ? Between zero and one time, as many times as possible, giving back as needed [greedy]
|
|
> * NEW matches the characters NEW literally (case sensitive)
|
|
> * \w+ match any word character [a-zA-Z0-9_]
|
|
> * Quantifier: + Between one and unlimited times, as many times as possible, giving back as needed [greedy]
|
|
> * $ assert position at end of a line
|
|
> */
|
|
>
|
|
> if (preg_match($pattern, $domObjectId, $match)) {
|
|
> return array($match['flexformPath'], $match['tableName']);
|
|
> }
|
|
>
|
|
> return [];
|
|
diff -r /var/www/typo3_src-7.6.9/typo3/sysext/backend/Classes/Controller/LoginController.php /var/www/typo3_src-7.6.10/typo3/sysext/backend/Classes/Controller/LoginController.php
|
|
156c156
|
|
< $pageRenderer->addJsLibrary('placeholders', 'sysext/core/Resources/Public/JavaScript/Contrib/placeholders.jquery.min.js');
|
|
---
|
|
> $pageRenderer->addJsLibrary('placeholders', 'sysext/core/Resources/Public/JavaScript/Contrib/placeholders.min.js');
|
|
diff -r /var/www/typo3_src-7.6.9/typo3/sysext/backend/Classes/Controller/Page/LocalizationController.php /var/www/typo3_src-7.6.10/typo3/sysext/backend/Classes/Controller/Page/LocalizationController.php
|
|
193a194,206
|
|
> $this->process($params);
|
|
>
|
|
> $response->getBody()->write(json_encode([]));
|
|
> return $response;
|
|
> }
|
|
>
|
|
> /**
|
|
> * Processes the localization actions
|
|
> *
|
|
> * @param array $params
|
|
> */
|
|
> protected function process($params)
|
|
> {
|
|
254,256d266
|
|
<
|
|
< $response->getBody()->write(json_encode([]));
|
|
< return $response;
|
|
diff -r /var/www/typo3_src-7.6.9/typo3/sysext/backend/Classes/Controller/PageLayoutController.php /var/www/typo3_src-7.6.10/typo3/sysext/backend/Classes/Controller/PageLayoutController.php
|
|
1498c1498
|
|
< ->setTitle('__' . $lang->sL(BackendUtility::getLabelFromItemlist('tt_content', 'colPos', $colPos), true) . ':__')
|
|
---
|
|
> ->setTitle('__' . $lang->sL(BackendUtility::getLabelFromItemlist('tt_content', 'colPos', $colPos)) . ':__')
|
|
1505c1505
|
|
< ->setTitle(htmlspecialchars(GeneralUtility::fixed_lgd_cs(($cRow['header'] ? $cRow['header'] : '[' . $lang->sL('LLL:EXT:lang/locallang_core.xlf:labels.no_title') . '] ' . strip_tags($cRow['bodytext'])), $beUser->uc['titleLen'])))
|
|
---
|
|
> ->setTitle(GeneralUtility::fixed_lgd_cs(($cRow['header'] ? $cRow['header'] : '[' . $lang->sL('LLL:EXT:lang/locallang_core.xlf:labels.no_title') . '] ' . strip_tags($cRow['bodytext'])), $beUser->uc['titleLen']))
|
|
diff -r /var/www/typo3_src-7.6.9/typo3/sysext/backend/Classes/Controller/UserSettingsController.php /var/www/typo3_src-7.6.10/typo3/sysext/backend/Classes/Controller/UserSettingsController.php
|
|
205c205
|
|
< $array = &$this->getBackendUser()->uc;
|
|
---
|
|
> $array = $this->getBackendUser()->uc;
|
|
208c208
|
|
< $array = &$array[$subkey];
|
|
---
|
|
> $array = &$array[$subkey];
|
|
diff -r /var/www/typo3_src-7.6.9/typo3/sysext/backend/Classes/Controller/Wizard/TableController.php /var/www/typo3_src-7.6.10/typo3/sysext/backend/Classes/Controller/Wizard/TableController.php
|
|
134,135d133
|
|
< // Setting form tag:
|
|
< list($rUri) = explode('#', GeneralUtility::getIndpEnv('REQUEST_URI'));
|
|
161a160
|
|
> list($rUri) = explode('#', GeneralUtility::getIndpEnv('REQUEST_URI'));
|
|
diff -r /var/www/typo3_src-7.6.9/typo3/sysext/backend/Classes/Domain/Repository/Localization/LocalizationRepository.php /var/www/typo3_src-7.6.10/typo3/sysext/backend/Classes/Domain/Repository/Localization/LocalizationRepository.php
|
|
36c36
|
|
< 'tt_content,tt_content AS tt_content_orig',
|
|
---
|
|
> 'tt_content,tt_content AS tt_content_orig,sys_language',
|
|
40a41
|
|
> . ' AND tt_content_orig.sys_language_uid=sys_language.uid'
|
|
diff -r /var/www/typo3_src-7.6.9/typo3/sysext/backend/Classes/Form/AbstractNode.php /var/www/typo3_src-7.6.10/typo3/sysext/backend/Classes/Form/AbstractNode.php
|
|
166c166
|
|
< if ($config['renderType'] !== 'selectTree' && $maxItems <= 1 && $minItems > 0) {
|
|
---
|
|
> if ($config['type'] === 'select' && $config['renderType'] !== 'selectTree' && $maxItems <= 1 && $minItems > 0) {
|
|
diff -r /var/www/typo3_src-7.6.9/typo3/sysext/backend/Classes/Form/Container/FlexFormNoTabsContainer.php /var/www/typo3_src-7.6.10/typo3/sysext/backend/Classes/Form/Container/FlexFormNoTabsContainer.php
|
|
61c61
|
|
< if ((string)$row[$key] !== '') {
|
|
---
|
|
> if (is_string($row[$key]) && $row[$key] !== '') {
|
|
62a63,64
|
|
> } elseif (is_array($row[$key]) && isset($row[$key][0]) && is_string($row[$key][0]) && $row[$key][0] !== '') {
|
|
> $parameterArray['_cshKey'] .= '.' . $row[$key][0];
|
|
diff -r /var/www/typo3_src-7.6.9/typo3/sysext/backend/Classes/Form/Container/FlexFormTabsContainer.php /var/www/typo3_src-7.6.10/typo3/sysext/backend/Classes/Form/Container/FlexFormTabsContainer.php
|
|
65c65
|
|
< if ((string)$row[$key] !== '') {
|
|
---
|
|
> if (is_string($row[$key]) && $row[$key] !== '') {
|
|
66a67,68
|
|
> } elseif (is_array($row[$key]) && isset($row[$key][0]) && is_string($row[$key][0]) && $row[$key][0] !== '') {
|
|
> $parameterArray['_cshKey'] .= '.' . $row[$key][0];
|
|
diff -r /var/www/typo3_src-7.6.9/typo3/sysext/backend/Classes/Form/Container/InlineRecordContainer.php /var/www/typo3_src-7.6.10/typo3/sysext/backend/Classes/Form/Container/InlineRecordContainer.php
|
|
503c503
|
|
< GeneralUtility::quoteJSvalue($hiddenField) .')';
|
|
---
|
|
> GeneralUtility::quoteJSvalue($hiddenField) . ')';
|
|
diff -r /var/www/typo3_src-7.6.9/typo3/sysext/backend/Classes/Form/Container/SingleFieldContainer.php /var/www/typo3_src-7.6.10/typo3/sysext/backend/Classes/Form/Container/SingleFieldContainer.php
|
|
412c412
|
|
< . '</div>
|
|
---
|
|
> . '</div>
|
|
diff -r /var/www/typo3_src-7.6.9/typo3/sysext/backend/Classes/Form/Element/ImageManipulationElement.php /var/www/typo3_src-7.6.10/typo3/sysext/backend/Classes/Form/Element/ImageManipulationElement.php
|
|
91c91
|
|
< if (GeneralUtility::inList(mb_strtolower($config['allowedExtensions']), mb_strtolower($file->getExtension()))) {
|
|
---
|
|
> if (GeneralUtility::inList(strtolower($config['allowedExtensions']), strtolower($file->getExtension()))) {
|
|
141c141
|
|
< $content .= mb_strtoupper(implode(', ', GeneralUtility::trimExplode(',', $config['allowedExtensions'])));
|
|
---
|
|
> $content .= strtoupper(implode(', ', GeneralUtility::trimExplode(',', $config['allowedExtensions'])));
|
|
diff -r /var/www/typo3_src-7.6.9/typo3/sysext/backend/Classes/Form/FormDataProvider/AbstractItemProvider.php /var/www/typo3_src-7.6.10/typo3/sysext/backend/Classes/Form/FormDataProvider/AbstractItemProvider.php
|
|
961a962
|
|
> $effectivePid = $result['effectivePid'];
|
|
992a994,999
|
|
> // Use pid from parent page clause if in flex flom context
|
|
> if (strpos($foreignTableClause, '###CURRENT_PID###') !== false
|
|
> && !empty($result['flexParentDatabaseRow']['pid'])
|
|
> ) {
|
|
> $effectivePid = $result['flexParentDatabaseRow']['pid'];
|
|
> }
|
|
1045c1052
|
|
< (int)$result['effectivePid'],
|
|
---
|
|
> (int)$effectivePid,
|
|
diff -r /var/www/typo3_src-7.6.9/typo3/sysext/backend/Classes/Form/FormDataProvider/TcaFlexProcess.php /var/www/typo3_src-7.6.10/typo3/sysext/backend/Classes/Form/FormDataProvider/TcaFlexProcess.php
|
|
614d613
|
|
<
|
|
diff -r /var/www/typo3_src-7.6.9/typo3/sysext/backend/Classes/Form/FormResultCompiler.php /var/www/typo3_src-7.6.10/typo3/sysext/backend/Classes/Form/FormResultCompiler.php
|
|
261c261
|
|
< $this->loadJavascriptLib('sysext/core/Resources/Public/JavaScript/Contrib/placeholders.jquery.min.js');
|
|
---
|
|
> $this->loadJavascriptLib('sysext/core/Resources/Public/JavaScript/Contrib/placeholders.min.js');
|
|
diff -r /var/www/typo3_src-7.6.9/typo3/sysext/backend/Classes/Form/Wizard/SuggestWizard.php /var/www/typo3_src-7.6.10/typo3/sysext/backend/Classes/Form/Wizard/SuggestWizard.php
|
|
239c239
|
|
< return !$tableConfig['ctrl']['hideTable'];
|
|
---
|
|
> return (bool)$tableConfig['ctrl']['hideTable'];
|
|
diff -r /var/www/typo3_src-7.6.9/typo3/sysext/backend/Classes/Http/AjaxRequestHandler.php /var/www/typo3_src-7.6.10/typo3/sysext/backend/Classes/Http/AjaxRequestHandler.php
|
|
203c203
|
|
< $ajaxObj->setError('Invalid CSRF token detected for ajaxID "' . $ajaxID . '"!');
|
|
---
|
|
> $ajaxObj->setError('Invalid CSRF token detected for ajaxID "' . $ajaxID . '", reload the backend of TYPO3');
|
|
diff -r /var/www/typo3_src-7.6.9/typo3/sysext/backend/Classes/Search/LiveSearch/LiveSearch.php /var/www/typo3_src-7.6.10/typo3/sysext/backend/Classes/Search/LiveSearch/LiveSearch.php
|
|
195d194
|
|
< $isFirst = true;
|
|
204d202
|
|
< $dbCount = $GLOBALS['TYPO3_DB']->sql_num_rows($result);
|
|
216d213
|
|
< $isFirst = false;
|
|
diff -r /var/www/typo3_src-7.6.9/typo3/sysext/backend/Classes/Template/Components/Buttons/Action/ShortcutButton.php /var/www/typo3_src-7.6.10/typo3/sysext/backend/Classes/Template/Components/Buttons/Action/ShortcutButton.php
|
|
36,37d35
|
|
< * $extbaseButton = $buttonBar->makeShortcutButton()
|
|
< * ->setControllerContext($this->controllerContext);
|
|
39d36
|
|
< * $buttonBar->addButton($extbaseButton);
|
|
diff -r /var/www/typo3_src-7.6.9/typo3/sysext/backend/Classes/Tree/Pagetree/ExtdirectTreeCommands.php /var/www/typo3_src-7.6.10/typo3/sysext/backend/Classes/Tree/Pagetree/ExtdirectTreeCommands.php
|
|
359c359
|
|
< if (!empty(static::getBackendUser()->uc['pageTree_temporaryMountPoint'])){
|
|
---
|
|
> if (!empty(static::getBackendUser()->uc['pageTree_temporaryMountPoint'])) {
|
|
diff -r /var/www/typo3_src-7.6.9/typo3/sysext/backend/Classes/Utility/BackendUtility.php /var/www/typo3_src-7.6.10/typo3/sysext/backend/Classes/Utility/BackendUtility.php
|
|
28d27
|
|
< use TYPO3\CMS\Core\Messaging\FlashMessage;
|
|
diff -r /var/www/typo3_src-7.6.9/typo3/sysext/backend/Classes/View/PageTreeView.php /var/www/typo3_src-7.6.10/typo3/sysext/backend/Classes/View/PageTreeView.php
|
|
66c66
|
|
< public function wrapIcon($thePageIcon, &$row)
|
|
---
|
|
> public function wrapIcon($thePageIcon, $row)
|
|
diff -r /var/www/typo3_src-7.6.9/typo3/sysext/backend/Resources/Public/JavaScript/extjs/components/pagetree/javascript/Ext.ux.state.TreePanel.js /var/www/typo3_src-7.6.10/typo3/sysext/backend/Resources/Public/JavaScript/extjs/components/pagetree/javascript/Ext.ux.state.TreePanel.js
|
|
96c96
|
|
< var hasContentFrameValidPageId = (contentId !== '-1' && contentId !== '0');
|
|
---
|
|
> var hasContentFrameValidPageId = contentId !== '-1';
|
|
diff -r /var/www/typo3_src-7.6.9/typo3/sysext/backend/Resources/Public/JavaScript/FormEngineFlexForm.js /var/www/typo3_src-7.6.10/typo3/sysext/backend/Resources/Public/JavaScript/FormEngineFlexForm.js
|
|
213c213,217
|
|
< previewContent += (previewContent ? ' / ' : '') + $(this).val();
|
|
---
|
|
> var content = $($.parseHTML($(this).val())).text();
|
|
> if (content.length > 50) {
|
|
> content = content.substring(0, 50) + '...';
|
|
> }
|
|
> previewContent += (previewContent ? ' / ' : '') + content;
|
|
diff -r /var/www/typo3_src-7.6.9/typo3/sysext/backend/Resources/Public/JavaScript/FormEngineSuggest.js /var/www/typo3_src-7.6.10/typo3/sysext/backend/Resources/Public/JavaScript/FormEngineSuggest.js
|
|
44c44
|
|
< var labelEl = $('<div>').text($(element).data('label'));
|
|
---
|
|
> var labelEl = $('<div>').html($(element).data('label'));
|
|
diff -r /var/www/typo3_src-7.6.9/typo3/sysext/backend/Resources/Public/JavaScript/FormEngineValidation.js /var/www/typo3_src-7.6.10/typo3/sysext/backend/Resources/Public/JavaScript/FormEngineValidation.js
|
|
207d206
|
|
< var origValue = $humanReadableField.val();
|
|
220,226c219,220
|
|
< if ($.inArray('password', evalList) !== -1) {
|
|
< $mainField.val(origValue);
|
|
< $humanReadableField.val(newValue);
|
|
< } else {
|
|
< $mainField.val(newValue);
|
|
< $humanReadableField.val(formattedValue);
|
|
< }
|
|
---
|
|
> $mainField.val(newValue);
|
|
> $humanReadableField.val(formattedValue);
|
|
277d270
|
|
< $field.closest(FormEngineValidation.markerSelector).addClass(FormEngineValidation.errorClass);
|
|
291d283
|
|
< $field.closest(FormEngineValidation.markerSelector).addClass(FormEngineValidation.errorClass);
|
|
314d305
|
|
< $field.closest(FormEngineValidation.markerSelector).addClass(FormEngineValidation.errorClass);
|
|
359a351,353
|
|
> // mark field
|
|
> $field.closest(FormEngineValidation.markerSelector).addClass(FormEngineValidation.errorClass);
|
|
>
|
|
490,491c484
|
|
< var theString = (value) ? FormEngineValidation.passwordDummy : '';
|
|
< returnValue = theString;
|
|
---
|
|
> // password is only a display evaluation, we ignore it
|
|
diff -r /var/www/typo3_src-7.6.9/typo3/sysext/backend/Resources/Public/JavaScript/jsfunc.inline.js /var/www/typo3_src-7.6.10/typo3/sysext/backend/Resources/Public/JavaScript/jsfunc.inline.js
|
|
179a180
|
|
> return false;
|
|
1135c1136
|
|
< TYPO3.jQuery('#' + this.escapeObjectId(objectId) + '_label').html(value.length ? value : this.noTitleString);
|
|
---
|
|
> TYPO3.jQuery('#' + this.escapeObjectId(objectId) + '_label').text(value.length ? value : this.noTitleString);
|
|
diff -r /var/www/typo3_src-7.6.9/typo3/sysext/backend/Resources/Public/JavaScript/LoginRefresh.js /var/www/typo3_src-7.6.10/typo3/sysext/backend/Resources/Public/JavaScript/LoginRefresh.js
|
|
207c207,208
|
|
< LoginRefresh.$loginForm.find('.modal-header h4').text(TYPO3.LLL.core.refresh_login_title);
|
|
---
|
|
> var refresh_login_title = String(TYPO3.LLL.core.refresh_login_title).replace('%s', TYPO3.configuration.username);
|
|
> LoginRefresh.$loginForm.find('.modal-header h4').text(refresh_login_title);
|
|
220c221,225
|
|
< $('<button />', {type: 'submit', form: 'beLoginRefresh', class: 'btn btn-primary', 'data-action': 'refreshSession'}).text(TYPO3.LLL.core.refresh_login_button)
|
|
---
|
|
> $('<button />', {type: 'button', class: 'btn btn-primary', 'data-action': 'refreshSession'})
|
|
> .text(TYPO3.LLL.core.refresh_login_button)
|
|
> .on('click', function(e) {
|
|
> LoginRefresh.$loginForm.find('form').submit();
|
|
> })
|
|
Only in /var/www/typo3_src-7.6.10/typo3/sysext/backend/Tests: Functional
|
|
diff -r /var/www/typo3_src-7.6.9/typo3/sysext/backend/Tests/Unit/Controller/FormInlineAjaxControllerTest.php /var/www/typo3_src-7.6.10/typo3/sysext/backend/Tests/Unit/Controller/FormInlineAjaxControllerTest.php
|
|
17a18
|
|
> use TYPO3\CMS\Core\Authentication\BackendUserAuthentication;
|
|
63a65,218
|
|
> }
|
|
>
|
|
> /**
|
|
> * @dataProvider splitDomObjectIdDataProviderForTableName
|
|
> * @param string $dataStructure
|
|
> * @param string $expectedTableName
|
|
> * @test
|
|
> *
|
|
> * test for the flexform domobject identifier split
|
|
> */
|
|
> public function splitDomObjectIdResolvesTablenameCorrectly($dataStructure, $expectedTableName)
|
|
> {
|
|
> $mock = $this->getAccessibleMock(FormInlineAjaxController::class, ['dummy'], [], '', false);
|
|
> $result = $mock->_call('splitDomObjectId', $dataStructure);
|
|
> $this->assertSame($expectedTableName, $result[1]);
|
|
> }
|
|
>
|
|
> /**
|
|
> * @return array
|
|
> */
|
|
> public function splitDomObjectIdDataProviderForTableName()
|
|
> {
|
|
> return [
|
|
> 'news new' => [
|
|
> 'data-335-tx_news_domain_model_news-2-content_elements-tt_content-999-pi_flexform---data---sheet.tabGeneral---lDEF---settings.related_files---vDEF-tx_news_domain_model_file',
|
|
> 'tx_news_domain_model_file'
|
|
> ],
|
|
> 'load existing child' => [
|
|
> 'data-318-tx_styleguide_flex-4-flex_3---data---sInline---lDEF---inline_1---vDEF-tx_styleguide_flex_flex_3_inline_1_child-4',
|
|
> 'tx_styleguide_flex_flex_3_inline_1_child'
|
|
> ],
|
|
> 'create new child' => [
|
|
> 'data-318-tx_styleguide_flex-4-flex_3---data---sInline---lDEF---inline_1---vDEF-tx_styleguide_flex_flex_3_inline_1_child',
|
|
> 'tx_styleguide_flex_flex_3_inline_1_child'
|
|
> ],
|
|
> 'insert new after' => [
|
|
> 'data-336-tt_content-1000-pi_flexform---data---sheet.tabGeneral---lDEF---settings.related_files---vDEF-tx_news_domain_model_file-6',
|
|
> 'tx_news_domain_model_file'
|
|
> ],
|
|
> 'fal simple' => [
|
|
> 'data-336-tt_content-998-pi_flexform---data---sheet.tabGeneral---lDEF---settings.image---vDEF-sys_file_reference-837',
|
|
> 'sys_file_reference'
|
|
> ],
|
|
> 'fal down deep' => [
|
|
> 'data-335-tx_news_domain_model_news-2-content_elements-tt_content-999-pi_flexform---data---sheet.tabGeneral---lDEF---settings.image---vDEF-sys_file_reference',
|
|
> 'sys_file_reference'
|
|
> ],
|
|
> 'new record after others' => ['data-336-tt_content-1000-pi_flexform---data---sheet.tabGeneral---lDEF---settings.related_files---vDEF-tx_news_domain_model_file-NEW5757f36287214984252204', 'tx_news_domain_model_file'],
|
|
> ];
|
|
> }
|
|
>
|
|
> /**
|
|
> * @dataProvider splitDomObjectIdDataProviderForFlexFormPath
|
|
> *
|
|
> * @param string $dataStructure
|
|
> * @param string $expectedFlexformPath
|
|
> *
|
|
> * @test
|
|
> *
|
|
> * test for the flexform domobject identifier split
|
|
> */
|
|
> public function splitDomObjectIdResolvesFlexformPathCorrectly($dataStructure, $expectedFlexformPath)
|
|
> {
|
|
> $mock = $this->getAccessibleMock(FormInlineAjaxController::class, ['dummy'], [], '', false);
|
|
> $result = $mock->_call('splitDomObjectId', $dataStructure);
|
|
> $this->assertSame($expectedFlexformPath, $result[0]);
|
|
> }
|
|
>
|
|
> /**
|
|
> * @return array
|
|
> */
|
|
> public function splitDomObjectIdDataProviderForFlexFormPath()
|
|
> {
|
|
> return [
|
|
> 'news new' => [
|
|
> 'data-335-tx_news_domain_model_news-2-content_elements-tt_content-999-pi_flexform---data---sheet.tabGeneral---lDEF---settings.related_files---vDEF-tx_news_domain_model_file',
|
|
> 'sheet.tabGeneral:lDEF:settings.related_files:vDEF'
|
|
> ],
|
|
> 'load existing child' => [
|
|
> 'data-318-tx_styleguide_flex-4-flex_3---data---sInline---lDEF---inline_1---vDEF-tx_styleguide_flex_flex_3_inline_1_child-4',
|
|
> 'sInline:lDEF:inline_1:vDEF'
|
|
> ],
|
|
> 'create new child' => [
|
|
> 'data-318-tx_styleguide_flex-4-flex_3---data---sInline---lDEF---inline_1---vDEF-tx_styleguide_flex_flex_3_inline_1_child',
|
|
> 'sInline:lDEF:inline_1:vDEF'
|
|
> ],
|
|
> 'insert new after' => [
|
|
> 'data-336-tt_content-1000-pi_flexform---data---sheet.tabGeneral---lDEF---settings.related_files---vDEF-tx_news_domain_model_file-6',
|
|
> 'sheet.tabGeneral:lDEF:settings.related_files:vDEF'
|
|
> ],
|
|
> 'fal simple' => [
|
|
> 'data-336-tt_content-998-pi_flexform---data---sheet.tabGeneral---lDEF---settings.image---vDEF-sys_file_reference-837',
|
|
> 'sheet.tabGeneral:lDEF:settings.image:vDEF'
|
|
> ],
|
|
> 'fal down deep' => [
|
|
> 'data-335-tx_news_domain_model_news-2-content_elements-tt_content-999-pi_flexform---data---sheet.tabGeneral---lDEF---settings.image---vDEF-sys_file_reference',
|
|
> 'sheet.tabGeneral:lDEF:settings.image:vDEF'
|
|
> ],
|
|
> 'new record after others' => [
|
|
> 'data-336-tt_content-1000-pi_flexform---data---sheet.tabGeneral---lDEF---settings.related_files---vDEF-tx_news_domain_model_file-NEW5757f36287214984252204',
|
|
> 'sheet.tabGeneral:lDEF:settings.related_files:vDEF'
|
|
> ],
|
|
> ];
|
|
> }
|
|
>
|
|
> /**
|
|
> * Fallback for IRRE items without inline view attribute
|
|
> * @issue https://forge.typo3.org/issues/76561
|
|
> *
|
|
> * @test
|
|
> */
|
|
> public function getInlineExpandCollapseStateArraySwitchesToFallbackIfTheBackendUserDoesNotHaveAnUCInlineViewProperty()
|
|
> {
|
|
> $backendUserProphecy = $this->prophesize(BackendUserAuthentication::class);
|
|
> $backendUserProphecy->uc = [];
|
|
> $backendUser = $backendUserProphecy->reveal();
|
|
>
|
|
> $mockObject = $this->getAccessibleMock(
|
|
> FormInlineAjaxController::class,
|
|
> ['getBackendUserAuthentication'],
|
|
> [],
|
|
> '',
|
|
> false
|
|
> );
|
|
> $mockObject->method('getBackendUserAuthentication')->willReturn($backendUser);
|
|
> $result = $mockObject->_call('getInlineExpandCollapseStateArray');
|
|
>
|
|
> $this->assertEmpty($result);
|
|
> }
|
|
>
|
|
>
|
|
> /**
|
|
> * Unserialize uc inline view string for IRRE item
|
|
> * @issue https://forge.typo3.org/issues/76561
|
|
> *
|
|
> * @test
|
|
> */
|
|
> public function getInlineExpandCollapseStateArrayWillUnserializeUCInlineViewPropertyAsAnArrayWithData()
|
|
> {
|
|
> $backendUserProphecy = $this->prophesize(BackendUserAuthentication::class);
|
|
> $backendUserProphecy->uc = ['inlineView' => serialize(['foo' => 'bar'])];
|
|
> $backendUser = $backendUserProphecy->reveal();
|
|
>
|
|
> $mockObject = $this->getAccessibleMock(
|
|
> FormInlineAjaxController::class,
|
|
> ['getBackendUserAuthentication'],
|
|
> [],
|
|
> '',
|
|
> false
|
|
> );
|
|
> $mockObject->method('getBackendUserAuthentication')->willReturn($backendUser);
|
|
> $result = $mockObject->_call('getInlineExpandCollapseStateArray');
|
|
>
|
|
> $this->assertNotEmpty($result);
|
|
diff -r /var/www/typo3_src-7.6.9/typo3/sysext/backend/Tests/Unit/Form/Element/InputTextElementTest.php /var/www/typo3_src-7.6.10/typo3/sysext/backend/Tests/Unit/Form/Element/InputTextElementTest.php
|
|
51d50
|
|
<
|
|
diff -r /var/www/typo3_src-7.6.9/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaSelectItemsTest.php /var/www/typo3_src-7.6.10/typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaSelectItemsTest.php
|
|
1325a1326,1334
|
|
> 'replace CURRENT_PID within FlexForm' => [
|
|
> 'AND fTable.uid=###CURRENT_PID###',
|
|
> 'pages.uid=fTable.pid AND pages.deleted=0 AND 1=1 AND fTable.uid=77',
|
|
> [
|
|
> 'flexParentDatabaseRow' => [
|
|
> 'pid' => '77',
|
|
> ],
|
|
> ],
|
|
> ],
|
|
diff -r /var/www/typo3_src-7.6.9/typo3/sysext/backend/Tests/Unit/Utility/BackendUtilityTest.php /var/www/typo3_src-7.6.10/typo3/sysext/backend/Tests/Unit/Utility/BackendUtilityTest.php
|
|
1067c1067,1068
|
|
< public function dateTimeAgeReturnsCorrectValues() {
|
|
---
|
|
> public function dateTimeAgeReturnsCorrectValues()
|
|
> {
|