/**
* object id
- * @var integer
+ * @var {int}
*/
_objectID: 0,
*/
init: function(quoteManager, className, objectType, containerSelector, messageBodySelector, messageContentSelector, supportDirectInsert) {
this._className = className;
- if (this._className == '') {
+ if (this._className === '') {
console.debug("[WCF.Message.QuoteManager] Empty class name given, aborting.");
return;
}
this._objectType = objectType;
- if (this._objectType == '') {
+ if (this._objectType === '') {
console.debug("[WCF.Message.QuoteManager] Empty object type name given, aborting.");
return;
}
this._containerSelector = containerSelector;
this._message = '';
this._messageBodySelector = messageBodySelector;
- this._messageContentSelector = messageContentSelector;
this._objectID = 0;
this._proxy = new WCF.Action.Proxy({
success: $.proxy(this._success, this)
this._initContainers();
- supportDirectInsert = (supportDirectInsert && quoteManager.supportPaste()) ? true : false;
+ supportDirectInsert = (supportDirectInsert && quoteManager.supportPaste());
this._initCopyQuote(supportDirectInsert);
$(document).mouseup($.proxy(this._mouseUp, this));
true
);
- var $text = '';
+ var $text = '', ignoreLinks = [], value;
while ($walker.nextNode()) {
var $node = $walker.currentNode;
if ($node.nodeType === Node.ELEMENT_NODE) {
switch ($node.tagName) {
+ case 'A':
+ // \u2026 === …
+ value = $node.textContent;
+ if (value.indexOf('\u2026') > 0) {
+ var tmp = value.split(/\u2026/);
+ if (tmp.length === 2) {
+ var href = $node.href;
+ if (href.indexOf(tmp[0]) === 0 && href.substr(tmp[1].length * -1) === tmp[1]) {
+ // truncated url, use original href to preserve link
+ $text += href;
+ ignoreLinks.push($node);
+ }
+ }
+ }
+ break;
+
case 'BR':
case 'LI':
case 'UL':
}
}
else {
+ if ($node.parentNode.nodeName === 'A' && ignoreLinks.indexOf($node.parentNode) !== -1) {
+ // ignore text content of links that have already been captured
+ continue;
+ }
+
$text += $node.nodeValue.replace(/\n/g, '');
}