[TASK] Remove SpriteManagerIconViewHelper 19/43019/9
authorFrank Nägler <frank.naegler@typo3.org>
Fri, 4 Sep 2015 11:40:17 +0000 (13:40 +0200)
committerChristian Kuhn <lolli@schwarzbu.ch>
Mon, 7 Sep 2015 18:57:32 +0000 (20:57 +0200)
This patch removes the SpriteManagerIconViewHelper and all
usages within the core.

Resolves: #69531
Releases: master
Change-Id: I75e3c345973a9b51fb26cc1aeb305536e8c77d14
Reviewed-on: http://review.typo3.org/43019
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
37 files changed:
Build/Resources/Public/Less/Component/icon.less
typo3/sysext/backend/Classes/Backend/ToolbarItems/ShortcutToolbarItem.php
typo3/sysext/backend/Classes/Form/Container/InlineRecordContainer.php
typo3/sysext/backend/Classes/Form/Element/SelectCheckBoxElement.php
typo3/sysext/backend/Classes/RecordList/ElementBrowserRecordList.php
typo3/sysext/backend/Classes/Template/DocumentTemplate.php
typo3/sysext/backend/Classes/View/PageLayoutView.php
typo3/sysext/backend/Classes/ViewHelpers/SpriteManagerIconViewHelper.php [deleted file]
typo3/sysext/backend/Resources/Private/Templates/DocumentTemplate/Partials/StateIcon.html
typo3/sysext/beuser/Classes/ViewHelpers/RemoveUserViewHelper.php
typo3/sysext/beuser/Classes/ViewHelpers/SwitchUserViewHelper.php
typo3/sysext/beuser/Resources/Private/Partials/BackendUser/IndexListRow.html
typo3/sysext/beuser/Resources/Private/Partials/BackendUser/OnlineListRow.html
typo3/sysext/beuser/Resources/Private/Partials/BackendUserGroup/IndexListRow.html
typo3/sysext/beuser/Resources/Private/Templates/BackendUser/Compare.html
typo3/sysext/beuser/Resources/Private/Templates/BackendUser/Index.html
typo3/sysext/beuser/Resources/Private/Templates/Permission/Index.html
typo3/sysext/core/Classes/Database/QueryView.php
typo3/sysext/core/Classes/Imaging/IconRegistry.php
typo3/sysext/core/Classes/TimeTracker/TimeTracker.php
typo3/sysext/core/Classes/ViewHelpers/IconViewHelper.php
typo3/sysext/core/Documentation/Changelog/master/Feature-68741-IntroduceNewIconFactoryAsBaseForReplaceTheIconSkinningAPI.rst
typo3/sysext/core/Documentation/Changelog/master/Feature-69095-IntroduceIconStateForIconFactory.rst
typo3/sysext/core/Documentation/Changelog/master/Important-69531-RemoveSpriteManagerIconViewHelper.rst [new file with mode: 0644]
typo3/sysext/documentation/Classes/Slots/ExtensionManager.php
typo3/sysext/documentation/Classes/ViewHelpers/FormatsViewHelper.php
typo3/sysext/extensionmanager/Classes/ViewHelpers/ConfigureExtensionViewHelper.php
typo3/sysext/extensionmanager/Classes/ViewHelpers/DownloadExtensionDataViewHelper.php
typo3/sysext/extensionmanager/Classes/ViewHelpers/RemoveExtensionViewHelper.php
typo3/sysext/extensionmanager/Classes/ViewHelpers/UpdateScriptViewHelper.php
typo3/sysext/filelist/Classes/FileList.php
typo3/sysext/lowlevel/Classes/View/DatabaseIntegrityView.php
typo3/sysext/recordlist/Classes/Browser/ElementBrowser.php
typo3/sysext/recordlist/Classes/RecordList/DatabaseRecordList.php
typo3/sysext/scheduler/Classes/Controller/SchedulerModuleController.php
typo3/sysext/t3skin/Resources/Public/Css/backend.css
typo3/sysext/workspaces/Classes/Backend/ToolbarItems/WorkspaceSelectorToolbarItem.php

index 9b023e4..6ed76de 100644 (file)
 .icon-actions-edit-copy-release,
 .icon-actions-edit-cut-release,
 .icon-overlay-read-only,
-.icon-status-status-current {
+.icon-status-status-current,
+.icon-status-dialog-error,
+.icon-status-status-permission-denied {
        color: @brand-danger;
 }
+
+.icon-status-dialog-ok,
+.icon-status-status-permission-granted {
+       color: @brand-success;
+}
+
+.icon-status-dialog-notification {
+       color: @brand-notice;
+}
+
+.icon-status-dialog-warning {
+       color: @brand-warning;
+}
index 9051821..e1701fe 100644 (file)
@@ -778,7 +778,7 @@ class ShortcutToolbarItem implements ToolbarItemInterface {
                                        // @todo: hardcoded width as we don't have a way to address module icons with an API yet.
                                        $icon = '<img src="' . htmlspecialchars($icon) . '" alt="' . $titleAttribute . '" width="16">';
                                } else {
-                                       $icon = IconUtility::getSpriteIcon('empty-empty', array('title' => $titleAttribute));
+                                       $icon = '<span title="' . $titleAttribute . '">' . $this->iconFactory->getIcon('empty-empty', Icon::SIZE_SMALL)->render() . '</span>';
                                }
                }
                return $icon;
index 082ec7e..ded05fa 100644 (file)
@@ -493,8 +493,8 @@ class InlineRecordContainer extends AbstractContainer {
                                $table = $foreign_table;
                        }
                        $cells['info'] = '
-                               <a class="btn btn-default" href="#" onclick="' . htmlspecialchars(('top.launchView(' . GeneralUtility::quoteJSvalue($table) . ', ' . GeneralUtility::quoteJSvalue($uid) . '); return false;')) . '">
-                                       ' . IconUtility::getSpriteIcon('status-dialog-information', array('title' => $languageService->sL('LLL:EXT:lang/locallang_mod_web_list.xlf:showInfo', TRUE))) . '
+                               <a class="btn btn-default" href="#" onclick="' . htmlspecialchars(('top.launchView(' . GeneralUtility::quoteJSvalue($table) . ', ' . GeneralUtility::quoteJSvalue($uid) . '); return false;')) . '" title="' . $languageService->sL('LLL:EXT:lang/locallang_mod_web_list.xlf:showInfo', TRUE) . '">
+                                       ' . $this->iconFactory->getIcon('actions-document-info', Icon::SIZE_SMALL)->render()  . '
                                </a>';
                }
                // If the table is NOT a read-only table, then show these links:
@@ -508,8 +508,8 @@ class InlineRecordContainer extends AbstractContainer {
                                                $style = ' style="' . $config['inline']['inlineNewButtonStyle'] . '"';
                                        }
                                        $cells['new'] = '
-                                               <a class="btn btn-default inlineNewButton ' . $this->inlineData['config'][$nameObject]['md5'] . '" href="#" onclick="' . htmlspecialchars($onClick) . '"' . $style . '>
-                                                       ' . IconUtility::getSpriteIcon(('actions-' . ($isPagesTable ? 'page' : 'document') . '-new'), array('title' => $languageService->sL(('LLL:EXT:lang/locallang_mod_web_list.xlf:new' . ($isPagesTable ? 'Page' : 'Record')), TRUE))) . '
+                                               <a class="btn btn-default inlineNewButton ' . $this->inlineData['config'][$nameObject]['md5'] . '" href="#" onclick="' . htmlspecialchars($onClick) . '" title="' . $languageService->sL(('LLL:EXT:lang/locallang_mod_web_list.xlf:new' . ($isPagesTable ? 'Page' : 'Record')), TRUE) . '" ' . $style . '>
+                                                       ' . $this->iconFactory->getIcon('actions-' . ($isPagesTable ? 'page' : 'document') . '-new', Icon::SIZE_SMALL)->render()  . '
                                                </a>';
                                }
                        }
index 41c38e5..8ed0bff 100644 (file)
@@ -151,7 +151,7 @@ class SelectCheckBoxElement extends AbstractFormElement {
                                                'checked' => $checked,
                                                'disabled' => $disabled,
                                                'class' => '',
-                                               'icon' => (!empty($p[2]) ? FormEngineUtility::getIconHtml($p[2]) : IconUtility::getSpriteIcon('empty-empty')),
+                                               'icon' => (!empty($p[2]) ? FormEngineUtility::getIconHtml($p[2]) : $this->iconFactory->getIcon('empty-empty', Icon::SIZE_SMALL)->render()),
                                                'title' => htmlspecialchars($p[0], ENT_COMPAT, 'UTF-8', FALSE),
                                                'help' => $help
                                        );
index 1078ce0..8156fdd 100644 (file)
@@ -16,6 +16,7 @@ namespace TYPO3\CMS\Backend\RecordList;
 
 use TYPO3\CMS\Backend\Utility\BackendUtility;
 use TYPO3\CMS\Backend\Utility\IconUtility;
+use TYPO3\CMS\Core\Imaging\Icon;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
 use TYPO3\CMS\Recordlist\Browser\ElementBrowser;
 use TYPO3\CMS\Recordlist\RecordList\DatabaseRecordList;
@@ -110,10 +111,10 @@ class ElementBrowserRecordList extends DatabaseRecordList {
                $title = BackendUtility::getRecordTitle($table, $row, FALSE, TRUE);
                $ficon = IconUtility::getSpriteIconForRecord($table, $row);
                $aOnClick = 'return insertElement(' . GeneralUtility::quoteJSvalue($table) . ', ' . GeneralUtility::quoteJSvalue($row['uid']) . ', \'db\', ' . GeneralUtility::quoteJSvalue($title) . ', \'\', \'\', ' . GeneralUtility::quoteJSvalue($ficon) . ');';
-               $ATag = '<a href="#" onclick="' . $aOnClick . '">';
+               $ATag = '<a href="#" onclick="' . $aOnClick . '" title="' . $this->getLanguageService()->getLL('addToList', TRUE) . '">';
                $ATag_alt = substr($ATag, 0, -4) . ',\'\',1);">';
                $ATag_e = '</a>';
-               return $ATag . IconUtility::getSpriteIcon('actions-edit-add', array('title' => $this->getLanguageService()->getLL('addToList', TRUE))) . $ATag_e . $ATag_alt . $code . $ATag_e;
+               return $ATag . $this->iconFactory->getIcon('actions-edit-add', Icon::SIZE_SMALL) . $ATag_e . $ATag_alt . $code . $ATag_e;
        }
 
        /**
index 8bbad96..9c97f7b 100644 (file)
@@ -1287,7 +1287,7 @@ function jumpToUrl(URL) {
                                // Do nothing
                }
                if ($icon) {
-                       return IconUtility::getSpriteIcon($icon);
+                       return $this->iconFactory->getIcon($icon, Icon::SIZE_SMALL)->render();
                }
        }
 
index c997af4..208901d 100644 (file)
@@ -1226,7 +1226,7 @@ class PageLayoutView extends \TYPO3\CMS\Recordlist\RecordList\AbstractDatabaseRe
                                                . '][' . $hiddenField . ']=' . $value;
                                        $out .= '<a class="btn btn-default" href="' . htmlspecialchars($this->getPageLayoutController()->doc->issueCommand($params))
                                                . '" title="' . $this->getLanguageService()->getLL($label, TRUE) . '">'
-                                               . IconUtility::getSpriteIcon('actions-edit-' . strtolower($label)) . '</a>';
+                                               . $this->iconFactory->getIcon('actions-edit-' . strtolower($label), Icon::SIZE_SMALL) . '</a>';
                                }
                                // Delete
                                $params = '&cmd[tt_content][' . $row['uid'] . '][delete]=1';
@@ -1258,7 +1258,7 @@ class PageLayoutView extends \TYPO3\CMS\Recordlist\RecordList\AbstractDatabaseRe
                                                        $displayMoveButtons = TRUE;
                                                }
                                        } else {
-                                               $moveButtonContent .= '<span class="btn btn-default disabled">' . IconUtility::getSpriteIcon('empty-empty') . '</span>';
+                                               $moveButtonContent .= '<span class="btn btn-default disabled">' . $this->iconFactory->getIcon('empty-empty', Icon::SIZE_SMALL)->render() . '</span>';
                                        }
                                        // Move element down:
                                        if ($this->tt_contentData['next'][$row['uid']]) {
@@ -1271,7 +1271,7 @@ class PageLayoutView extends \TYPO3\CMS\Recordlist\RecordList\AbstractDatabaseRe
                                                        $displayMoveButtons = TRUE;
                                                }
                                        } else {
-                                               $moveButtonContent .= '<span class="btn btn-default disabled">' . IconUtility::getSpriteIcon('empty-empty') . '</span>';
+                                               $moveButtonContent .= '<span class="btn btn-default disabled">' . $this->iconFactory->getIcon('empty-empty', Icon::SIZE_SMALL)->render() . '</span>';
                                        }
                                        if ($displayMoveButtons) {
                                                $out .= '<div class="btn-group btn-group-sm" role="group">' . $moveButtonContent . '</div>';
diff --git a/typo3/sysext/backend/Classes/ViewHelpers/SpriteManagerIconViewHelper.php b/typo3/sysext/backend/Classes/ViewHelpers/SpriteManagerIconViewHelper.php
deleted file mode 100644 (file)
index cd0844a..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-namespace TYPO3\CMS\Backend\ViewHelpers;
-
-/*
- * This file is part of the TYPO3 CMS project.
- *
- * It is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, either version 2
- * of the License, or any later version.
- *
- * For the full copyright and license information, please read the
- * LICENSE.txt file that was distributed with this source code.
- *
- * The TYPO3 project - inspiring people to share!
- */
-
-use TYPO3\CMS\Backend\Utility\IconUtility;
-use TYPO3\CMS\Fluid\Core\Rendering\RenderingContextInterface;
-use TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper;
-use TYPO3\CMS\Fluid\Core\ViewHelper\Facets\CompilableInterface;
-
-/**
- * Displays sprite icon identified by iconName key
- * @internal
- */
-class SpriteManagerIconViewHelper extends AbstractViewHelper implements CompilableInterface {
-
-       /**
-        * Prints sprite icon html for $iconName key
-        *
-        * @param string $iconName
-        * @param array $options
-        * @return string
-        */
-       public function render($iconName, $options = array()) {
-               return static::renderStatic(
-                       array(
-                               'iconName' => $iconName,
-                               'options' => $options
-                       ),
-                       $this->buildRenderChildrenClosure(),
-                       $this->renderingContext
-               );
-       }
-
-       /**
-        * Print sprite icon html for $iconName key
-        *
-        * @param array $arguments
-        * @param \Closure $renderChildrenClosure
-        * @param RenderingContextInterface $renderingContext
-        * @return string
-        */
-       static public function renderStatic(array $arguments, \Closure $renderChildrenClosure, RenderingContextInterface $renderingContext) {
-               $iconName = $arguments['iconName'];
-               $options = $arguments['options'];
-               return IconUtility::getSpriteIcon($iconName, $options);
-       }
-
-}
index beedc5c..9bfb598 100644 (file)
@@ -1,7 +1,7 @@
-{namespace be = TYPO3\CMS\Backend\ViewHelpers}
+{namespace core = TYPO3\CMS\Core\ViewHelpers}
 <f:switch expression="{item.stateIcon}">
-       <f:case value="-1"><be:spriteManagerIcon iconName="status-dialog-ok" /></f:case>
-       <f:case value="1"><be:spriteManagerIcon iconName="status-dialog-notification" /></f:case>
-       <f:case value="2"><be:spriteManagerIcon iconName="status-dialog-warning" /></f:case>
-       <f:case value="3"><be:spriteManagerIcon iconName="status-dialog-error" /></f:case>
+       <f:case value="-1"><core:icon identifier="status-dialog-ok" /></f:case>
+       <f:case value="1"><core:icon identifier="status-dialog-notification" /></f:case>
+       <f:case value="2"><core:icon identifier="status-dialog-warning" /></f:case>
+       <f:case value="3"><core:icon identifier="status-dialog-error" /></f:case>
 </f:switch>
index 189546b..3d44920 100644 (file)
@@ -65,7 +65,7 @@ class RemoveUserViewHelper extends AbstractViewHelper implements CompilableInter
                /** @var IconFactory $iconFactory */
                $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
                if ($backendUser->getUid() === (int)$beUser->user['uid']) {
-                       return '<span class="btn btn-default disabled">' . IconUtility::getSpriteIcon('empty-empty') . '</span>';
+                       return '<span class="btn btn-default disabled">' . $iconFactory->getIcon('empty-empty', Icon::SIZE_SMALL)->render() . '</span>';
                }
 
                $urlParameters = [
index 478c466..9f6ef3a 100644 (file)
@@ -16,6 +16,8 @@ namespace TYPO3\CMS\Beuser\ViewHelpers;
 
 use TYPO3\CMS\Backend\Utility\IconUtility;
 use TYPO3\CMS\Beuser\Domain\Model\BackendUser;
+use TYPO3\CMS\Core\Imaging\Icon;
+use TYPO3\CMS\Core\Imaging\IconFactory;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
 use TYPO3\CMS\Extbase\Utility\LocalizationUtility;
 use TYPO3\CMS\Fluid\Core\Rendering\RenderingContextInterface;
@@ -54,7 +56,8 @@ class SwitchUserViewHelper extends AbstractViewHelper implements CompilableInter
                $backendUser = $arguments['backendUser'];
 
                if ($backendUser->getUid() == $GLOBALS['BE_USER']->user['uid'] || !$backendUser->isActive()) {
-                       return '<span class="btn btn-default disabled">' . IconUtility::getSpriteIcon('empty-empty') . '</span>';
+                       $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
+                       return '<span class="btn btn-default disabled">' . $iconFactory->getIcon('empty-empty', Icon::SIZE_SMALL)->render() . '</span>';
                }
                $title = LocalizationUtility::translate('switchBackMode', 'beuser');
                return '<a class="btn btn-default" href="' .
index 5ec8879..1ff04e6 100644 (file)
                </f:if>
        </td>
        <td class="col-control">
-               <f:link.action action="addToCompareList" arguments="{uid: backendUser.uid}" class="btn btn-default"><be:spriteManagerIcon iconName="actions-edit-add"/> <f:translate key="compare" /></f:link.action>
+               <f:link.action action="addToCompareList" arguments="{uid: backendUser.uid}" class="btn btn-default"><core:icon identifier="actions-edit-add" size="small"/> <f:translate key="compare" /></f:link.action>
                <div class="btn-group" role="group">
-                       <a class="btn btn-default" href="#" onclick="top.launchView('be_users', '{backendUser.uid}'); return false;"><core:icon identifier="actions-document-info" size="small"/></a>
-                       <a class="btn btn-default" href="{bu:editRecord(parameters: 'edit[be_users][{backendUser.uid}]=edit&returnUrl={returnUrl}')}"><core:icon identifier="actions-document-open" size="small"/></a>
+                       <a class="btn btn-default" href="#" onclick="top.launchView('be_users', '{backendUser.uid}'); return false;"><core:icon identifier="actions-document-info" /></a>
+                       <a class="btn btn-default" href="{bu:editRecord(parameters: 'edit[be_users][{backendUser.uid}]=edit&returnUrl={returnUrl}')}"><core:icon identifier="actions-document-open" /></a>
                        <f:if condition="{backendUser.currentlyLoggedIn} == 1">
                                <f:then>
-                                       <span class="btn btn-default disabled"><be:spriteManagerIcon iconName="empty-empty" /></span>
+                                       <span class="btn btn-default disabled"><core:icon identifier="empty-empty" /></span>
                                </f:then>
                                <f:else>
                                        <f:if condition="{backendUser.isDisabled} == 1">
                                                <f:then>
-                                                       <a class="btn btn-default" href="{bu:issueCommand(parameters: 'data[be_users][{backendUser.uid}][disable]=0', redirectUrl: redirectUrl)}" title="{f:translate(key:'visibility.unhide')}"><core:icon identifier="actions-edit-unhide" size="small"/></a>
+                                                       <a class="btn btn-default" href="{bu:issueCommand(parameters: 'data[be_users][{backendUser.uid}][disable]=0', redirectUrl: redirectUrl)}" title="{f:translate(key:'visibility.unhide')}"><core:icon identifier="actions-edit-unhide" /></a>
                                                </f:then>
                                                <f:else>
-                                                       <a class="btn btn-default" href="{bu:issueCommand(parameters: 'data[be_users][{backendUser.uid}][disable]=1', redirectUrl: redirectUrl)}" title="{f:translate(key:'visibility.hide')}"><core:icon identifier="actions-edit-hide" size="small"/></a>
+                                                       <a class="btn btn-default" href="{bu:issueCommand(parameters: 'data[be_users][{backendUser.uid}][disable]=1', redirectUrl: redirectUrl)}" title="{f:translate(key:'visibility.hide')}"><core:icon identifier="actions-edit-hide" /></a>
                                                </f:else>
                                        </f:if>
                                </f:else>
index ac770a7..20776e6 100644 (file)
                                                        arguments="{backendUser: onlineUser.backendUser, sessionId: session.id}"
                                                        data="{severity: 'warning', title: '{f:translate(key: \'endSession\')}', content: '{f:translate(key: \'reallyLogout\')} {onlineUser.backendUser.userName}?', button-close-text: '{f:translate(key: \'LLL:EXT:lang/locallang_common.xlf:cancel\')}'}"
                                                >
-                                                       <core:icon identifier="actions-document-close" size="small"/>
+                                                       <core:icon identifier="actions-document-close" />
                                                        <f:translate key="endSession" />
                                                </f:link.action>
                                        </f:else>
                                </f:if>
                                <a class="btn btn-default" href="#" onclick="top.launchView('be_users', '{onlineUser.backendUser.uid}',''); return false;">
-                                       <core:icon identifier="actions-document-info" size="small"/>
+                                       <core:icon identifier="actions-document-info" />
                                </a>
                        </div>
                </td>
index 27587a9..92dc890 100644 (file)
@@ -1,4 +1,3 @@
-{namespace be = TYPO3\CMS\Backend\ViewHelpers}
 {namespace bu = TYPO3\CMS\Beuser\ViewHelpers}
 {namespace core = TYPO3\CMS\Core\ViewHelpers}
 
        </td>
        <td class="col-control">
                <div class="btn-group" role="group">
-                       <a class="btn btn-default" href="#" onclick="top.launchView('be_groups', '{backendUserGroup.uid}'); return false;"><core:icon identifier="actions-document-info" size="small"/></a>
-                       <a class="btn btn-default" href="{bu:editRecord(parameters: 'edit[be_groups][{backendUserGroup.uid}]=edit&returnUrl={returnUrl}')}"><core:icon identifier="actions-document-open" size="small"/></a>
+                       <a class="btn btn-default" href="#" onclick="top.launchView('be_groups', '{backendUserGroup.uid}'); return false;"><core:icon identifier="actions-document-info" /></a>
+                       <a class="btn btn-default" href="{bu:editRecord(parameters: 'edit[be_groups][{backendUserGroup.uid}]=edit&returnUrl={returnUrl}')}"><core:icon identifier="actions-document-open" /></a>
                        <f:if condition="{backendUserGroup.hidden}">
                                <f:then>
-                                       <a class="btn btn-default" href="{bu:issueCommand(parameters: 'data[be_groups][{backendUserGroup.uid}][hidden]=0', redirectUrl: redirectUrl)}" title="{f:translate(key:'visibility.unhide')}"><core:icon identifier="actions-edit-unhide" size="small"/></a>
+                                       <a class="btn btn-default" href="{bu:issueCommand(parameters: 'data[be_groups][{backendUserGroup.uid}][hidden]=0', redirectUrl: redirectUrl)}" title="{f:translate(key:'visibility.unhide')}"><core:icon identifier="actions-edit-unhide" /></a>
                                </f:then>
                                <f:else>
-                                       <a class="btn btn-default" href="{bu:issueCommand(parameters: 'data[be_groups][{backendUserGroup.uid}][hidden]=1', redirectUrl: redirectUrl)}" title="{f:translate(key:'visibility.hide')}"><core:icon identifier="actions-edit-hide" size="small"/></a>
+                                       <a class="btn btn-default" href="{bu:issueCommand(parameters: 'data[be_groups][{backendUserGroup.uid}][hidden]=1', redirectUrl: redirectUrl)}" title="{f:translate(key:'visibility.hide')}"><core:icon identifier="actions-edit-hide" /></a>
                                </f:else>
                        </f:if>
                </div>
index 4da4a4f..2447c9d 100644 (file)
@@ -5,7 +5,7 @@
 <f:layout name="Default" />
 
 <f:section name="iconButtons">
-       <f:link.action action="index"><be:spriteManagerIcon iconName="actions-view-go-back" /></f:link.action>
+       <f:link.action action="index"><core:icon identifier="actions-view-go-back" /></f:link.action>
 </f:section>
 
 <f:section name="headline">
                                                        <f:if condition="{compareUser.isDisabled} == 1">
                                                                <f:then>
                                                                        <a class="btn btn-default" href="{bu:issueCommand(parameters: 'data[be_users][{compareUser.uid}][disable]=0', redirectUrl: redirectUrl)}" title="{f:translate(key: 'visibility.unhide')}">
-                                                                               <core:icon identifier="actions-edit-unhide" size="small"/>
+                                                                               <core:icon identifier="actions-edit-unhide" />
                                                                        </a>
                                                                </f:then>
                                                                <f:else>
                                                                        <a class="btn btn-default" href="{bu:issueCommand(parameters: 'data[be_users][{compareUser.uid}][disable]=1', redirectUrl: redirectUrl)}" title="{f:translate(key: 'visibility.hide')}">
-                                                                               <core:icon identifier="actions-edit-hide" size="small"/>
+                                                                               <core:icon identifier="actions-edit-hide" />
                                                                        </a>
                                                                </f:else>
                                                        </f:if>
index c4f9c6c..fe5d902 100644 (file)
@@ -34,7 +34,7 @@
                                                        </td>
                                                        <td>
                                                                <f:link.action action="removeFromCompareList" arguments="{uid: compareUser.uid}" class="pull-right">
-                                                                       <be:spriteManagerIcon iconName="actions-selection-delete" />
+                                                                       <core:icon identifier="actions-selection-delete" />
                                                                </f:link.action>
                                                        </td>
                                                </tr>
index 40b4545..9545d49 100644 (file)
@@ -6,7 +6,7 @@
 
 <f:section name="iconButtons">
        <a href="#" onclick="{previewUrl}" title="{f:translate(key: 'LLL:EXT:lang/locallang_core.xlf:labels.showPage')}">
-               <core:icon identifier="actions-document-view" size="small" />
+               <core:icon identifier="actions-document-view" />
        </a>
 </f:section>
 
@@ -65,7 +65,7 @@
                                                                                                arguments="{id: data.row._ORIG_uid, depth: depth}"
                                                                                                title="{f:translate(key: 'LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:ch_permissions')}"
                                                                                        >
-                                                                                               <core:icon identifier="actions-document-open" size="small"/>
+                                                                                               <core:icon identifier="actions-document-open" />
                                                                                        </f:link.action>
                                                                                </f:then>
                                                                                <f:else>
@@ -74,7 +74,7 @@
                                                                                                arguments="{id: data.row.uid, depth: depth}"
                                                                                                title="{f:translate(key: 'LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:ch_permissions')}"
                                                                                        >
-                                                                                               <core:icon identifier="actions-document-open" size="small"/>
+                                                                                               <core:icon identifier="actions-document-open" />
                                                                                        </f:link.action>
                                                                                </f:else>
                                                                        </f:if>
                                                                                                        data-lockstate="1"
                                                                                                        title="{f:translate(key: 'LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:EditLock_descr')}"
                                                                                                >
-                                                                                                       <be:spriteManagerIcon iconName="status-warning-lock" />
+                                                                                                       <core:icon identifier="status-warning-lock" />
                                                                                                </a>
                                                                                        </f:then>
                                                                                        <f:else>
                                <td nowrap="nowrap"><strong><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:4" /></strong>: <f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:4_t" /></td>
                        </tr>
                        <tr>
-                               <td nowrap="nowrap"><be:spriteManagerIcon iconName="status-status-permission-granted" options="{class:'text-success'}" /></td>
-                               <td nowrap="nowrap"><be:spriteManagerIcon iconName="status-status-permission-denied" options="{class:'text-danger'}" /></td>
-                               <td nowrap="nowrap"><be:spriteManagerIcon iconName="status-status-permission-granted" options="{class:'text-success'}" /></td>
-                               <td nowrap="nowrap"><be:spriteManagerIcon iconName="status-status-permission-denied" options="{class:'text-danger'}" /></td>
-                               <td nowrap="nowrap"><be:spriteManagerIcon iconName="status-status-permission-denied" options="{class:'text-danger'}" /></td>
+                               <td nowrap="nowrap"><core:icon identifier="status-status-permission-granted" /></td>
+                               <td nowrap="nowrap"><core:icon identifier="status-status-permission-denied" /></td>
+                               <td nowrap="nowrap"><core:icon identifier="status-status-permission-granted" /></td>
+                               <td nowrap="nowrap"><core:icon identifier="status-status-permission-denied" /></td>
+                               <td nowrap="nowrap"><core:icon identifier="status-status-permission-denied" /></td>
                                <td nowrap="nowrap"><span class="number">5</span></td>
                                <td nowrap="nowrap"><strong><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:8" /></strong>: <f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:8_t" /></td>
                        </tr>
        </div>
        <p><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:def" /></p>
        <p>
-               <be:spriteManagerIcon iconName="status-status-permission-granted" options="{class:'text-success'}" /> <f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:A_Granted" /><br/>
-               <be:spriteManagerIcon iconName="status-status-permission-denied" options="{class:'text-danger'}" /> <f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:A_Denied" />
+               <core:icon identifier="status-status-permission-granted" /> <f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:A_Granted" /><br/>
+               <core:icon identifier="status-status-permission-denied" /> <f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:A_Denied" />
        </p>
 </f:section>
index 6fd1c6e..62d1aca 100644 (file)
@@ -549,7 +549,8 @@ class QueryView {
                $params = '&edit[' . $table . '][' . $row['uid'] . ']=edit';
                $out .= '<td><div class="btn-group">';
                if (!$row['deleted']) {
-                       $out .= '<a class="btn btn-default" href="#" onClick="top.launchView(\'' . $table . '\',' . $row['uid'] . ',\'' . $GLOBALS['BACK_PATH'] . '\');return false;">' . \TYPO3\CMS\Backend\Utility\IconUtility::getSpriteIcon('status-dialog-information') . '</a>';
+                       $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
+                       $out .= '<a class="btn btn-default" href="#" onClick="top.launchView(\'' . $table . '\',' . $row['uid'] . ',\'' . $GLOBALS['BACK_PATH'] . '\');return false;">' . $iconFactory->getIcon('actions-document-info', Icon::SIZE_SMALL)->render() . '</a>';
                        $out .= '<a class="btn btn-default" href="#" onClick="' . htmlspecialchars(BackendUtility::editOnClick($params, '', GeneralUtility::getIndpEnv('REQUEST_URI') . GeneralUtility::implodeArrayForUrl('SET', (array)GeneralUtility::_POST('SET')))) . '">' . $iconFactory->getIcon('actions-document-open', Icon::SIZE_SMALL) . '</a>';
                } else {
                        $out .= '<a class="btn btn-default" href="' . GeneralUtility::linkThisUrl(BackendUtility::getModuleUrl('tce_db'), array(
index 6c68c59..6fb27bf 100644 (file)
@@ -226,6 +226,12 @@ class IconRegistry implements \TYPO3\CMS\Core\SingletonInterface {
                                'name' => 'download',
                        )
                ),
+               'actions-edit-add' => array(
+                       'provider' => FontawesomeIconProvider::class,
+                       'options' => array(
+                               'name' => 'plus-circle',
+                       )
+               ),
                'actions-edit-delete' => array(
                        'provider' => FontawesomeIconProvider::class,
                        'options' => array(
@@ -385,7 +391,7 @@ class IconRegistry implements \TYPO3\CMS\Core\SingletonInterface {
                'actions-selection-delete' => array(
                        'provider' => FontawesomeIconProvider::class,
                        'options' => array(
-                               'name' => 'remove',
+                               'name' => 'trash',
                        )
                ),
                'actions-system-cache-clear-impact-low' => array(
@@ -533,10 +539,11 @@ class IconRegistry implements \TYPO3\CMS\Core\SingletonInterface {
                        )
                ),
 
-               'mimetypes-word' => array(
+               // specials
+               'empty-empty' => array(
                        'provider' => FontawesomeIconProvider::class,
                        'options' => array(
-                               'name' => 'file-word-o',
+                               'name' => 'empty-empty',
                        )
                ),
 
@@ -547,6 +554,48 @@ class IconRegistry implements \TYPO3\CMS\Core\SingletonInterface {
                                'name' => 'caret-right',
                        )
                ),
+               'status-dialog-ok' => array(
+                       'provider' => FontawesomeIconProvider::class,
+                       'options' => array(
+                               'name' => 'check-circle',
+                       )
+               ),
+               'status-dialog-notification' => array(
+                       'provider' => FontawesomeIconProvider::class,
+                       'options' => array(
+                               'name' => 'exclamation-circle',
+                       )
+               ),
+               'status-dialog-warning' => array(
+                       'provider' => FontawesomeIconProvider::class,
+                       'options' => array(
+                               'name' => 'exclamation-triangle',
+                       )
+               ),
+               'status-dialog-error' => array(
+                       'provider' => FontawesomeIconProvider::class,
+                       'options' => array(
+                               'name' => 'exclamation-circle',
+                       )
+               ),
+               'status-warning-lock' => array(
+                       'provider' => BitmapIconProvider::class,
+                       'options' => array(
+                               'source' => 'EXT:t3skin/images/icons/status/warning-lock.png',
+                       )
+               ),
+               'status-status-permission-granted' => array(
+                       'provider' => FontawesomeIconProvider::class,
+                       'options' => array(
+                               'name' => 'check',
+                       )
+               ),
+               'status-status-permission-denied' => array(
+                       'provider' => FontawesomeIconProvider::class,
+                       'options' => array(
+                               'name' => 'times',
+                       )
+               ),
 
                // Mimetypes
                'mimetypes-text-html' => array(
@@ -555,6 +604,12 @@ class IconRegistry implements \TYPO3\CMS\Core\SingletonInterface {
                                'name' => 'file-text-o',
                        )
                ),
+               'mimetypes-word' => array(
+                       'provider' => FontawesomeIconProvider::class,
+                       'options' => array(
+                               'name' => 'file-word-o',
+                       )
+               ),
 
                // Overlays
                'overlay-read-only' => array(
index f9be0f7..5c1cbf4 100755 (executable)
@@ -13,7 +13,9 @@ namespace TYPO3\CMS\Core\TimeTracker;
  *
  * The TYPO3 project - inspiring people to share!
  */
-use TYPO3\CMS\Backend\Utility\IconUtility;
+use TYPO3\CMS\Core\Imaging\Icon;
+use TYPO3\CMS\Core\Imaging\IconFactory;
+use TYPO3\CMS\Core\Utility\GeneralUtility;
 
 /**
  * Frontend Timetracking functions
@@ -188,7 +190,8 @@ class TimeTracker {
                if (strlen($content) > 30) {
                        $placeholder = '<br /><span style="width: 300px; height: 1px; display: inline-block;"></span>';
                }
-               $this->tsStackLog[$k]['message'][] = IconUtility::getSpriteIcon($this->wrapIcon[$num]) . $this->wrapError[$num][0] . htmlspecialchars($content) . $this->wrapError[$num][1] . $placeholder;
+               $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
+               $this->tsStackLog[$k]['message'][] = $iconFactory->getIcon($this->wrapIcon[$num], Icon::SIZE_SMALL) . $this->wrapError[$num][0] . htmlspecialchars($content) . $this->wrapError[$num][1] . $placeholder;
        }
 
        /**
@@ -327,7 +330,7 @@ class TimeTracker {
                        if (!$flag_tree && $data['stackPointer']) {
                                $temp = array();
                                foreach ($data['tsStack'] as $k => $v) {
-                                       $temp[] = \TYPO3\CMS\Core\Utility\GeneralUtility::fixed_lgd_cs(implode($v, $k ? '.' : '/'), -$keyLgd);
+                                       $temp[] = GeneralUtility::fixed_lgd_cs(implode($v, $k ? '.' : '/'), -$keyLgd);
                                }
                                array_pop($temp);
                                $temp = array_reverse($temp);
@@ -337,12 +340,12 @@ class TimeTracker {
                                }
                        }
                        if ($flag_tree) {
-                               $tmp = \TYPO3\CMS\Core\Utility\GeneralUtility::trimExplode('.', $data['key'], TRUE);
+                               $tmp = GeneralUtility::trimExplode('.', $data['key'], TRUE);
                                $theLabel = end($tmp);
                        } else {
                                $theLabel = $data['key'];
                        }
-                       $theLabel = \TYPO3\CMS\Core\Utility\GeneralUtility::fixed_lgd_cs($theLabel, -$keyLgd);
+                       $theLabel = GeneralUtility::fixed_lgd_cs($theLabel, -$keyLgd);
                        $theLabel = $data['stackPointer'] ? '<span class="stackPointer">' . $theLabel . '</span>' : $theLabel;
                        $keyLabel = $theLabel . $keyLabel;
                        $item .= '<td class="' . $logRowClass . '">' . ($flag_tree ? $data['icons'] : '') . $this->fw($keyLabel) . '</td>';
@@ -462,7 +465,7 @@ class TimeTracker {
        protected function fixCLen($c, $v) {
                $len = $v == 'FILE' ? $this->printConf['contentLength_FILE'] : $this->printConf['contentLength'];
                if (strlen($c) > $len) {
-                       $c = '<span style="color:green;">' . htmlspecialchars(\TYPO3\CMS\Core\Utility\GeneralUtility::fixed_lgd_cs($c, $len)) . '</span>';
+                       $c = '<span style="color:green;">' . htmlspecialchars(GeneralUtility::fixed_lgd_cs($c, $len)) . '</span>';
                } else {
                        $c = htmlspecialchars($c);
                }
index be40d53..8b1aa1f 100644 (file)
@@ -23,7 +23,7 @@ use TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper;
 use TYPO3\CMS\Fluid\Core\ViewHelper\Facets\CompilableInterface;
 
 /**
- * Displays sprite icon identified by iconName key
+ * Displays icon identified by icon identifier
  */
 class IconViewHelper extends AbstractViewHelper implements CompilableInterface {
 
index 8306dea..9b90eb0 100644 (file)
@@ -93,11 +93,11 @@ The core provides a fluid ViewHelper which makes it really easy to use icons wit
 .. code-block:: html
 
        {namespace core = TYPO3\CMS\Core\ViewHelpers}
-       <core:icon identifier="my-icon-identifier" size="small" />
-       <!-- use the "default" size if none given ->
+       <core:icon identifier="my-icon-identifier" />
+       <!-- use the "small" size if none given ->
        <core:icon identifier="my-icon-identifier" />
        <core:icon identifier="my-icon-identifier" size="large" />
-       <core:icon identifier="my-icon-identifier" size="small" overlay="overlay-identifier" />
+       <core:icon identifier="my-icon-identifier" overlay="overlay-identifier" />
        <core:icon identifier="my-icon-identifier" size="default" overlay="overlay-identifier" />
        <core:icon identifier="my-icon-identifier" size="large" overlay="overlay-identifier" />
 
index 30835b9..178fb66 100644 (file)
@@ -35,5 +35,5 @@ This ViewHelper has an argument for the new state parameter.
 .. code-block:: html
 
        {namespace core = TYPO3\CMS\Core\ViewHelpers}
-       <core:icon identifier="my-icon-identifier" size="small" state="disabled" />
+       <core:icon identifier="my-icon-identifier" state="disabled" />
 
diff --git a/typo3/sysext/core/Documentation/Changelog/master/Important-69531-RemoveSpriteManagerIconViewHelper.rst b/typo3/sysext/core/Documentation/Changelog/master/Important-69531-RemoveSpriteManagerIconViewHelper.rst
new file mode 100644 (file)
index 0000000..9521e70
--- /dev/null
@@ -0,0 +1,9 @@
+======================================================
+Important: #69531 - Remove SpriteManagerIconViewHelper
+======================================================
+
+Description
+===========
+
+The ``\TYPO3\CMS\Backend\ViewHelpers\SpriteManagerIconViewHelper`` is not used anymore and has been removed.
+Use ``\TYPO3\CMS\Core\ViewHelpers\IconViewHelper`` instead
index 8337701..332179e 100644 (file)
@@ -15,6 +15,9 @@ namespace TYPO3\CMS\Documentation\Slots;
  */
 
 use TYPO3\CMS\Backend\Utility\IconUtility;
+use TYPO3\CMS\Core\Imaging\Icon;
+use TYPO3\CMS\Core\Imaging\IconFactory;
+use TYPO3\CMS\Core\Utility\GeneralUtility;
 use TYPO3\CMS\Documentation\ViewHelpers\FormatsViewHelper;
 use TYPO3\CMS\Fluid\Core\Rendering\RenderingContext;
 
@@ -72,9 +75,10 @@ class ExtensionManager {
                                );
                        }
                } else {
-                       $actions[] = '<span class="btn btn-default disabled">' . IconUtility::getSpriteIcon('empty-empty') . '</span>';
-                       $actions[] = '<span class="btn btn-default disabled">' . IconUtility::getSpriteIcon('empty-empty') . '</span>';
-                       $actions[] = '<span class="btn btn-default disabled">' . IconUtility::getSpriteIcon('empty-empty') . '</span>';
+                       $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
+                       $actions[] = '<span class="btn btn-default disabled">' . $iconFactory->getIcon('empty-empty', Icon::SIZE_SMALL) . '</span>';
+                       $actions[] = '<span class="btn btn-default disabled">' . $iconFactory->getIcon('empty-empty', Icon::SIZE_SMALL) . '</span>';
+                       $actions[] = '<span class="btn btn-default disabled">' . $iconFactory->getIcon('empty-empty', Icon::SIZE_SMALL) . '</span>';
                }
        }
 
index 48e71fe..e3efd9c 100644 (file)
@@ -14,7 +14,9 @@ namespace TYPO3\CMS\Documentation\ViewHelpers;
  * The TYPO3 project - inspiring people to share!
  */
 
-use TYPO3\CMS\Backend\Utility\IconUtility;
+use TYPO3\CMS\Core\Imaging\Icon;
+use TYPO3\CMS\Core\Imaging\IconFactory;
+use TYPO3\CMS\Core\Utility\GeneralUtility;
 use TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper;
 use TYPO3\CMS\Fluid\Core\Rendering\RenderingContextInterface;
 use TYPO3\CMS\Fluid\Core\ViewHelper\Facets\CompilableInterface;
@@ -54,10 +56,12 @@ class FormatsViewHelper extends AbstractViewHelper implements CompilableInterfac
        static public function renderStatic(array $arguments, \Closure $renderChildrenClosure, RenderingContextInterface $renderingContext) {
                $documentTranslation = $arguments['documentTranslation'];
 
+               $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
+               $emptyIcon = $iconFactory->getIcon('empty-empty', Icon::SIZE_SMALL)->render();
                $icons = array(
-                       'html' => '<a class="btn btn-default disabled">' . IconUtility::getSpriteIcon('empty-empty') . '</a>',
-                       'pdf' => '<a class="btn btn-default disabled">' . IconUtility::getSpriteIcon('empty-empty') . '</a>',
-                       'sxw' => '<a class="btn btn-default disabled">' . IconUtility::getSpriteIcon('empty-empty') . '</a>'
+                       'html' => '<a class="btn btn-default disabled">' . $emptyIcon . '</a>',
+                       'pdf' => '<a class="btn btn-default disabled">' . $emptyIcon . '</a>',
+                       'sxw' => '<a class="btn btn-default disabled">' . $emptyIcon . '</a>'
                );
                $formats = $documentTranslation->getFormats();
 
@@ -76,7 +80,7 @@ class FormatsViewHelper extends AbstractViewHelper implements CompilableInterfac
                                if ($extension === 'json') {
                                        $extension = 'js';
                                }
-                               $output .= 'href="#" onclick="top.TYPO3.Backend.ContentContainer.setUrl(' . \TYPO3\CMS\Core\Utility\GeneralUtility::quoteJSvalue($uri) . ')" class="btn btn-default"';
+                               $output .= 'href="#" onclick="top.TYPO3.Backend.ContentContainer.setUrl(' . GeneralUtility::quoteJSvalue($uri) . ')" class="btn btn-default"';
                        }
 
                        $xliff = 'LLL:EXT:documentation/Resources/Private/Language/locallang.xlf';
index 8289c46..7eec0d1 100644 (file)
@@ -15,6 +15,9 @@ namespace TYPO3\CMS\Extensionmanager\ViewHelpers;
  */
 
 use TYPO3\CMS\Backend\Utility\IconUtility;
+use TYPO3\CMS\Core\Imaging\Icon;
+use TYPO3\CMS\Core\Imaging\IconFactory;
+use TYPO3\CMS\Core\Utility\GeneralUtility;
 
 /**
  * View helper for configure extension link
@@ -57,7 +60,8 @@ class ConfigureExtensionViewHelper extends \TYPO3\CMS\Fluid\ViewHelpers\Link\Act
                        $this->tag->setContent($content);
                        $content = $this->tag->render();
                } elseif ($forceConfiguration) {
-                       $content = '<span class="btn btn-default disabled">' . IconUtility::getSpriteIcon('empty-empty') . '</span>';
+                       $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
+                       $content = '<span class="btn btn-default disabled">' . $iconFactory->getIcon('empty-empty', Icon::SIZE_SMALL)->render() . '</span>';
                }
 
                return $content;
index d2829a1..cd945dd 100644 (file)
@@ -42,7 +42,7 @@ class DownloadExtensionDataViewHelper extends \TYPO3\CMS\Fluid\ViewHelpers\Link\
 
                $filePrefix = PATH_site . $extension['siteRelPath'];
                if (!file_exists(($filePrefix . 'ext_tables.sql')) && !file_exists(($filePrefix . 'ext_tables_static+adt.sql'))) {
-                       return '<span class="btn btn-default disabled">' . IconUtility::getSpriteIcon('empty-empty') . '</span>';
+                       return '<span class="btn btn-default disabled">' . $iconFactory->getIcon('empty-empty', Icon::SIZE_SMALL) . '</span>';
                }
                $uriBuilder = $this->controllerContext->getUriBuilder();
                $uriBuilder->reset();
index 66b855c..27a46ac 100644 (file)
@@ -37,17 +37,16 @@ class RemoveExtensionViewHelper extends \TYPO3\CMS\Fluid\ViewHelpers\Link\Action
         * @return string the rendered a tag
         */
        public function render($extension) {
+               $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
                if (\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::isLoaded($extension['key'])) {
-                       return '<span class="btn btn-default disabled">' . IconUtility::getSpriteIcon('empty-empty') . '</span>';
+                       return '<span class="btn btn-default disabled">' . $iconFactory->getIcon('empty-empty', Icon::SIZE_SMALL) . '</span>';
                }
                if (
                        !in_array($extension['type'], \TYPO3\CMS\Extensionmanager\Domain\Model\Extension::returnAllowedInstallTypes()) ||
                        $extension['type'] === 'System'
                ) {
-                       return '<span class="btn btn-default disabled">' . IconUtility::getSpriteIcon('empty-empty') . '</span>';
+                       return '<span class="btn btn-default disabled">' . $iconFactory->getIcon('empty-empty', Icon::SIZE_SMALL) . '</span>';
                }
-               /** @var IconFactory $iconFactory */
-               $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
                $uriBuilder = $this->controllerContext->getUriBuilder();
                $action = 'removeExtension';
                $uriBuilder->reset();
index b8a259e..8d04a5b 100644 (file)
@@ -15,6 +15,9 @@ namespace TYPO3\CMS\Extensionmanager\ViewHelpers;
  */
 
 use TYPO3\CMS\Backend\Utility\IconUtility;
+use TYPO3\CMS\Core\Imaging\Icon;
+use TYPO3\CMS\Core\Imaging\IconFactory;
+use TYPO3\CMS\Core\Utility\GeneralUtility;
 
 /**
  * View helper for update script link
@@ -64,7 +67,8 @@ class UpdateScriptViewHelper extends \TYPO3\CMS\Fluid\ViewHelpers\Link\ActionVie
                        $this->tag->setContent(\TYPO3\CMS\Backend\Utility\IconUtility::getSpriteIcon('extensions-extensionmanager-update-script'));
                        $tag = $this->tag->render();
                } else {
-                       return '<span class="btn btn-default disabled">' . IconUtility::getSpriteIcon('empty-empty') . '</span>';
+                       $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
+                       return '<span class="btn btn-default disabled">' . $iconFactory->getIcon('empty-empty', Icon::SIZE_SMALL) . '</span>';
                }
                return $tag;
        }
index e53b5e1..6d3f45a 100644 (file)
@@ -313,7 +313,7 @@ class FileList extends AbstractRecordList {
         */
        public function getTable($rowlist) {
                // prepare space icon
-               $this->spaceIcon = '<span class="btn btn-default disabled">' . IconUtility::getSpriteIcon('empty-empty') . '</span>';
+               $this->spaceIcon = '<span class="btn btn-default disabled">' . $this->iconFactory->getIcon('empty-empty', Icon::SIZE_SMALL) . '</span>';
 
                // @todo use folder methods directly when they support filters
                $storage = $this->folderObject->getStorage();
@@ -935,7 +935,7 @@ class FileList extends AbstractRecordList {
                        } elseif ($fileOrFolderObject instanceof File) {
                                $infoOnClick = 'top.launchView( \'_FILE\', ' . GeneralUtility::quoteJSvalue($fullIdentifier) . ');return false;';
                        }
-                       $cells['info'] = '<a href="#" class="btn btn-default" onclick="' . htmlspecialchars($infoOnClick) . '" title="' . $this->getLanguageService()->sL('LLL:EXT:lang/locallang_core.xlf:cm.info') . '">' . IconUtility::getSpriteIcon('status-dialog-information') . '</a>';
+                       $cells['info'] = '<a href="#" class="btn btn-default" onclick="' . htmlspecialchars($infoOnClick) . '" title="' . $this->getLanguageService()->sL('LLL:EXT:lang/locallang_core.xlf:cm.info') . '">' . $this->iconFactory->getIcon('actions-document-info', Icon::SIZE_SMALL)->render() . '</a>';
                } else {
                        $cells['info'] = $this->spaceIcon;
                }
index 7a21745..53d5b88 100644 (file)
@@ -19,6 +19,8 @@ use TYPO3\CMS\Backend\Template\DocumentTemplate;
 use TYPO3\CMS\Backend\Utility\IconUtility;
 use TYPO3\CMS\Core\Database\QueryView;
 use TYPO3\CMS\Core\Database\ReferenceIndex;
+use TYPO3\CMS\Core\Imaging\Icon;
+use TYPO3\CMS\Core\Imaging\IconFactory;
 use TYPO3\CMS\Core\Integrity\DatabaseIntegrityCheck;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
 use TYPO3\CMS\Backend\Utility\BackendUtility;
@@ -389,7 +391,8 @@ class DatabaseIntegrityView extends BaseScriptClass {
                                if (is_array($admin->lRecords[$t])) {
                                        foreach ($admin->lRecords[$t] as $data) {
                                                if (!GeneralUtility::inList($admin->lostPagesList, $data['pid'])) {
-                                                       $lr .= '<div class="record"><a href="' . htmlspecialchars((BackendUtility::getModuleUrl('system_dbint') . '&SET[function]=records&fixLostRecords_table=' . $t . '&fixLostRecords_uid=' . $data['uid'])) . '">' . IconUtility::getSpriteIcon('status-dialog-error', array('title' => $lang->getLL('fixLostRecord'))) . '</a>uid:' . $data['uid'] . ', pid:' . $data['pid'] . ', ' . htmlspecialchars(GeneralUtility::fixed_lgd_cs(strip_tags($data['title']), 20)) . '</div>';
+                                                       $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
+                                                       $lr .= '<div class="record"><a href="' . htmlspecialchars((BackendUtility::getModuleUrl('system_dbint') . '&SET[function]=records&fixLostRecords_table=' . $t . '&fixLostRecords_uid=' . $data['uid'])) . '" title="' . $lang->getLL('fixLostRecord', TRUE) . '">' . $iconFactory->getIcon('status-dialog-error', Icon::SIZE_SMALL)->render() . '</a>uid:' . $data['uid'] . ', pid:' . $data['pid'] . ', ' . htmlspecialchars(GeneralUtility::fixed_lgd_cs(strip_tags($data['title']), 20)) . '</div>';
                                                } else {
                                                        $lr .= '<div class="record-noicon">uid:' . $data['uid'] . ', pid:' . $data['pid'] . ', ' . htmlspecialchars(GeneralUtility::fixed_lgd_cs(strip_tags($data['title']), 20)) . '</div>';
                                                }
index 50c855a..04db804 100755 (executable)
@@ -1704,7 +1704,7 @@ class ElementBrowser {
                                $ATag_e = '</a>';
                        }
                }
-               $pBicon = $ATag2 ? IconUtility::getSpriteIcon('actions-edit-add') : '';
+               $pBicon = $ATag2 ? $this->iconFactory->getIcon('actions-edit-add', Icon::SIZE_SMALL)->render() : '';
                $pText = htmlspecialchars(GeneralUtility::fixed_lgd_cs($mainPageRec['title'], $titleLen));
                $out .= $picon . $ATag2 . $pBicon . $ATag_e . $ATag . $pText . $ATag_e . '<br />';
                // Initialize the record listing:
@@ -1981,7 +1981,7 @@ class ElementBrowser {
                                $lines[] = '
                                        <tr class="file_list_normal">
                                                <td nowrap="nowrap">' . $filenameAndIcon . '&nbsp;</td>
-                                               <td>' . $ATag . IconUtility::getSpriteIcon('actions-edit-add', array('title' =>  $lang->getLL('addToList', TRUE))) . $ATag_e . '</td>
+                                               <td>' . $ATag . '<span title="' .  $lang->getLL('addToList', TRUE) . '">' . $this->iconFactory->getIcon('actions-edit-add', Icon::SIZE_SMALL)->render() . '</span>' . $ATag_e . '</td>
                                                <td nowrap="nowrap"><a href="' . htmlspecialchars($Ahref) . '" title="' . $lang->getLL('info', TRUE) . '">' . $this->iconFactory->getIcon('actions-document-info', Icon::SIZE_SMALL) . $lang->getLL('info', TRUE) . $ATag2_e . '</td>
                                                <td nowrap="nowrap">&nbsp;' . $pDim . '</td>
                                        </tr>';
@@ -1993,7 +1993,7 @@ class ElementBrowser {
                                $lines[] = '
                                        <tr class="file_list_normal">
                                                <td nowrap="nowrap">' . $filenameAndIcon . '&nbsp;</td>
-                                               <td>' . $ATag . IconUtility::getSpriteIcon('actions-edit-add', array('title' =>  $lang->getLL('addToList', TRUE))) . $ATag_e . '</td>
+                                               <td>' . $ATag . '<span title="' . $lang->getLL('addToList', TRUE) . '">' . $this->iconFactory->getIcon('actions-edit-add', Icon::SIZE_SMALL)->render() . '</span>' . $ATag_e . '</td>
                                                <td nowrap="nowrap"><a href="' . htmlspecialchars($Ahref) . '" title="' . $lang->getLL('info', TRUE) . '">' . $this->iconFactory->getIcon('actions-document-info', Icon::SIZE_SMALL) . $lang->getLL('info', TRUE) . $ATag2_e . '</td>
                                                <td>&nbsp;</td>
                                        </tr>';
@@ -2089,7 +2089,7 @@ class ElementBrowser {
                                $lines[] = '
                                        <tr class="bgColor4">
                                                <td nowrap="nowrap">' . $foldernameAndIcon . '&nbsp;</td>
-                                               <td>' . $aTag . IconUtility::getSpriteIcon('actions-edit-add', array('title' =>  $lang->getLL('addToList', TRUE))) . $aTag_e . ' </td>
+                                               <td>' . $aTag . '<span title="' . $lang->getLL('addToList', TRUE) . '">' . $this->iconFactory->getIcon('actions-edit-add', Icon::SIZE_SMALL)->render() . '</span>' . $aTag_e . ' </td>
                                                <td>&nbsp;</td>
                                        </tr>';
                        }
@@ -2186,7 +2186,7 @@ class ElementBrowser {
                                                <td nowrap="nowrap">' . $filenameAndIcon . '&nbsp;</td>
                                                <td nowrap="nowrap">' . ($imgInfo[0] != $IW
                                                ? '<a href="' . htmlspecialchars(GeneralUtility::linkThisScript(array('noLimit' => '1')))
-                                               . '">' . IconUtility::getSpriteIcon('status-dialog-warning', array('title' => $lang->getLL('clickToRedrawFullSize', TRUE)))
+                                               . '" title="' . $lang->getLL('clickToRedrawFullSize', TRUE) . '">' . $this->iconFactory->getIcon('status-dialog-warning', Icon::SIZE_SMALL)->render()
                                                . '</a>'
                                                : '')
                                        . $pDim . '&nbsp;</td>
index f4ee9d4..71cf836 100644 (file)
@@ -358,7 +358,7 @@ class DatabaseRecordList extends AbstractDatabaseRecordList {
                        && !$GLOBALS['TCA'][$table]['ctrl']['transOrigPointerTable'];
                $tableCollapsed = (bool)$this->tablesCollapsed[$table];
                // prepare space icon
-               $this->spaceIcon = '<span class="btn btn-default disabled">' . IconUtility::getSpriteIcon('empty-empty') . '</span>';
+               $this->spaceIcon = '<span class="btn btn-default disabled">' . $this->iconFactory->getIcon('empty-empty', Icon::SIZE_SMALL) . '</span>';
                // Cleaning rowlist for duplicates and place the $titleCol as the first column always!
                $this->fieldArray = array();
                // title Column
index a45a157..2aef742 100644 (file)
@@ -988,7 +988,7 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
                                        $lastExecution = '-';
                                        $isRunning = FALSE;
                                        $showAsDisabled = FALSE;
-                                       $startExecutionElement = '<span class="btn btn-default disabled">' . IconUtility::getSpriteIcon('empty-empty') . '</span>';
+                                       $startExecutionElement = '<span class="btn btn-default disabled">' . $this->iconFactory->getIcon('empty-empty', Icon::SIZE_SMALL) . '</span>';
                                        // Restore the serialized task and pass it a reference to the scheduler object
                                        /** @var $task \TYPO3\CMS\Scheduler\Task\AbstractTask|\TYPO3\CMS\Scheduler\ProgressProviderInterface */
                                        $task = unserialize($schedulerRecord['serialized_task_object']);
@@ -1134,10 +1134,10 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
                                                                . '<td class="right">' . $schedulerRecord['uid'] . '</td>'
                                                                . '<td colspan="6">' . $executionStatusOutput . '</td>'
                                                                . '<td nowrap="nowrap"><div class="btn-group" role="group">'
-                                                                       . '<span class="btn btn-default disabled">' . IconUtility::getSpriteIcon('empty-empty') . '</span>'
-                                                                       . '<span class="btn btn-default disabled">' . IconUtility::getSpriteIcon('empty-empty') . '</span>'
+                                                                       . '<span class="btn btn-default disabled">' . $this->iconFactory->getIcon('empty-empty', Icon::SIZE_SMALL) . '</span>'
+                                                                       . '<span class="btn btn-default disabled">' . $this->iconFactory->getIcon('empty-empty', Icon::SIZE_SMALL) . '</span>'
                                                                        . $deleteAction
-                                                                       . '<span class="btn btn-default disabled">' . IconUtility::getSpriteIcon('empty-empty') . '</span>'
+                                                                       . '<span class="btn btn-default disabled">' . $this->iconFactory->getIcon('empty-empty', Icon::SIZE_SMALL) . '</span>'
                                                                . '</div></td>'
                                                        . '</tr>';
                                        }
index 3c6e2fb..f3b951f 100644 (file)
@@ -7856,9 +7856,21 @@ button.close {
 .icon-actions-edit-copy-release,
 .icon-actions-edit-cut-release,
 .icon-overlay-read-only,
-.icon-status-status-current {
+.icon-status-status-current,
+.icon-status-dialog-error,
+.icon-status-status-permission-denied {
   color: #c83c3c;
 }
+.icon-status-dialog-ok,
+.icon-status-status-permission-granted {
+  color: #79a548;
+}
+.icon-status-dialog-notification {
+  color: #333333;
+}
+.icon-status-dialog-warning {
+  color: #e8a33d;
+}
 .clearfix:before,
 .clearfix:after,
 .dl-horizontal dd:before,
index d77d6fc..e74c15a 100644 (file)
@@ -16,6 +16,8 @@ namespace TYPO3\CMS\Workspaces\Backend\ToolbarItems;
 
 use TYPO3\CMS\Backend\Toolbar\ToolbarItemInterface;
 use TYPO3\CMS\Backend\Utility\IconUtility;
+use TYPO3\CMS\Core\Imaging\Icon;
+use TYPO3\CMS\Core\Imaging\IconFactory;
 use TYPO3\CMS\Core\Page\PageRenderer;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
 use TYPO3\CMS\Workspaces\Service\WorkspaceService;
@@ -80,12 +82,10 @@ class WorkspaceSelectorToolbarItem implements ToolbarItemInterface {
                $languageService = $this->getLanguageService();
 
                $index = 0;
+               $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
                $activeWorkspace = (int)$backendUser->workspace;
                $stateCheckedIcon = IconUtility::getSpriteIcon('status-status-checked');
-               $stateUncheckedIcon = IconUtility::getSpriteIcon('empty-empty', array(
-                       'title' => $languageService->getLL('bookmark_inactive')
-               ));
-
+               $stateUncheckedIcon = '<span title="' . $languageService->getLL('bookmark_inactive', TRUE) . '">' . $iconFactory->getIcon('empty-empty', Icon::SIZE_SMALL)->render() . '</span>';
                $workspaceSections = array(
                        'top' => array(),
                        'items' => array(),