From 05a0133384a94ab5dd645676e923c92bf260f465 Mon Sep 17 00:00:00 2001 From: kadevgraaf Date: Tue, 26 Jun 2018 11:42:44 +0200 Subject: [PATCH 1/4] initial attempt --- .../SlideEditPanel/SlideContentEditor.js | 34 ++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/components/Deck/ContentPanel/SlideModes/SlideEditPanel/SlideContentEditor.js b/components/Deck/ContentPanel/SlideModes/SlideEditPanel/SlideContentEditor.js index a5d84496a..27842a44b 100644 --- a/components/Deck/ContentPanel/SlideModes/SlideEditPanel/SlideContentEditor.js +++ b/components/Deck/ContentPanel/SlideModes/SlideEditPanel/SlideContentEditor.js @@ -585,9 +585,26 @@ class SlideContentEditor extends React.Component { filebrowserUploadUrl: Microservices.import.uri + '/importImage/' + this.props.UserProfileStore.userid, uploadUrl: Microservices.import.uri + '/importImagePaste/' + this.props.UserProfileStore.userid}); //leave all buttons + CKEDITOR.instances.inlineContent.on('instanceReady', (evt) => { if (this.refs.inlineContent.innerHTML.includes('pptx2html')) { + CKEDITOR.instances.inlineContent.on('beforeCommandExec', (evt) => { + if(evt.data.name === 'undo') { + // handle before undo + console.log('undo pressed'); + setTimeout(() => { + this.resizeDrag(); + }, 500); + } + if(evt.data.name === 'redo') { + // handle before redo + console.log('redo pressed'); + setTimeout(() => { + this.resizeDrag(); + }, 500); + } + }); //this.forceUpdate(); //this.addBorders(); this.resizeDrag(); @@ -944,7 +961,22 @@ class SlideContentEditor extends React.Component { //}); CKEDITOR.instances.inlineContent.on('instanceReady', (evt) => { - + CKEDITOR.instances.inlineContent.on('beforeCommandExec', (evt) => { + if(evt.data.name === 'undo') { + // handle before undo + console.log('undo pressed'); + setTimeout(() => { + this.resizeDrag(); + }, 1000); + } + if(evt.data.name === 'redo') { + // handle before redo + console.log('redo pressed'); + setTimeout(() => { + this.resizeDrag(); + }, 1000); + } + }); this.finishLoading = true; //console.log('test'); CKEDITOR.instances.inlineContent.on( 'key', () => { From d8e4635d672815c03ebe4fbf7d073a3b80fcfe07 Mon Sep 17 00:00:00 2001 From: kadevgraaf Date: Tue, 21 Aug 2018 15:25:29 +0200 Subject: [PATCH 2/4] Add buttons, locksnapshot when refreshing dragandresize --- ...ic.js => ckeditor_config_speaker_notes.js} | 0 .../SlideEditPanel/SlideContentEditor.js | 121 +++++++++--------- .../SlideEditLeftPanel/SlideEditLeftPanel.js | 62 ++++++--- custom_modules/reveal.js | 2 +- 4 files changed, 104 insertions(+), 81 deletions(-) rename assets/{ckeditor_config_basic.js => ckeditor_config_speaker_notes.js} (100%) diff --git a/assets/ckeditor_config_basic.js b/assets/ckeditor_config_speaker_notes.js similarity index 100% rename from assets/ckeditor_config_basic.js rename to assets/ckeditor_config_speaker_notes.js diff --git a/components/Deck/ContentPanel/SlideModes/SlideEditPanel/SlideContentEditor.js b/components/Deck/ContentPanel/SlideModes/SlideEditPanel/SlideContentEditor.js index acc4d31d3..745850733 100644 --- a/components/Deck/ContentPanel/SlideModes/SlideEditPanel/SlideContentEditor.js +++ b/components/Deck/ContentPanel/SlideModes/SlideEditPanel/SlideContentEditor.js @@ -587,7 +587,7 @@ class SlideContentEditor extends React.Component { this.uniqueIDAllElements(); this.resize(); $('.pptx2html').css({'borderStyle': 'double', 'borderColor': 'rgba(218,102,25,0.5)'}); - this.resizeDrag(); + this.resizeDragAndContextMenu(); //this.forceUpdate(); } refreshCKeditor(){ @@ -604,25 +604,27 @@ class SlideContentEditor extends React.Component { CKEDITOR.instances.inlineContent.on('instanceReady', (evt) => { if (this.refs.inlineContent.innerHTML.includes('pptx2html')) { - CKEDITOR.instances.inlineContent.on('beforeCommandExec', (evt) => { + CKEDITOR.instances.inlineContent.on('afterCommandExec', (evt) => { if(evt.data.name === 'undo') { - // handle before undo - console.log('undo pressed'); + console.log('undo pressed after refreshing CKeditor'); setTimeout(() => { - this.resizeDrag(); + CKEDITOR.instances.inlineContent.fire('lockSnapshot'); + this.resetResizeDragContext(); + CKEDITOR.instances.inlineContent.fire('unlockSnapshot'); }, 500); } if(evt.data.name === 'redo') { - // handle before redo - console.log('redo pressed'); + console.log('redo pressed after refreshing CKeditor'); setTimeout(() => { - this.resizeDrag(); + CKEDITOR.instances.inlineContent.fire('lockSnapshot'); + this.resetResizeDragContext(); + CKEDITOR.instances.inlineContent.fire('unlockSnapshot'); }, 500); } }); //this.forceUpdate(); //this.addBorders(); - this.resizeDrag(); + this.resizeDragAndContextMenu(); //ugly fix for SWIK-1218-After using source dialog in CKeditor - input box controls (and template + input box button) do not work $('.cke_button__sourcedialog_label').mousedown((evt) => { //detect click on source dialog button //remove resize and drag interaction because it generates HTML in slide editor content @@ -635,7 +637,7 @@ class SlideContentEditor extends React.Component { //console.log('====ckeditor save button ok==== - refresh drag and menus'); //this.addBorders(); setTimeout(() => { - this.resizeDrag(); + this.resizeDragAndContextMenu(); this.hasChanges = true; ////this.forceUpdate(); }, 500); @@ -659,7 +661,7 @@ class SlideContentEditor extends React.Component { //this.addBorders(); setTimeout(() => { this.refreshCKeditor(); - this.resizeDrag(); + this.resizeDragAndContextMenu(); //this.forceUpdate(); this.hasChanges = true; }, 500); @@ -806,6 +808,12 @@ class SlideContentEditor extends React.Component { $(this).css('box-shadow',''); }); } + resetResizeDragContext(){ + console.log('resetResizeDragContext'); + this.disableResizeDrag(); + this.contextMenuAndDragDivAllRemove(); + this.resizeDragAndContextMenu(); + } getHighestZIndex(){ let index_highest = 0; $('.pptx2html [style*="absolute"]').each(function() { @@ -848,7 +856,7 @@ class SlideContentEditor extends React.Component { CKEDITOR.instances.inlineContent.getSelection().unlock(); }); //this.uniqueIDAllElements(); - this.resizeDrag(); + this.resizeDragAndContextMenu(); this.placeCaretAtStart(uniqueID); $('#' + uniqueID).focus(); @@ -897,7 +905,7 @@ class SlideContentEditor extends React.Component { //CKEDITOR.instances.inlineContent.setData(newContent); this.hasChanges = true; //this.forceUpdate(); - this.resizeDrag(); + this.resizeDragAndContextMenu(); this.resize(); $('.pptx2html').css({'borderStyle': 'double', 'borderColor': 'rgba(218,102,25,0.5)'}); }, (reason) => { @@ -949,7 +957,7 @@ class SlideContentEditor extends React.Component { CKEDITOR.disableAutoInline = true; //if (typeof(CKEDITOR.instances.inlineSpeakerNotes) === 'undefined'){ CKEDITOR.inline('inlineSpeakerNotes', { - customConfig: '/assets/ckeditor_config_basic.js', + customConfig: '/assets/ckeditor_config_speaker_notes.js', toolbarGroups: [ //needed for Chrome initialization { name: 'basicstyles', items: ['Bold', 'Italic', 'Underline'] }, @@ -984,20 +992,22 @@ class SlideContentEditor extends React.Component { //}); CKEDITOR.instances.inlineContent.on('instanceReady', (evt) => { - CKEDITOR.instances.inlineContent.on('beforeCommandExec', (evt) => { + CKEDITOR.instances.inlineContent.on('afterCommandExec', (evt) => { if(evt.data.name === 'undo') { - // handle before undo - console.log('undo pressed'); + console.log('undo pressed - initial CKeditor load'); setTimeout(() => { - this.resizeDrag(); - }, 1000); + CKEDITOR.instances.inlineContent.fire('lockSnapshot'); + this.resetResizeDragContext(); + CKEDITOR.instances.inlineContent.fire('unlockSnapshot'); + }, 500); } if(evt.data.name === 'redo') { - // handle before redo - console.log('redo pressed'); + console.log('redo pressed - initial CKeditor load'); setTimeout(() => { - this.resizeDrag(); - }, 1000); + CKEDITOR.instances.inlineContent.fire('lockSnapshot'); + this.resetResizeDragContext(); + CKEDITOR.instances.inlineContent.fire('unlockSnapshot'); + }, 500); } }); this.finishLoading = true; @@ -1020,9 +1030,9 @@ class SlideContentEditor extends React.Component { { //this.forceUpdate(); //this.addBorders(); - this.resizeDrag(); + this.resizeDragAndContextMenu(); - //console.log('resizeDrag and borders'); + //console.log('resizeDragAndContextMenu and borders'); //show that content is outside of pptx2html box //$('.pptx2html').css({'borderStyle': 'none none double none', 'borderColor': '#3366ff', 'box-shadow': '0px 100px 1000px #ff8787'}); $('.pptx2html').css({'borderStyle': 'double', 'borderColor': 'rgba(218,102,25,0.5)'}); @@ -1039,7 +1049,7 @@ class SlideContentEditor extends React.Component { //console.log('====ckeditor save button ok==== - refresh drag and menus'); //this.addBorders(); setTimeout(() => { - this.resizeDrag(); + this.resizeDragAndContextMenu(); this.hasChanges = true; ////this.forceUpdate(); }, 500); @@ -1059,7 +1069,7 @@ class SlideContentEditor extends React.Component { //this.addBorders(); setTimeout(() => { this.refreshCKeditor(); - this.resizeDrag(); + this.resizeDragAndContextMenu(); //this.forceUpdate(); this.hasChanges = true; }, 500); @@ -1150,17 +1160,13 @@ class SlideContentEditor extends React.Component { }); } - resizeDrag(){ + resizeDragAndContextMenu(){ //http://jqueryui.com/resizable/ - //http://interface.eyecon.ro/docs/resizable // TODO -> create SVG around draggable element with points/blocks for resize handlers // OR by emulating textarea - http://stackoverflow.com/questions/18427555/jquery-textarea-draggable - // or: make images JQUERY draggable, and have original button for text input - too complex + // or: make images JQUERY draggable, and have original button for text input // - // TODO: Make background outside slide grey! - - //***************position mode - default/start//*************** let slideEditorContext = this; //set slideEditorContext inside doubleclick callbacks @@ -1306,22 +1312,11 @@ class SlideContentEditor extends React.Component { //give each input box element a context menu (hide/overlap CKeditor context menu) this.contextMenuAll(); - //***************content mode//*************** - //TODO: on undo (ctr-l Z) - restore resize/drag elements previously removed //TODO: on editing source in CKeditor - restore resize/drag elements //TODO: caret position is reset in firefox, except for when typing //TODO: call emitChange() for new actions //TODO: if you select an element and starty typing: then directly switch to edit mode - //set double click event for input box - ondoubleclick - remove dragable and set cursor to auto for editing content - /* - $('.pptx2html [style*="absolute"]').not('.drawing').dblclick(function(evt) { - if (!$(this).hasClass('editMode')) - { - slideEditorContext.setEditMode(evt, slideEditorContext, $(this).attr('id'), false); - } - }); - */ } enterEditKey(evt, slideEditorContext, clickMenuFocus, previousCaret){ @@ -1468,6 +1463,7 @@ class SlideContentEditor extends React.Component { }); } contextMenuAll(){ + //performance improvement - check if contextmenu already exists let slideEditorContext = this; //https://github.com/swisnl/jQuery-contextMenu //http://swisnl.github.io/jQuery-contextMenu/ @@ -1656,20 +1652,23 @@ class SlideContentEditor extends React.Component { } if (nextProps.SlideEditStore.undoClick === 'true' && nextProps.SlideEditStore.undoClick !== this.props.SlideEditStore.undoClick) { - //console.log('undo'); - //this.redoContent = this.props.SlideEditStore.content; //existing content is redocontent now - //this.props.SlideEditStore.content = this.oldContent; //oldcontent is restored + console.log('undo - via slide edit left panel'); CKEDITOR.instances.inlineContent.execCommand('undo'); - this.resizeDrag(); - ////this.forceUpdate(); + setTimeout(() => { + CKEDITOR.instances.inlineContent.fire('lockSnapshot'); + this.resetResizeDragContext(); + CKEDITOR.instances.inlineContent.fire('unlockSnapshot'); + }, 500); } if (nextProps.SlideEditStore.redoClick === 'true' && nextProps.SlideEditStore.redoClick !== this.props.SlideEditStore.redoClick) { - //console.log('redo'); - //this.props.SlideEditStore.content = this.redoContent; //restore oringal content before undo + console.log('redo - via slide edit left panel'); CKEDITOR.instances.inlineContent.execCommand('redo'); - this.resizeDrag(); - ////this.forceUpdate(); + setTimeout(() => { + CKEDITOR.instances.inlineContent.fire('lockSnapshot'); + this.resetResizeDragContext(); + CKEDITOR.instances.inlineContent.fire('unlockSnapshot'); + }, 500); } if (nextProps.SlideEditStore.addInputBox === 'true' && nextProps.SlideEditStore.addInputBox !== this.props.SlideEditStore.addInputBox) { @@ -1718,7 +1717,7 @@ class SlideContentEditor extends React.Component { } this.refreshCKeditor(); //this.resize(); - this.resizeDrag(); + this.resizeDragAndContextMenu(); } this.hasChanges = true; @@ -1784,7 +1783,7 @@ class SlideContentEditor extends React.Component { if($('.pptx2html').length) //if slide is in canvas mode { $('.pptx2html').append('
 
'); - this.resizeDrag(); + this.resizeDragAndContextMenu(); this.placeCaretAtStart(uniqueID); $('#'+uniqueID).focus(); this.hasChanges = true; @@ -1817,7 +1816,7 @@ class SlideContentEditor extends React.Component { $('.pptx2html [style*="absolute"]').on('mouseup', (evt) => { CKEDITOR.instances.inlineContent.getSelection().unlock(); }); - this.resizeDrag(); + this.resizeDragAndContextMenu(); this.placeCaretAtStart(uniqueID); $('#'+uniqueID).focus(); this.hasChanges = true; @@ -1833,7 +1832,7 @@ class SlideContentEditor extends React.Component { { let uniqueID = this.getuniqueID(); $('.pptx2html').append('
 
'); - this.resizeDrag(); + this.resizeDragAndContextMenu(); this.placeCaretAtStart(uniqueID); $('#'+uniqueID).focus(); this.hasChanges = true; @@ -1849,7 +1848,7 @@ class SlideContentEditor extends React.Component { { let uniqueID = this.getuniqueID(); $('.pptx2html').append('
 
'); - this.resizeDrag(); + this.resizeDragAndContextMenu(); this.placeCaretAtStart(uniqueID); $('#'+uniqueID).focus(); this.hasChanges = true; @@ -1888,7 +1887,7 @@ class SlideContentEditor extends React.Component { if($('.pptx2html').length) //if slide is in canvas mode { //this.uniqueIDAllElements(); - this.resizeDrag(); + this.resizeDragAndContextMenu(); } } if (nextProps.SlideEditStore.title !== '' && @@ -1964,7 +1963,7 @@ class SlideContentEditor extends React.Component { //console.log('====ckeditor save button ok==== - refresh drag and menus'); //this.addBorders(); setTimeout(() => { - this.resizeDrag(); + this.resizeDragAndContextMenu(); this.hasChanges = true; ////this.forceUpdate(); }, 500); @@ -2087,7 +2086,7 @@ class SlideContentEditor extends React.Component { //context.uniqueIDAllElements(localContext); context.uniqueIDAllElements(); - context.resizeDrag(); + context.resizeDragAndContextMenu(); ////this.forceUpdate(); } } diff --git a/components/Deck/SlideEditLeftPanel/SlideEditLeftPanel.js b/components/Deck/SlideEditLeftPanel/SlideEditLeftPanel.js index 111c2826f..0e5ee8c2e 100644 --- a/components/Deck/SlideEditLeftPanel/SlideEditLeftPanel.js +++ b/components/Deck/SlideEditLeftPanel/SlideEditLeftPanel.js @@ -3,6 +3,8 @@ import React from 'react'; import {connectToStores} from 'fluxible-addons-react'; import {Button, Icon, Input, TextArea} from 'semantic-ui-react'; import NavigationPanel from './../NavigationPanel/NavigationPanel'; +import undoClick from '../../../actions/slide/undoClick'; +import redoClick from '../../../actions/slide/redoClick'; import addInputBox from '../../../actions/slide/addInputBox'; import uploadMediaClick from '../../../actions/slide/uploadMediaClick'; import uploadVideoClick from '../../../actions/slide/uploadVideoClick'; @@ -66,6 +68,12 @@ class SlideEditLeftPanel extends React.Component { } } } + handleUndoClick(){ + this.context.executeAction(undoClick, {}); + } + handleRedoClick(){ + this.context.executeAction(redoClick, {}); + } handleAddInputBox(){ this.context.executeAction(addInputBox, {}); } @@ -252,8 +260,14 @@ class SlideEditLeftPanel extends React.Component { //console.log(event.key); //if(event.key === 'Enter' || event.key === ' '){ if(event.key === 'Enter'){ - console.log('enter key'); + //console.log('enter key'); switch (param) { + case 'handleUndoClick': + this.handleUndoClick(); + break; + case 'handleRedoClick': + this.handleRedoClick(); + break; case 'handleBack': this.handleBack(); break; @@ -341,11 +355,25 @@ class SlideEditLeftPanel extends React.Component { const whiteText = { fontColor: 'white', }; + let undoredoList = ( +
+ this.handleKeyPress(evt, 'handleUndoClick')}> + + + this.handleKeyPress(evt, 'handleRedoClick')}> + + +
+ ); + let backKey = ( + this.handleKeyPress(evt, 'handleBack')}> + + + ); let otherList = (
- this.handleKeyPress(evt, 'handleBack')}> - - + {undoredoList} + {backKey} this.handleKeyPress(evt, 'handleEmbedClick')}> @@ -369,9 +397,8 @@ class SlideEditLeftPanel extends React.Component { let embedOptions = (
- this.handleKeyPress(evt, 'handleBackEmbed')}> - - + {undoredoList} + {backKey} @@ -422,9 +449,8 @@ class SlideEditLeftPanel extends React.Component { //id="handleTemplatechange" className="ui field search selection dropdown" data-position="top center" data-inverted="" ref="templateList" let templateList = (
- this.handleKeyPress(evt, 'handleBack')}> - - + {undoredoList} + {backKey} this.handleKeyPress(evt, 'handleTemplatechange', '2')}>

@@ -497,9 +523,8 @@ class SlideEditLeftPanel extends React.Component { let propertiesContent = ( -
this.handleKeyPress(evt, 'handleBack')}> - - + {undoredoList} + {backKey} this.handleKeyPress(evt, 'handleTitleClick')}> @@ -524,9 +549,8 @@ class SlideEditLeftPanel extends React.Component { let titleChangeContent = (
- this.handleKeyPress(evt, 'handleTitleBack')}> - - + {undoredoList} + {backKey} {this.state.titleMissingError === false ? '' : }
@@ -545,9 +569,8 @@ class SlideEditLeftPanel extends React.Component { let sizeContent = ( ); let normalContent = (
+ {undoredoList} this.handleKeyPress(evt, 'handleAddInputBox')}> diff --git a/custom_modules/reveal.js b/custom_modules/reveal.js index 16089caa3..94cbb6cf3 160000 --- a/custom_modules/reveal.js +++ b/custom_modules/reveal.js @@ -1 +1 @@ -Subproject commit 16089caa3e0fd9a56f7ebf5d47b482f32922217f +Subproject commit 94cbb6cf334540ae2058dff4516f16498732b06b From 0107e4a09154bbc827bbe3eef5319c0710d56968 Mon Sep 17 00:00:00 2001 From: kadevgraaf Date: Tue, 21 Aug 2018 16:02:56 +0200 Subject: [PATCH 3/4] Better buttons in left slide edit menu TODO: do not record caret focus or other intermediary event in ckeditor --- .../SlideModes/SlideEditPanel/SlideContentEditor.js | 9 +++++---- components/Deck/SlideEditLeftPanel/SlideEditLeftPanel.js | 8 ++++---- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/components/Deck/ContentPanel/SlideModes/SlideEditPanel/SlideContentEditor.js b/components/Deck/ContentPanel/SlideModes/SlideEditPanel/SlideContentEditor.js index 745850733..5bfdb013b 100644 --- a/components/Deck/ContentPanel/SlideModes/SlideEditPanel/SlideContentEditor.js +++ b/components/Deck/ContentPanel/SlideModes/SlideEditPanel/SlideContentEditor.js @@ -1654,21 +1654,22 @@ class SlideContentEditor extends React.Component { { console.log('undo - via slide edit left panel'); CKEDITOR.instances.inlineContent.execCommand('undo'); - setTimeout(() => { + //CKEDITOR.instances.inlineContent.fire('undo'); + /*setTimeout(() => { CKEDITOR.instances.inlineContent.fire('lockSnapshot'); this.resetResizeDragContext(); CKEDITOR.instances.inlineContent.fire('unlockSnapshot'); - }, 500); + }, 500);*/ } if (nextProps.SlideEditStore.redoClick === 'true' && nextProps.SlideEditStore.redoClick !== this.props.SlideEditStore.redoClick) { console.log('redo - via slide edit left panel'); CKEDITOR.instances.inlineContent.execCommand('redo'); - setTimeout(() => { + /*setTimeout(() => { CKEDITOR.instances.inlineContent.fire('lockSnapshot'); this.resetResizeDragContext(); CKEDITOR.instances.inlineContent.fire('unlockSnapshot'); - }, 500); + }, 500);*/ } if (nextProps.SlideEditStore.addInputBox === 'true' && nextProps.SlideEditStore.addInputBox !== this.props.SlideEditStore.addInputBox) { diff --git a/components/Deck/SlideEditLeftPanel/SlideEditLeftPanel.js b/components/Deck/SlideEditLeftPanel/SlideEditLeftPanel.js index 0e5ee8c2e..47cb73a5a 100644 --- a/components/Deck/SlideEditLeftPanel/SlideEditLeftPanel.js +++ b/components/Deck/SlideEditLeftPanel/SlideEditLeftPanel.js @@ -357,11 +357,11 @@ class SlideEditLeftPanel extends React.Component { }; let undoredoList = ( ); From 6e43e4b5bde5f7e36df48810f2c8e03e38010b17 Mon Sep 17 00:00:00 2001 From: kadevgraaf Date: Tue, 21 Aug 2018 18:08:04 +0200 Subject: [PATCH 4/4] Improve left slide edit menu undo and redo buttons --- .../SlideEditPanel/SlideContentEditor.js | 10 ---------- .../SlideEditLeftPanel/SlideEditLeftPanel.js | 20 +++++++------------ 2 files changed, 7 insertions(+), 23 deletions(-) diff --git a/components/Deck/ContentPanel/SlideModes/SlideEditPanel/SlideContentEditor.js b/components/Deck/ContentPanel/SlideModes/SlideEditPanel/SlideContentEditor.js index 5bfdb013b..7ecafbd82 100644 --- a/components/Deck/ContentPanel/SlideModes/SlideEditPanel/SlideContentEditor.js +++ b/components/Deck/ContentPanel/SlideModes/SlideEditPanel/SlideContentEditor.js @@ -1655,21 +1655,11 @@ class SlideContentEditor extends React.Component { console.log('undo - via slide edit left panel'); CKEDITOR.instances.inlineContent.execCommand('undo'); //CKEDITOR.instances.inlineContent.fire('undo'); - /*setTimeout(() => { - CKEDITOR.instances.inlineContent.fire('lockSnapshot'); - this.resetResizeDragContext(); - CKEDITOR.instances.inlineContent.fire('unlockSnapshot'); - }, 500);*/ } if (nextProps.SlideEditStore.redoClick === 'true' && nextProps.SlideEditStore.redoClick !== this.props.SlideEditStore.redoClick) { console.log('redo - via slide edit left panel'); CKEDITOR.instances.inlineContent.execCommand('redo'); - /*setTimeout(() => { - CKEDITOR.instances.inlineContent.fire('lockSnapshot'); - this.resetResizeDragContext(); - CKEDITOR.instances.inlineContent.fire('unlockSnapshot'); - }, 500);*/ } if (nextProps.SlideEditStore.addInputBox === 'true' && nextProps.SlideEditStore.addInputBox !== this.props.SlideEditStore.addInputBox) { diff --git a/components/Deck/SlideEditLeftPanel/SlideEditLeftPanel.js b/components/Deck/SlideEditLeftPanel/SlideEditLeftPanel.js index 47cb73a5a..eacc67c74 100644 --- a/components/Deck/SlideEditLeftPanel/SlideEditLeftPanel.js +++ b/components/Deck/SlideEditLeftPanel/SlideEditLeftPanel.js @@ -356,12 +356,12 @@ class SlideEditLeftPanel extends React.Component { fontColor: 'white', }; let undoredoList = ( -
- this.handleKeyPress(evt, 'handleUndoClick')}> - + ); @@ -372,7 +372,6 @@ class SlideEditLeftPanel extends React.Component { ); let otherList = (
- {undoredoList} {backKey} this.handleKeyPress(evt, 'handleEmbedClick')}> @@ -397,7 +396,6 @@ class SlideEditLeftPanel extends React.Component { let embedOptions = ( - {undoredoList} {backKey}
- {undoredoList} {backKey} this.handleKeyPress(evt, 'handleTemplatechange', '2')}>

@@ -523,7 +520,6 @@ class SlideEditLeftPanel extends React.Component { let propertiesContent = ( - {undoredoList} {backKey}
this.handleKeyPress(evt, 'handleTitleClick')}> @@ -549,7 +545,6 @@ class SlideEditLeftPanel extends React.Component { let titleChangeContent = (