Improved editor autosave controls
authorAlexander Ebert <ebert@woltlab.com>
Tue, 20 Sep 2016 14:59:08 +0000 (16:59 +0200)
committerAlexander Ebert <ebert@woltlab.com>
Tue, 20 Sep 2016 14:59:14 +0000 (16:59 +0200)
com.woltlab.wcf/templates/wysiwyg.tpl
wcfsetup/install/files/acp/templates/wysiwyg.tpl
wcfsetup/install/files/js/WoltLabSuite/Core/Ui/Redactor/Autosave.js
wcfsetup/install/lang/de.xml
wcfsetup/install/lang/en.xml

index 8d0a61da3e8a07f8f55eaa6869e11b1380870af9..2afb6a18e03984666407538c33fc4f448cab9fc4 100644 (file)
@@ -54,6 +54,8 @@
                                'wcf.attachment.dragAndDrop.dropHere': '{lang}wcf.attachment.dragAndDrop.dropHere{/lang}',
                                'wcf.attachment.dragAndDrop.dropNow': '{lang}wcf.attachment.dragAndDrop.dropNow{/lang}',
                                
+                               'wcf.editor.autosave.discard': '{lang}wcf.editor.autosave.discard{/lang}',
+                               'wcf.editor.autosave.keep': '{lang}wcf.editor.autosave.keep{/lang}',
                                'wcf.editor.autosave.restored': '{lang}wcf.editor.autosave.restored{/lang}',
                                
                                'wcf.editor.code.edit': '{lang}wcf.editor.code.edit{/lang}',
index 8d0a61da3e8a07f8f55eaa6869e11b1380870af9..2afb6a18e03984666407538c33fc4f448cab9fc4 100644 (file)
@@ -54,6 +54,8 @@
                                'wcf.attachment.dragAndDrop.dropHere': '{lang}wcf.attachment.dragAndDrop.dropHere{/lang}',
                                'wcf.attachment.dragAndDrop.dropNow': '{lang}wcf.attachment.dragAndDrop.dropNow{/lang}',
                                
+                               'wcf.editor.autosave.discard': '{lang}wcf.editor.autosave.discard{/lang}',
+                               'wcf.editor.autosave.keep': '{lang}wcf.editor.autosave.keep{/lang}',
                                'wcf.editor.autosave.restored': '{lang}wcf.editor.autosave.restored{/lang}',
                                
                                'wcf.editor.code.edit': '{lang}wcf.editor.code.edit{/lang}',
index fd51448f62de7ebe16df08fe9683d805c0f69383..92194d42a502a044d87513027e9f560f12aa528e 100644 (file)
@@ -149,7 +149,9 @@ define(['Language', 'Dom/Traverse'], function(Language, DomTraverse) {
                        container.appendChild(title);
                        
                        var button = elCreate('a');
+                       button.className = 'jsTooltip';
                        button.href = '#';
+                       button.title = Language.get('wcf.editor.autosave.keep');
                        button.innerHTML = '<span class="icon icon16 fa-check green"></span>';
                        button.addEventListener(WCF_CLICK_EVENT, (function (event) {
                                event.preventDefault();
@@ -159,7 +161,9 @@ define(['Language', 'Dom/Traverse'], function(Language, DomTraverse) {
                        container.appendChild(button);
                        
                        button = elCreate('a');
+                       button.className = 'jsTooltip';
                        button.href = '#';
+                       button.title = Language.get('wcf.editor.autosave.discard');
                        button.innerHTML = '<span class="icon icon16 fa-times red"></span>';
                        button.addEventListener(WCF_CLICK_EVENT, (function (event) {
                                event.preventDefault();
@@ -179,6 +183,13 @@ define(['Language', 'Dom/Traverse'], function(Language, DomTraverse) {
                        
                        this._editor.core.box()[0].appendChild(container);
                        
+                       var callback = (function () {
+                               this._editor.core.editor()[0].removeEventListener(WCF_CLICK_EVENT, callback);
+                               
+                               this.hideOverlay();
+                       }).bind(this);
+                       this._editor.core.editor()[0].addEventListener(WCF_CLICK_EVENT, callback);
+                       
                        this._container = container;
                },
                
@@ -221,8 +232,6 @@ define(['Language', 'Dom/Traverse'], function(Language, DomTraverse) {
                                }));
                                
                                this._lastMessage = content;
-                               
-                               this.hideOverlay();
                        }
                        catch (e) {
                                window.console.warn("Unable to write to local storage: " + e.message);
index ebf10f99de04fab5e3001388f7468cd464d64372..05cb04f64b6e85ec1b0a9898026946a108c6001a 100644 (file)
@@ -2350,6 +2350,8 @@ Fehler sind beispielsweise:
                <item name="wcf.editor.alignment.left"><![CDATA[Linksbündig ausrichten]]></item>
                <item name="wcf.editor.alignment.right"><![CDATA[Rechtsbündig ausrichten]]></item>
                
+               <item name="wcf.editor.autosave.discard"><![CDATA[Verwerfen und Editor zurücksetzen]]></item>
+               <item name="wcf.editor.autosave.keep"><![CDATA[Hinweis ausblenden]]></item>
                <item name="wcf.editor.autosave.restored"><![CDATA[Entwurf wiederhergestellt]]></item>
                
                <item name="wcf.editor.button.alignment"><![CDATA[Ausrichtung]]></item>
index 6630e0800a741f7c23f975e35678694206f2339c..f17d37dddb22c0249f736e681b1cfe33eeb14298 100644 (file)
@@ -2312,6 +2312,8 @@ Errors are:
                <item name="wcf.editor.alignment.left"><![CDATA[Align left]]></item>
                <item name="wcf.editor.alignment.right"><![CDATA[Align right]]></item>
                
+               <item name="wcf.editor.autosave.discard"><![CDATA[Discard and revert editor]]></item>
+               <item name="wcf.editor.autosave.keep"><![CDATA[Hide notice]]></item>
                <item name="wcf.editor.autosave.restored"><![CDATA[Draft restored]]></item>
                
                <item name="wcf.editor.button.alignment"><![CDATA[Alignment]]></item>