Index: typo3/sysext/rtehtmlarea/htmlarea/htmlarea.js =================================================================== --- typo3/sysext/rtehtmlarea/htmlarea/htmlarea.js (révision 7037) +++ typo3/sysext/rtehtmlarea/htmlarea/htmlarea.js (copie de travail) @@ -3577,16 +3577,7 @@ getButton: function(buttonId) { return this.editor.toolbar.getButton(buttonId); }, - /** - * Arrays of ExtJS config properties that may be used on a button or dropdown in Page TSConfig - */ - ExtJSProperties: { - htmlareabutton: [], - htmlareacombo: ['width', 'listWidth', 'maxHeight' ] - }, - - /** * Registers a button for inclusion in the toolbar * * @param object buttonConfiguration: the configuration object of the button: @@ -3616,9 +3607,10 @@ buttonConfiguration.dimensions.left = buttonConfiguration.dimensions.left ? buttonConfiguration.dimensions.left : this.editorConfiguration.dialogueWindows.defaultPositionFromLeft; } buttonConfiguration.hidden = buttonConfiguration.hide; - // Copy ExtJS properties for the button + // Apply additional ExtJS config properties set in Page TSConfig + // May not always work for values that must be integers if (this.editorConfiguration.buttons[this.editorConfiguration.convertButtonId[buttonConfiguration.id]]) { - buttonConfiguration = Ext.copyTo(buttonConfiguration, this.editorConfiguration.buttons[this.editorConfiguration.convertButtonId[buttonConfiguration.id]], this.ExtJSProperties['htmlareabutton']); + Ext.applyIf(buttonConfiguration, this.editorConfiguration.buttons[this.editorConfiguration.convertButtonId[buttonConfiguration.id]]); } if (this.editorConfiguration.registerButton(buttonConfiguration)) { var hotKey = buttonConfiguration.hotKey ? buttonConfiguration.hotKey : @@ -3661,8 +3653,10 @@ dropDownConfiguration.plugins = this; dropDownConfiguration.hidden = dropDownConfiguration.hide; dropDownConfiguration.xtype = 'htmlareacombo'; + // Apply additional ExtJS config properties set in Page TSConfig + // May not always work for values that must be integers if (this.editorConfiguration.buttons[this.editorConfiguration.convertButtonId[dropDownConfiguration.id]]) { - dropDownConfiguration = Ext.copyTo(dropDownConfiguration, this.editorConfiguration.buttons[this.editorConfiguration.convertButtonId[dropDownConfiguration.id]], this.ExtJSProperties['htmlareacombo']); + Ext.applyIf(dropDownConfiguration, this.editorConfiguration.buttons[this.editorConfiguration.convertButtonId[dropDownConfiguration.id]]); } return this.editorConfiguration.registerButton(dropDownConfiguration); } else { Index: typo3/sysext/rtehtmlarea/htmlarea/plugins/BlockElements/block-elements.js =================================================================== --- typo3/sysext/rtehtmlarea/htmlarea/plugins/BlockElements/block-elements.js (révision 7037) +++ typo3/sysext/rtehtmlarea/htmlarea/plugins/BlockElements/block-elements.js (copie de travail) @@ -123,14 +123,19 @@ var dropDownConfiguration = { id: buttonId, tooltip: this.localize(buttonId + "-Tooltip"), - width: (this.buttonsConfiguration.formatblock && this.buttonsConfiguration.formatblock.width) ? this.buttonsConfiguration.formatblock.width : 200, - listWidth: (this.buttonsConfiguration.formatblock && this.buttonsConfiguration.formatblock.listWidth) ? this.buttonsConfiguration.formatblock.listWidth : 200, - maxHeight: (this.buttonsConfiguration.formatblock && this.buttonsConfiguration.formatblock.maxHeight) ? this.buttonsConfiguration.formatblock.maxHeight : 300, options: (this.buttonsConfiguration.formatblock ? this.buttonsConfiguration.formatblock.data : null), action: "onChange" }; + if (this.buttonsConfiguration.formatblock) { + dropDownConfiguration.width = this.buttonsConfiguration.formatblock.width ? parseInt(this.buttonsConfiguration.formatblock.width, 10) : 200; + if (this.buttonsConfiguration.formatblock.listWidth) { + dropDownConfiguration.listWidth = parseInt(this.buttonsConfiguration.formatblock.listWidth, 10); + } + if (this.buttonsConfiguration.formatblock.maxHeight) { + dropDownConfiguration.maxHeight = parseInt(this.buttonsConfiguration.formatblock.maxHeight, 10); + } + } this.registerDropDown(dropDownConfiguration); - /* * Establishing the list of allowed block elements */ Index: typo3/sysext/rtehtmlarea/htmlarea/plugins/BlockStyle/block-style.js =================================================================== --- typo3/sysext/rtehtmlarea/htmlarea/plugins/BlockStyle/block-style.js (révision 7037) +++ typo3/sysext/rtehtmlarea/htmlarea/plugins/BlockStyle/block-style.js (copie de travail) @@ -122,14 +122,20 @@ id: dropDownId, tooltip: this.localize(dropDownId + '-Tooltip'), fieldLabel: fieldLabel, - width: this.pageTSconfiguration.width ? this.pageTSconfiguration.width : 'auto', - listWidth: this.pageTSconfiguration.listWidth ? this.pageTSconfiguration.listWidth : 250, - maxHeight: this.pageTSconfiguration.maxHeight ? this.pageTSconfiguration.maxHeight : 300, options: [[this.localize('No style'), 'none']], action: 'onChange', storeFields: [ { name: 'text'}, { name: 'value'}, { name: 'style'} ], tpl: '
{text}
' }; + if (this.pageTSconfiguration.width) { + dropDownConfiguration.width = parseInt(this.pageTSconfiguration.width, 10); + } + if (this.pageTSconfiguration.listWidth) { + dropDownConfiguration.listWidth = parseInt(this.pageTSconfiguration.listWidth, 10); + } + if (this.pageTSconfiguration.maxHeight) { + dropDownConfiguration.maxHeight = parseInt(this.pageTSconfiguration.maxHeight, 10); + } this.registerDropDown(dropDownConfiguration); return true; }, Index: typo3/sysext/rtehtmlarea/htmlarea/plugins/Language/language.js =================================================================== --- typo3/sysext/rtehtmlarea/htmlarea/plugins/Language/language.js (révision 7037) +++ typo3/sysext/rtehtmlarea/htmlarea/plugins/Language/language.js (copie de travail) @@ -113,11 +113,18 @@ id : buttonId, tooltip : this.localize(buttonId + "-Tooltip"), options : options, - action : "onChange", - listWidth : 200 + action : "onChange" }; + if (this.buttonsConfiguration.language) { + dropDownConfiguration.width = this.buttonsConfiguration.language.width ? parseInt(this.buttonsConfiguration.language.width, 10) : 200; + if (this.buttonsConfiguration.language.listWidth) { + dropDownConfiguration.listWidth = parseInt(this.buttonsConfiguration.language.listWidth, 10); + } + if (this.buttonsConfiguration.language.maxHeight) { + dropDownConfiguration.maxHeight = parseInt(this.buttonsConfiguration.language.maxHeight, 10); + } + } this.registerDropDown(dropDownConfiguration); - return true; }, Index: typo3/sysext/rtehtmlarea/htmlarea/plugins/SelectFont/select-font.js =================================================================== --- typo3/sysext/rtehtmlarea/htmlarea/plugins/SelectFont/select-font.js (révision 7037) +++ typo3/sysext/rtehtmlarea/htmlarea/plugins/SelectFont/select-font.js (copie de travail) @@ -97,6 +97,17 @@ action: "onChange", tpl: this.disablePCexamples ? '' : '
{text}
' }; + if (this.buttonsConfiguration[dropDown[2]]) { + if (this.editorConfiguration.buttons[dropDown[2]].width) { + dropDownConfiguration.width = parseInt(this.editorConfiguration.buttons[dropDown[2]].width, 10); + } + if (this.editorConfiguration.buttons[dropDown[2]].listWidth) { + dropDownConfiguration.listWidth = parseInt(this.editorConfiguration.buttons[dropDown[2]].listWidth, 10); + } + if (this.editorConfiguration.buttons[dropDown[2]].maxHeight) { + dropDownConfiguration.maxHeight = parseInt(this.editorConfiguration.buttons[dropDown[2]].maxHeight, 10); + } + } this.registerDropDown(dropDownConfiguration); return true; }, this); Index: typo3/sysext/rtehtmlarea/htmlarea/plugins/TextStyle/text-style.js =================================================================== --- typo3/sysext/rtehtmlarea/htmlarea/plugins/TextStyle/text-style.js (révision 7037) +++ typo3/sysext/rtehtmlarea/htmlarea/plugins/TextStyle/text-style.js (copie de travail) @@ -121,16 +121,21 @@ id: buttonId, tooltip: this.localize(buttonId + '-Tooltip'), fieldLabel: fieldLabel, - width: this.pageTSconfiguration.width ? this.pageTSconfiguration.width : 'auto', - listWidth: this.pageTSconfiguration.listWidth ? this.pageTSconfiguration.listWidth : 250, - maxHeight: this.pageTSconfiguration.maxHeight ? this.pageTSconfiguration.maxHeight : 300, options: [[this.localize('No style'), 'none']], action: 'onChange', storeFields: [ { name: 'text'}, { name: 'value'}, { name: 'style'} ], tpl: '
{text}
' }; + if (this.pageTSconfiguration.width) { + dropDownConfiguration.width = parseInt(this.pageTSconfiguration.width, 10); + } + if (this.pageTSconfiguration.listWidth) { + dropDownConfiguration.listWidth = parseInt(this.pageTSconfiguration.listWidth, 10); + } + if (this.pageTSconfiguration.maxHeight) { + dropDownConfiguration.maxHeight = parseInt(this.pageTSconfiguration.maxHeight, 10); + } this.registerDropDown(dropDownConfiguration); - return true; },