From: Matthias Schmidt Date: Wed, 9 Jan 2013 11:32:35 +0000 (+0100) Subject: Makes use of AbstractClipboardAction::execute() X-Git-Tag: 2.0.0_Beta_1~138 X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=d78f31a6aa1c5ac4113dfe5f34768ae75d1c9215;p=GitHub%2FWoltLab%2Fcom.woltlab.wcf.conversation.git Makes use of AbstractClipboardAction::execute() --- diff --git a/files/js/WCF.Conversation.js b/files/js/WCF.Conversation.js index 4728edd..95d9bc0 100644 --- a/files/js/WCF.Conversation.js +++ b/files/js/WCF.Conversation.js @@ -326,7 +326,7 @@ WCF.Conversation.Clipboard = Class.extend({ * @param object parameters */ _execute: function(event, type, actionName, parameters) { - if (type === 'com.woltlab.wcf.conversation.conversation' && actionName === 'conversation.assignLabel') { + if (type === 'com.woltlab.wcf.conversation.conversation' && actionName === 'com.woltlab.wcf.conversation.conversation.assignLabel') { new WCF.Conversation.Label.Editor(this._editorHandler, null, parameters.objectIDs); } }, @@ -347,14 +347,14 @@ WCF.Conversation.Clipboard = Class.extend({ } switch (actionName) { - case 'conversation.leave': - case 'conversation.leavePermanently': - case 'conversation.restore': + case 'com.woltlab.wcf.conversation.conversation.leave': + case 'com.woltlab.wcf.conversation.conversation.leavePermanently': + case 'com.woltlab.wcf.conversation.conversation.restore': window.location.reload(); break; - case 'conversation.close': - case 'conversation.open': + case 'com.woltlab.wcf.conversation.conversation.close': + case 'com.woltlab.wcf.conversation.conversation.open': for (var $conversationID in data.returnValues.conversationData) { var $data = data.returnValues.conversationData[$conversationID]; diff --git a/files/lib/system/clipboard/action/ConversationClipboardAction.class.php b/files/lib/system/clipboard/action/ConversationClipboardAction.class.php index 88a6da6..b21129f 100644 --- a/files/lib/system/clipboard/action/ConversationClipboardAction.class.php +++ b/files/lib/system/clipboard/action/ConversationClipboardAction.class.php @@ -1,6 +1,5 @@ @@ -23,11 +27,9 @@ class ConversationClipboardAction extends AbstractClipboardAction { public $conversations = null; /** - * @see wcf\system\clipboard\action\IClipboardAction::getTypeName() + * @see wcf\system\clipboard\action\AbstractClipboardAction::$supportedActions */ - public function getTypeName() { - return 'com.woltlab.wcf.conversation.conversation'; - } + protected $supportedActions = array('assignLabel', 'close', 'leave', 'leavePermanently', 'open', 'restore'); /** * @see wcf\system\clipboard\action\IClipboardAction::execute() @@ -43,7 +45,11 @@ class ConversationClipboardAction extends AbstractClipboardAction { return null; } - $item = new ClipboardEditorItem(); + $item = parent::execute($objects, $actionName); + + if ($item === null) { + return null; + } switch ($actionName) { case 'assignLabel': @@ -59,69 +65,25 @@ class ConversationClipboardAction extends AbstractClipboardAction { } $item->addParameter('objectIDs', array_keys($this->conversations)); - $item->setName('conversation.assignLabel'); - break; - - case 'close': - $conversationIDs = $this->validateClose(); - if (empty($conversationIDs)) { - return null; - } - - $item->addParameter('objectIDs', $conversationIDs); - $item->addParameter('actionName', 'close'); - $item->addParameter('className', 'wcf\data\conversation\ConversationAction'); - $item->setName('conversation.close'); break; case 'leave': - $conversationIDs = $this->validateLeave(); - if (empty($conversationIDs)) { - return null; - } - $item->addInternalData('parameters', array('hideConversation' => 1)); - $item->addParameter('objectIDs', $conversationIDs); $item->addParameter('actionName', 'hideConversation'); - $item->addParameter('className', 'wcf\data\conversation\ConversationAction'); - $item->setName('conversation.leave'); + $item->addParameter('className', $this->getClassName()); break; case 'leavePermanently': - $item->addInternalData('parameters', array('hideConversation' => 2)); $item->addParameter('objectIDs', array_keys($this->conversations)); + $item->addInternalData('parameters', array('hideConversation' => 2)); $item->addParameter('actionName', 'hideConversation'); - $item->addParameter('className', 'wcf\data\conversation\ConversationAction'); - $item->setName('conversation.leavePermanently'); - break; - - case 'open': - $conversationIDs = $this->validateOpen(); - if (empty($conversationIDs)) { - return null; - } - - $item->addParameter('objectIDs', $conversationIDs); - $item->addParameter('actionName', 'open'); - $item->addParameter('className', 'wcf\data\conversation\ConversationAction'); - $item->setName('conversation.open'); + $item->addParameter('className', $this->getClassName()); break; case 'restore': - $conversationIDs = $this->validateRestore(); - if (empty($conversationIDs)) { - return null; - } - $item->addInternalData('parameters', array('hideConversation' => 0)); - $item->addParameter('objectIDs', array_keys($this->conversations)); $item->addParameter('actionName', 'hideConversation'); - $item->addParameter('className', 'wcf\data\conversation\ConversationAction'); - $item->setName('conversation.restore'); - break; - - default: - throw new SystemException("Unknown action '".$actionName."'"); + $item->addParameter('className', $this->getClassName()); break; } @@ -135,6 +97,13 @@ class ConversationClipboardAction extends AbstractClipboardAction { return 'wcf\data\conversation\ConversationAction'; } + /** + * @see wcf\system\clipboard\action\IClipboardAction::getTypeName() + */ + public function getTypeName() { + return 'com.woltlab.wcf.conversation.conversation'; + } + /** * Returns a list of conversations with user participation. * @@ -280,6 +249,6 @@ class ConversationClipboardAction extends AbstractClipboardAction { * @see wcf\system\clipboard\action\IClipboardAction::getEditorLabel() */ public function getEditorLabel(array $objects) { - return WCF::getLanguage()->getDynamicVariable('wcf.clipboard.label.conversation.marked', array('count' => count($objects))); + return WCF::getLanguage()->getDynamicVariable('wcf.clipboard.label.com.woltlab.wcf.conversation.conversation.marked', array('count' => count($objects))); } } diff --git a/language/de.xml b/language/de.xml index 44d56d0..5399207 100644 --- a/language/de.xml +++ b/language/de.xml @@ -10,16 +10,13 @@ - - - - - - - - - - + + + + + + + diff --git a/language/en.xml b/language/en.xml index e5cac85..39e46ca 100644 --- a/language/en.xml +++ b/language/en.xml @@ -10,16 +10,13 @@ - - - - - - - - - - + + + + + + +