5
5
6
6
use TYPO3 \CMS \Backend \Template \Components \Buttons \InputButton ;
7
7
use TYPO3 \CMS \Backend \Template \Components \ModifyButtonBarEvent ;
8
+ use TYPO3 \CMS \Core \Imaging \Icon ;
8
9
use TYPO3 \CMS \Core \Imaging \IconFactory ;
9
- use TYPO3 \CMS \Core \Imaging \IconSize ;
10
10
use TYPO3 \CMS \Core \Localization \LanguageService ;
11
11
use TYPO3 \CMS \Core \Localization \LanguageServiceFactory ;
12
+ use TYPO3 \CMS \Core \Page \JavaScriptModuleInstruction ;
13
+ use TYPO3 \CMS \Core \Page \PageRenderer ;
12
14
13
15
/**
14
16
* TYPO3 7 moved all save-actions into a drop-down. Only the default save action can be reached with one click.
18
20
class GetButtonsHook {
19
21
20
22
private IconFactory $ iconFactory ;
21
-
22
23
private LanguageService $ languageService ;
24
+ private PageRenderer $ pageRenderer ;
23
25
24
- public function __construct (IconFactory $ iconFactory , LanguageServiceFactory $ languageServiceFactory ) {
26
+ public function __construct (IconFactory $ iconFactory , LanguageServiceFactory $ languageServiceFactory, PageRenderer $ pageRenderer ) {
25
27
$ this ->iconFactory = $ iconFactory ;
26
28
$ this ->languageService = $ languageServiceFactory ->createFromUserPreferences ($ GLOBALS ['BE_USER ' ] ?? null );
29
+ $ this ->pageRenderer = $ pageRenderer ;
27
30
}
28
31
29
32
public function __invoke (ModifyButtonBarEvent $ event ): void {
@@ -33,14 +36,16 @@ public function __invoke(ModifyButtonBarEvent $event): void {
33
36
return ;
34
37
}
35
38
39
+ $ this ->pageRenderer ->getJavaScriptRenderer ()->addJavaScriptModuleInstruction (JavaScriptModuleInstruction::create ('@vierwd/vierwd_base/SaveAndClose.js ' ));
40
+
36
41
// find the save button and replace it
37
42
foreach ($ buttonBars ['left ' ] as &$ buttonGroup ) {
38
43
foreach ($ buttonGroup as $ button ) {
39
44
if ($ button instanceof InputButton && $ button ->getName () === '_savedok ' ) {
40
45
$ saveAndClose = new InputButton ();
41
46
42
47
$ saveAndClose ->setForm ($ button ->getForm ());
43
- $ saveAndClose ->setIcon ($ this ->iconFactory ->getIcon ('actions-document-save-close ' , IconSize:: SMALL ));
48
+ $ saveAndClose ->setIcon ($ this ->iconFactory ->getIcon ('actions-document-save-close ' , Icon:: SIZE_SMALL ));
44
49
$ saveAndClose ->setName ('_saveandclosedok ' );
45
50
$ saveAndClose ->setTitle ($ this ->languageService ->sL (
46
51
'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:rm.saveCloseDoc '
0 commit comments