aboutsummaryrefslogtreecommitdiffstats
path: root/apps/comments/js/comments.js.map
diff options
context:
space:
mode:
Diffstat (limited to 'apps/comments/js/comments.js.map')
-rw-r--r--apps/comments/js/comments.js.map2
1 files changed, 1 insertions, 1 deletions
diff --git a/apps/comments/js/comments.js.map b/apps/comments/js/comments.js.map
index 5a8951bcfee..f14874b52f4 100644
--- a/apps/comments/js/comments.js.map
+++ b/apps/comments/js/comments.js.map
@@ -1 +1 @@
-{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"jQuery\"","webpack:///./node_modules/css-loader/dist/runtime/api.js","webpack:///./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack:///./apps/comments/src/comments.js","webpack:///./apps/comments/src/app.js","webpack:///./apps/comments/src/templates.js","webpack:///./apps/comments/src/commentmodel.js","webpack:///./apps/comments/src/commentcollection.js","webpack:///./apps/comments/src/commentsummarymodel.js","webpack:///./apps/comments/src/commentstabview.js","webpack:///./apps/comments/src/commentsmodifymenu.js","webpack:///./apps/comments/src/filesplugin.js","webpack:///./apps/comments/src/activitytabviewplugin.js","webpack:///./apps/comments/src/search.js","webpack:///./apps/comments/src/vendor/Caret.js/dist/jquery.caret.min.js","webpack:///./apps/comments/src/vendor/At.js/dist/js/jquery.atwho.min.js","webpack:///./apps/comments/src/style/autocomplete.scss?423d","webpack:///./apps/comments/src/style/autocomplete.scss","webpack:///./apps/comments/src/style/comments.scss?5e95","webpack:///./apps/comments/src/style/comments.scss"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","jQuery","useSourceMap","list","toString","this","map","item","content","cssMapping","btoa","sourceMapping","sourceMap","base64","unescape","encodeURIComponent","JSON","stringify","data","concat","sourceURLs","sources","source","sourceRoot","join","cssWithMappingToString","mediaQuery","alreadyImportedModules","length","id","_i","push","memo","stylesInDom","isOldIE","Boolean","window","document","all","atob","getTarget","target","styleTarget","querySelector","HTMLIFrameElement","contentDocument","head","e","listToStyles","options","styles","newStyles","base","part","css","media","parts","addStylesToDom","domStyle","j","refs","addStyle","insertStyleElement","style","createElement","attributes","nonce","keys","forEach","setAttribute","insert","Error","appendChild","textStore","replaceText","index","replacement","filter","applyToSingletonTag","remove","obj","styleSheet","cssText","cssNode","createTextNode","childNodes","removeChild","insertBefore","applyToTag","firstChild","singleton","singletonCounter","update","styleIndex","parentNode","removeStyleElement","newObj","newList","mayRemove","_domStyle","OCA","Comments","template","templates","Handlebars","Templates","container","depth0","helpers","partials","helper","escapeExpression","actorId","helperMissing","nullContext","stack1","alias1","alias2","alias3","alias4","isUnread","program","noop","isLong","isUserAuthor","actorDisplayName","timestamp","altDate","date","formattedMessage","iconClass","displayName","each","items","cancelText","tag","isEditMode","newMessagePlaceholder","message","submitText","countMessage","iconUrl","emptyResultLabel","moreLabel","OC","_","extend","Files","Client","PROPERTY_FILEID","NS_OWNCLOUD","PROPERTY_MESSAGE","PROPERTY_ACTORTYPE","PROPERTY_ACTORID","PROPERTY_ISUNREAD","PROPERTY_OBJECTID","PROPERTY_OBJECTTYPE","PROPERTY_ACTORDISPLAYNAME","PROPERTY_CREATIONDATETIME","PROPERTY_MENTIONS","CommentModel","Backbone","Model","sync","davSync","defaults","actorType","objectType","davProperties","parse","creationDateTime","objectId","mentions","_parseMentions","isUndefined","result","mention","localName","child","nextSibling","startsWith","textContent","CommentCollection","Collection","model","_objectType","_objectId","_endReached","_limit","initialize","models","url","linkToRemote","setObjectId","hasMoreResults","reset","_summaryModel","apply","arguments","fetchNext","self","body","success","resp","initial","set","trigger","getSummaryModel","CommentSummaryModel","updateReadMarker","save","readMarker","Date","toUTCString","PROPERTY_READMARKER","attrs","CommentsTabView","DetailTabView","className","_autoCompleteData","undefined","_commentsModifyMenu","events","_commentMaxLength","collection","on","_onRequest","_onEndRequest","_onAddModel","_onChangeModel","_commentMaxThreshold","bindAll","params","currentUser","getCurrentUser","uid","editCommentTemplate","commentTemplate","editTooltip","_isLong","getLabel","getIcon","setFileInfo","fileInfo","render","_initAutoComplete","$","find","silent","nextPage","$el","html","before","tooltip","$container","avatar","delegateEvents","_onTypeComment","autosize","focus","$target","limit","appConfig","comments","maxAutoCompleteResults","atwho","at","callbacks","remoteFilter","_onAutoComplete","highlighter","li","$li","sorter","q","displayTpl","escapeHTML","label","insertTpl","searchKey","je","_postRenderItem","parent","query","callback","_autoCompleteRequestTimer","clearTimeout","delay","_autoCompleteRequestCall","abort","ajax","linkToOCS","search","itemType","itemId","beforeSend","request","setRequestHeader","ocs","_formatItem","commentModel","getTime","Util","relativeModifiedDate","formatDate","_formatMessage","_toggleLoading","state","_loading","toggleClass","type","addClass","fileInfoModel","findWhere","$comment","eq","append","text","prop","oldMentions","fetch","isEqual","$updated","trim","previous","$row","closest","removeClass","$message","editionMode","inlineAvatars","context","hasClass","$this","attr","username","contactsMenu","modifyCommentMenu","CommentsModifyMenu","show","listenTo","ev","action","_onClickEditComment","_onClickDeleteComment","_postRenderMessage","user","editMode","replace","mentionId","indexOf","escape","regex","RegExp","_composeHTMLMention","mentionDisplayName","match","p1","OCP","plainToRich","preventDefault","commentId","commentToEdit","$formRow","after","replaceWith","clone","$field","len","$submitButton","count","max","limitExceeded","keyCode","shiftKey","click","_onClickComment","is","_onClickCloseComment","$loading","$moreIcon","destroy","error","Notification","showTemporary","_onClickShowMore","_onSubmitSuccess","$form","$submit","_commentBodyHTML2Plain","oldHtml","$inserted","userId","richToPlain","_onSubmitComment","$commentField","_onSubmitError","verb","wait","_onTextChange","empty","_onPaste","originalEvent","clipboardData","getData","execCommand","View","tagName","_scopes","_onClickAction","event","currentTarget","hideMenus","_context","active","offsetIcon","offset","offsetContainer","position","top","left","right","width","showMenu","PROPERTY_COMMENTS_UNREAD","FilesPlugin","ignoreLists","_formatCommentCount","imagePath","attach","fileList","registerTabView","oldGetWebdavProperties","_getWebdavProperties","props","filesClient","addFileInfoParser","response","commentsUnread","propStat","properties","parseInt","oldCreateRow","_createRow","fileData","$tr","fileActions","registerAction","$file","unread","mime","order","permissions","PERMISSION_READ","FileActions","TYPE_INLINE","actionSpec","isDefault","unreadComments","$actionLink","actionHandler","fileName","showDetailsView","oldElementToFile","elementToFile","Plugins","register","ActivityTabViewPlugin","prepareModelForDisplay","view","$overlay","_onClickCollapsedComment","Comment","fileAppLoaded","App","renderCommentResult","$nofilterresults","updateLegacyMimetype","$pathDiv","path","$avatar","authorName","authorId","comment","prepend","link","dir","dirname","generateUrl","scrollto","handleCommentClick","changeDirectory","scrollTo","mime_type","setFileList","setRenderer","setHandler","Search","a","define","returnExportsGlobal","b","g","h","$inputor","domInputor","setPos","getIEPosition","getPosition","getOffset","getOldIEPos","selection","createRange","createTextRange","moveToElementText","setEndPoint","getPos","range","cloneRange","selectNodeContents","setEnd","endContainer","endOffset","detach","getOldIEOffset","duplicate","moveStart","height","getBoundingClientRect","bottom","f","getSelection","setStart","insertNode","selectNode","scrollTop","scrollLeft","rangeCount","getRangeAt","getIEPos","parentElement","moveToBookmark","getBookmark","collapse","compareEndPoints","selectionStart","move","select","setSelectionRange","getIEOffset","boundingLeft","boundingTop","boundingHeight","test","navigator","userAgent","val","slice","rect","css_attr","mirrorCss","zIndex","$mirror","contentEditable","pos","iframe","contentWindow","fn","caret","isPlainObject","EditableCaret","InputCaret","Utils","apis","ESC","TAB","ENTER","CTRL","A","P","N","LEFT","UP","RIGHT","DOWN","BACKSPACE","SPACE","beforeSave","arrayToDefaultHash","matcher","decodeURI","exec","String","toLowerCase","atwho_order","sort","tplEval","beforeInsert","beforeReposition","afterMatchFailed","currentFlag","controllers","aliasMaps","setupRootElement","listen","createContainer","ownerDocument","defaultView","parentWindow","frameElement","debug","iframeAsRoot","controller","setContextFor","reg","alias","init","hide","isComposing","setTimeout","dispatch","onKeyup","onKeydown","expectedQueryCBId","getOpt","shutdown","off","lookUp","ctrlKey","visible","prev","next","highlighted","choose","app","setting","u","Math","random","substr","reload","callDefault","insertContentFor","renderView","isArray","catchQuery","_delayLookUp","_lookUp","now","previousCallTime","_stopDelayedCall","delayedCallTimeout","_generateQueryCBId","constructor","proxy","__super__","headPos","endPos","change","_getRange","_setRange","setEndAfter","setStartAfter","setEndBefore","setStartBefore","_clearRange","ctrl_a_pressed","removeAllRanges","addRange","_movingEvent","which","_unwrap","unwrap","nodeValue","collapsed","startContainer","contents","last","nodeType","ELEMENT_NODE","startOffset","cloneContents","TEXT_NODE","previousSibling","siblings","surroundContents","el","first","getClientRects","storage","saved","load","_load","dataType","done","$elUl","children","timeoutID","bindEvent","charCodeAt","clientX","clientY","expr","filters","stopShowing","reposition","offsetTop","offsetHeight","animate","isNaN","isSelecting","setIframe","run","Array","headerTpl","functionOverrides","suffix","hideWithoutSuffix","startWithSpace","acceptSpaceBar","highlightFirst","maxLen","minLen","displayTimeout","spaceSelectsMatch","tabSelectsMatch","editableAtwhoQueryAttrs","scrollDuration","suspendOnComposing","lookUpOnClick","locals"],"mappings":"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","file":"comments.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/js/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 3);\n","module.exports = jQuery;","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (useSourceMap) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item, useSourceMap);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \"{\").concat(content, \"}\");\n }\n\n return content;\n }).join('');\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery) {\n if (typeof modules === 'string') {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, '']];\n }\n\n var alreadyImportedModules = {};\n\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = modules[_i]; // skip already imported module\n // this implementation is not 100% perfect for weird media query combinations\n // when a module is imported multiple times with different media queries.\n // I hope this will never occur (Hey this way we have smaller bundles)\n\n if (item[0] == null || !alreadyImportedModules[item[0]]) {\n if (mediaQuery && !item[2]) {\n item[2] = mediaQuery;\n } else if (mediaQuery) {\n item[2] = \"(\".concat(item[2], \") and (\").concat(mediaQuery, \")\");\n }\n\n list.push(item);\n }\n }\n };\n\n return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring\n\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (useSourceMap && typeof btoa === 'function') {\n var sourceMapping = toComment(cssMapping);\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot).concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n }\n\n return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n return \"/*# \".concat(data, \" */\");\n}","\"use strict\";\n\nvar stylesInDom = {};\n\nvar isOldIE = function isOldIE() {\n var memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n\n return memo;\n };\n}();\n\nvar getTarget = function getTarget() {\n var memo = {};\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n };\n}();\n\nfunction listToStyles(list, options) {\n var styles = [];\n var newStyles = {};\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var css = item[1];\n var media = item[2];\n var sourceMap = item[3];\n var part = {\n css: css,\n media: media,\n sourceMap: sourceMap\n };\n\n if (!newStyles[id]) {\n styles.push(newStyles[id] = {\n id: id,\n parts: [part]\n });\n } else {\n newStyles[id].parts.push(part);\n }\n }\n\n return styles;\n}\n\nfunction addStylesToDom(styles, options) {\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i];\n var domStyle = stylesInDom[item.id];\n var j = 0;\n\n if (domStyle) {\n domStyle.refs++;\n\n for (; j < domStyle.parts.length; j++) {\n domStyle.parts[j](item.parts[j]);\n }\n\n for (; j < item.parts.length; j++) {\n domStyle.parts.push(addStyle(item.parts[j], options));\n }\n } else {\n var parts = [];\n\n for (; j < item.parts.length; j++) {\n parts.push(addStyle(item.parts[j], options));\n }\n\n stylesInDom[item.id] = {\n id: item.id,\n refs: 1,\n parts: parts\n };\n }\n }\n}\n\nfunction insertStyleElement(options) {\n var style = document.createElement('style');\n\n if (typeof options.attributes.nonce === 'undefined') {\n var nonce = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n\n if (nonce) {\n options.attributes.nonce = nonce;\n }\n }\n\n Object.keys(options.attributes).forEach(function (key) {\n style.setAttribute(key, options.attributes[key]);\n });\n\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n var target = getTarget(options.insert || 'head');\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n }\n\n return style;\n}\n\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */\n\n\nvar replaceText = function replaceText() {\n var textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n var css = remove ? '' : obj.css; // For old IE\n\n /* istanbul ignore if */\n\n if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n var cssNode = document.createTextNode(css);\n var childNodes = style.childNodes;\n\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\n\nfunction applyToTag(style, options, obj) {\n var css = obj.css;\n var media = obj.media;\n var sourceMap = obj.sourceMap;\n\n if (media) {\n style.setAttribute('media', media);\n }\n\n if (sourceMap && btoa) {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n var style;\n var update;\n var remove;\n\n if (options.singleton) {\n var styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n\n remove = function remove() {\n removeStyleElement(style);\n };\n }\n\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n options.attributes = typeof options.attributes === 'object' ? options.attributes : {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n // tags it will allow on a page\n\n if (!options.singleton && typeof options.singleton !== 'boolean') {\n options.singleton = isOldIE();\n }\n\n var styles = listToStyles(list, options);\n addStylesToDom(styles, options);\n return function update(newList) {\n var mayRemove = [];\n\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i];\n var domStyle = stylesInDom[item.id];\n\n if (domStyle) {\n domStyle.refs--;\n mayRemove.push(domStyle);\n }\n }\n\n if (newList) {\n var newStyles = listToStyles(newList, options);\n addStylesToDom(newStyles, options);\n }\n\n for (var _i = 0; _i < mayRemove.length; _i++) {\n var _domStyle = mayRemove[_i];\n\n if (_domStyle.refs === 0) {\n for (var j = 0; j < _domStyle.parts.length; j++) {\n _domStyle.parts[j]();\n }\n\n delete stylesInDom[_domStyle.id];\n }\n }\n };\n};","import './app'\nimport './templates'\nimport './commentmodel'\nimport './commentcollection'\nimport './commentsummarymodel'\nimport './commentstabview'\nimport './commentsmodifymenu'\nimport './filesplugin'\nimport './activitytabviewplugin'\nimport './search'\n\nimport './vendor/Caret.js/dist/jquery.caret.min'\nimport './vendor/At.js/dist/js/jquery.atwho.min'\n\nimport './style/autocomplete.scss'\nimport './style/comments.scss'\n\nwindow.OCA.Comments = OCA.Comments;\n","/*\n * Copyright (c) 2016 Vincent Petry <pvince81@owncloud.com>\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n(function() {\n\tif (!OCA.Comments) {\n\t\t/**\n\t\t * @namespace\n\t\t */\n\t\tOCA.Comments = {};\n\t}\n\n})();\n\n","(function() {\n var template = Handlebars.template, templates = OCA.Comments.Templates = OCA.Comments.Templates || {};\ntemplates['comment'] = template({\"1\":function(container,depth0,helpers,partials,data) {\n return \" unread\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n return \" collapsed\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n return \" currentUser\";\n},\"7\":function(container,depth0,helpers,partials,data) {\n var helper;\n\n return \"data-username=\\\"\"\n + container.escapeExpression(((helper = (helper = helpers.actorId || (depth0 != null ? depth0.actorId : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"actorId\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\"\";\n},\"9\":function(container,depth0,helpers,partials,data) {\n return \"\t\t\t<a href=\\\"#\\\" class=\\\"action more icon icon-more has-tooltip\\\"></a>\\n\t\t\t<div class=\\\"deleteLoading icon-loading-small hidden\\\"></div>\\n\";\n},\"11\":function(container,depth0,helpers,partials,data) {\n return \"\t\t<div class=\\\"message-overlay\\\"></div>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n return \"<li class=\\\"comment\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isUnread : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isLong : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\\\" data-id=\\\"\"\n + alias4(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\">\\n\t<div class=\\\"authorRow\\\">\\n\t\t<div class=\\\"avatar\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isUserAuthor : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\\\" \"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.actorId : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(7, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"> </div>\\n\t\t<div class=\\\"author\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isUserAuthor : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\\\">\"\n + alias4(((helper = (helper = helpers.actorDisplayName || (depth0 != null ? depth0.actorDisplayName : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"actorDisplayName\",\"hash\":{},\"data\":data}) : helper)))\n + \"</div>\\n\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isUserAuthor : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(9, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\t\t<div class=\\\"date has-tooltip live-relative-timestamp\\\" data-timestamp=\\\"\"\n + alias4(((helper = (helper = helpers.timestamp || (depth0 != null ? depth0.timestamp : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"timestamp\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\" title=\\\"\"\n + alias4(((helper = (helper = helpers.altDate || (depth0 != null ? depth0.altDate : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"altDate\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\">\"\n + alias4(((helper = (helper = helpers.date || (depth0 != null ? depth0.date : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"date\",\"hash\":{},\"data\":data}) : helper)))\n + \"</div>\\n\t</div>\\n\t<div class=\\\"message\\\">\"\n + ((stack1 = ((helper = (helper = helpers.formattedMessage || (depth0 != null ? depth0.formattedMessage : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"formattedMessage\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n + \"</div>\\n\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isLong : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(11, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"</li>\\n\";\n},\"useData\":true});\ntemplates['commentsmodifymenu'] = template({\"1\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n return \"\t\t<li>\\n\t\t\t<a href=\\\"#\\\" class=\\\"menuitem action \"\n + alias4(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"name\",\"hash\":{},\"data\":data}) : helper)))\n + \" permanent\\\" data-action=\\\"\"\n + alias4(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"name\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\">\\n\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.iconClass : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.program(4, data, 0),\"data\":data})) != null ? stack1 : \"\")\n + \"\t\t\t\t<span>\"\n + alias4(((helper = (helper = helpers.displayName || (depth0 != null ? depth0.displayName : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"displayName\",\"hash\":{},\"data\":data}) : helper)))\n + \"</span>\\n\t\t\t</a>\\n\t\t</li>\\n\";\n},\"2\":function(container,depth0,helpers,partials,data) {\n var helper;\n\n return \"\t\t\t\t\t<span class=\\\"icon \"\n + container.escapeExpression(((helper = (helper = helpers.iconClass || (depth0 != null ? depth0.iconClass : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"iconClass\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\"></span>\\n\";\n},\"4\":function(container,depth0,helpers,partials,data) {\n return \"\t\t\t\t\t<span class=\\\"no-icon\\\"></span>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1;\n\n return \"<ul>\\n\"\n + ((stack1 = helpers.each.call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? depth0.items : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"</ul>\\n\";\n},\"useData\":true});\ntemplates['edit_comment'] = template({\"1\":function(container,depth0,helpers,partials,data) {\n var helper;\n\n return \"\t\t\t<div class=\\\"action-container\\\">\\n\t\t\t\t<a href=\\\"#\\\" class=\\\"action cancel icon icon-close has-tooltip\\\" title=\\\"\"\n + container.escapeExpression(((helper = (helper = helpers.cancelText || (depth0 != null ? depth0.cancelText : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"cancelText\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\"></a>\\n\t\t\t</div>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n return \"<\"\n + alias4(((helper = (helper = helpers.tag || (depth0 != null ? depth0.tag : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"tag\",\"hash\":{},\"data\":data}) : helper)))\n + \" class=\\\"newCommentRow comment\\\" data-id=\\\"\"\n + alias4(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\">\\n\t<div class=\\\"authorRow\\\">\\n\t\t<div class=\\\"avatar currentUser\\\" data-username=\\\"\"\n + alias4(((helper = (helper = helpers.actorId || (depth0 != null ? depth0.actorId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"actorId\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\"></div>\\n\t\t<div class=\\\"author currentUser\\\">\"\n + alias4(((helper = (helper = helpers.actorDisplayName || (depth0 != null ? depth0.actorDisplayName : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"actorDisplayName\",\"hash\":{},\"data\":data}) : helper)))\n + \"</div>\\n\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isEditMode : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\t</div>\\n\t<form class=\\\"newCommentForm\\\">\\n\t\t<div contentEditable=\\\"true\\\" class=\\\"message\\\" data-placeholder=\\\"\"\n + alias4(((helper = (helper = helpers.newMessagePlaceholder || (depth0 != null ? depth0.newMessagePlaceholder : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"newMessagePlaceholder\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\">\"\n + alias4(((helper = (helper = helpers.message || (depth0 != null ? depth0.message : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"message\",\"hash\":{},\"data\":data}) : helper)))\n + \"</div>\\n\t\t<input class=\\\"submit icon-confirm has-tooltip\\\" type=\\\"submit\\\" value=\\\"\\\" title=\\\"\"\n + alias4(((helper = (helper = helpers.submitText || (depth0 != null ? depth0.submitText : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"submitText\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\"/>\\n\t\t<div class=\\\"submitLoading icon-loading-small hidden\\\"></div>\\n\t</form>\\n</\"\n + alias4(((helper = (helper = helpers.tag || (depth0 != null ? depth0.tag : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"tag\",\"hash\":{},\"data\":data}) : helper)))\n + \">\\n\";\n},\"useData\":true});\ntemplates['filesplugin'] = template({\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n return \"<a class=\\\"action action-comment permanent\\\" title=\\\"\"\n + alias4(((helper = (helper = helpers.countMessage || (depth0 != null ? depth0.countMessage : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"countMessage\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\" href=\\\"#\\\">\\n\t<img class=\\\"svg\\\" src=\\\"\"\n + alias4(((helper = (helper = helpers.iconUrl || (depth0 != null ? depth0.iconUrl : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"iconUrl\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\"/>\\n</a>\\n\";\n},\"useData\":true});\ntemplates['view'] = template({\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n return \"<ul class=\\\"comments\\\">\\n</ul>\\n<div class=\\\"emptycontent hidden\\\"><div class=\\\"icon-comment\\\"></div>\\n\t<p>\"\n + alias4(((helper = (helper = helpers.emptyResultLabel || (depth0 != null ? depth0.emptyResultLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"emptyResultLabel\",\"hash\":{},\"data\":data}) : helper)))\n + \"</p></div>\\n<input type=\\\"button\\\" class=\\\"showMore hidden\\\" value=\\\"\"\n + alias4(((helper = (helper = helpers.moreLabel || (depth0 != null ? depth0.moreLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"moreLabel\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\" name=\\\"show-more\\\" id=\\\"show-more\\\" />\\n<div class=\\\"loading hidden\\\" style=\\\"height: 50px\\\"></div>\\n\";\n},\"useData\":true});\n})();","/*\n * Copyright (c) 2016\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n(function(OC, OCA) {\n\n\t_.extend(OC.Files.Client, {\n\t\tPROPERTY_FILEID:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}id',\n\t\tPROPERTY_MESSAGE: \t'{' + OC.Files.Client.NS_OWNCLOUD + '}message',\n\t\tPROPERTY_ACTORTYPE:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}actorType',\n\t\tPROPERTY_ACTORID:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}actorId',\n\t\tPROPERTY_ISUNREAD:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}isUnread',\n\t\tPROPERTY_OBJECTID:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}objectId',\n\t\tPROPERTY_OBJECTTYPE:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}objectType',\n\t\tPROPERTY_ACTORDISPLAYNAME:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}actorDisplayName',\n\t\tPROPERTY_CREATIONDATETIME:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}creationDateTime',\n\t\tPROPERTY_MENTIONS: '{' + OC.Files.Client.NS_OWNCLOUD + '}mentions'\n\t});\n\n\t/**\n\t * @class OCA.Comments.CommentModel\n\t * @classdesc\n\t *\n\t * Comment\n\t *\n\t */\n\tvar CommentModel = OC.Backbone.Model.extend(\n\t\t/** @lends OCA.Comments.CommentModel.prototype */ {\n\t\tsync: OC.Backbone.davSync,\n\n\t\tdefaults: {\n\t\t\tactorType: 'users',\n\t\t\tobjectType: 'files'\n\t\t},\n\n\t\tdavProperties: {\n\t\t\t'id':\tOC.Files.Client.PROPERTY_FILEID,\n\t\t\t'message':\tOC.Files.Client.PROPERTY_MESSAGE,\n\t\t\t'actorType':\tOC.Files.Client.PROPERTY_ACTORTYPE,\n\t\t\t'actorId':\tOC.Files.Client.PROPERTY_ACTORID,\n\t\t\t'actorDisplayName':\tOC.Files.Client.PROPERTY_ACTORDISPLAYNAME,\n\t\t\t'creationDateTime':\tOC.Files.Client.PROPERTY_CREATIONDATETIME,\n\t\t\t'objectType':\tOC.Files.Client.PROPERTY_OBJECTTYPE,\n\t\t\t'objectId':\tOC.Files.Client.PROPERTY_OBJECTID,\n\t\t\t'isUnread':\tOC.Files.Client.PROPERTY_ISUNREAD,\n\t\t\t'mentions': OC.Files.Client.PROPERTY_MENTIONS\n\t\t},\n\n\t\tparse: function(data) {\n\t\t\treturn {\n\t\t\t\tid: data.id,\n\t\t\t\tmessage: data.message,\n\t\t\t\tactorType: data.actorType,\n\t\t\t\tactorId: data.actorId,\n\t\t\t\tactorDisplayName: data.actorDisplayName,\n\t\t\t\tcreationDateTime: data.creationDateTime,\n\t\t\t\tobjectType: data.objectType,\n\t\t\t\tobjectId: data.objectId,\n\t\t\t\tisUnread: (data.isUnread === 'true'),\n\t\t\t\tmentions: this._parseMentions(data.mentions)\n\t\t\t};\n\t\t},\n\n\t\t_parseMentions: function(mentions) {\n\t\t\tif(_.isUndefined(mentions)) {\n\t\t\t\treturn {};\n\t\t\t}\n\t\t\tvar result = {};\n\t\t\tfor(var i in mentions) {\n\t\t\t\tvar mention = mentions[i];\n\t\t\t\tif(_.isUndefined(mention.localName) || mention.localName !== 'mention') {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tresult[i] = {};\n\t\t\t\tfor (var child = mention.firstChild; child; child = child.nextSibling) {\n\t\t\t\t\tif(_.isUndefined(child.localName) || !child.localName.startsWith('mention')) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tresult[i][child.localName] = child.textContent;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t});\n\n\tOCA.Comments.CommentModel = CommentModel;\n})(OC, OCA);\n","/*\n * Copyright (c) 2016\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n(function(OC, OCA) {\n\n\t/**\n\t * @class OCA.Comments.CommentCollection\n\t * @classdesc\n\t *\n\t * Collection of comments assigned to a file\n\t *\n\t */\n\tvar CommentCollection = OC.Backbone.Collection.extend(\n\t\t/** @lends OCA.Comments.CommentCollection.prototype */ {\n\n\t\tsync: OC.Backbone.davSync,\n\n\t\tmodel: OCA.Comments.CommentModel,\n\n\t\t/**\n\t\t * Object type\n\t\t *\n\t\t * @type string\n\t\t */\n\t\t_objectType: 'files',\n\n\t\t/**\n\t\t * Object id\n\t\t *\n\t\t * @type string\n\t\t */\n\t\t_objectId: null,\n\n\t\t/**\n\t\t * True if there are no more page results left to fetch\n\t\t *\n\t\t * @type bool\n\t\t */\n\t\t_endReached: false,\n\n\t\t/**\n\t\t * Number of comments to fetch per page\n\t\t *\n\t\t * @type int\n\t\t */\n\t\t_limit : 20,\n\n\t\t/**\n\t\t * Initializes the collection\n\t\t *\n\t\t * @param {string} [options.objectType] object type\n\t\t * @param {string} [options.objectId] object id\n\t\t */\n\t\tinitialize: function(models, options) {\n\t\t\toptions = options || {};\n\t\t\tif (options.objectType) {\n\t\t\t\tthis._objectType = options.objectType;\n\t\t\t}\n\t\t\tif (options.objectId) {\n\t\t\t\tthis._objectId = options.objectId;\n\t\t\t}\n\t\t},\n\n\t\turl: function() {\n\t\t\treturn OC.linkToRemote('dav') + '/comments/' +\n\t\t\t\tencodeURIComponent(this._objectType) + '/' +\n\t\t\t\tencodeURIComponent(this._objectId) + '/';\n\t\t},\n\n\t\tsetObjectId: function(objectId) {\n\t\t\tthis._objectId = objectId;\n\t\t},\n\n\t\thasMoreResults: function() {\n\t\t\treturn !this._endReached;\n\t\t},\n\n\t\treset: function() {\n\t\t\tthis._endReached = false;\n\t\t\tthis._summaryModel = null;\n\t\t\treturn OC.Backbone.Collection.prototype.reset.apply(this, arguments);\n\t\t},\n\n\t\t/**\n\t\t * Fetch the next set of results\n\t\t */\n\t\tfetchNext: function(options) {\n\t\t\tvar self = this;\n\t\t\tif (!this.hasMoreResults()) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tvar body = '<?xml version=\"1.0\" encoding=\"utf-8\" ?>\\n' +\n\t\t\t\t'<oc:filter-comments xmlns:D=\"DAV:\" xmlns:oc=\"http://owncloud.org/ns\">\\n' +\n\t\t\t\t// load one more so we know there is more\n\t\t\t\t' <oc:limit>' + (this._limit + 1) + '</oc:limit>\\n' +\n\t\t\t\t' <oc:offset>' + this.length + '</oc:offset>\\n' +\n\t\t\t\t'</oc:filter-comments>\\n';\n\n\t\t\toptions = options || {};\n\t\t\tvar success = options.success;\n\t\t\toptions = _.extend({\n\t\t\t\tremove: false,\n\t\t\t\tparse: true,\n\t\t\t\tdata: body,\n\t\t\t\tdavProperties: CommentCollection.prototype.model.prototype.davProperties,\n\t\t\t\tsuccess: function(resp) {\n\t\t\t\t\tif (resp.length <= self._limit) {\n\t\t\t\t\t\t// no new entries, end reached\n\t\t\t\t\t\tself._endReached = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// remove last entry, for next page load\n\t\t\t\t\t\tresp = _.initial(resp);\n\t\t\t\t\t}\n\t\t\t\t\tif (!self.set(resp, options)) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tif (success) {\n\t\t\t\t\t\tsuccess.apply(null, arguments);\n\t\t\t\t\t}\n\t\t\t\t\tself.trigger('sync', 'REPORT', self, options);\n\t\t\t\t}\n\t\t\t}, options);\n\n\t\t\treturn this.sync('REPORT', this, options);\n\t\t},\n\n\t\t/**\n\t\t * Returns the matching summary model\n\t\t *\n\t\t * @return {OCA.Comments.CommentSummaryModel} summary model\n\t\t */\n\t\tgetSummaryModel: function() {\n\t\t\tif (!this._summaryModel) {\n\t\t\t\tthis._summaryModel = new OCA.Comments.CommentSummaryModel({\n\t\t\t\t\tid: this._objectId,\n\t\t\t\t\tobjectType: this._objectType\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn this._summaryModel;\n\t\t},\n\n\t\t/**\n\t\t * Updates the read marker for this comment thread\n\t\t *\n\t\t * @param {Date} [date] optional date, defaults to now\n\t\t * @param {Object} [options] backbone options\n\t\t */\n\t\tupdateReadMarker: function(date, options) {\n\t\t\toptions = options || {};\n\n\t\t\treturn this.getSummaryModel().save({\n\t\t\t\treadMarker: (date || new Date()).toUTCString()\n\t\t\t}, options);\n\t\t}\n\t});\n\n\tOCA.Comments.CommentCollection = CommentCollection;\n})(OC, OCA);\n\n","/*\n * Copyright (c) 2016\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n(function(OC, OCA) {\n\n\t_.extend(OC.Files.Client, {\n\t\tPROPERTY_READMARKER:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}readMarker'\n\t});\n\n\t/**\n\t * @class OCA.Comments.CommentSummaryModel\n\t * @classdesc\n\t *\n\t * Model containing summary information related to comments\n\t * like the read marker.\n\t *\n\t */\n\tvar CommentSummaryModel = OC.Backbone.Model.extend(\n\t\t/** @lends OCA.Comments.CommentSummaryModel.prototype */ {\n\t\tsync: OC.Backbone.davSync,\n\n\t\t/**\n\t\t * Object type\n\t\t *\n\t\t * @type string\n\t\t */\n\t\t_objectType: 'files',\n\n\t\t/**\n\t\t * Object id\n\t\t *\n\t\t * @type string\n\t\t */\n\t\t_objectId: null,\n\n\t\tdavProperties: {\n\t\t\t'readMarker': OC.Files.Client.PROPERTY_READMARKER\n\t\t},\n\n\t\t/**\n\t\t * Initializes the summary model\n\t\t *\n\t\t * @param {string} [options.objectType] object type\n\t\t * @param {string} [options.objectId] object id\n\t\t */\n\t\tinitialize: function(attrs, options) {\n\t\t\toptions = options || {};\n\t\t\tif (options.objectType) {\n\t\t\t\tthis._objectType = options.objectType;\n\t\t\t}\n\t\t},\n\n\t\turl: function() {\n\t\t\treturn OC.linkToRemote('dav') + '/comments/' +\n\t\t\t\tencodeURIComponent(this._objectType) + '/' +\n\t\t\t\tencodeURIComponent(this.id) + '/';\n\t\t}\n\t});\n\n\tOCA.Comments.CommentSummaryModel = CommentSummaryModel;\n})(OC, OCA);\n","/*\n * Copyright (c) 2016\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n/* global Handlebars, escapeHTML */\n\n(function(OC, OCA) {\n\n\t/**\n\t * @memberof OCA.Comments\n\t */\n\tvar CommentsTabView = OCA.Files.DetailTabView.extend(\n\t\t/** @lends OCA.Comments.CommentsTabView.prototype */ {\n\t\tid: 'commentsTabView',\n\t\tclassName: 'tab commentsTabView',\n\t\t_autoCompleteData: undefined,\n\t\t_commentsModifyMenu: undefined,\n\n\t\tevents: {\n\t\t\t'submit .newCommentForm': '_onSubmitComment',\n\t\t\t'click .showMore': '_onClickShowMore',\n\t\t\t'click .cancel': '_onClickCloseComment',\n\t\t\t'click .comment': '_onClickComment',\n\t\t\t'keyup div.message': '_onTextChange',\n\t\t\t'change div.message': '_onTextChange',\n\t\t\t'input div.message': '_onTextChange',\n\t\t\t'paste div.message': '_onPaste'\n\t\t},\n\n\t\t_commentMaxLength: 1000,\n\n\t\tinitialize: function() {\n\t\t\tOCA.Files.DetailTabView.prototype.initialize.apply(this, arguments);\n\t\t\tthis.collection = new OCA.Comments.CommentCollection();\n\t\t\tthis.collection.on('request', this._onRequest, this);\n\t\t\tthis.collection.on('sync', this._onEndRequest, this);\n\t\t\tthis.collection.on('add', this._onAddModel, this);\n\t\t\tthis.collection.on('change:message', this._onChangeModel, this);\n\n\t\t\tthis._commentMaxThreshold = this._commentMaxLength * 0.9;\n\n\t\t\t// TODO: error handling\n\t\t\t_.bindAll(this, '_onTypeComment', '_initAutoComplete', '_onAutoComplete');\n\t\t},\n\n\t\ttemplate: function(params) {\n\t\t\tvar currentUser = OC.getCurrentUser();\n\t\t\treturn OCA.Comments.Templates['view'](_.extend({\n\t\t\t\tactorId: currentUser.uid,\n\t\t\t\tactorDisplayName: currentUser.displayName\n\t\t\t}, params));\n\t\t},\n\n\t\teditCommentTemplate: function(params) {\n\t\t\tvar currentUser = OC.getCurrentUser();\n\t\t\treturn OCA.Comments.Templates['edit_comment'](_.extend({\n\t\t\t\tactorId: currentUser.uid,\n\t\t\t\tactorDisplayName: currentUser.displayName,\n\t\t\t\tnewMessagePlaceholder: t('comments', 'New comment …'),\n\t\t\t\tsubmitText: t('comments', 'Post'),\n\t\t\t\tcancelText: t('comments', 'Cancel'),\n\t\t\t\ttag: 'li'\n\t\t\t}, params));\n\t\t},\n\n\t\tcommentTemplate: function(params) {\n\t\t\tparams = _.extend({\n\t\t\t\teditTooltip: t('comments', 'Edit comment'),\n\t\t\t\tisUserAuthor: OC.getCurrentUser().uid === params.actorId,\n\t\t\t\tisLong: this._isLong(params.message)\n\t\t\t}, params);\n\n\t\t\tif (params.actorType === 'deleted_users') {\n\t\t\t\t// makes the avatar a X\n\t\t\t\tparams.actorId = null;\n\t\t\t\tparams.actorDisplayName = t('comments', '[Deleted user]');\n\t\t\t}\n\n\t\t\treturn OCA.Comments.Templates['comment'](params);\n\t\t},\n\n\t\tgetLabel: function() {\n\t\t\treturn t('comments', 'Comments');\n\t\t},\n\n\t\tgetIcon: function() {\n\t\t\treturn 'icon-comment';\n\t\t},\n\n\t\tsetFileInfo: function(fileInfo) {\n\t\t\tif (fileInfo) {\n\t\t\t\tthis.model = fileInfo;\n\n\t\t\t\tthis.render();\n\t\t\t\tthis._initAutoComplete($('#commentsTabView').find('.newCommentForm .message'));\n\t\t\t\tthis.collection.setObjectId(this.model.id);\n\t\t\t\t// reset to first page\n\t\t\t\tthis.collection.reset([], {silent: true});\n\t\t\t\tthis.nextPage();\n\t\t\t} else {\n\t\t\t\tthis.model = null;\n\t\t\t\tthis.render();\n\t\t\t\tthis.collection.reset();\n\t\t\t}\n\t\t},\n\n\t\trender: function() {\n\t\t\tthis.$el.html(this.template({\n\t\t\t\temptyResultLabel: t('comments', 'No comments yet, start the conversation!'),\n\t\t\t\tmoreLabel: t('comments', 'More comments …')\n\t\t\t}));\n\t\t\tthis.$el.find('.comments').before(this.editCommentTemplate({ tag: 'div'}));\n\t\t\tthis.$el.find('.has-tooltip').tooltip();\n\t\t\tthis.$container = this.$el.find('ul.comments');\n\t\t\tthis.$el.find('.avatar').avatar(OC.getCurrentUser().uid, 32);\n\t\t\tthis.delegateEvents();\n\t\t\tthis.$el.find('.message').on('keydown input change', this._onTypeComment);\n\n\t\t\tautosize(this.$el.find('.newCommentRow .message'))\n\t\t\tthis.$el.find('.newCommentForm .message').focus();\t\n\t\t},\n\n\t\t_initAutoComplete: function($target) {\n\t\t\tvar s = this;\n\t\t\tvar limit = 10;\n\t\t\tif(!_.isUndefined(OC.appConfig.comments)) {\n\t\t\t\tlimit = OC.appConfig.comments.maxAutoCompleteResults;\n\t\t\t}\n\t\t\t$target.atwho({\n\t\t\t\tat: '@',\n\t\t\t\tlimit: limit,\n\t\t\t\tcallbacks: {\n\t\t\t\t\tremoteFilter: s._onAutoComplete,\n\t\t\t\t\thighlighter: function (li) {\n\t\t\t\t\t\t// misuse the highlighter callback to instead of\n\t\t\t\t\t\t// highlighting loads the avatars.\n\t\t\t\t\t\tvar $li = $(li);\n\t\t\t\t\t\t$li.find('.avatar').avatar(undefined, 32);\n\t\t\t\t\t\treturn $li;\n\t\t\t\t\t},\n\t\t\t\t\tsorter: function (q, items) { return items; }\n\t\t\t\t},\n\t\t\t\tdisplayTpl: function (item) {\n\t\t\t\t\treturn '<li>' +\n\t\t\t\t\t\t'<span class=\"avatar-name-wrapper\">' +\n\t\t\t\t\t\t\t'<span class=\"avatar\" ' +\n\t\t\t\t\t\t\t\t\t'data-username=\"' + escapeHTML(item.id) + '\" ' + // for avatars\n\t\t\t\t\t\t\t\t\t'data-user=\"' + escapeHTML(item.id) + '\" ' + // for contactsmenu\n\t\t\t\t\t\t\t\t\t'data-user-display-name=\"' + escapeHTML(item.label) + '\">' +\n\t\t\t\t\t\t\t'</span>' +\n\t\t\t\t\t\t\t'<strong>' + escapeHTML(item.label) + '</strong>' +\n\t\t\t\t\t\t'</span></li>';\n\t\t\t\t},\n\t\t\t\tinsertTpl: function (item) {\n\t\t\t\t\treturn '' +\n\t\t\t\t\t\t'<span class=\"avatar-name-wrapper\">' +\n\t\t\t\t\t\t\t'<span class=\"avatar\" ' +\n\t\t\t\t\t\t\t\t\t'data-username=\"' + escapeHTML(item.id) + '\" ' + // for avatars\n\t\t\t\t\t\t\t\t\t'data-user=\"' + escapeHTML(item.id) + '\" ' + // for contactsmenu\n\t\t\t\t\t\t\t\t\t'data-user-display-name=\"' + escapeHTML(item.label) + '\">' +\n\t\t\t\t\t\t\t'</span>' +\n\t\t\t\t\t\t\t'<strong>' + escapeHTML(item.label) + '</strong>' +\n\t\t\t\t\t\t'</span>';\n\t\t\t\t},\n\t\t\t\tsearchKey: \"label\"\n\t\t\t});\n\t\t\t$target.on('inserted.atwho', function (je, $el) {\n\t\t\t\tvar editionMode = true;\n\t\t\t\ts._postRenderItem(\n\t\t\t\t\t// we need to pass the parent of the inserted element\n\t\t\t\t\t// passing the whole comments form would re-apply and request\n\t\t\t\t\t// avatars from the server\n\t\t\t\t\t$(je.target).find(\n\t\t\t\t\t\t'span[data-username=\"' + $el.find('[data-username]').data('username') + '\"]'\n\t\t\t\t\t).parent(),\n\t\t\t\t\teditionMode\n\t\t\t\t);\n\t\t\t});\n\t\t},\n\n\t\t_onAutoComplete: function(query, callback) {\n\t\t\tvar s = this;\n\t\t\tif(!_.isUndefined(this._autoCompleteRequestTimer)) {\n\t\t\t\tclearTimeout(this._autoCompleteRequestTimer);\n\t\t\t}\n\t\t\tthis._autoCompleteRequestTimer = _.delay(function() {\n\t\t\t\tif(!_.isUndefined(this._autoCompleteRequestCall)) {\n\t\t\t\t\tthis._autoCompleteRequestCall.abort();\n\t\t\t\t}\n\t\t\t\tthis._autoCompleteRequestCall = $.ajax({\n\t\t\t\t\turl: OC.linkToOCS('core', 2) + 'autocomplete/get',\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tsearch: query,\n\t\t\t\t\t\titemType: 'files',\n\t\t\t\t\t\titemId: s.model.get('id'),\n\t\t\t\t\t\tsorter: 'commenters|share-recipients',\n\t\t\t\t\t\tlimit: OC.appConfig.comments.maxAutoCompleteResults\n\t\t\t\t\t},\n\t\t\t\t\tbeforeSend: function (request) {\n\t\t\t\t\t\trequest.setRequestHeader('Accept', 'application/json');\n\t\t\t\t\t},\n\t\t\t\t\tsuccess: function (result) {\n\t\t\t\t\t\tcallback(result.ocs.data);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}, 400);\n\t\t},\n\n\t\t_formatItem: function(commentModel) {\n\t\t\tvar timestamp = new Date(commentModel.get('creationDateTime')).getTime();\n\t\t\tvar data = _.extend({\n\t\t\t\ttimestamp: timestamp,\n\t\t\t\tdate: OC.Util.relativeModifiedDate(timestamp),\n\t\t\t\taltDate: OC.Util.formatDate(timestamp),\n\t\t\t\tformattedMessage: this._formatMessage(commentModel.get('message'), commentModel.get('mentions'))\n\t\t\t}, commentModel.attributes);\n\t\t\treturn data;\n\t\t},\n\n\t\t_toggleLoading: function(state) {\n\t\t\tthis._loading = state;\n\t\t\tthis.$el.find('.loading').toggleClass('hidden', !state);\n\t\t},\n\n\t\t_onRequest: function(type) {\n\t\t\tif (type === 'REPORT') {\n\t\t\t\tthis._toggleLoading(true);\n\t\t\t\tthis.$el.find('.showMore').addClass('hidden');\n\t\t\t}\n\t\t},\n\n\t\t_onEndRequest: function(type) {\n\t\t\tvar fileInfoModel = this.model;\n\t\t\tthis._toggleLoading(false);\n\t\t\tthis.$el.find('.emptycontent').toggleClass('hidden', !!this.collection.length);\n\t\t\tthis.$el.find('.showMore').toggleClass('hidden', !this.collection.hasMoreResults());\n\n\t\t\tif (type !== 'REPORT') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// find first unread comment\n\t\t\tvar firstUnreadComment = this.collection.findWhere({isUnread: true});\n\t\t\tif (firstUnreadComment) {\n\t\t\t\t// update read marker\n\t\t\t\tthis.collection.updateReadMarker(\n\t\t\t\t\tnull,\n\t\t\t\t\t{\n\t\t\t\t\t\tsuccess: function() {\n\t\t\t\t\t\t\tfileInfoModel.set('commentsUnread', 0);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t\tthis.$el.find('.newCommentForm .message').focus();\t\n\t\t\t\n\t\t},\n\n\t\t/**\n\t\t * takes care of post-rendering after a new comment was added to the\n\t\t * collection\n\t\t *\n\t\t * @param model\n\t\t * @param collection\n\t\t * @param options\n\t\t * @private\n\t\t */\n\t\t_onAddModel: function(model, collection, options) {\n\t\t\t// we need to render it immediately, to ensure that the right\n\t\t\t// order of comments is kept on opening comments tab\n\t\t\tvar $comment = $(this.commentTemplate(this._formatItem(model)));\n\t\t\tif (!_.isUndefined(options.at) && collection.length > 1) {\n\t\t\t\tthis.$container.find('li').eq(options.at).before($comment);\n\t\t\t} else {\n\t\t\t\tthis.$container.append($comment);\n\t\t\t}\n\t\t\tthis._postRenderItem($comment);\n\t\t\t$('#commentsTabView').find('.newCommentForm div.message').text('').prop('contenteditable', true);\n\n\t\t\t// we need to update the model, because it consists of client data\n\t\t\t// only, but the server might add meta data, e.g. about mentions\n\t\t\tvar oldMentions = model.get('mentions');\n\t\t\tvar self = this;\n\t\t\tmodel.fetch({\n\t\t\t\tsuccess: function (model) {\n\t\t\t\t\tif(_.isEqual(oldMentions, model.get('mentions'))) {\n\t\t\t\t\t\t// don't attempt to render if unnecessary, avoids flickering\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tvar $updated = $(self.commentTemplate(self._formatItem(model)));\n\t\t\t\t\t$comment.html($updated.html());\n\t\t\t\t\tself._postRenderItem($comment);\n\t\t\t\t}\n\t\t\t})\n\n\t\t},\n\n\t\t/**\n\t\t * takes care of post-rendering after a new comment was edited\n\t\t *\n\t\t * @param model\n\t\t * @private\n\t\t */\n\t\t_onChangeModel: function (model) {\n\t\t\tif(model.get('message').trim() === model.previous('message').trim()) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar $form = this.$container.find('.comment[data-id=\"' + model.id + '\"] form');\n\t\t\tvar $row = $form.closest('.comment');\n\t\t\tvar $target = $row.data('commentEl');\n\t\t\tif(_.isUndefined($target)) {\n\t\t\t\t// ignore noise – this is only set after editing a comment and hitting post\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar self = this;\n\n\t\t\t// we need to update the model, because it consists of client data\n\t\t\t// only, but the server might add meta data, e.g. about mentions\n\t\t\tmodel.fetch({\n\t\t\t\tsuccess: function (model) {\n\t\t\t\t\t$target.removeClass('hidden');\n\t\t\t\t\t$row.remove();\n\n\t\t\t\t\tvar $message = $target.find('.message');\n\t\t\t\t\t$message\n\t\t\t\t\t\t.html(self._formatMessage(model.get('message'), model.get('mentions')))\n\t\t\t\t\t\t.find('.avatar')\n\t\t\t\t\t\t.each(function () { $(this).avatar(); });\n\t\t\t\t\tself._postRenderItem($message);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t_postRenderItem: function($el, editionMode) {\n\t\t\t$el.find('.has-tooltip').tooltip();\n\t\t\tvar inlineAvatars = $el.find('.message .avatar');\n\t\t\tif ($($el.context).hasClass('message')) {\n\t\t\t\tinlineAvatars = $el.find('.avatar');\n\t\t\t}\n\t\t\tinlineAvatars.each(function () {\n\t\t\t\tvar $this = $(this);\n\t\t\t\t$this.avatar($this.attr('data-username'), 16);\n\t\t\t});\n\t\t\t$el.find('.authorRow .avatar').each(function () {\n\t\t\t\tvar $this = $(this);\n\t\t\t\t$this.avatar($this.attr('data-username'), 32);\n\t\t\t});\n\n\t\t\tvar username = $el.find('.avatar').data('username');\n\t\t\tif (username !== OC.getCurrentUser().uid) {\n\t\t\t\t$el.find('.authorRow .avatar, .authorRow .author').contactsMenu(\n\t\t\t\t\tusername, 0, $el.find('.authorRow'));\n\t\t\t}\n\n\t\t\tvar $message = $el.find('.message');\n\t\t\tif($message.length === 0) {\n\t\t\t\t// it is the case when writing a comment and mentioning a person\n\t\t\t\t$message = $el;\n\t\t\t}\n\n\n\t\t\tif (!editionMode) {\n\t\t\t\tvar self = this;\n\t\t\t\t// add the dropdown menu to display the edit and delete option\n\t\t\t\tvar modifyCommentMenu = new OCA.Comments.CommentsModifyMenu();\n\t\t\t\t$el.find('.authorRow').append(modifyCommentMenu.$el);\n\t\t\t\t$el.find('.more').on('click', _.bind(modifyCommentMenu.show, modifyCommentMenu));\n\n\t\t\t\tself.listenTo(modifyCommentMenu, 'select:menu-item-clicked', function(ev, action) {\n\t\t\t\t\tif (action === 'edit') {\n\t\t\t\t\t\tself._onClickEditComment(ev);\n\t\t\t\t\t} else if (action === 'delete') {\n\t\t\t\t\t\tself._onClickDeleteComment(ev);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis._postRenderMessage($message, editionMode);\n\t\t},\n\n\t\t_postRenderMessage: function($el, editionMode) {\n\t\t\tif (editionMode) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t$el.find('.avatar-name-wrapper').each(function() {\n\t\t\t\tvar $this = $(this);\n\t\t\t\tvar $avatar = $this.find('.avatar');\n\n\t\t\t\tvar user = $avatar.data('user');\n\t\t\t\tif (user !== OC.getCurrentUser().uid) {\n\t\t\t\t\t$this.contactsMenu(user, 0, $this);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * Convert a message to be displayed in HTML,\n\t\t * converts newlines to <br> tags.\n\t\t */\n\t\t_formatMessage: function(message, mentions, editMode) {\n\t\t\tmessage = escapeHTML(message).replace(/\\n/g, '<br/>');\n\n\t\t\tfor(var i in mentions) {\n\t\t\t\tif(!mentions.hasOwnProperty(i)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tvar mention = '@' + mentions[i].mentionId;\n\t\t\t\tif (mentions[i].mentionId.indexOf(' ') !== -1) {\n\t\t\t\t\tmention = _.escape('@\"' + mentions[i].mentionId + '\"');\n\t\t\t\t}\n\n\t\t\t\t// escape possible regex characters in the name\n\t\t\t\tmention = mention.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n\t\t\t\tvar regex = new RegExp(\"(^|\\\\s)(\" + mention + \")\\\\b\", 'g');\n\t\t\t\tif (mentions[i].mentionId.indexOf(' ') !== -1) {\n\t\t\t\t\tregex = new RegExp(\"(^|\\\\s)(\" + mention + \")\", 'g');\n\t\t\t\t}\n\n\t\t\t\tvar displayName = this._composeHTMLMention(mentions[i].mentionId, mentions[i].mentionDisplayName);\n\n\t\t\t\t// replace every mention either at the start of the input or after a whitespace\n\t\t\t\t// followed by a non-word character.\n\t\t\t\tmessage = message.replace(regex,\n\t\t\t\t\tfunction(match, p1) {\n\t\t\t\t\t\t// to get number of whitespaces (0 vs 1) right\n\t\t\t\t\t\treturn p1+displayName;\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t\tif(editMode !== true) {\n\t\t\t\tmessage = OCP.Comments.plainToRich(message);\n\t\t\t}\n\t\t\treturn message;\n\t\t},\n\n\t\t_composeHTMLMention: function(uid, displayName) {\n\t\t\tvar avatar = '' +\n\t\t\t\t'<span class=\"avatar\" ' +\n\t\t\t\t\t\t'data-username=\"' + _.escape(uid) + '\" ' +\n\t\t\t\t\t\t'data-user=\"' + _.escape(uid) + '\" ' +\n\t\t\t\t\t\t'data-user-display-name=\"' + _.escape(displayName) + '\">' +\n\t\t\t\t'</span>';\n\n\t\t\tvar isCurrentUser = (uid === OC.getCurrentUser().uid);\n\n\t\t\treturn '' +\n\t\t\t\t'<span class=\"atwho-inserted\" contenteditable=\"false\">' +\n\t\t\t\t\t'<span class=\"avatar-name-wrapper' + (isCurrentUser ? ' currentUser' : '') + '\">' +\n\t\t\t\t\t\tavatar +\n\t\t\t\t\t\t'<strong>' + _.escape(displayName) + '</strong>' +\n\t\t\t\t\t'</span>' +\n\t\t\t\t'</span>';\n\t\t},\n\n\t\tnextPage: function() {\n\t\t\tif (this._loading || !this.collection.hasMoreResults()) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.collection.fetchNext();\n\t\t},\n\n\t\t_onClickEditComment: function(ev) {\n\t\t\tev.preventDefault();\n\t\t\tvar $comment = $(ev.target).closest('.comment');\n\t\t\tvar commentId = $comment.data('id');\n\t\t\tvar commentToEdit = this.collection.get(commentId);\n\t\t\tvar $formRow = $(this.editCommentTemplate(_.extend({\n\t\t\t\tisEditMode: true,\n\t\t\t\tsubmitText: t('comments', 'Save')\n\t\t\t}, commentToEdit.attributes)));\n\n\t\t\t$comment.addClass('hidden').removeClass('collapsed');\n\t\t\t// spawn form\n\t\t\t$comment.after($formRow);\n\t\t\t$formRow.data('commentEl', $comment);\n\t\t\t$formRow.find('.message').on('keydown input change', this._onTypeComment);\n\n\t\t\t// copy avatar element from original to avoid flickering\n\t\t\t$formRow.find('.avatar:first').replaceWith($comment.find('.avatar:first').clone());\n\t\t\t$formRow.find('.has-tooltip').tooltip();\n\n\t\t\tvar $message = $formRow.find('.message');\n\t\t\t$message\n\t\t\t\t.html(this._formatMessage(commentToEdit.get('message'), commentToEdit.get('mentions'), true))\n\t\t\t\t.find('.avatar')\n\t\t\t\t.each(function () { $(this).avatar(); });\n\t\t\tvar editionMode = true;\n\t\t\tthis._postRenderItem($message, editionMode);\n\n\t\t\t// Enable autosize\n\t\t\tautosize($formRow.find('.message'));\n\n\t\t\t// enable autocomplete\n\t\t\tthis._initAutoComplete($formRow.find('.message'));\n\n\t\t\treturn false;\n\t\t},\n\n\t\t_onTypeComment: function(ev) {\n\t\t\tvar $field = $(ev.target);\n\t\t\tvar len = $field.text().length;\n\t\t\tvar $submitButton = $field.data('submitButtonEl');\n\t\t\tif (!$submitButton) {\n\t\t\t\t$submitButton = $field.closest('form').find('.submit');\n\t\t\t\t$field.data('submitButtonEl', $submitButton);\n\t\t\t}\n\t\t\t$field.tooltip('hide');\n\t\t\tif (len > this._commentMaxThreshold) {\n\t\t\t\t$field.attr('data-original-title', t('comments', 'Allowed characters {count} of {max}', {count: len, max: this._commentMaxLength}));\n\t\t\t\t$field.tooltip({trigger: 'manual'});\n\t\t\t\t$field.tooltip('show');\n\t\t\t\t$field.addClass('error');\n\t\t\t}\n\n\t\t\tvar limitExceeded = (len > this._commentMaxLength);\n\t\t\t$field.toggleClass('error', limitExceeded);\n\t\t\t$submitButton.prop('disabled', limitExceeded);\n\n\t\t\t// Submits form with Enter, but Shift+Enter is a new line. If the\n\t\t\t// autocomplete popover is being shown Enter does not submit the\n\t\t\t// form either; it will be handled by At.js which will add the\n\t\t\t// currently selected item to the message.\n\t\t\tif (ev.keyCode === 13 && !ev.shiftKey && !$field.atwho('isSelecting')) {\n\t\t\t\t$submitButton.click();\n\t\t\t\tev.preventDefault();\n\t\t\t}\n\t\t},\n\n\t\t_onClickComment: function(ev) {\n\t\t\tvar $row = $(ev.target);\n\t\t\tif (!$row.is('.comment')) {\n\t\t\t\t$row = $row.closest('.comment');\n\t\t\t}\n\t\t\t$row.removeClass('collapsed');\n\t\t},\n\n\t\t_onClickCloseComment: function(ev) {\n\t\t\tev.preventDefault();\n\t\t\tvar $row = $(ev.target).closest('.comment');\n\t\t\t$row.data('commentEl').removeClass('hidden');\n\t\t\t$row.remove();\n\t\t\treturn false;\n\t\t},\n\n\t\t_onClickDeleteComment: function(ev) {\n\t\t\tev.preventDefault();\n\t\t\tvar $comment = $(ev.target).closest('.comment');\n\t\t\tvar commentId = $comment.data('id');\n\t\t\tvar $loading = $comment.find('.deleteLoading');\n\t\t\tvar $moreIcon = $comment.find('.more');\n\n\t\t\t$comment.addClass('disabled');\n\t\t\t$loading.removeClass('hidden');\n\t\t\t$moreIcon.addClass('hidden');\n\n\t\t\t$comment.data('commentEl', $comment);\n\n\t\t\tthis.collection.get(commentId).destroy({\n\t\t\t\tsuccess: function() {\n\t\t\t\t\t$comment.data('commentEl').remove();\n\t\t\t\t\t$comment.remove();\n\t\t\t\t},\n\t\t\t\terror: function() {\n\t\t\t\t\t$loading.addClass('hidden');\n\t\t\t\t\t$moreIcon.removeClass('hidden');\n\t\t\t\t\t$comment.removeClass('disabled');\n\n\t\t\t\t\tOC.Notification.showTemporary(t('comments', 'Error occurred while retrieving comment with ID {id}', {id: commentId}));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn false;\n\t\t},\n\n\t\t_onClickShowMore: function(ev) {\n\t\t\tev.preventDefault();\n\t\t\tthis.nextPage();\n\t\t},\n\n\t\t/**\n\t\t * takes care of updating comment element states after submit (either new\n\t\t * comment or edit).\n\t\t *\n\t\t * @param {OC.Backbone.Model} model\n\t\t * @param {jQuery} $form\n\t\t * @private\n\t\t */\n\t\t_onSubmitSuccess: function(model, $form) {\n\t\t\tvar $submit = $form.find('.submit');\n\t\t\tvar $loading = $form.find('.submitLoading');\n\n\t\t\t$submit.removeClass('hidden');\n\t\t\t$loading.addClass('hidden');\n\t\t},\n\n\t\t_commentBodyHTML2Plain: function($el) {\n\t\t\tvar $comment = $el.clone();\n\n\t\t\t$comment.find('.avatar-name-wrapper').each(function () {\n\t\t\t\tvar $this = $(this),\n\t\t\t\t\t$inserted = $this.parent(),\n\t\t\t\t\tuserId = $this.find('.avatar').data('username');\n\t\t\t\tif (userId.indexOf(' ') !== -1) {\n\t\t\t\t\t$inserted.html('@\"' + userId + '\"');\n\t\t\t\t} else {\n\t\t\t\t\t$inserted.html('@' + userId);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t$comment.html(OCP.Comments.richToPlain($comment.html()));\n\n\t\t\tvar oldHtml;\n\t\t\tvar html = $comment.html();\n\t\t\tdo {\n\t\t\t\t// replace works one by one\n\t\t\t\toldHtml = html;\n\t\t\t\thtml = oldHtml.replace(\"<br>\", \"\\n\");\t// preserve line breaks\n\t\t\t} while(oldHtml !== html);\n\t\t\t$comment.html(html);\n\n\t\t\treturn $comment.text();\n\t\t},\n\n\t\t_onSubmitComment: function(e) {\n\t\t\tvar self = this;\n\t\t\tvar $form = $(e.target);\n\t\t\tvar commentId = $form.closest('.comment').data('id');\n\t\t\tvar currentUser = OC.getCurrentUser();\n\t\t\tvar $submit = $form.find('.submit');\n\t\t\tvar $loading = $form.find('.submitLoading');\n\t\t\tvar $commentField = $form.find('.message');\n\t\t\tvar message = $commentField.text().trim();\n\t\t\te.preventDefault();\n\n\t\t\tif (!message.length || message.length > this._commentMaxLength) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t$commentField.prop('contenteditable', false);\n\t\t\t$submit.addClass('hidden');\n\t\t\t$loading.removeClass('hidden');\n\n\t\t\tmessage = this._commentBodyHTML2Plain($commentField);\n\t\t\tif (commentId) {\n\t\t\t\t// edit mode\n\t\t\t\tvar comment = this.collection.get(commentId);\n\t\t\t\tcomment.save({\n\t\t\t\t\tmessage: message\n\t\t\t\t}, {\n\t\t\t\t\tsuccess: function(model) {\n\t\t\t\t\t\tself._onSubmitSuccess(model, $form);\n\t\t\t\t\t\tif(model.get('message').trim() === model.previous('message').trim()) {\n\t\t\t\t\t\t\t// model change event doesn't trigger, manually remove the row.\n\t\t\t\t\t\t\tvar $row = $form.closest('.comment');\n\t\t\t\t\t\t\t$row.data('commentEl').removeClass('hidden');\n\t\t\t\t\t\t\t$row.remove();\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\terror: function() {\n\t\t\t\t\t\tself._onSubmitError($form, commentId);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.collection.create({\n\t\t\t\t\tactorId: currentUser.uid,\n\t\t\t\t\tactorDisplayName: currentUser.displayName,\n\t\t\t\t\tactorType: 'users',\n\t\t\t\t\tverb: 'comment',\n\t\t\t\t\tmessage: message,\n\t\t\t\t\tcreationDateTime: (new Date()).toUTCString()\n\t\t\t\t}, {\n\t\t\t\t\tat: 0,\n\t\t\t\t\t// wait for real creation before adding\n\t\t\t\t\twait: true,\n\t\t\t\t\tsuccess: function(model) {\n\t\t\t\t\t\tself._onSubmitSuccess(model, $form);\n\t\t\t\t\t},\n\t\t\t\t\terror: function() {\n\t\t\t\t\t\tself._onSubmitError($form, undefined);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn false;\n\t\t},\n\n\t\t/**\n\t\t * takes care of updating the UI after an error on submit (either new\n\t\t * comment or edit).\n\t\t *\n\t\t * @param {jQuery} $form\n\t\t * @param {string|undefined} commentId\n\t\t * @private\n\t\t */\n\t\t_onSubmitError: function($form, commentId) {\n\t\t\t$form.find('.submit').removeClass('hidden');\n\t\t\t$form.find('.submitLoading').addClass('hidden');\n\t\t\t$form.find('.message').prop('contenteditable', true);\n\n\t\t\tif(!_.isUndefined(commentId)) {\n\t\t\t\tOC.Notification.show(t('comments', 'Error occurred while updating comment with id {id}', {id: commentId}), {type: 'error'});\n\t\t\t} else {\n\t\t\t\tOC.Notification.show(t('comments', 'Error occurred while posting comment'), {type: 'error'});\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * ensures the contenteditable div is really empty, when user removed\n\t\t * all input, so that the placeholder will be shown again\n\t\t *\n\t\t * @private\n\t\t */\n\t\t_onTextChange: function() {\n\t\t\tvar $message = $('#commentsTabView').find('.newCommentForm div.message');\n\t\t\tif(!$message.text().trim().length) {\n\t\t\t\t$message.empty();\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Limit pasting to plain text\n\t\t *\n\t\t * @param e\n\t\t * @private\n\t\t */\n\t\t_onPaste: function (e) {\n\t\t\te.preventDefault();\n\t\t\tvar text = e.originalEvent.clipboardData.getData(\"text/plain\");\n\t\t\tdocument.execCommand('insertText', false, text);\n\t\t},\n\n\t\t/**\n\t\t * Returns whether the given message is long and needs\n\t\t * collapsing\n\t\t */\n\t\t_isLong: function(message) {\n\t\t\treturn message.length > 250 || (message.match(/\\n/g) || []).length > 1;\n\t\t}\n\t});\n\n\tOCA.Comments.CommentsTabView = CommentsTabView;\n})(OC, OCA);\n","/*\n * Copyright (c) 2018\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n/* global Handlebars */\n(function() {\n\n\t/**\n\t * Construct a new CommentsModifyMenuinstance\n\t * @constructs CommentsModifyMenu\n\t * @memberof OC.Comments\n\t * @private\n\t */\n\tvar CommentsModifyMenu = OC.Backbone.View.extend({\n\t\ttagName: 'div',\n\t\tclassName: 'commentsModifyMenu popovermenu bubble menu',\n\t\t_scopes: [\n\t\t\t{\n\t\t\t\tname: 'edit',\n\t\t\t\tdisplayName: t('comments', 'Edit comment'),\n\t\t\t\ticonClass: 'icon-rename'\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'delete',\n\t\t\t\tdisplayName: t('comments', 'Delete comment'),\n\t\t\t\ticonClass: 'icon-delete'\n\t\t\t}\n\t\t],\n\t\tinitialize: function() {\n\n\t\t},\n\t\tevents: {\n\t\t\t'click a.action': '_onClickAction'\n\t\t},\n\n\t\t/**\n\t\t * Event handler whenever an action has been clicked within the menu\n\t\t *\n\t\t * @param {Object} event event object\n\t\t */\n\t\t_onClickAction: function(event) {\n\t\t\tvar $target = $(event.currentTarget);\n\t\t\tif (!$target.hasClass('menuitem')) {\n\t\t\t\t$target = $target.closest('.menuitem');\n\t\t\t}\n\n\t\t\tOC.hideMenus();\n\n\t\t\tthis.trigger('select:menu-item-clicked', event, $target.data('action'));\n\t\t},\n\n\t\t/**\n\t\t * Renders the menu with the currently set items\n\t\t */\n\t\trender: function() {\n\t\t\tthis.$el.html(OCA.Comments.Templates['commentsmodifymenu']({\n\t\t\t\titems: this._scopes\n\t\t\t}));\n\t\t},\n\n\t\t/**\n\t\t * Displays the menu\n\t\t */\n\t\tshow: function(context) {\n\t\t\tthis._context = context;\n\n\t\t\tfor(var i in this._scopes) {\n\t\t\t\tthis._scopes[i].active = false;\n\t\t\t}\n\n\n\t\t\tvar $el = $(context.target);\n\t\t\tvar offsetIcon = $el.offset();\n\t\t\tvar offsetContainer = $el.closest('.authorRow').offset();\n\n\t\t\t// adding some extra top offset to push the menu below the button.\n\t\t\tvar position = {\n\t\t\t\ttop: offsetIcon.top - offsetContainer.top + 48,\n\t\t\t\tleft: '',\n\t\t\t\tright: ''\n\t\t\t};\n\n\t\t\tposition.left = offsetIcon.left - offsetContainer.left;\n\n\t\t\tif (position.left > 200) {\n\t\t\t\t// we need to position the menu to the right.\n\t\t\t\tposition.left = '';\n\t\t\t\tposition.right = this.$el.closest('.comment').find('.date').width();\n\t\t\t\tthis.$el.removeClass('menu-left').addClass('menu-right');\n\t\t\t} else {\n\t\t\t\tthis.$el.removeClass('menu-right').addClass('menu-left');\n\t\t\t}\n\t\t\tthis.$el.css(position);\n\t\t\tthis.render();\n\t\t\tthis.$el.removeClass('hidden');\n\n\t\t\tOC.showMenu(null, this.$el);\n\t\t}\n\t});\n\n\tOCA.Comments = OCA.Comments || {};\n\tOCA.Comments.CommentsModifyMenu = CommentsModifyMenu;\n})(OC, OCA);\n","/*\n * Copyright (c) 2016 Vincent Petry <pvince81@owncloud.com>\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n/* global Handlebars */\n\n(function() {\n\n\t_.extend(OC.Files.Client, {\n\t\tPROPERTY_COMMENTS_UNREAD:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}comments-unread'\n\t});\n\n\tOCA.Comments = _.extend({}, OCA.Comments);\n\tif (!OCA.Comments) {\n\t\t/**\n\t\t * @namespace\n\t\t */\n\t\tOCA.Comments = {};\n\t}\n\n\t/**\n\t * @namespace\n\t */\n\tOCA.Comments.FilesPlugin = {\n\t\tignoreLists: [\n\t\t\t'trashbin',\n\t\t\t'files.public'\n\t\t],\n\n\t\t_formatCommentCount: function(count) {\n\t\t\treturn OCA.Comments.Templates['filesplugin']({\n\t\t\t\tcount: count,\n\t\t\t\tcountMessage: n('comments', '%n unread comment', '%n unread comments', count),\n\t\t\t\ticonUrl: OC.imagePath('core', 'actions/comment')\n\t\t\t});\n\t\t},\n\n\t\tattach: function(fileList) {\n\t\t\tvar self = this;\n\t\t\tif (this.ignoreLists.indexOf(fileList.id) >= 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfileList.registerTabView(new OCA.Comments.CommentsTabView('commentsTabView'));\n\n\t\t\tvar oldGetWebdavProperties = fileList._getWebdavProperties;\n\t\t\tfileList._getWebdavProperties = function() {\n\t\t\t\tvar props = oldGetWebdavProperties.apply(this, arguments);\n\t\t\t\tprops.push(OC.Files.Client.PROPERTY_COMMENTS_UNREAD);\n\t\t\t\treturn props;\n\t\t\t};\n\n\t\t\tfileList.filesClient.addFileInfoParser(function(response) {\n\t\t\t\tvar data = {};\n\t\t\t\tvar props = response.propStat[0].properties;\n\t\t\t\tvar commentsUnread = props[OC.Files.Client.PROPERTY_COMMENTS_UNREAD];\n\t\t\t\tif (!_.isUndefined(commentsUnread) && commentsUnread !== '') {\n\t\t\t\t\tdata.commentsUnread = parseInt(commentsUnread, 10);\n\t\t\t\t}\n\t\t\t\treturn data;\n\t\t\t});\n\n\t\t\tfileList.$el.addClass('has-comments');\n\t\t\tvar oldCreateRow = fileList._createRow;\n\t\t\tfileList._createRow = function(fileData) {\n\t\t\t\tvar $tr = oldCreateRow.apply(this, arguments);\n\t\t\t\tif (fileData.commentsUnread) {\n\t\t\t\t\t$tr.attr('data-comments-unread', fileData.commentsUnread);\n\t\t\t\t}\n\t\t\t\treturn $tr;\n\t\t\t};\n\n\t\t\t// register \"comment\" action for reading comments\n\t\t\tfileList.fileActions.registerAction({\n\t\t\t\tname: 'Comment',\n\t\t\t\tdisplayName: function(context) {\n\t\t\t\t\tif (context && context.$file) {\n\t\t\t\t\t\tvar unread = parseInt(context.$file.data('comments-unread'), 10)\n\t\t\t\t\t\tif (unread >= 0) {\n\t\t\t\t\t\t\treturn n('comments', '1 new comment', '{unread} new comments', unread, { unread: unread })\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn t('comments', 'Comment')\n\t\t\t\t},\n\t\t\t\tmime: 'all',\n\t\t\t\torder: -140,\n\t\t\t\ticonClass: 'icon-comment',\n\t\t\t\tpermissions: OC.PERMISSION_READ,\n\t\t\t\ttype: OCA.Files.FileActions.TYPE_INLINE,\n\t\t\t\trender: function(actionSpec, isDefault, context) {\n\t\t\t\t\tvar $file = context.$file;\n\t\t\t\t\tvar unreadComments = $file.data('comments-unread');\n\t\t\t\t\tif (unreadComments) {\n\t\t\t\t\t\tvar $actionLink = $(self._formatCommentCount(unreadComments));\n\t\t\t\t\t\tcontext.$file.find('a.name>span.fileactions').append($actionLink);\n\t\t\t\t\t\treturn $actionLink;\n\t\t\t\t\t}\n\t\t\t\t\treturn '';\n\t\t\t\t},\n\t\t\t\tactionHandler: function(fileName, context) {\n\t\t\t\t\tcontext.$file.find('.action-comment').tooltip('hide');\n\t\t\t\t\t// open sidebar in comments section\n\t\t\t\t\tcontext.fileList.showDetailsView(fileName, 'commentsTabView');\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// add attribute to \"elementToFile\"\n\t\t\tvar oldElementToFile = fileList.elementToFile;\n\t\t\tfileList.elementToFile = function($el) {\n\t\t\t\tvar fileInfo = oldElementToFile.apply(this, arguments);\n\t\t\t\tvar commentsUnread = $el.data('comments-unread');\n\t\t\t\tif (commentsUnread) {\n\t\t\t\t\tfileInfo.commentsUnread = commentsUnread;\n\t\t\t\t}\n\t\t\t\treturn fileInfo;\n\t\t\t};\n\t\t}\n\t};\n\n})();\n\nOC.Plugins.register('OCA.Files.FileList', OCA.Comments.FilesPlugin);\n","/*\n * @author Joas Schilling <coding@schilljs.com>\n * Copyright (c) 2016\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n */\n\n(function() {\n\tOCA.Comments.ActivityTabViewPlugin = {\n\n\t\t/**\n\t\t * Prepare activity for display\n\t\t *\n\t\t * @param {OCA.Activity.ActivityModel} model for this activity\n\t\t * @param {jQuery} $el jQuery handle for this activity\n\t\t * @param {string} view The view that displayes this activity\n\t\t */\n\t\tprepareModelForDisplay: function (model, $el, view) {\n\t\t\tif (model.get('app') !== 'comments' || model.get('type') !== 'comments') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (view === 'ActivityTabView') {\n\t\t\t\t$el.addClass('comment');\n\t\t\t\tif (model.get('message') && this._isLong(model.get('message'))) {\n\t\t\t\t\t$el.addClass('collapsed');\n\t\t\t\t\tvar $overlay = $('<div>').addClass('message-overlay');\n\t\t\t\t\t$el.find('.activitymessage').after($overlay);\n\t\t\t\t\t$el.on('click', this._onClickCollapsedComment);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/*\n\t\t * Copy of CommentsTabView._onClickComment()\n\t\t */\n\t\t_onClickCollapsedComment: function(ev) {\n\t\t\tvar $row = $(ev.target);\n\t\t\tif (!$row.is('.comment')) {\n\t\t\t\t$row = $row.closest('.comment');\n\t\t\t}\n\t\t\t$row.removeClass('collapsed');\n\t\t},\n\n\t\t/*\n\t\t * Copy of CommentsTabView._isLong()\n\t\t */\n\t\t_isLong: function(message) {\n\t\t\treturn message.length > 250 || (message.match(/\\n/g) || []).length > 1;\n\t\t}\n\t};\n\n\n})();\n\nOC.Plugins.register('OCA.Activity.RenderingPlugins', OCA.Comments.ActivityTabViewPlugin);\n","/*\n * Copyright (c) 2014\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n(function(OC, OCA, $) {\n\t\"use strict\";\n\n\t/**\n\t * Construct a new FileActions instance\n\t * @constructs Files\n\t */\n\tvar Comment = function() {\n\t\tthis.initialize();\n\t};\n\n\tComment.prototype = {\n\n\t\tfileList: null,\n\n\t\t/**\n\t\t * Initialize the file search\n\t\t */\n\t\tinitialize: function() {\n\n\t\t\tvar self = this;\n\n\t\t\tthis.fileAppLoaded = function() {\n\t\t\t\treturn !!OCA.Files && !!OCA.Files.App;\n\t\t\t};\n\t\t\tfunction inFileList($row, result) {\n\t\t\t\treturn false;\n\n\t\t\t\tif (! self.fileAppLoaded()) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tvar dir = self.fileList.getCurrentDirectory().replace(/\\/+$/,'');\n\t\t\t\tvar resultDir = OC.dirname(result.path);\n\t\t\t\treturn dir === resultDir && self.fileList.inList(result.name);\n\t\t\t}\n\t\t\tfunction hideNoFilterResults() {\n\t\t\t\tvar $nofilterresults = $('.nofilterresults');\n\t\t\t\tif ( ! $nofilterresults.hasClass('hidden') ) {\n\t\t\t\t\t$nofilterresults.addClass('hidden');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/**\n\t\t\t *\n\t\t\t * @param {jQuery} $row\n\t\t\t * @param {Object} result\n\t\t\t * @param {int} result.id\n\t\t\t * @param {string} result.comment\n\t\t\t * @param {string} result.authorId\n\t\t\t * @param {string} result.authorName\n\t\t\t * @param {string} result.link\n\t\t\t * @param {string} result.fileName\n\t\t\t * @param {string} result.path\n\t\t\t * @returns {*}\n\t\t\t */\n\t\t\tthis.renderCommentResult = function($row, result) {\n\t\t\t\tif (inFileList($row, result)) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\thideNoFilterResults();\n\t\t\t\t/*render preview icon, show path beneath filename,\n\t\t\t\t show size and last modified date on the right */\n\t\t\t\tthis.updateLegacyMimetype(result);\n\n\t\t\t\tvar $pathDiv = $('<div>').addClass('path').text(result.path);\n\n\t\t\t\tvar $avatar = $('<div>');\n\t\t\t\t$avatar.addClass('avatar')\n\t\t\t\t\t.css('display', 'inline-block')\n\t\t\t\t\t.css('vertical-align', 'middle')\n\t\t\t\t\t.css('margin', '0 5px 2px 3px');\n\n\t\t\t\tif (result.authorName) {\n\t\t\t\t\t$avatar.avatar(result.authorId, 21, undefined, false, undefined, result.authorName);\n\t\t\t\t} else {\n\t\t\t\t\t$avatar.avatar(result.authorId, 21);\n\t\t\t\t}\n\n\t\t\t\t$row.find('td.info div.name').after($pathDiv).text(result.comment).prepend($('<span>').addClass('path').css('margin-right', '5px').text(result.authorName)).prepend($avatar);\n\t\t\t\t$row.find('td.result a').attr('href', result.link);\n\n\t\t\t\t$row.find('td.icon')\n\t\t\t\t\t.css('background-image', 'url(' + OC.imagePath('core', 'actions/comment') + ')')\n\t\t\t\t\t.css('opacity', '.4');\n\t\t\t\tvar dir = OC.dirname(result.path);\n\t\t\t\t// \"result.path\" does not include a leading \"/\", so \"OC.dirname\"\n\t\t\t\t// returns the path itself for files or folders in the root.\n\t\t\t\tif (dir === result.path) {\n\t\t\t\t\tdir = '/';\n\t\t\t\t}\n\t\t\t\t$row.find('td.info a').attr('href',\n\t\t\t\t\tOC.generateUrl('/apps/files/?dir={dir}&scrollto={scrollto}', {dir: dir, scrollto: result.fileName})\n\t\t\t\t);\n\n\t\t\t\treturn $row;\n\t\t\t};\n\n\t\t\tthis.handleCommentClick = function($row, result, event) {\n\t\t\t\tif (self.fileAppLoaded() && self.fileList.id === 'files') {\n\t\t\t\t\tself.fileList.changeDirectory(OC.dirname(result.path));\n\t\t\t\t\tself.fileList.scrollTo(result.name);\n\t\t\t\t\treturn false;\n\t\t\t\t} else {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tthis.updateLegacyMimetype = function (result) {\n\t\t\t\t// backward compatibility:\n\t\t\t\tif (!result.mime && result.mime_type) {\n\t\t\t\t\tresult.mime = result.mime_type;\n\t\t\t\t}\n\t\t\t};\n\t\t\tthis.setFileList = function (fileList) {\n\t\t\t\tthis.fileList = fileList;\n\t\t\t};\n\n\t\t\tOC.Plugins.register('OCA.Search.Core', this);\n\t\t},\n\t\tattach: function(search) {\n\t\t\tsearch.setRenderer('comment', this.renderCommentResult.bind(this));\n\t\t\tsearch.setHandler('comment', this.handleCommentClick.bind(this));\n\t\t}\n\t};\n\n\tOCA.Search.comment = new Comment();\n})(OC, OCA, $);\n","/*! jquery.caret 2015-02-01 */\n!function(a,b){\"function\"==typeof define&&define.amd?define([\"jquery\"],function(c){return a.returnExportsGlobal=b(c)}):\"object\"==typeof exports?module.exports=b(require(\"jquery\")):b(jQuery)}(this,function(a){\"use strict\";var b,c,d,e,f,g,h,i,j,k,l;k=\"caret\",b=function(){function b(a){this.$inputor=a,this.domInputor=this.$inputor[0]}return b.prototype.setPos=function(){return this.domInputor},b.prototype.getIEPosition=function(){return this.getPosition()},b.prototype.getPosition=function(){var a,b;return b=this.getOffset(),a=this.$inputor.offset(),b.left-=a.left,b.top-=a.top,b},b.prototype.getOldIEPos=function(){var a,b;return b=h.selection.createRange(),a=h.body.createTextRange(),a.moveToElementText(this.domInputor),a.setEndPoint(\"EndToEnd\",b),a.text.length},b.prototype.getPos=function(){var a,b,c;return(c=this.range())?(a=c.cloneRange(),a.selectNodeContents(this.domInputor),a.setEnd(c.endContainer,c.endOffset),b=a.toString().length,a.detach(),b):h.selection?this.getOldIEPos():void 0},b.prototype.getOldIEOffset=function(){var a,b;return a=h.selection.createRange().duplicate(),a.moveStart(\"character\",-1),b=a.getBoundingClientRect(),{height:b.bottom-b.top,left:b.left,top:b.top}},b.prototype.getOffset=function(){var b,c,d,e,f;return j.getSelection&&(d=this.range())?(d.endOffset-1>0&&d.endContainer===!this.domInputor&&(b=d.cloneRange(),b.setStart(d.endContainer,d.endOffset-1),b.setEnd(d.endContainer,d.endOffset),e=b.getBoundingClientRect(),c={height:e.height,left:e.left+e.width,top:e.top},b.detach()),c&&0!==(null!=c?c.height:void 0)||(b=d.cloneRange(),f=a(h.createTextNode(\"|\")),b.insertNode(f[0]),b.selectNode(f[0]),e=b.getBoundingClientRect(),c={height:e.height,left:e.left,top:e.top},f.remove(),b.detach())):h.selection&&(c=this.getOldIEOffset()),c&&(c.top+=a(j).scrollTop(),c.left+=a(j).scrollLeft()),c},b.prototype.range=function(){var a;if(j.getSelection)return a=j.getSelection(),a.rangeCount>0?a.getRangeAt(0):null},b}(),c=function(){function b(a){this.$inputor=a,this.domInputor=this.$inputor[0]}return b.prototype.getIEPos=function(){var a,b,c,d,e,f,g;return b=this.domInputor,f=h.selection.createRange(),e=0,f&&f.parentElement()===b&&(d=b.value.replace(/\\r\\n/g,\"\\n\"),c=d.length,g=b.createTextRange(),g.moveToBookmark(f.getBookmark()),a=b.createTextRange(),a.collapse(!1),e=g.compareEndPoints(\"StartToEnd\",a)>-1?c:-g.moveStart(\"character\",-c)),e},b.prototype.getPos=function(){return h.selection?this.getIEPos():this.domInputor.selectionStart},b.prototype.setPos=function(a){var b,c;return b=this.domInputor,h.selection?(c=b.createTextRange(),c.move(\"character\",a),c.select()):b.setSelectionRange&&b.setSelectionRange(a,a),b},b.prototype.getIEOffset=function(a){var b,c,d,e;return c=this.domInputor.createTextRange(),a||(a=this.getPos()),c.move(\"character\",a),d=c.boundingLeft,e=c.boundingTop,b=c.boundingHeight,{left:d,top:e,height:b}},b.prototype.getOffset=function(b){var c,d,e;return c=this.$inputor,h.selection?(d=this.getIEOffset(b),d.top+=a(j).scrollTop()+c.scrollTop(),d.left+=a(j).scrollLeft()+c.scrollLeft(),d):(d=c.offset(),e=this.getPosition(b),d={left:d.left+e.left-c.scrollLeft(),top:d.top+e.top-c.scrollTop(),height:e.height})},b.prototype.getPosition=function(a){var b,c,e,f,g,h,i;return b=this.$inputor,f=function(a){return a=a.replace(/<|>|`|\"|&/g,\"?\").replace(/\\r\\n|\\r|\\n/g,\"<br/>\"),/firefox/i.test(navigator.userAgent)&&(a=a.replace(/\\s/g,\"&nbsp;\")),a},void 0===a&&(a=this.getPos()),i=b.val().slice(0,a),e=b.val().slice(a),g=\"<span style='position: relative; display: inline;'>\"+f(i)+\"</span>\",g+=\"<span id='caret' style='position: relative; display: inline;'>|</span>\",g+=\"<span style='position: relative; display: inline;'>\"+f(e)+\"</span>\",h=new d(b),c=h.create(g).rect()},b.prototype.getIEPosition=function(a){var b,c,d,e,f;return d=this.getIEOffset(a),c=this.$inputor.offset(),e=d.left-c.left,f=d.top-c.top,b=d.height,{left:e,top:f,height:b}},b}(),d=function(){function b(a){this.$inputor=a}return b.prototype.css_attr=[\"borderBottomWidth\",\"borderLeftWidth\",\"borderRightWidth\",\"borderTopStyle\",\"borderRightStyle\",\"borderBottomStyle\",\"borderLeftStyle\",\"borderTopWidth\",\"boxSizing\",\"fontFamily\",\"fontSize\",\"fontWeight\",\"height\",\"letterSpacing\",\"lineHeight\",\"marginBottom\",\"marginLeft\",\"marginRight\",\"marginTop\",\"outlineWidth\",\"overflow\",\"overflowX\",\"overflowY\",\"paddingBottom\",\"paddingLeft\",\"paddingRight\",\"paddingTop\",\"textAlign\",\"textOverflow\",\"textTransform\",\"whiteSpace\",\"wordBreak\",\"wordWrap\"],b.prototype.mirrorCss=function(){var b,c=this;return b={position:\"absolute\",left:-9999,top:0,zIndex:-2e4},\"TEXTAREA\"===this.$inputor.prop(\"tagName\")&&this.css_attr.push(\"width\"),a.each(this.css_attr,function(a,d){return b[d]=c.$inputor.css(d)}),b},b.prototype.create=function(b){return this.$mirror=a(\"<div></div>\"),this.$mirror.css(this.mirrorCss()),this.$mirror.html(b),this.$inputor.after(this.$mirror),this},b.prototype.rect=function(){var a,b,c;return a=this.$mirror.find(\"#caret\"),b=a.position(),c={left:b.left,top:b.top,height:a.height()},this.$mirror.remove(),c},b}(),e={contentEditable:function(a){return!(!a[0].contentEditable||\"true\"!==a[0].contentEditable)}},g={pos:function(a){return a||0===a?this.setPos(a):this.getPos()},position:function(a){return h.selection?this.getIEPosition(a):this.getPosition(a)},offset:function(a){var b;return b=this.getOffset(a)}},h=null,j=null,i=null,l=function(a){var b;return(b=null!=a?a.iframe:void 0)?(i=b,j=b.contentWindow,h=b.contentDocument||j.document):(i=void 0,j=window,h=document)},f=function(a){var b;h=a[0].ownerDocument,j=h.defaultView||h.parentWindow;try{return i=j.frameElement}catch(c){b=c}},a.fn.caret=function(d,f,h){var i;return g[d]?(a.isPlainObject(f)?(l(f),f=void 0):l(h),i=e.contentEditable(this)?new b(this):new c(this),g[d].apply(i,[f])):a.error(\"Method \"+d+\" does not exist on jQuery.caret\")},a.fn.caret.EditableCaret=b,a.fn.caret.InputCaret=c,a.fn.caret.Utils=e,a.fn.caret.apis=g});","!function(t,e){\"function\"==typeof define&&define.amd?define([\"jquery\"],function(t){return e(t)}):\"object\"==typeof exports?module.exports=e(require(\"jquery\")):e(jQuery)}(this,function(t){var e,i;i={ESC:27,TAB:9,ENTER:13,CTRL:17,A:65,P:80,N:78,LEFT:37,UP:38,RIGHT:39,DOWN:40,BACKSPACE:8,SPACE:32},e={beforeSave:function(t){return r.arrayToDefaultHash(t)},matcher:function(t,e,i,n){var r,o,s,a,h;return t=t.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g,\"\\\\$&\"),i&&(t=\"(?:^|\\\\s)\"+t),r=decodeURI(\"%C3%80\"),o=decodeURI(\"%C3%BF\"),h=n?\" \":\"\",a=new RegExp(t+\"([A-Za-z\"+r+\"-\"+o+\"0-9_\"+h+\"'.+-]*)$|\"+t+\"([^\\\\x00-\\\\xff]*)$\",\"gi\"),s=a.exec(e),s?s[2]||s[1]:null},filter:function(t,e,i){var n,r,o,s;for(n=[],r=0,s=e.length;s>r;r++)o=e[r],~new String(o[i]).toLowerCase().indexOf(t.toLowerCase())&&n.push(o);return n},remoteFilter:null,sorter:function(t,e,i){var n,r,o,s;if(!t)return e;for(n=[],r=0,s=e.length;s>r;r++)o=e[r],o.atwho_order=new String(o[i]).toLowerCase().indexOf(t.toLowerCase()),o.atwho_order>-1&&n.push(o);return n.sort(function(t,e){return t.atwho_order-e.atwho_order})},tplEval:function(t,e){var i,n,r;r=t;try{return\"string\"!=typeof t&&(r=t(e)),r.replace(/\\$\\{([^\\}]*)\\}/g,function(t,i,n){return e[i]})}catch(n){return i=n,\"\"}},highlighter:function(t,e){var i;return e?(i=new RegExp(\">\\\\s*([^<]*?)(\"+e.replace(\"+\",\"\\\\+\")+\")([^<]*)\\\\s*<\",\"ig\"),t.replace(i,function(t,e,i,n){return\"> \"+e+\"<strong>\"+i+\"</strong>\"+n+\" <\"})):t},beforeInsert:function(t,e,i){return t},beforeReposition:function(t){return t},afterMatchFailed:function(t,e){}};var n;n=function(){function e(e){this.currentFlag=null,this.controllers={},this.aliasMaps={},this.$inputor=t(e),this.setupRootElement(),this.listen()}return e.prototype.createContainer=function(e){var i;return null!=(i=this.$el)&&i.remove(),t(e.body).append(this.$el=t(\"<div class='atwho-container'></div>\"))},e.prototype.setupRootElement=function(e,i){var n,r;if(null==i&&(i=!1),e)this.window=e.contentWindow,this.document=e.contentDocument||this.window.document,this.iframe=e;else{this.document=this.$inputor[0].ownerDocument,this.window=this.document.defaultView||this.document.parentWindow;try{this.iframe=this.window.frameElement}catch(r){if(n=r,this.iframe=null,t.fn.atwho.debug)throw new Error(\"iframe auto-discovery is failed.\\nPlease use `setIframe` to set the target iframe manually.\\n\"+n)}}return this.createContainer((this.iframeAsRoot=i)?this.document:document)},e.prototype.controller=function(t){var e,i,n,r;if(this.aliasMaps[t])i=this.controllers[this.aliasMaps[t]];else{r=this.controllers;for(n in r)if(e=r[n],n===t){i=e;break}}return i?i:this.controllers[this.currentFlag]},e.prototype.setContextFor=function(t){return this.currentFlag=t,this},e.prototype.reg=function(t,e){var i,n;return n=(i=this.controllers)[t]||(i[t]=this.$inputor.is(\"[contentEditable]\")?new l(this,t):new s(this,t)),e.alias&&(this.aliasMaps[e.alias]=t),n.init(e),this},e.prototype.listen=function(){return this.$inputor.on(\"compositionstart\",function(t){return function(e){var i;return null!=(i=t.controller())&&i.view.hide(),t.isComposing=!0,null}}(this)).on(\"compositionend\",function(t){return function(e){return t.isComposing=!1,setTimeout(function(e){return t.dispatch(e)}),null}}(this)).on(\"keyup.atwhoInner\",function(t){return function(e){return t.onKeyup(e)}}(this)).on(\"keydown.atwhoInner\",function(t){return function(e){return t.onKeydown(e)}}(this)).on(\"blur.atwhoInner\",function(t){return function(e){var i;return(i=t.controller())?(i.expectedQueryCBId=null,i.view.hide(e,i.getOpt(\"displayTimeout\"))):void 0}}(this)).on(\"click.atwhoInner\",function(t){return function(e){return t.dispatch(e)}}(this)).on(\"scroll.atwhoInner\",function(t){return function(){var e;return e=t.$inputor.scrollTop(),function(i){var n,r;return n=i.target.scrollTop,e!==n&&null!=(r=t.controller())&&r.view.hide(i),e=n,!0}}}(this)())},e.prototype.shutdown=function(){var t,e,i;i=this.controllers;for(t in i)e=i[t],e.destroy(),delete this.controllers[t];return this.$inputor.off(\".atwhoInner\"),this.$el.remove()},e.prototype.dispatch=function(t){var e,i,n,r;n=this.controllers,r=[];for(e in n)i=n[e],r.push(i.lookUp(t));return r},e.prototype.onKeyup=function(e){var n;switch(e.keyCode){case i.ESC:e.preventDefault(),null!=(n=this.controller())&&n.view.hide();break;case i.DOWN:case i.UP:case i.CTRL:case i.ENTER:t.noop();break;case i.P:case i.N:e.ctrlKey||this.dispatch(e);break;default:this.dispatch(e)}},e.prototype.onKeydown=function(e){var n,r;if(r=null!=(n=this.controller())?n.view:void 0,r&&r.visible())switch(e.keyCode){case i.ESC:e.preventDefault(),r.hide(e);break;case i.UP:e.preventDefault(),r.prev();break;case i.DOWN:e.preventDefault(),r.next();break;case i.P:if(!e.ctrlKey)return;e.preventDefault(),r.prev();break;case i.N:if(!e.ctrlKey)return;e.preventDefault(),r.next();break;case i.TAB:case i.ENTER:case i.SPACE:if(!r.visible())return;if(!this.controller().getOpt(\"spaceSelectsMatch\")&&e.keyCode===i.SPACE)return;if(!this.controller().getOpt(\"tabSelectsMatch\")&&e.keyCode===i.TAB)return;r.highlighted()?(e.preventDefault(),r.choose(e)):r.hide(e);break;default:t.noop()}},e}();var r,o=[].slice;r=function(){function i(e,i){this.app=e,this.at=i,this.$inputor=this.app.$inputor,this.id=this.$inputor[0].id||this.uid(),this.expectedQueryCBId=null,this.setting=null,this.query=null,this.pos=0,this.range=null,0===(this.$el=t(\"#atwho-ground-\"+this.id,this.app.$el)).length&&this.app.$el.append(this.$el=t(\"<div id='atwho-ground-\"+this.id+\"'></div>\")),this.model=new u(this),this.view=new c(this)}return i.prototype.uid=function(){return(Math.random().toString(16)+\"000000000\").substr(2,8)+(new Date).getTime()},i.prototype.init=function(e){return this.setting=t.extend({},this.setting||t.fn.atwho[\"default\"],e),this.view.init(),this.model.reload(this.setting.data)},i.prototype.destroy=function(){return this.trigger(\"beforeDestroy\"),this.model.destroy(),this.view.destroy(),this.$el.remove()},i.prototype.callDefault=function(){var i,n,r,s;s=arguments[0],i=2<=arguments.length?o.call(arguments,1):[];try{return e[s].apply(this,i)}catch(r){return n=r,t.error(n+\" Or maybe At.js doesn't have function \"+s)}},i.prototype.trigger=function(t,e){var i,n;return null==e&&(e=[]),e.push(this),i=this.getOpt(\"alias\"),n=i?t+\"-\"+i+\".atwho\":t+\".atwho\",this.$inputor.trigger(n,e)},i.prototype.callbacks=function(t){return this.getOpt(\"callbacks\")[t]||e[t]},i.prototype.getOpt=function(t,e){var i,n;try{return this.setting[t]}catch(n){return i=n,null}},i.prototype.insertContentFor=function(e){var i,n;return n=this.getOpt(\"insertTpl\"),i=t.extend({},e.data(\"item-data\"),{\"atwho-at\":this.at}),this.callbacks(\"tplEval\").call(this,n,i,\"onInsert\")},i.prototype.renderView=function(t){var e;return e=this.getOpt(\"searchKey\"),t=this.callbacks(\"sorter\").call(this,this.query.text,t.slice(0,1001),e),this.view.render(t.slice(0,this.getOpt(\"limit\")))},i.arrayToDefaultHash=function(e){var i,n,r,o;if(!t.isArray(e))return e;for(o=[],i=0,r=e.length;r>i;i++)n=e[i],t.isPlainObject(n)?o.push(n):o.push({name:n});return o},i.prototype.lookUp=function(t){var e,i;if((!t||\"click\"!==t.type||this.getOpt(\"lookUpOnClick\"))&&(!this.getOpt(\"suspendOnComposing\")||!this.app.isComposing))return(e=this.catchQuery(t))?(this.app.setContextFor(this.at),(i=this.getOpt(\"delay\"))?this._delayLookUp(e,i):this._lookUp(e),e):(this.expectedQueryCBId=null,e)},i.prototype._delayLookUp=function(t,e){var i,n;return i=Date.now?Date.now():(new Date).getTime(),this.previousCallTime||(this.previousCallTime=i),n=e-(i-this.previousCallTime),n>0&&e>n?(this.previousCallTime=i,this._stopDelayedCall(),this.delayedCallTimeout=setTimeout(function(e){return function(){return e.previousCallTime=0,e.delayedCallTimeout=null,e._lookUp(t)}}(this),e)):(this._stopDelayedCall(),this.previousCallTime!==i&&(this.previousCallTime=0),this._lookUp(t))},i.prototype._stopDelayedCall=function(){return this.delayedCallTimeout?(clearTimeout(this.delayedCallTimeout),this.delayedCallTimeout=null):void 0},i.prototype._generateQueryCBId=function(){return{}},i.prototype._lookUp=function(e){var i;return i=function(t,e){return t===this.expectedQueryCBId?e&&e.length>0?this.renderView(this.constructor.arrayToDefaultHash(e)):this.view.hide():void 0},this.expectedQueryCBId=this._generateQueryCBId(),this.model.query(e.text,t.proxy(i,this,this.expectedQueryCBId))},i}();var s,a=function(t,e){function i(){this.constructor=t}for(var n in e)h.call(e,n)&&(t[n]=e[n]);return i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype,t},h={}.hasOwnProperty;s=function(e){function i(){return i.__super__.constructor.apply(this,arguments)}return a(i,e),i.prototype.catchQuery=function(){var t,e,i,n,r,o,s;return e=this.$inputor.val(),t=this.$inputor.caret(\"pos\",{iframe:this.app.iframe}),s=e.slice(0,t),r=this.callbacks(\"matcher\").call(this,this.at,s,this.getOpt(\"startWithSpace\"),this.getOpt(\"acceptSpaceBar\")),n=\"string\"==typeof r,n&&r.length<this.getOpt(\"minLen\",0)?void 0:(n&&r.length<=this.getOpt(\"maxLen\",20)?(o=t-r.length,i=o+r.length,this.pos=o,r={text:r,headPos:o,endPos:i},this.trigger(\"matched\",[this.at,r.text])):(r=null,this.view.hide()),this.query=r)},i.prototype.rect=function(){var e,i,n;if(e=this.$inputor.caret(\"offset\",this.pos-1,{iframe:this.app.iframe}))return this.app.iframe&&!this.app.iframeAsRoot&&(i=t(this.app.iframe).offset(),e.left+=i.left,e.top+=i.top),n=this.app.document.selection?0:2,{left:e.left,top:e.top,bottom:e.top+e.height+n}},i.prototype.insert=function(t,e){var i,n,r,o,s;return i=this.$inputor,n=i.val(),r=n.slice(0,Math.max(this.query.headPos-this.at.length,0)),o=\"\"===(o=this.getOpt(\"suffix\"))?o:o||\" \",t+=o,s=\"\"+r+t+n.slice(this.query.endPos||0),i.val(s),i.caret(\"pos\",r.length+t.length,{iframe:this.app.iframe}),i.is(\":focus\")||i.focus(),i.change()},i}(r);var l,a=function(t,e){function i(){this.constructor=t}for(var n in e)h.call(e,n)&&(t[n]=e[n]);return i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype,t},h={}.hasOwnProperty;l=function(e){function n(){return n.__super__.constructor.apply(this,arguments)}return a(n,e),n.prototype._getRange=function(){var t;return t=this.app.window.getSelection(),t.rangeCount>0?t.getRangeAt(0):void 0},n.prototype._setRange=function(e,i,n){return null==n&&(n=this._getRange()),n&&i?(i=t(i)[0],\"after\"===e?(n.setEndAfter(i),n.setStartAfter(i)):(n.setEndBefore(i),n.setStartBefore(i)),n.collapse(!1),this._clearRange(n)):void 0},n.prototype._clearRange=function(t){var e;return null==t&&(t=this._getRange()),e=this.app.window.getSelection(),null==this.ctrl_a_pressed?(e.removeAllRanges(),e.addRange(t)):void 0},n.prototype._movingEvent=function(t){var e;return\"click\"===t.type||(e=t.which)===i.RIGHT||e===i.LEFT||e===i.UP||e===i.DOWN},n.prototype._unwrap=function(e){var i;return e=t(e).unwrap().get(0),(i=e.nextSibling)&&i.nodeValue&&(e.nodeValue+=i.nodeValue,t(i).remove()),e},n.prototype.catchQuery=function(e){var n,r,o,s,a,h,l,u,c,p,f,d;if((d=this._getRange())&&d.collapsed){if(e.which===i.ENTER)return(r=t(d.startContainer).closest(\".atwho-query\")).contents().unwrap(),r.is(\":empty\")&&r.remove(),(r=t(\".atwho-query\",this.app.document)).text(r.text()).contents().last().unwrap(),void this._clearRange();if(/firefox/i.test(navigator.userAgent)){if(t(d.startContainer).is(this.$inputor))return void this._clearRange();e.which===i.BACKSPACE&&d.startContainer.nodeType===document.ELEMENT_NODE&&(c=d.startOffset-1)>=0?(o=d.cloneRange(),o.setStart(d.startContainer,c),t(o.cloneContents()).contents().last().is(\".atwho-inserted\")&&(a=t(d.startContainer).contents().get(c),this._setRange(\"after\",t(a).contents().last()))):e.which===i.LEFT&&d.startContainer.nodeType===document.TEXT_NODE&&(n=t(d.startContainer.previousSibling),n.is(\".atwho-inserted\")&&0===d.startOffset&&this._setRange(\"after\",n.contents().last()))}if(t(d.startContainer).closest(\".atwho-inserted\").addClass(\"atwho-query\").siblings().removeClass(\"atwho-query\"),(r=t(\".atwho-query\",this.app.document)).length>0&&r.is(\":empty\")&&0===r.text().length&&r.remove(),this._movingEvent(e)||r.removeClass(\"atwho-inserted\"),r.length>0)switch(e.which){case i.LEFT:return this._setRange(\"before\",r.get(0),d),void r.removeClass(\"atwho-query\");case i.RIGHT:return this._setRange(\"after\",r.get(0).nextSibling,d),void r.removeClass(\"atwho-query\")}if(r.length>0&&(f=r.attr(\"data-atwho-at-query\"))&&(r.empty().html(f).attr(\"data-atwho-at-query\",null),this._setRange(\"after\",r.get(0),d)),o=d.cloneRange(),o.setStart(d.startContainer,0),u=this.callbacks(\"matcher\").call(this,this.at,o.toString(),this.getOpt(\"startWithSpace\"),this.getOpt(\"acceptSpaceBar\")),h=\"string\"==typeof u,0===r.length&&h&&(s=d.startOffset-this.at.length-u.length)>=0&&(d.setStart(d.startContainer,s),r=t(\"<span/>\",this.app.document).attr(this.getOpt(\"editableAtwhoQueryAttrs\")).addClass(\"atwho-query\"),d.surroundContents(r.get(0)),l=r.contents().last().get(0),l&&(/firefox/i.test(navigator.userAgent)?(d.setStart(l,l.length),d.setEnd(l,l.length),this._clearRange(d)):this._setRange(\"after\",l,d))),!(h&&u.length<this.getOpt(\"minLen\",0)))return h&&u.length<=this.getOpt(\"maxLen\",20)?(p={text:u,el:r},this.trigger(\"matched\",[this.at,p.text]),this.query=p):(this.view.hide(),this.query={el:r},r.text().indexOf(this.at)>=0&&(this._movingEvent(e)&&r.hasClass(\"atwho-inserted\")?r.removeClass(\"atwho-query\"):!1!==this.callbacks(\"afterMatchFailed\").call(this,this.at,r)&&this._setRange(\"after\",this._unwrap(r.text(r.text()).contents().first()))),null)}},n.prototype.rect=function(){var e,i,n;return n=this.query.el.offset(),n&&this.query.el[0].getClientRects().length?(this.app.iframe&&!this.app.iframeAsRoot&&(i=(e=t(this.app.iframe)).offset(),n.left+=i.left-this.$inputor.scrollLeft(),n.top+=i.top-this.$inputor.scrollTop()),n.bottom=n.top+this.query.el.height(),n):void 0},n.prototype.insert=function(t,e){var i,n,r,o,s;return this.$inputor.is(\":focus\")||this.$inputor.focus(),n=this.getOpt(\"functionOverrides\"),n.insert?n.insert.call(this,t,e):(o=\"\"===(o=this.getOpt(\"suffix\"))?o:o||\" \",i=e.data(\"item-data\"),this.query.el.removeClass(\"atwho-query\").addClass(\"atwho-inserted\").html(t).attr(\"data-atwho-at-query\",\"\"+i[\"atwho-at\"]+this.query.text).attr(\"contenteditable\",\"false\"),(r=this._getRange())&&(this.query.el.length&&r.setEndAfter(this.query.el[0]),r.collapse(!1),r.insertNode(s=this.app.document.createTextNode(\"\"+o)),this._setRange(\"after\",s,r)),this.$inputor.is(\":focus\")||this.$inputor.focus(),this.$inputor.change())},n}(r);var u;u=function(){function e(t){this.context=t,this.at=this.context.at,this.storage=this.context.$inputor}return e.prototype.destroy=function(){return this.storage.data(this.at,null)},e.prototype.saved=function(){return this.fetch()>0},e.prototype.query=function(t,e){var i,n,r;return n=this.fetch(),r=this.context.getOpt(\"searchKey\"),n=this.context.callbacks(\"filter\").call(this.context,t,n,r)||[],i=this.context.callbacks(\"remoteFilter\"),n.length>0||!i&&0===n.length?e(n):i.call(this.context,t,e)},e.prototype.fetch=function(){return this.storage.data(this.at)||[]},e.prototype.save=function(t){return this.storage.data(this.at,this.context.callbacks(\"beforeSave\").call(this.context,t||[]))},e.prototype.load=function(t){return!this.saved()&&t?this._load(t):void 0},e.prototype.reload=function(t){return this._load(t)},e.prototype._load=function(e){return\"string\"==typeof e?t.ajax(e,{dataType:\"json\"}).done(function(t){return function(e){return t.save(e)}}(this)):this.save(e)},e}();var c;c=function(){function e(e){this.context=e,this.$el=t(\"<div class='atwho-view'><ul class='atwho-view-ul'></ul></div>\"),this.$elUl=this.$el.children(),this.timeoutID=null,this.context.$el.append(this.$el),this.bindEvent()}return e.prototype.init=function(){var t,e;return e=this.context.getOpt(\"alias\")||this.context.at.charCodeAt(0),t=this.context.getOpt(\"headerTpl\"),t&&1===this.$el.children().length&&this.$el.prepend(t),this.$el.attr({id:\"at-view-\"+e})},e.prototype.destroy=function(){return this.$el.remove()},e.prototype.bindEvent=function(){var e,i,n;return e=this.$el.find(\"ul\"),i=0,n=0,e.on(\"mousemove.atwho-view\",\"li\",function(r){return function(r){var o;if((i!==r.clientX||n!==r.clientY)&&(i=r.clientX,n=r.clientY,o=t(r.currentTarget),!o.hasClass(\"cur\")))return e.find(\".cur\").removeClass(\"cur\"),o.addClass(\"cur\")}}(this)).on(\"click.atwho-view\",\"li\",function(i){return function(n){return e.find(\".cur\").removeClass(\"cur\"),t(n.currentTarget).addClass(\"cur\"),i.choose(n),n.preventDefault()}}(this))},e.prototype.visible=function(){return t.expr.filters.visible(this.$el[0])},e.prototype.highlighted=function(){return this.$el.find(\".cur\").length>0},e.prototype.choose=function(t){var e,i;return(e=this.$el.find(\".cur\")).length&&(i=this.context.insertContentFor(e),this.context._stopDelayedCall(),this.context.insert(this.context.callbacks(\"beforeInsert\").call(this.context,i,e,t),e),this.context.trigger(\"inserted\",[e,t]),this.hide(t)),this.context.getOpt(\"hideWithoutSuffix\")?this.stopShowing=!0:void 0},e.prototype.reposition=function(e){var i,n,r,o;return i=this.context.app.iframeAsRoot?this.context.app.window:window,e.bottom+this.$el.height()-t(i).scrollTop()>t(i).height()&&(e.bottom=e.top-this.$el.height()),e.left>(r=t(i).width()-this.$el.width()-5)&&(e.left=r),n={left:e.left,top:e.bottom},null!=(o=this.context.callbacks(\"beforeReposition\"))&&o.call(this.context,n),this.$el.offset(n),this.context.trigger(\"reposition\",[n])},e.prototype.next=function(){var t,e,i,n;return t=this.$el.find(\".cur\").removeClass(\"cur\"),e=t.next(),e.length||(e=this.$el.find(\"li:first\")),e.addClass(\"cur\"),i=e[0],n=i.offsetTop+i.offsetHeight+(i.nextSibling?i.nextSibling.offsetHeight:0),this.scrollTop(Math.max(0,n-this.$el.height()))},e.prototype.prev=function(){var t,e,i,n;return t=this.$el.find(\".cur\").removeClass(\"cur\"),i=t.prev(),i.length||(i=this.$el.find(\"li:last\")),i.addClass(\"cur\"),n=i[0],e=n.offsetTop+n.offsetHeight+(n.nextSibling?n.nextSibling.offsetHeight:0),this.scrollTop(Math.max(0,e-this.$el.height()))},e.prototype.scrollTop=function(t){var e;return e=this.context.getOpt(\"scrollDuration\"),e?this.$elUl.animate({scrollTop:t},e):this.$elUl.scrollTop(t)},e.prototype.show=function(){var t;return this.stopShowing?void(this.stopShowing=!1):(this.visible()||(this.$el.show(),this.$el.scrollTop(0),this.context.trigger(\"shown\")),(t=this.context.rect())?this.reposition(t):void 0)},e.prototype.hide=function(t,e){var i;if(this.visible())return isNaN(e)?(this.$el.hide(),this.context.trigger(\"hidden\",[t])):(i=function(t){return function(){return t.hide()}}(this),clearTimeout(this.timeoutID),this.timeoutID=setTimeout(i,e))},e.prototype.render=function(e){var i,n,r,o,s,a,h;if(!(t.isArray(e)&&e.length>0))return void this.hide();for(this.$el.find(\"ul\").empty(),n=this.$el.find(\"ul\"),h=this.context.getOpt(\"displayTpl\"),r=0,s=e.length;s>r;r++)o=e[r],o=t.extend({},o,{\"atwho-at\":this.context.at}),a=this.context.callbacks(\"tplEval\").call(this.context,h,o,\"onDisplay\"),i=t(this.context.callbacks(\"highlighter\").call(this.context,a,this.context.query.text)),i.data(\"item-data\",o),n.append(i);return this.show(),this.context.getOpt(\"highlightFirst\")?n.find(\"li:first\").addClass(\"cur\"):void 0},e}();var p;p={load:function(t,e){var i;return(i=this.controller(t))?i.model.load(e):void 0},isSelecting:function(){var t;return!!(null!=(t=this.controller())?t.view.visible():void 0)},hide:function(){var t;return null!=(t=this.controller())?t.view.hide():void 0},reposition:function(){var t;return(t=this.controller())?t.view.reposition(t.rect()):void 0},setIframe:function(t,e){return this.setupRootElement(t,e),null},run:function(){return this.dispatch()},destroy:function(){return this.shutdown(),this.$inputor.data(\"atwho\",null)}},t.fn.atwho=function(e){var i,r;return i=arguments,r=null,this.filter('textarea, input, [contenteditable=\"\"], [contenteditable=true]').each(function(){var o,s;return(s=(o=t(this)).data(\"atwho\"))||o.data(\"atwho\",s=new n(this)),\"object\"!=typeof e&&e?p[e]&&s?r=p[e].apply(s,Array.prototype.slice.call(i,1)):t.error(\"Method \"+e+\" does not exist on jQuery.atwho\"):s.reg(e.at,e)}),null!=r?r:this},t.fn.atwho[\"default\"]={at:void 0,alias:void 0,data:null,displayTpl:\"<li>${name}</li>\",insertTpl:\"${atwho-at}${name}\",headerTpl:null,callbacks:e,functionOverrides:{},searchKey:\"name\",suffix:void 0,hideWithoutSuffix:!1,startWithSpace:!0,acceptSpaceBar:!1,highlightFirst:!0,limit:5,maxLen:20,minLen:0,displayTimeout:300,delay:null,spaceSelectsMatch:!1,tabSelectsMatch:!0,editableAtwhoQueryAttrs:{},scrollDuration:150,suspendOnComposing:!0,lookUpOnClick:!0},t.fn.atwho.debug=!1});","var content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js!./autocomplete.scss\");\n\nif (typeof content === 'string') {\n content = [[module.id, content, '']];\n}\n\nvar options = {}\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = require(\"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\")(content, options);\n\nif (content.locals) {\n module.exports = content.locals;\n}\n","exports = module.exports = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".atwho-view{position:absolute;top:0;left:0;display:none;margin-top:18px;background:var(--color-main-background);color:var(--color-main-text);border:1px solid var(--color-border);border-radius:var(--border-radius);box-shadow:0 0 5px var(--color-box-shadow);min-width:120px;z-index:11110 !important}.atwho-view .atwho-header{padding:5px;margin:5px;cursor:pointer;border-bottom:solid 1px var(--color-border);color:var(--color-main-text);font-size:11px;font-weight:bold}.atwho-view .atwho-header .small{color:var(--color-main-text);float:right;padding-top:2px;margin-right:-5px;font-size:12px;font-weight:normal}.atwho-view .atwho-header:hover{cursor:default}.atwho-view .cur{background:var(--color-primary);color:var(--color-primary-text)}.atwho-view .cur small{color:var(--color-primary-text)}.atwho-view strong{color:var(--color-main-text);font-weight:normal}.atwho-view .cur strong{color:var(--color-primary-text);font-weight:normal}.atwho-view ul{list-style:none;padding:0;margin:auto;max-height:200px;overflow-y:auto}.atwho-view ul li{display:block;padding:5px 10px;border-bottom:1px solid var(--color-border);cursor:pointer}.atwho-view small{font-size:smaller;color:var(--color-main-text);font-weight:normal}\\n\", \"\"]);\n","var content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js!./comments.scss\");\n\nif (typeof content === 'string') {\n content = [[module.id, content, '']];\n}\n\nvar options = {}\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = require(\"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\")(content, options);\n\nif (content.locals) {\n module.exports = content.locals;\n}\n","exports = module.exports = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"#commentsTabView .emptycontent{margin-top:0}#commentsTabView .newCommentForm{margin-left:36px;position:relative}#commentsTabView .newCommentForm .message{width:100%;padding:10px;min-height:44px;margin:0;padding-right:30px}#commentsTabView .newCommentForm .submit,#commentsTabView .newCommentForm .submitLoading{width:44px;height:44px;margin:0;padding:13px;background-color:transparent;border:none;opacity:.3;position:absolute;bottom:0;right:0}#commentsTabView .deleteLoading{padding:14px;vertical-align:middle}#commentsTabView .newCommentForm .submit:not(:disabled):hover,#commentsTabView .newCommentForm .submit:not(:disabled):focus{opacity:1}#commentsTabView .newCommentForm div.message{resize:none}#commentsTabView .newCommentForm div.message:empty:before{content:attr(data-placeholder);color:grey}#commentsTabView .comment{position:relative;padding:10px 0 15px}#commentsTabView .comments .comment{border-top:1px solid var(--color-border)}#commentsTabView .comment .avatar,.atwho-view-ul * .avatar{width:32px;height:32px;line-height:32px;margin-right:5px}#commentsTabView .comment .message .avatar,.atwho-view-ul * .avatar{display:inline-block}#activityTabView li.comment.collapsed .activitymessage,#commentsTabView .comment.collapsed .message{white-space:pre-wrap}#activityTabView li.comment.collapsed .activitymessage,#commentsTabView .comment.collapsed .message{max-height:70px;overflow:hidden}#activityTabView li.comment .message-overlay,#commentsTabView .comment .message-overlay{display:none}#activityTabView li.comment.collapsed .message-overlay,#commentsTabView .comment.collapsed .message-overlay{display:block;position:absolute;z-index:2;height:50px;pointer-events:none;left:0;right:0;bottom:0;background:-moz-linear-gradient(rgba(var(--color-main-background), 0), var(--color-main-background));background:-webkit-linear-gradient(rgba(var(--color-main-background), 0), var(--color-main-background));background:-o-linear-gradient(rgba(var(--color-main-background), 0), var(--color-main-background));background:-ms-linear-gradient(rgba(var(--color-main-background), 0), var(--color-main-background));background:linear-gradient(rgba(var(--color-main-background), 0), var(--color-main-background));background-repeat:no-repeat}#commentsTabView .hidden{display:none !important}#commentsTabView .comment .authorRow{min-height:44px}#commentsTabView .comment .authorRow .tooltip{margin-top:5px}.atwho-view-ul * .avatar-name-wrapper,#commentsTabView .comment .authorRow{position:relative;display:inline-flex;align-items:center;width:100%}#commentsTabView .comment:not(.newCommentRow) .message .avatar-name-wrapper:not(.currentUser),#commentsTabView .comment:not(.newCommentRow) .message .avatar-name-wrapper:not(.currentUser) .avatar,#commentsTabView .comment:not(.newCommentRow) .message .avatar-name-wrapper:not(.currentUser) .avatar img,#commentsTabView .comment .authorRow .avatar:not(.currentUser),#commentsTabView .comment .authorRow .author:not(.currentUser){cursor:pointer}.atwho-view-ul .avatar-name-wrapper,.atwho-view-ul .avatar-name-wrapper .avatar,.atwho-view-ul .avatar-name-wrapper .avatar img{cursor:pointer}#commentsTabView .comments li .message .atwho-inserted .avatar-name-wrapper,#commentsTabView .newCommentForm .atwho-inserted .avatar-name-wrapper{position:relative;display:inline;vertical-align:top;background-color:var(--color-background-dark);border-radius:50vh;padding:1px 7px 1px 1px;white-space:nowrap}#commentsTabView .comments li .message .atwho-inserted .avatar-name-wrapper .avatar,#commentsTabView .newCommentForm .atwho-inserted .avatar-name-wrapper .avatar{height:16px;width:16px;vertical-align:middle;padding:1px;margin-top:-3px;margin-left:0;margin-right:2px}#commentsTabView .comments li .message .atwho-inserted .avatar-name-wrapper .avatar img,#commentsTabView .newCommentForm .atwho-inserted .avatar-name-wrapper .avatar img{vertical-align:top}#commentsTabView .comments li .message .atwho-inserted .avatar-name-wrapper strong,#commentsTabView .newCommentForm .atwho-inserted .avatar-name-wrapper strong{font-weight:bold}#commentsTabView .comments li .message .atwho-inserted .avatar-name-wrapper.currentUser,#commentsTabView .newCommentForm .atwho-inserted .avatar-name-wrapper.currentUser{background-color:var(--color-primary);color:var(--color-primary-text)}.atwho-view-ul * .avatar-name-wrapper{white-space:nowrap}#commentsTabView .comment .author,#commentsTabView .comment .date{opacity:.5}#commentsTabView .comment .author{max-width:210px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}#commentsTabView .comment .date{margin-left:auto;padding:10px 0px}#commentsTabView .comments>li:not(.newCommentRow) .message{padding-left:40px;word-wrap:break-word;overflow-wrap:break-word}#commentsTabView .comment .action{opacity:0.3;padding:14px;display:block}#commentsTabView .comment .action:hover,#commentsTabView .comment .action:focus{opacity:1}#commentsTabView .newCommentRow .action-container{margin-left:auto}#commentsTabView .comment.disabled .message{opacity:0.3}#commentsTabView .comment.disabled .action{display:none}#commentsTabView .message.error{color:#e9322d;border-color:#e9322d;box-shadow:0 0 6px #f8b9b7}.app-files .action-comment{padding:16px 14px}#commentsTabView .comment .message .contactsmenu-popover{left:-6px;top:24px}\\n\", \"\"]);\n"],"sourceRoot":""} \ No newline at end of file
+{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"jQuery\"","webpack:///./node_modules/css-loader/dist/runtime/api.js","webpack:///./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack:///./apps/comments/src/comments.js","webpack:///./apps/comments/src/app.js","webpack:///./apps/comments/src/templates.js","webpack:///./apps/comments/src/commentmodel.js","webpack:///./apps/comments/src/commentcollection.js","webpack:///./apps/comments/src/commentsummarymodel.js","webpack:///./apps/comments/src/commentstabview.js","webpack:///./apps/comments/src/commentsmodifymenu.js","webpack:///./apps/comments/src/filesplugin.js","webpack:///./apps/comments/src/activitytabviewplugin.js","webpack:///./apps/comments/src/search.js","webpack:///./apps/comments/src/vendor/Caret.js/dist/jquery.caret.min.js","webpack:///./apps/comments/src/vendor/At.js/dist/js/jquery.atwho.min.js","webpack:///./apps/comments/src/style/autocomplete.scss?423d","webpack:///./apps/comments/src/style/autocomplete.scss","webpack:///./apps/comments/src/style/comments.scss?5e95","webpack:///./apps/comments/src/style/comments.scss"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","jQuery","useSourceMap","list","toString","this","map","item","content","cssMapping","btoa","sourceMapping","sourceMap","base64","unescape","encodeURIComponent","JSON","stringify","data","concat","sourceURLs","sources","source","sourceRoot","join","cssWithMappingToString","mediaQuery","alreadyImportedModules","length","id","_i","push","memo","stylesInDom","isOldIE","Boolean","window","document","all","atob","getTarget","target","styleTarget","querySelector","HTMLIFrameElement","contentDocument","head","e","listToStyles","options","styles","newStyles","base","part","css","media","parts","addStylesToDom","domStyle","j","refs","addStyle","insertStyleElement","style","createElement","attributes","nonce","keys","forEach","setAttribute","insert","Error","appendChild","textStore","replaceText","index","replacement","filter","applyToSingletonTag","remove","obj","styleSheet","cssText","cssNode","createTextNode","childNodes","removeChild","insertBefore","applyToTag","firstChild","singleton","singletonCounter","update","styleIndex","parentNode","removeStyleElement","newObj","newList","mayRemove","_domStyle","OCA","Comments","template","templates","Handlebars","Templates","container","depth0","helpers","partials","helper","escapeExpression","actorId","helperMissing","nullContext","stack1","alias1","alias2","alias3","alias4","isUnread","program","noop","isLong","isUserAuthor","actorDisplayName","timestamp","altDate","date","formattedMessage","iconClass","displayName","each","items","cancelText","tag","isEditMode","newMessagePlaceholder","message","submitText","countMessage","iconUrl","emptyResultLabel","moreLabel","OC","_","extend","Files","Client","PROPERTY_FILEID","NS_OWNCLOUD","PROPERTY_MESSAGE","PROPERTY_ACTORTYPE","PROPERTY_ACTORID","PROPERTY_ISUNREAD","PROPERTY_OBJECTID","PROPERTY_OBJECTTYPE","PROPERTY_ACTORDISPLAYNAME","PROPERTY_CREATIONDATETIME","PROPERTY_MENTIONS","CommentModel","Backbone","Model","sync","davSync","defaults","actorType","objectType","davProperties","parse","creationDateTime","objectId","mentions","_parseMentions","isUndefined","result","mention","localName","child","nextSibling","startsWith","textContent","CommentCollection","Collection","model","_objectType","_objectId","_endReached","_limit","initialize","models","url","linkToRemote","setObjectId","hasMoreResults","reset","_summaryModel","apply","arguments","fetchNext","self","body","success","resp","initial","set","trigger","getSummaryModel","CommentSummaryModel","updateReadMarker","save","readMarker","Date","toUTCString","PROPERTY_READMARKER","attrs","CommentsTabView","DetailTabView","className","_autoCompleteData","undefined","_commentsModifyMenu","events","_commentMaxLength","collection","on","_onRequest","_onEndRequest","_onAddModel","_onChangeModel","_commentMaxThreshold","bindAll","params","currentUser","getCurrentUser","uid","editCommentTemplate","commentTemplate","editTooltip","_isLong","getLabel","getIcon","setFileInfo","fileInfo","render","_initAutoComplete","$","find","silent","nextPage","$el","html","before","tooltip","$container","avatar","delegateEvents","_onTypeComment","autosize","focus","$target","limit","appConfig","comments","maxAutoCompleteResults","atwho","at","callbacks","remoteFilter","_onAutoComplete","highlighter","li","$li","sorter","q","displayTpl","escapeHTML","label","insertTpl","searchKey","je","_postRenderItem","parent","query","callback","_autoCompleteRequestTimer","clearTimeout","delay","_autoCompleteRequestCall","abort","ajax","linkToOCS","search","itemType","itemId","beforeSend","request","setRequestHeader","ocs","_formatItem","commentModel","getTime","Util","relativeModifiedDate","formatDate","_formatMessage","_toggleLoading","state","_loading","toggleClass","type","addClass","fileInfoModel","findWhere","$comment","eq","append","text","prop","oldMentions","fetch","isEqual","$updated","trim","previous","$row","closest","removeClass","$message","editionMode","inlineAvatars","context","hasClass","$this","attr","username","contactsMenu","modifyCommentMenu","CommentsModifyMenu","show","listenTo","ev","action","_onClickEditComment","_onClickDeleteComment","_postRenderMessage","user","editMode","replace","mentionId","indexOf","escape","regex","RegExp","_composeHTMLMention","mentionDisplayName","match","p1","OCP","plainToRich","preventDefault","commentId","commentToEdit","$formRow","after","replaceWith","clone","$field","len","$submitButton","count","max","limitExceeded","keyCode","shiftKey","click","_onClickComment","is","_onClickCloseComment","$loading","$moreIcon","destroy","error","Notification","showTemporary","_onClickShowMore","_onSubmitSuccess","$form","$submit","_commentBodyHTML2Plain","oldHtml","$inserted","userId","richToPlain","_onSubmitComment","$commentField","_onSubmitError","verb","wait","_onTextChange","empty","_onPaste","originalEvent","clipboardData","getData","execCommand","View","tagName","_scopes","_onClickAction","event","currentTarget","hideMenus","_context","active","offsetIcon","offset","offsetContainer","position","top","left","right","width","showMenu","PROPERTY_COMMENTS_UNREAD","FilesPlugin","ignoreLists","_formatCommentCount","imagePath","attach","fileList","registerTabView","oldGetWebdavProperties","_getWebdavProperties","props","filesClient","addFileInfoParser","response","commentsUnread","propStat","properties","parseInt","oldCreateRow","_createRow","fileData","$tr","fileActions","registerAction","$file","unread","mime","order","permissions","PERMISSION_READ","FileActions","TYPE_INLINE","actionSpec","isDefault","unreadComments","$actionLink","actionHandler","fileName","showDetailsView","oldElementToFile","elementToFile","Plugins","register","ActivityTabViewPlugin","prepareModelForDisplay","view","$overlay","_onClickCollapsedComment","Comment","fileAppLoaded","App","renderCommentResult","$nofilterresults","updateLegacyMimetype","$pathDiv","path","$avatar","authorName","authorId","comment","prepend","link","dir","dirname","generateUrl","scrollto","handleCommentClick","changeDirectory","scrollTo","mime_type","setFileList","setRenderer","setHandler","Search","a","define","returnExportsGlobal","b","g","h","$inputor","domInputor","setPos","getIEPosition","getPosition","getOffset","getOldIEPos","selection","createRange","createTextRange","moveToElementText","setEndPoint","getPos","range","cloneRange","selectNodeContents","setEnd","endContainer","endOffset","detach","getOldIEOffset","duplicate","moveStart","height","getBoundingClientRect","bottom","f","getSelection","setStart","insertNode","selectNode","scrollTop","scrollLeft","rangeCount","getRangeAt","getIEPos","parentElement","moveToBookmark","getBookmark","collapse","compareEndPoints","selectionStart","move","select","setSelectionRange","getIEOffset","boundingLeft","boundingTop","boundingHeight","test","navigator","userAgent","val","slice","rect","css_attr","mirrorCss","zIndex","$mirror","contentEditable","pos","iframe","contentWindow","fn","caret","isPlainObject","EditableCaret","InputCaret","Utils","apis","ESC","TAB","ENTER","CTRL","A","P","N","LEFT","UP","RIGHT","DOWN","BACKSPACE","SPACE","beforeSave","arrayToDefaultHash","matcher","decodeURI","exec","String","toLowerCase","atwho_order","sort","tplEval","beforeInsert","beforeReposition","afterMatchFailed","currentFlag","controllers","aliasMaps","setupRootElement","listen","createContainer","ownerDocument","defaultView","parentWindow","frameElement","debug","iframeAsRoot","controller","setContextFor","reg","alias","init","hide","isComposing","setTimeout","dispatch","onKeyup","onKeydown","expectedQueryCBId","getOpt","shutdown","off","lookUp","ctrlKey","visible","prev","next","highlighted","choose","app","setting","u","Math","random","substr","reload","callDefault","insertContentFor","renderView","isArray","catchQuery","_delayLookUp","_lookUp","now","previousCallTime","_stopDelayedCall","delayedCallTimeout","_generateQueryCBId","constructor","proxy","__super__","headPos","endPos","change","_getRange","_setRange","setEndAfter","setStartAfter","setEndBefore","setStartBefore","_clearRange","ctrl_a_pressed","removeAllRanges","addRange","_movingEvent","which","_unwrap","unwrap","nodeValue","collapsed","startContainer","contents","last","nodeType","ELEMENT_NODE","startOffset","cloneContents","TEXT_NODE","previousSibling","siblings","surroundContents","el","first","getClientRects","storage","saved","load","_load","dataType","done","$elUl","children","timeoutID","bindEvent","charCodeAt","clientX","clientY","expr","filters","stopShowing","reposition","offsetTop","offsetHeight","animate","isNaN","isSelecting","setIframe","run","Array","headerTpl","functionOverrides","suffix","hideWithoutSuffix","startWithSpace","acceptSpaceBar","highlightFirst","maxLen","minLen","displayTimeout","spaceSelectsMatch","tabSelectsMatch","editableAtwhoQueryAttrs","scrollDuration","suspendOnComposing","lookUpOnClick","locals"],"mappings":"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","file":"comments.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/js/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 3);\n","module.exports = jQuery;","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (useSourceMap) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item, useSourceMap);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \"{\").concat(content, \"}\");\n }\n\n return content;\n }).join('');\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery) {\n if (typeof modules === 'string') {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, '']];\n }\n\n var alreadyImportedModules = {};\n\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = modules[_i]; // skip already imported module\n // this implementation is not 100% perfect for weird media query combinations\n // when a module is imported multiple times with different media queries.\n // I hope this will never occur (Hey this way we have smaller bundles)\n\n if (item[0] == null || !alreadyImportedModules[item[0]]) {\n if (mediaQuery && !item[2]) {\n item[2] = mediaQuery;\n } else if (mediaQuery) {\n item[2] = \"(\".concat(item[2], \") and (\").concat(mediaQuery, \")\");\n }\n\n list.push(item);\n }\n }\n };\n\n return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring\n\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (useSourceMap && typeof btoa === 'function') {\n var sourceMapping = toComment(cssMapping);\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot).concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n }\n\n return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n return \"/*# \".concat(data, \" */\");\n}","\"use strict\";\n\nvar stylesInDom = {};\n\nvar isOldIE = function isOldIE() {\n var memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n\n return memo;\n };\n}();\n\nvar getTarget = function getTarget() {\n var memo = {};\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n };\n}();\n\nfunction listToStyles(list, options) {\n var styles = [];\n var newStyles = {};\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var css = item[1];\n var media = item[2];\n var sourceMap = item[3];\n var part = {\n css: css,\n media: media,\n sourceMap: sourceMap\n };\n\n if (!newStyles[id]) {\n styles.push(newStyles[id] = {\n id: id,\n parts: [part]\n });\n } else {\n newStyles[id].parts.push(part);\n }\n }\n\n return styles;\n}\n\nfunction addStylesToDom(styles, options) {\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i];\n var domStyle = stylesInDom[item.id];\n var j = 0;\n\n if (domStyle) {\n domStyle.refs++;\n\n for (; j < domStyle.parts.length; j++) {\n domStyle.parts[j](item.parts[j]);\n }\n\n for (; j < item.parts.length; j++) {\n domStyle.parts.push(addStyle(item.parts[j], options));\n }\n } else {\n var parts = [];\n\n for (; j < item.parts.length; j++) {\n parts.push(addStyle(item.parts[j], options));\n }\n\n stylesInDom[item.id] = {\n id: item.id,\n refs: 1,\n parts: parts\n };\n }\n }\n}\n\nfunction insertStyleElement(options) {\n var style = document.createElement('style');\n\n if (typeof options.attributes.nonce === 'undefined') {\n var nonce = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n\n if (nonce) {\n options.attributes.nonce = nonce;\n }\n }\n\n Object.keys(options.attributes).forEach(function (key) {\n style.setAttribute(key, options.attributes[key]);\n });\n\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n var target = getTarget(options.insert || 'head');\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n }\n\n return style;\n}\n\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */\n\n\nvar replaceText = function replaceText() {\n var textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n var css = remove ? '' : obj.css; // For old IE\n\n /* istanbul ignore if */\n\n if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n var cssNode = document.createTextNode(css);\n var childNodes = style.childNodes;\n\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\n\nfunction applyToTag(style, options, obj) {\n var css = obj.css;\n var media = obj.media;\n var sourceMap = obj.sourceMap;\n\n if (media) {\n style.setAttribute('media', media);\n }\n\n if (sourceMap && btoa) {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n var style;\n var update;\n var remove;\n\n if (options.singleton) {\n var styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n\n remove = function remove() {\n removeStyleElement(style);\n };\n }\n\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n options.attributes = typeof options.attributes === 'object' ? options.attributes : {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n // tags it will allow on a page\n\n if (!options.singleton && typeof options.singleton !== 'boolean') {\n options.singleton = isOldIE();\n }\n\n var styles = listToStyles(list, options);\n addStylesToDom(styles, options);\n return function update(newList) {\n var mayRemove = [];\n\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i];\n var domStyle = stylesInDom[item.id];\n\n if (domStyle) {\n domStyle.refs--;\n mayRemove.push(domStyle);\n }\n }\n\n if (newList) {\n var newStyles = listToStyles(newList, options);\n addStylesToDom(newStyles, options);\n }\n\n for (var _i = 0; _i < mayRemove.length; _i++) {\n var _domStyle = mayRemove[_i];\n\n if (_domStyle.refs === 0) {\n for (var j = 0; j < _domStyle.parts.length; j++) {\n _domStyle.parts[j]();\n }\n\n delete stylesInDom[_domStyle.id];\n }\n }\n };\n};","import './app'\nimport './templates'\nimport './commentmodel'\nimport './commentcollection'\nimport './commentsummarymodel'\nimport './commentstabview'\nimport './commentsmodifymenu'\nimport './filesplugin'\nimport './activitytabviewplugin'\nimport './search'\n\nimport './vendor/Caret.js/dist/jquery.caret.min'\nimport './vendor/At.js/dist/js/jquery.atwho.min'\n\nimport './style/autocomplete.scss'\nimport './style/comments.scss'\n\nwindow.OCA.Comments = OCA.Comments;\n","/*\n * Copyright (c) 2016 Vincent Petry <pvince81@owncloud.com>\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n(function() {\n\tif (!OCA.Comments) {\n\t\t/**\n\t\t * @namespace\n\t\t */\n\t\tOCA.Comments = {};\n\t}\n\n})();\n\n","(function() {\n var template = Handlebars.template, templates = OCA.Comments.Templates = OCA.Comments.Templates || {};\ntemplates['comment'] = template({\"1\":function(container,depth0,helpers,partials,data) {\n return \" unread\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n return \" collapsed\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n return \" currentUser\";\n},\"7\":function(container,depth0,helpers,partials,data) {\n var helper;\n\n return \"data-username=\\\"\"\n + container.escapeExpression(((helper = (helper = helpers.actorId || (depth0 != null ? depth0.actorId : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"actorId\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\"\";\n},\"9\":function(container,depth0,helpers,partials,data) {\n return \"\t\t\t<a href=\\\"#\\\" class=\\\"action more icon icon-more has-tooltip\\\"></a>\\n\t\t\t<div class=\\\"deleteLoading icon-loading-small hidden\\\"></div>\\n\";\n},\"11\":function(container,depth0,helpers,partials,data) {\n return \"\t\t<div class=\\\"message-overlay\\\"></div>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n return \"<li class=\\\"comment\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isUnread : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isLong : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\\\" data-id=\\\"\"\n + alias4(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\">\\n\t<div class=\\\"authorRow\\\">\\n\t\t<div class=\\\"avatar\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isUserAuthor : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\\\" \"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.actorId : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(7, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"> </div>\\n\t\t<div class=\\\"author\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isUserAuthor : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\\\">\"\n + alias4(((helper = (helper = helpers.actorDisplayName || (depth0 != null ? depth0.actorDisplayName : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"actorDisplayName\",\"hash\":{},\"data\":data}) : helper)))\n + \"</div>\\n\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isUserAuthor : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(9, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\t\t<div class=\\\"date has-tooltip live-relative-timestamp\\\" data-timestamp=\\\"\"\n + alias4(((helper = (helper = helpers.timestamp || (depth0 != null ? depth0.timestamp : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"timestamp\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\" title=\\\"\"\n + alias4(((helper = (helper = helpers.altDate || (depth0 != null ? depth0.altDate : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"altDate\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\">\"\n + alias4(((helper = (helper = helpers.date || (depth0 != null ? depth0.date : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"date\",\"hash\":{},\"data\":data}) : helper)))\n + \"</div>\\n\t</div>\\n\t<div class=\\\"message\\\">\"\n + ((stack1 = ((helper = (helper = helpers.formattedMessage || (depth0 != null ? depth0.formattedMessage : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"formattedMessage\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n + \"</div>\\n\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isLong : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(11, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"</li>\\n\";\n},\"useData\":true});\ntemplates['commentsmodifymenu'] = template({\"1\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n return \"\t\t<li>\\n\t\t\t<a href=\\\"#\\\" class=\\\"menuitem action \"\n + alias4(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"name\",\"hash\":{},\"data\":data}) : helper)))\n + \" permanent\\\" data-action=\\\"\"\n + alias4(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"name\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\">\\n\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.iconClass : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.program(4, data, 0),\"data\":data})) != null ? stack1 : \"\")\n + \"\t\t\t\t<span>\"\n + alias4(((helper = (helper = helpers.displayName || (depth0 != null ? depth0.displayName : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"displayName\",\"hash\":{},\"data\":data}) : helper)))\n + \"</span>\\n\t\t\t</a>\\n\t\t</li>\\n\";\n},\"2\":function(container,depth0,helpers,partials,data) {\n var helper;\n\n return \"\t\t\t\t\t<span class=\\\"icon \"\n + container.escapeExpression(((helper = (helper = helpers.iconClass || (depth0 != null ? depth0.iconClass : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"iconClass\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\"></span>\\n\";\n},\"4\":function(container,depth0,helpers,partials,data) {\n return \"\t\t\t\t\t<span class=\\\"no-icon\\\"></span>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1;\n\n return \"<ul>\\n\"\n + ((stack1 = helpers.each.call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? depth0.items : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"</ul>\\n\";\n},\"useData\":true});\ntemplates['edit_comment'] = template({\"1\":function(container,depth0,helpers,partials,data) {\n var helper;\n\n return \"\t\t\t<div class=\\\"action-container\\\">\\n\t\t\t\t<a href=\\\"#\\\" class=\\\"action cancel icon icon-close has-tooltip\\\" title=\\\"\"\n + container.escapeExpression(((helper = (helper = helpers.cancelText || (depth0 != null ? depth0.cancelText : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"cancelText\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\"></a>\\n\t\t\t</div>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n return \"<\"\n + alias4(((helper = (helper = helpers.tag || (depth0 != null ? depth0.tag : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"tag\",\"hash\":{},\"data\":data}) : helper)))\n + \" class=\\\"newCommentRow comment\\\" data-id=\\\"\"\n + alias4(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\">\\n\t<div class=\\\"authorRow\\\">\\n\t\t<div class=\\\"avatar currentUser\\\" data-username=\\\"\"\n + alias4(((helper = (helper = helpers.actorId || (depth0 != null ? depth0.actorId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"actorId\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\"></div>\\n\t\t<div class=\\\"author currentUser\\\">\"\n + alias4(((helper = (helper = helpers.actorDisplayName || (depth0 != null ? depth0.actorDisplayName : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"actorDisplayName\",\"hash\":{},\"data\":data}) : helper)))\n + \"</div>\\n\"\n + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isEditMode : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\t</div>\\n\t<form class=\\\"newCommentForm\\\">\\n\t\t<div contentEditable=\\\"true\\\" class=\\\"message\\\" data-placeholder=\\\"\"\n + alias4(((helper = (helper = helpers.newMessagePlaceholder || (depth0 != null ? depth0.newMessagePlaceholder : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"newMessagePlaceholder\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\">\"\n + alias4(((helper = (helper = helpers.message || (depth0 != null ? depth0.message : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"message\",\"hash\":{},\"data\":data}) : helper)))\n + \"</div>\\n\t\t<input class=\\\"submit icon-confirm has-tooltip\\\" type=\\\"submit\\\" value=\\\"\\\" title=\\\"\"\n + alias4(((helper = (helper = helpers.submitText || (depth0 != null ? depth0.submitText : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"submitText\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\"/>\\n\t\t<div class=\\\"submitLoading icon-loading-small hidden\\\"></div>\\n\t</form>\\n</\"\n + alias4(((helper = (helper = helpers.tag || (depth0 != null ? depth0.tag : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"tag\",\"hash\":{},\"data\":data}) : helper)))\n + \">\\n\";\n},\"useData\":true});\ntemplates['filesplugin'] = template({\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n return \"<a class=\\\"action action-comment permanent\\\" title=\\\"\"\n + alias4(((helper = (helper = helpers.countMessage || (depth0 != null ? depth0.countMessage : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"countMessage\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\" href=\\\"#\\\">\\n\t<img class=\\\"svg\\\" src=\\\"\"\n + alias4(((helper = (helper = helpers.iconUrl || (depth0 != null ? depth0.iconUrl : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"iconUrl\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\"/>\\n</a>\\n\";\n},\"useData\":true});\ntemplates['view'] = template({\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n return \"<ul class=\\\"comments\\\">\\n</ul>\\n<div class=\\\"emptycontent hidden\\\"><div class=\\\"icon-comment\\\"></div>\\n\t<p>\"\n + alias4(((helper = (helper = helpers.emptyResultLabel || (depth0 != null ? depth0.emptyResultLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"emptyResultLabel\",\"hash\":{},\"data\":data}) : helper)))\n + \"</p></div>\\n<input type=\\\"button\\\" class=\\\"showMore hidden\\\" value=\\\"\"\n + alias4(((helper = (helper = helpers.moreLabel || (depth0 != null ? depth0.moreLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"moreLabel\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\" name=\\\"show-more\\\" id=\\\"show-more\\\" />\\n<div class=\\\"loading hidden\\\" style=\\\"height: 50px\\\"></div>\\n\";\n},\"useData\":true});\n})();","/*\n * Copyright (c) 2016\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n(function(OC, OCA) {\n\n\t_.extend(OC.Files.Client, {\n\t\tPROPERTY_FILEID:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}id',\n\t\tPROPERTY_MESSAGE: \t'{' + OC.Files.Client.NS_OWNCLOUD + '}message',\n\t\tPROPERTY_ACTORTYPE:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}actorType',\n\t\tPROPERTY_ACTORID:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}actorId',\n\t\tPROPERTY_ISUNREAD:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}isUnread',\n\t\tPROPERTY_OBJECTID:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}objectId',\n\t\tPROPERTY_OBJECTTYPE:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}objectType',\n\t\tPROPERTY_ACTORDISPLAYNAME:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}actorDisplayName',\n\t\tPROPERTY_CREATIONDATETIME:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}creationDateTime',\n\t\tPROPERTY_MENTIONS: '{' + OC.Files.Client.NS_OWNCLOUD + '}mentions'\n\t});\n\n\t/**\n\t * @class OCA.Comments.CommentModel\n\t * @classdesc\n\t *\n\t * Comment\n\t *\n\t */\n\tvar CommentModel = OC.Backbone.Model.extend(\n\t\t/** @lends OCA.Comments.CommentModel.prototype */ {\n\t\tsync: OC.Backbone.davSync,\n\n\t\tdefaults: {\n\t\t\tactorType: 'users',\n\t\t\tobjectType: 'files'\n\t\t},\n\n\t\tdavProperties: {\n\t\t\t'id':\tOC.Files.Client.PROPERTY_FILEID,\n\t\t\t'message':\tOC.Files.Client.PROPERTY_MESSAGE,\n\t\t\t'actorType':\tOC.Files.Client.PROPERTY_ACTORTYPE,\n\t\t\t'actorId':\tOC.Files.Client.PROPERTY_ACTORID,\n\t\t\t'actorDisplayName':\tOC.Files.Client.PROPERTY_ACTORDISPLAYNAME,\n\t\t\t'creationDateTime':\tOC.Files.Client.PROPERTY_CREATIONDATETIME,\n\t\t\t'objectType':\tOC.Files.Client.PROPERTY_OBJECTTYPE,\n\t\t\t'objectId':\tOC.Files.Client.PROPERTY_OBJECTID,\n\t\t\t'isUnread':\tOC.Files.Client.PROPERTY_ISUNREAD,\n\t\t\t'mentions': OC.Files.Client.PROPERTY_MENTIONS\n\t\t},\n\n\t\tparse: function(data) {\n\t\t\treturn {\n\t\t\t\tid: data.id,\n\t\t\t\tmessage: data.message,\n\t\t\t\tactorType: data.actorType,\n\t\t\t\tactorId: data.actorId,\n\t\t\t\tactorDisplayName: data.actorDisplayName,\n\t\t\t\tcreationDateTime: data.creationDateTime,\n\t\t\t\tobjectType: data.objectType,\n\t\t\t\tobjectId: data.objectId,\n\t\t\t\tisUnread: (data.isUnread === 'true'),\n\t\t\t\tmentions: this._parseMentions(data.mentions)\n\t\t\t};\n\t\t},\n\n\t\t_parseMentions: function(mentions) {\n\t\t\tif(_.isUndefined(mentions)) {\n\t\t\t\treturn {};\n\t\t\t}\n\t\t\tvar result = {};\n\t\t\tfor(var i in mentions) {\n\t\t\t\tvar mention = mentions[i];\n\t\t\t\tif(_.isUndefined(mention.localName) || mention.localName !== 'mention') {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tresult[i] = {};\n\t\t\t\tfor (var child = mention.firstChild; child; child = child.nextSibling) {\n\t\t\t\t\tif(_.isUndefined(child.localName) || !child.localName.startsWith('mention')) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tresult[i][child.localName] = child.textContent;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t});\n\n\tOCA.Comments.CommentModel = CommentModel;\n})(OC, OCA);\n","/*\n * Copyright (c) 2016\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n(function(OC, OCA) {\n\n\t/**\n\t * @class OCA.Comments.CommentCollection\n\t * @classdesc\n\t *\n\t * Collection of comments assigned to a file\n\t *\n\t */\n\tvar CommentCollection = OC.Backbone.Collection.extend(\n\t\t/** @lends OCA.Comments.CommentCollection.prototype */ {\n\n\t\tsync: OC.Backbone.davSync,\n\n\t\tmodel: OCA.Comments.CommentModel,\n\n\t\t/**\n\t\t * Object type\n\t\t *\n\t\t * @type string\n\t\t */\n\t\t_objectType: 'files',\n\n\t\t/**\n\t\t * Object id\n\t\t *\n\t\t * @type string\n\t\t */\n\t\t_objectId: null,\n\n\t\t/**\n\t\t * True if there are no more page results left to fetch\n\t\t *\n\t\t * @type bool\n\t\t */\n\t\t_endReached: false,\n\n\t\t/**\n\t\t * Number of comments to fetch per page\n\t\t *\n\t\t * @type int\n\t\t */\n\t\t_limit : 20,\n\n\t\t/**\n\t\t * Initializes the collection\n\t\t *\n\t\t * @param {string} [options.objectType] object type\n\t\t * @param {string} [options.objectId] object id\n\t\t */\n\t\tinitialize: function(models, options) {\n\t\t\toptions = options || {};\n\t\t\tif (options.objectType) {\n\t\t\t\tthis._objectType = options.objectType;\n\t\t\t}\n\t\t\tif (options.objectId) {\n\t\t\t\tthis._objectId = options.objectId;\n\t\t\t}\n\t\t},\n\n\t\turl: function() {\n\t\t\treturn OC.linkToRemote('dav') + '/comments/' +\n\t\t\t\tencodeURIComponent(this._objectType) + '/' +\n\t\t\t\tencodeURIComponent(this._objectId) + '/';\n\t\t},\n\n\t\tsetObjectId: function(objectId) {\n\t\t\tthis._objectId = objectId;\n\t\t},\n\n\t\thasMoreResults: function() {\n\t\t\treturn !this._endReached;\n\t\t},\n\n\t\treset: function() {\n\t\t\tthis._endReached = false;\n\t\t\tthis._summaryModel = null;\n\t\t\treturn OC.Backbone.Collection.prototype.reset.apply(this, arguments);\n\t\t},\n\n\t\t/**\n\t\t * Fetch the next set of results\n\t\t */\n\t\tfetchNext: function(options) {\n\t\t\tvar self = this;\n\t\t\tif (!this.hasMoreResults()) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tvar body = '<?xml version=\"1.0\" encoding=\"utf-8\" ?>\\n' +\n\t\t\t\t'<oc:filter-comments xmlns:D=\"DAV:\" xmlns:oc=\"http://owncloud.org/ns\">\\n' +\n\t\t\t\t// load one more so we know there is more\n\t\t\t\t' <oc:limit>' + (this._limit + 1) + '</oc:limit>\\n' +\n\t\t\t\t' <oc:offset>' + this.length + '</oc:offset>\\n' +\n\t\t\t\t'</oc:filter-comments>\\n';\n\n\t\t\toptions = options || {};\n\t\t\tvar success = options.success;\n\t\t\toptions = _.extend({\n\t\t\t\tremove: false,\n\t\t\t\tparse: true,\n\t\t\t\tdata: body,\n\t\t\t\tdavProperties: CommentCollection.prototype.model.prototype.davProperties,\n\t\t\t\tsuccess: function(resp) {\n\t\t\t\t\tif (resp.length <= self._limit) {\n\t\t\t\t\t\t// no new entries, end reached\n\t\t\t\t\t\tself._endReached = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// remove last entry, for next page load\n\t\t\t\t\t\tresp = _.initial(resp);\n\t\t\t\t\t}\n\t\t\t\t\tif (!self.set(resp, options)) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tif (success) {\n\t\t\t\t\t\tsuccess.apply(null, arguments);\n\t\t\t\t\t}\n\t\t\t\t\tself.trigger('sync', 'REPORT', self, options);\n\t\t\t\t}\n\t\t\t}, options);\n\n\t\t\treturn this.sync('REPORT', this, options);\n\t\t},\n\n\t\t/**\n\t\t * Returns the matching summary model\n\t\t *\n\t\t * @return {OCA.Comments.CommentSummaryModel} summary model\n\t\t */\n\t\tgetSummaryModel: function() {\n\t\t\tif (!this._summaryModel) {\n\t\t\t\tthis._summaryModel = new OCA.Comments.CommentSummaryModel({\n\t\t\t\t\tid: this._objectId,\n\t\t\t\t\tobjectType: this._objectType\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn this._summaryModel;\n\t\t},\n\n\t\t/**\n\t\t * Updates the read marker for this comment thread\n\t\t *\n\t\t * @param {Date} [date] optional date, defaults to now\n\t\t * @param {Object} [options] backbone options\n\t\t */\n\t\tupdateReadMarker: function(date, options) {\n\t\t\toptions = options || {};\n\n\t\t\treturn this.getSummaryModel().save({\n\t\t\t\treadMarker: (date || new Date()).toUTCString()\n\t\t\t}, options);\n\t\t}\n\t});\n\n\tOCA.Comments.CommentCollection = CommentCollection;\n})(OC, OCA);\n\n","/*\n * Copyright (c) 2016\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n(function(OC, OCA) {\n\n\t_.extend(OC.Files.Client, {\n\t\tPROPERTY_READMARKER:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}readMarker'\n\t});\n\n\t/**\n\t * @class OCA.Comments.CommentSummaryModel\n\t * @classdesc\n\t *\n\t * Model containing summary information related to comments\n\t * like the read marker.\n\t *\n\t */\n\tvar CommentSummaryModel = OC.Backbone.Model.extend(\n\t\t/** @lends OCA.Comments.CommentSummaryModel.prototype */ {\n\t\tsync: OC.Backbone.davSync,\n\n\t\t/**\n\t\t * Object type\n\t\t *\n\t\t * @type string\n\t\t */\n\t\t_objectType: 'files',\n\n\t\t/**\n\t\t * Object id\n\t\t *\n\t\t * @type string\n\t\t */\n\t\t_objectId: null,\n\n\t\tdavProperties: {\n\t\t\t'readMarker': OC.Files.Client.PROPERTY_READMARKER\n\t\t},\n\n\t\t/**\n\t\t * Initializes the summary model\n\t\t *\n\t\t * @param {string} [options.objectType] object type\n\t\t * @param {string} [options.objectId] object id\n\t\t */\n\t\tinitialize: function(attrs, options) {\n\t\t\toptions = options || {};\n\t\t\tif (options.objectType) {\n\t\t\t\tthis._objectType = options.objectType;\n\t\t\t}\n\t\t},\n\n\t\turl: function() {\n\t\t\treturn OC.linkToRemote('dav') + '/comments/' +\n\t\t\t\tencodeURIComponent(this._objectType) + '/' +\n\t\t\t\tencodeURIComponent(this.id) + '/';\n\t\t}\n\t});\n\n\tOCA.Comments.CommentSummaryModel = CommentSummaryModel;\n})(OC, OCA);\n","/*\n * Copyright (c) 2016\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n/* global Handlebars, escapeHTML */\n\n(function(OC, OCA) {\n\n\t/**\n\t * @memberof OCA.Comments\n\t */\n\tvar CommentsTabView = OCA.Files.DetailTabView.extend(\n\t\t/** @lends OCA.Comments.CommentsTabView.prototype */ {\n\t\tid: 'commentsTabView',\n\t\tclassName: 'tab commentsTabView',\n\t\t_autoCompleteData: undefined,\n\t\t_commentsModifyMenu: undefined,\n\n\t\tevents: {\n\t\t\t'submit .newCommentForm': '_onSubmitComment',\n\t\t\t'click .showMore': '_onClickShowMore',\n\t\t\t'click .cancel': '_onClickCloseComment',\n\t\t\t'click .comment': '_onClickComment',\n\t\t\t'keyup div.message': '_onTextChange',\n\t\t\t'change div.message': '_onTextChange',\n\t\t\t'input div.message': '_onTextChange',\n\t\t\t'paste div.message': '_onPaste'\n\t\t},\n\n\t\t_commentMaxLength: 1000,\n\n\t\tinitialize: function() {\n\t\t\tOCA.Files.DetailTabView.prototype.initialize.apply(this, arguments);\n\t\t\tthis.collection = new OCA.Comments.CommentCollection();\n\t\t\tthis.collection.on('request', this._onRequest, this);\n\t\t\tthis.collection.on('sync', this._onEndRequest, this);\n\t\t\tthis.collection.on('add', this._onAddModel, this);\n\t\t\tthis.collection.on('change:message', this._onChangeModel, this);\n\n\t\t\tthis._commentMaxThreshold = this._commentMaxLength * 0.9;\n\n\t\t\t// TODO: error handling\n\t\t\t_.bindAll(this, '_onTypeComment', '_initAutoComplete', '_onAutoComplete');\n\t\t},\n\n\t\ttemplate: function(params) {\n\t\t\tvar currentUser = OC.getCurrentUser();\n\t\t\treturn OCA.Comments.Templates['view'](_.extend({\n\t\t\t\tactorId: currentUser.uid,\n\t\t\t\tactorDisplayName: currentUser.displayName\n\t\t\t}, params));\n\t\t},\n\n\t\teditCommentTemplate: function(params) {\n\t\t\tvar currentUser = OC.getCurrentUser();\n\t\t\treturn OCA.Comments.Templates['edit_comment'](_.extend({\n\t\t\t\tactorId: currentUser.uid,\n\t\t\t\tactorDisplayName: currentUser.displayName,\n\t\t\t\tnewMessagePlaceholder: t('comments', 'New comment …'),\n\t\t\t\tsubmitText: t('comments', 'Post'),\n\t\t\t\tcancelText: t('comments', 'Cancel'),\n\t\t\t\ttag: 'li'\n\t\t\t}, params));\n\t\t},\n\n\t\tcommentTemplate: function(params) {\n\t\t\tparams = _.extend({\n\t\t\t\teditTooltip: t('comments', 'Edit comment'),\n\t\t\t\tisUserAuthor: OC.getCurrentUser().uid === params.actorId,\n\t\t\t\tisLong: this._isLong(params.message)\n\t\t\t}, params);\n\n\t\t\tif (params.actorType === 'deleted_users') {\n\t\t\t\t// makes the avatar a X\n\t\t\t\tparams.actorId = null;\n\t\t\t\tparams.actorDisplayName = t('comments', '[Deleted user]');\n\t\t\t}\n\n\t\t\treturn OCA.Comments.Templates['comment'](params);\n\t\t},\n\n\t\tgetLabel: function() {\n\t\t\treturn t('comments', 'Comments');\n\t\t},\n\n\t\tgetIcon: function() {\n\t\t\treturn 'icon-comment';\n\t\t},\n\n\t\tsetFileInfo: function(fileInfo) {\n\t\t\tif (fileInfo) {\n\t\t\t\tthis.model = fileInfo;\n\n\t\t\t\tthis.render();\n\t\t\t\tthis._initAutoComplete($('#commentsTabView').find('.newCommentForm .message'));\n\t\t\t\tthis.collection.setObjectId(this.model.id);\n\t\t\t\t// reset to first page\n\t\t\t\tthis.collection.reset([], {silent: true});\n\t\t\t\tthis.nextPage();\n\t\t\t} else {\n\t\t\t\tthis.model = null;\n\t\t\t\tthis.render();\n\t\t\t\tthis.collection.reset();\n\t\t\t}\n\t\t},\n\n\t\trender: function() {\n\t\t\tthis.$el.html(this.template({\n\t\t\t\temptyResultLabel: t('comments', 'No comments yet, start the conversation!'),\n\t\t\t\tmoreLabel: t('comments', 'More comments …')\n\t\t\t}));\n\t\t\tthis.$el.find('.comments').before(this.editCommentTemplate({ tag: 'div'}));\n\t\t\tthis.$el.find('.has-tooltip').tooltip();\n\t\t\tthis.$container = this.$el.find('ul.comments');\n\t\t\tthis.$el.find('.avatar').avatar(OC.getCurrentUser().uid, 32);\n\t\t\tthis.delegateEvents();\n\t\t\tthis.$el.find('.message').on('keydown input change', this._onTypeComment);\n\n\t\t\tautosize(this.$el.find('.newCommentRow .message'))\n\t\t\tthis.$el.find('.newCommentForm .message').focus();\t\n\t\t},\n\n\t\t_initAutoComplete: function($target) {\n\t\t\tvar s = this;\n\t\t\tvar limit = 10;\n\t\t\tif(!_.isUndefined(OC.appConfig.comments)) {\n\t\t\t\tlimit = OC.appConfig.comments.maxAutoCompleteResults;\n\t\t\t}\n\t\t\t$target.atwho({\n\t\t\t\tat: '@',\n\t\t\t\tlimit: limit,\n\t\t\t\tcallbacks: {\n\t\t\t\t\tremoteFilter: s._onAutoComplete,\n\t\t\t\t\thighlighter: function (li) {\n\t\t\t\t\t\t// misuse the highlighter callback to instead of\n\t\t\t\t\t\t// highlighting loads the avatars.\n\t\t\t\t\t\tvar $li = $(li);\n\t\t\t\t\t\t$li.find('.avatar').avatar(undefined, 32);\n\t\t\t\t\t\treturn $li;\n\t\t\t\t\t},\n\t\t\t\t\tsorter: function (q, items) { return items; }\n\t\t\t\t},\n\t\t\t\tdisplayTpl: function (item) {\n\t\t\t\t\treturn '<li>' +\n\t\t\t\t\t\t'<span class=\"avatar-name-wrapper\">' +\n\t\t\t\t\t\t\t'<span class=\"avatar\" ' +\n\t\t\t\t\t\t\t\t\t'data-username=\"' + escapeHTML(item.id) + '\" ' + // for avatars\n\t\t\t\t\t\t\t\t\t'data-user=\"' + escapeHTML(item.id) + '\" ' + // for contactsmenu\n\t\t\t\t\t\t\t\t\t'data-user-display-name=\"' + escapeHTML(item.label) + '\">' +\n\t\t\t\t\t\t\t'</span>' +\n\t\t\t\t\t\t\t'<strong>' + escapeHTML(item.label) + '</strong>' +\n\t\t\t\t\t\t'</span></li>';\n\t\t\t\t},\n\t\t\t\tinsertTpl: function (item) {\n\t\t\t\t\treturn '' +\n\t\t\t\t\t\t'<span class=\"avatar-name-wrapper\">' +\n\t\t\t\t\t\t\t'<span class=\"avatar\" ' +\n\t\t\t\t\t\t\t\t\t'data-username=\"' + escapeHTML(item.id) + '\" ' + // for avatars\n\t\t\t\t\t\t\t\t\t'data-user=\"' + escapeHTML(item.id) + '\" ' + // for contactsmenu\n\t\t\t\t\t\t\t\t\t'data-user-display-name=\"' + escapeHTML(item.label) + '\">' +\n\t\t\t\t\t\t\t'</span>' +\n\t\t\t\t\t\t\t'<strong>' + escapeHTML(item.label) + '</strong>' +\n\t\t\t\t\t\t'</span>';\n\t\t\t\t},\n\t\t\t\tsearchKey: \"label\"\n\t\t\t});\n\t\t\t$target.on('inserted.atwho', function (je, $el) {\n\t\t\t\tvar editionMode = true;\n\t\t\t\ts._postRenderItem(\n\t\t\t\t\t// we need to pass the parent of the inserted element\n\t\t\t\t\t// passing the whole comments form would re-apply and request\n\t\t\t\t\t// avatars from the server\n\t\t\t\t\t$(je.target).find(\n\t\t\t\t\t\t'span[data-username=\"' + $el.find('[data-username]').data('username') + '\"]'\n\t\t\t\t\t).parent(),\n\t\t\t\t\teditionMode\n\t\t\t\t);\n\t\t\t});\n\t\t},\n\n\t\t_onAutoComplete: function(query, callback) {\n\t\t\tvar s = this;\n\t\t\tif(!_.isUndefined(this._autoCompleteRequestTimer)) {\n\t\t\t\tclearTimeout(this._autoCompleteRequestTimer);\n\t\t\t}\n\t\t\tthis._autoCompleteRequestTimer = _.delay(function() {\n\t\t\t\tif(!_.isUndefined(this._autoCompleteRequestCall)) {\n\t\t\t\t\tthis._autoCompleteRequestCall.abort();\n\t\t\t\t}\n\t\t\t\tthis._autoCompleteRequestCall = $.ajax({\n\t\t\t\t\turl: OC.linkToOCS('core', 2) + 'autocomplete/get',\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tsearch: query,\n\t\t\t\t\t\titemType: 'files',\n\t\t\t\t\t\titemId: s.model.get('id'),\n\t\t\t\t\t\tsorter: 'commenters|share-recipients',\n\t\t\t\t\t\tlimit: OC.appConfig.comments.maxAutoCompleteResults\n\t\t\t\t\t},\n\t\t\t\t\tbeforeSend: function (request) {\n\t\t\t\t\t\trequest.setRequestHeader('Accept', 'application/json');\n\t\t\t\t\t},\n\t\t\t\t\tsuccess: function (result) {\n\t\t\t\t\t\tcallback(result.ocs.data);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}, 400);\n\t\t},\n\n\t\t_formatItem: function(commentModel) {\n\t\t\tvar timestamp = new Date(commentModel.get('creationDateTime')).getTime();\n\t\t\tvar data = _.extend({\n\t\t\t\ttimestamp: timestamp,\n\t\t\t\tdate: OC.Util.relativeModifiedDate(timestamp),\n\t\t\t\taltDate: OC.Util.formatDate(timestamp),\n\t\t\t\tformattedMessage: this._formatMessage(commentModel.get('message'), commentModel.get('mentions'))\n\t\t\t}, commentModel.attributes);\n\t\t\treturn data;\n\t\t},\n\n\t\t_toggleLoading: function(state) {\n\t\t\tthis._loading = state;\n\t\t\tthis.$el.find('.loading').toggleClass('hidden', !state);\n\t\t},\n\n\t\t_onRequest: function(type) {\n\t\t\tif (type === 'REPORT') {\n\t\t\t\tthis._toggleLoading(true);\n\t\t\t\tthis.$el.find('.showMore').addClass('hidden');\n\t\t\t}\n\t\t},\n\n\t\t_onEndRequest: function(type) {\n\t\t\tvar fileInfoModel = this.model;\n\t\t\tthis._toggleLoading(false);\n\t\t\tthis.$el.find('.emptycontent').toggleClass('hidden', !!this.collection.length);\n\t\t\tthis.$el.find('.showMore').toggleClass('hidden', !this.collection.hasMoreResults());\n\n\t\t\tif (type !== 'REPORT') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// find first unread comment\n\t\t\tvar firstUnreadComment = this.collection.findWhere({isUnread: true});\n\t\t\tif (firstUnreadComment) {\n\t\t\t\t// update read marker\n\t\t\t\tthis.collection.updateReadMarker(\n\t\t\t\t\tnull,\n\t\t\t\t\t{\n\t\t\t\t\t\tsuccess: function() {\n\t\t\t\t\t\t\tfileInfoModel.set('commentsUnread', 0);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t\tthis.$el.find('.newCommentForm .message').focus();\t\n\t\t\t\n\t\t},\n\n\t\t/**\n\t\t * takes care of post-rendering after a new comment was added to the\n\t\t * collection\n\t\t *\n\t\t * @param model\n\t\t * @param collection\n\t\t * @param options\n\t\t * @private\n\t\t */\n\t\t_onAddModel: function(model, collection, options) {\n\t\t\t// we need to render it immediately, to ensure that the right\n\t\t\t// order of comments is kept on opening comments tab\n\t\t\tvar $comment = $(this.commentTemplate(this._formatItem(model)));\n\t\t\tif (!_.isUndefined(options.at) && collection.length > 1) {\n\t\t\t\tthis.$container.find('li').eq(options.at).before($comment);\n\t\t\t} else {\n\t\t\t\tthis.$container.append($comment);\n\t\t\t}\n\t\t\tthis._postRenderItem($comment);\n\t\t\t$('#commentsTabView').find('.newCommentForm div.message').text('').prop('contenteditable', true);\n\n\t\t\t// we need to update the model, because it consists of client data\n\t\t\t// only, but the server might add meta data, e.g. about mentions\n\t\t\tvar oldMentions = model.get('mentions');\n\t\t\tvar self = this;\n\t\t\tmodel.fetch({\n\t\t\t\tsuccess: function (model) {\n\t\t\t\t\tif(_.isEqual(oldMentions, model.get('mentions'))) {\n\t\t\t\t\t\t// don't attempt to render if unnecessary, avoids flickering\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tvar $updated = $(self.commentTemplate(self._formatItem(model)));\n\t\t\t\t\t$comment.html($updated.html());\n\t\t\t\t\tself._postRenderItem($comment);\n\t\t\t\t}\n\t\t\t})\n\n\t\t},\n\n\t\t/**\n\t\t * takes care of post-rendering after a new comment was edited\n\t\t *\n\t\t * @param model\n\t\t * @private\n\t\t */\n\t\t_onChangeModel: function (model) {\n\t\t\tif(model.get('message').trim() === model.previous('message').trim()) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar $form = this.$container.find('.comment[data-id=\"' + model.id + '\"] form');\n\t\t\tvar $row = $form.closest('.comment');\n\t\t\tvar $target = $row.data('commentEl');\n\t\t\tif(_.isUndefined($target)) {\n\t\t\t\t// ignore noise – this is only set after editing a comment and hitting post\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar self = this;\n\n\t\t\t// we need to update the model, because it consists of client data\n\t\t\t// only, but the server might add meta data, e.g. about mentions\n\t\t\tmodel.fetch({\n\t\t\t\tsuccess: function (model) {\n\t\t\t\t\t$target.removeClass('hidden');\n\t\t\t\t\t$row.remove();\n\n\t\t\t\t\tvar $message = $target.find('.message');\n\t\t\t\t\t$message\n\t\t\t\t\t\t.html(self._formatMessage(model.get('message'), model.get('mentions')))\n\t\t\t\t\t\t.find('.avatar')\n\t\t\t\t\t\t.each(function () { $(this).avatar(); });\n\t\t\t\t\tself._postRenderItem($message);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t_postRenderItem: function($el, editionMode) {\n\t\t\t$el.find('.has-tooltip').tooltip();\n\t\t\tvar inlineAvatars = $el.find('.message .avatar');\n\t\t\tif ($($el.context).hasClass('message')) {\n\t\t\t\tinlineAvatars = $el.find('.avatar');\n\t\t\t}\n\t\t\tinlineAvatars.each(function () {\n\t\t\t\tvar $this = $(this);\n\t\t\t\t$this.avatar($this.attr('data-username'), 16);\n\t\t\t});\n\t\t\t$el.find('.authorRow .avatar').each(function () {\n\t\t\t\tvar $this = $(this);\n\t\t\t\t$this.avatar($this.attr('data-username'), 32);\n\t\t\t});\n\n\t\t\tvar username = $el.find('.avatar').data('username');\n\t\t\tif (username !== OC.getCurrentUser().uid) {\n\t\t\t\t$el.find('.authorRow .avatar, .authorRow .author').contactsMenu(\n\t\t\t\t\tusername, 0, $el.find('.authorRow'));\n\t\t\t}\n\n\t\t\tvar $message = $el.find('.message');\n\t\t\tif($message.length === 0) {\n\t\t\t\t// it is the case when writing a comment and mentioning a person\n\t\t\t\t$message = $el;\n\t\t\t}\n\n\n\t\t\tif (!editionMode) {\n\t\t\t\tvar self = this;\n\t\t\t\t// add the dropdown menu to display the edit and delete option\n\t\t\t\tvar modifyCommentMenu = new OCA.Comments.CommentsModifyMenu();\n\t\t\t\t$el.find('.authorRow').append(modifyCommentMenu.$el);\n\t\t\t\t$el.find('.more').on('click', _.bind(modifyCommentMenu.show, modifyCommentMenu));\n\n\t\t\t\tself.listenTo(modifyCommentMenu, 'select:menu-item-clicked', function(ev, action) {\n\t\t\t\t\tif (action === 'edit') {\n\t\t\t\t\t\tself._onClickEditComment(ev);\n\t\t\t\t\t} else if (action === 'delete') {\n\t\t\t\t\t\tself._onClickDeleteComment(ev);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis._postRenderMessage($message, editionMode);\n\t\t},\n\n\t\t_postRenderMessage: function($el, editionMode) {\n\t\t\tif (editionMode) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t$el.find('.avatar-name-wrapper').each(function() {\n\t\t\t\tvar $this = $(this);\n\t\t\t\tvar $avatar = $this.find('.avatar');\n\n\t\t\t\tvar user = $avatar.data('user');\n\t\t\t\tif (user !== OC.getCurrentUser().uid) {\n\t\t\t\t\t$this.contactsMenu(user, 0, $this);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * Convert a message to be displayed in HTML,\n\t\t * converts newlines to <br> tags.\n\t\t */\n\t\t_formatMessage: function(message, mentions, editMode) {\n\t\t\tmessage = escapeHTML(message).replace(/\\n/g, '<br/>');\n\n\t\t\tfor(var i in mentions) {\n\t\t\t\tif(!mentions.hasOwnProperty(i)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tvar mention = '@' + mentions[i].mentionId;\n\t\t\t\tif (mentions[i].mentionId.indexOf(' ') !== -1) {\n\t\t\t\t\tmention = _.escape('@\"' + mentions[i].mentionId + '\"');\n\t\t\t\t}\n\n\t\t\t\t// escape possible regex characters in the name\n\t\t\t\tmention = mention.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n\t\t\t\tvar regex = new RegExp(\"(^|\\\\s)(\" + mention + \")\\\\b\", 'g');\n\t\t\t\tif (mentions[i].mentionId.indexOf(' ') !== -1) {\n\t\t\t\t\tregex = new RegExp(\"(^|\\\\s)(\" + mention + \")\", 'g');\n\t\t\t\t}\n\n\t\t\t\tvar displayName = this._composeHTMLMention(mentions[i].mentionId, mentions[i].mentionDisplayName);\n\n\t\t\t\t// replace every mention either at the start of the input or after a whitespace\n\t\t\t\t// followed by a non-word character.\n\t\t\t\tmessage = message.replace(regex,\n\t\t\t\t\tfunction(match, p1) {\n\t\t\t\t\t\t// to get number of whitespaces (0 vs 1) right\n\t\t\t\t\t\treturn p1+displayName;\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t\tif(editMode !== true) {\n\t\t\t\tmessage = OCP.Comments.plainToRich(message);\n\t\t\t}\n\t\t\treturn message;\n\t\t},\n\n\t\t_composeHTMLMention: function(uid, displayName) {\n\t\t\tvar avatar = '' +\n\t\t\t\t'<span class=\"avatar\" ' +\n\t\t\t\t\t\t'data-username=\"' + _.escape(uid) + '\" ' +\n\t\t\t\t\t\t'data-user=\"' + _.escape(uid) + '\" ' +\n\t\t\t\t\t\t'data-user-display-name=\"' + _.escape(displayName) + '\">' +\n\t\t\t\t'</span>';\n\n\t\t\tvar isCurrentUser = (uid === OC.getCurrentUser().uid);\n\n\t\t\treturn '' +\n\t\t\t\t'<span class=\"atwho-inserted\" contenteditable=\"false\">' +\n\t\t\t\t\t'<span class=\"avatar-name-wrapper' + (isCurrentUser ? ' currentUser' : '') + '\">' +\n\t\t\t\t\t\tavatar +\n\t\t\t\t\t\t'<strong>' + _.escape(displayName) + '</strong>' +\n\t\t\t\t\t'</span>' +\n\t\t\t\t'</span>';\n\t\t},\n\n\t\tnextPage: function() {\n\t\t\tif (this._loading || !this.collection.hasMoreResults()) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.collection.fetchNext();\n\t\t},\n\n\t\t_onClickEditComment: function(ev) {\n\t\t\tev.preventDefault();\n\t\t\tvar $comment = $(ev.target).closest('.comment');\n\t\t\tvar commentId = $comment.data('id');\n\t\t\tvar commentToEdit = this.collection.get(commentId);\n\t\t\tvar $formRow = $(this.editCommentTemplate(_.extend({\n\t\t\t\tisEditMode: true,\n\t\t\t\tsubmitText: t('comments', 'Save')\n\t\t\t}, commentToEdit.attributes)));\n\n\t\t\t$comment.addClass('hidden').removeClass('collapsed');\n\t\t\t// spawn form\n\t\t\t$comment.after($formRow);\n\t\t\t$formRow.data('commentEl', $comment);\n\t\t\t$formRow.find('.message').on('keydown input change', this._onTypeComment);\n\n\t\t\t// copy avatar element from original to avoid flickering\n\t\t\t$formRow.find('.avatar:first').replaceWith($comment.find('.avatar:first').clone());\n\t\t\t$formRow.find('.has-tooltip').tooltip();\n\n\t\t\tvar $message = $formRow.find('.message');\n\t\t\t$message\n\t\t\t\t.html(this._formatMessage(commentToEdit.get('message'), commentToEdit.get('mentions'), true))\n\t\t\t\t.find('.avatar')\n\t\t\t\t.each(function () { $(this).avatar(); });\n\t\t\tvar editionMode = true;\n\t\t\tthis._postRenderItem($message, editionMode);\n\n\t\t\t// Enable autosize\n\t\t\tautosize($formRow.find('.message'));\n\n\t\t\t// enable autocomplete\n\t\t\tthis._initAutoComplete($formRow.find('.message'));\n\n\t\t\treturn false;\n\t\t},\n\n\t\t_onTypeComment: function(ev) {\n\t\t\tvar $field = $(ev.target);\n\t\t\tvar len = $field.text().length;\n\t\t\tvar $submitButton = $field.data('submitButtonEl');\n\t\t\tif (!$submitButton) {\n\t\t\t\t$submitButton = $field.closest('form').find('.submit');\n\t\t\t\t$field.data('submitButtonEl', $submitButton);\n\t\t\t}\n\t\t\t$field.tooltip('hide');\n\t\t\tif (len > this._commentMaxThreshold) {\n\t\t\t\t$field.attr('data-original-title', t('comments', 'Allowed characters {count} of {max}', {count: len, max: this._commentMaxLength}));\n\t\t\t\t$field.tooltip({trigger: 'manual'});\n\t\t\t\t$field.tooltip('show');\n\t\t\t\t$field.addClass('error');\n\t\t\t}\n\n\t\t\tvar limitExceeded = (len > this._commentMaxLength);\n\t\t\t$field.toggleClass('error', limitExceeded);\n\t\t\t$submitButton.prop('disabled', limitExceeded);\n\n\t\t\t// Submits form with Enter, but Shift+Enter is a new line. If the\n\t\t\t// autocomplete popover is being shown Enter does not submit the\n\t\t\t// form either; it will be handled by At.js which will add the\n\t\t\t// currently selected item to the message.\n\t\t\tif (ev.keyCode === 13 && !ev.shiftKey && !$field.atwho('isSelecting')) {\n\t\t\t\t$submitButton.click();\n\t\t\t\tev.preventDefault();\n\t\t\t}\n\t\t},\n\n\t\t_onClickComment: function(ev) {\n\t\t\tvar $row = $(ev.target);\n\t\t\tif (!$row.is('.comment')) {\n\t\t\t\t$row = $row.closest('.comment');\n\t\t\t}\n\t\t\t$row.removeClass('collapsed');\n\t\t},\n\n\t\t_onClickCloseComment: function(ev) {\n\t\t\tev.preventDefault();\n\t\t\tvar $row = $(ev.target).closest('.comment');\n\t\t\t$row.data('commentEl').removeClass('hidden');\n\t\t\t$row.remove();\n\t\t\treturn false;\n\t\t},\n\n\t\t_onClickDeleteComment: function(ev) {\n\t\t\tev.preventDefault();\n\t\t\tvar $comment = $(ev.target).closest('.comment');\n\t\t\tvar commentId = $comment.data('id');\n\t\t\tvar $loading = $comment.find('.deleteLoading');\n\t\t\tvar $moreIcon = $comment.find('.more');\n\n\t\t\t$comment.addClass('disabled');\n\t\t\t$loading.removeClass('hidden');\n\t\t\t$moreIcon.addClass('hidden');\n\n\t\t\t$comment.data('commentEl', $comment);\n\n\t\t\tthis.collection.get(commentId).destroy({\n\t\t\t\tsuccess: function() {\n\t\t\t\t\t$comment.data('commentEl').remove();\n\t\t\t\t\t$comment.remove();\n\t\t\t\t},\n\t\t\t\terror: function() {\n\t\t\t\t\t$loading.addClass('hidden');\n\t\t\t\t\t$moreIcon.removeClass('hidden');\n\t\t\t\t\t$comment.removeClass('disabled');\n\n\t\t\t\t\tOC.Notification.showTemporary(t('comments', 'Error occurred while retrieving comment with ID {id}', {id: commentId}));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn false;\n\t\t},\n\n\t\t_onClickShowMore: function(ev) {\n\t\t\tev.preventDefault();\n\t\t\tthis.nextPage();\n\t\t},\n\n\t\t/**\n\t\t * takes care of updating comment element states after submit (either new\n\t\t * comment or edit).\n\t\t *\n\t\t * @param {OC.Backbone.Model} model\n\t\t * @param {jQuery} $form\n\t\t * @private\n\t\t */\n\t\t_onSubmitSuccess: function(model, $form) {\n\t\t\tvar $submit = $form.find('.submit');\n\t\t\tvar $loading = $form.find('.submitLoading');\n\n\t\t\t$submit.removeClass('hidden');\n\t\t\t$loading.addClass('hidden');\n\t\t},\n\n\t\t_commentBodyHTML2Plain: function($el) {\n\t\t\tvar $comment = $el.clone();\n\n\t\t\t$comment.find('.avatar-name-wrapper').each(function () {\n\t\t\t\tvar $this = $(this),\n\t\t\t\t\t$inserted = $this.parent(),\n\t\t\t\t\tuserId = $this.find('.avatar').data('username');\n\t\t\t\tif (userId.indexOf(' ') !== -1) {\n\t\t\t\t\t$inserted.html('@\"' + userId + '\"');\n\t\t\t\t} else {\n\t\t\t\t\t$inserted.html('@' + userId);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t$comment.html(OCP.Comments.richToPlain($comment.html()));\n\n\t\t\tvar oldHtml;\n\t\t\tvar html = $comment.html();\n\t\t\tdo {\n\t\t\t\t// replace works one by one\n\t\t\t\toldHtml = html;\n\t\t\t\thtml = oldHtml.replace(\"<br>\", \"\\n\");\t// preserve line breaks\n\t\t\t} while(oldHtml !== html);\n\t\t\t$comment.html(html);\n\n\t\t\treturn $comment.text();\n\t\t},\n\n\t\t_onSubmitComment: function(e) {\n\t\t\tvar self = this;\n\t\t\tvar $form = $(e.target);\n\t\t\tvar commentId = $form.closest('.comment').data('id');\n\t\t\tvar currentUser = OC.getCurrentUser();\n\t\t\tvar $submit = $form.find('.submit');\n\t\t\tvar $loading = $form.find('.submitLoading');\n\t\t\tvar $commentField = $form.find('.message');\n\t\t\tvar message = $commentField.text().trim();\n\t\t\te.preventDefault();\n\n\t\t\tif (!message.length || message.length > this._commentMaxLength) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t$commentField.prop('contenteditable', false);\n\t\t\t$submit.addClass('hidden');\n\t\t\t$loading.removeClass('hidden');\n\n\t\t\tmessage = this._commentBodyHTML2Plain($commentField);\n\t\t\tif (commentId) {\n\t\t\t\t// edit mode\n\t\t\t\tvar comment = this.collection.get(commentId);\n\t\t\t\tcomment.save({\n\t\t\t\t\tmessage: message\n\t\t\t\t}, {\n\t\t\t\t\tsuccess: function(model) {\n\t\t\t\t\t\tself._onSubmitSuccess(model, $form);\n\t\t\t\t\t\tif(model.get('message').trim() === model.previous('message').trim()) {\n\t\t\t\t\t\t\t// model change event doesn't trigger, manually remove the row.\n\t\t\t\t\t\t\tvar $row = $form.closest('.comment');\n\t\t\t\t\t\t\t$row.data('commentEl').removeClass('hidden');\n\t\t\t\t\t\t\t$row.remove();\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\terror: function() {\n\t\t\t\t\t\tself._onSubmitError($form, commentId);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.collection.create({\n\t\t\t\t\tactorId: currentUser.uid,\n\t\t\t\t\tactorDisplayName: currentUser.displayName,\n\t\t\t\t\tactorType: 'users',\n\t\t\t\t\tverb: 'comment',\n\t\t\t\t\tmessage: message,\n\t\t\t\t\tcreationDateTime: (new Date()).toUTCString()\n\t\t\t\t}, {\n\t\t\t\t\tat: 0,\n\t\t\t\t\t// wait for real creation before adding\n\t\t\t\t\twait: true,\n\t\t\t\t\tsuccess: function(model) {\n\t\t\t\t\t\tself._onSubmitSuccess(model, $form);\n\t\t\t\t\t},\n\t\t\t\t\terror: function() {\n\t\t\t\t\t\tself._onSubmitError($form, undefined);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn false;\n\t\t},\n\n\t\t/**\n\t\t * takes care of updating the UI after an error on submit (either new\n\t\t * comment or edit).\n\t\t *\n\t\t * @param {jQuery} $form\n\t\t * @param {string|undefined} commentId\n\t\t * @private\n\t\t */\n\t\t_onSubmitError: function($form, commentId) {\n\t\t\t$form.find('.submit').removeClass('hidden');\n\t\t\t$form.find('.submitLoading').addClass('hidden');\n\t\t\t$form.find('.message').prop('contenteditable', true);\n\n\t\t\tif(!_.isUndefined(commentId)) {\n\t\t\t\tOC.Notification.show(t('comments', 'Error occurred while updating comment with id {id}', {id: commentId}), {type: 'error'});\n\t\t\t} else {\n\t\t\t\tOC.Notification.show(t('comments', 'Error occurred while posting comment'), {type: 'error'});\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * ensures the contenteditable div is really empty, when user removed\n\t\t * all input, so that the placeholder will be shown again\n\t\t *\n\t\t * @private\n\t\t */\n\t\t_onTextChange: function() {\n\t\t\tvar $message = $('#commentsTabView').find('.newCommentForm div.message');\n\t\t\tif(!$message.text().trim().length) {\n\t\t\t\t$message.empty();\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Limit pasting to plain text\n\t\t *\n\t\t * @param e\n\t\t * @private\n\t\t */\n\t\t_onPaste: function (e) {\n\t\t\te.preventDefault();\n\t\t\tvar text = e.originalEvent.clipboardData.getData(\"text/plain\");\n\t\t\tdocument.execCommand('insertText', false, text);\n\t\t},\n\n\t\t/**\n\t\t * Returns whether the given message is long and needs\n\t\t * collapsing\n\t\t */\n\t\t_isLong: function(message) {\n\t\t\treturn message.length > 250 || (message.match(/\\n/g) || []).length > 1;\n\t\t}\n\t});\n\n\tOCA.Comments.CommentsTabView = CommentsTabView;\n})(OC, OCA);\n","/*\n * Copyright (c) 2018\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n/* global Handlebars */\n(function() {\n\n\t/**\n\t * Construct a new CommentsModifyMenuinstance\n\t * @constructs CommentsModifyMenu\n\t * @memberof OC.Comments\n\t * @private\n\t */\n\tvar CommentsModifyMenu = OC.Backbone.View.extend({\n\t\ttagName: 'div',\n\t\tclassName: 'commentsModifyMenu popovermenu bubble menu',\n\t\t_scopes: [\n\t\t\t{\n\t\t\t\tname: 'edit',\n\t\t\t\tdisplayName: t('comments', 'Edit comment'),\n\t\t\t\ticonClass: 'icon-rename'\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'delete',\n\t\t\t\tdisplayName: t('comments', 'Delete comment'),\n\t\t\t\ticonClass: 'icon-delete'\n\t\t\t}\n\t\t],\n\t\tinitialize: function() {\n\n\t\t},\n\t\tevents: {\n\t\t\t'click a.action': '_onClickAction'\n\t\t},\n\n\t\t/**\n\t\t * Event handler whenever an action has been clicked within the menu\n\t\t *\n\t\t * @param {Object} event event object\n\t\t */\n\t\t_onClickAction: function(event) {\n\t\t\tvar $target = $(event.currentTarget);\n\t\t\tif (!$target.hasClass('menuitem')) {\n\t\t\t\t$target = $target.closest('.menuitem');\n\t\t\t}\n\n\t\t\tOC.hideMenus();\n\n\t\t\tthis.trigger('select:menu-item-clicked', event, $target.data('action'));\n\t\t},\n\n\t\t/**\n\t\t * Renders the menu with the currently set items\n\t\t */\n\t\trender: function() {\n\t\t\tthis.$el.html(OCA.Comments.Templates['commentsmodifymenu']({\n\t\t\t\titems: this._scopes\n\t\t\t}));\n\t\t},\n\n\t\t/**\n\t\t * Displays the menu\n\t\t */\n\t\tshow: function(context) {\n\t\t\tthis._context = context;\n\n\t\t\tfor(var i in this._scopes) {\n\t\t\t\tthis._scopes[i].active = false;\n\t\t\t}\n\n\n\t\t\tvar $el = $(context.target);\n\t\t\tvar offsetIcon = $el.offset();\n\t\t\tvar offsetContainer = $el.closest('.authorRow').offset();\n\n\t\t\t// adding some extra top offset to push the menu below the button.\n\t\t\tvar position = {\n\t\t\t\ttop: offsetIcon.top - offsetContainer.top + 48,\n\t\t\t\tleft: '',\n\t\t\t\tright: ''\n\t\t\t};\n\n\t\t\tposition.left = offsetIcon.left - offsetContainer.left;\n\n\t\t\tif (position.left > 200) {\n\t\t\t\t// we need to position the menu to the right.\n\t\t\t\tposition.left = '';\n\t\t\t\tposition.right = this.$el.closest('.comment').find('.date').width();\n\t\t\t\tthis.$el.removeClass('menu-left').addClass('menu-right');\n\t\t\t} else {\n\t\t\t\tthis.$el.removeClass('menu-right').addClass('menu-left');\n\t\t\t}\n\t\t\tthis.$el.css(position);\n\t\t\tthis.render();\n\t\t\tthis.$el.removeClass('hidden');\n\n\t\t\tOC.showMenu(null, this.$el);\n\t\t}\n\t});\n\n\tOCA.Comments = OCA.Comments || {};\n\tOCA.Comments.CommentsModifyMenu = CommentsModifyMenu;\n})(OC, OCA);\n","/*\n * Copyright (c) 2016 Vincent Petry <pvince81@owncloud.com>\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n/* global Handlebars */\n\n(function() {\n\n\t_.extend(OC.Files.Client, {\n\t\tPROPERTY_COMMENTS_UNREAD:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}comments-unread'\n\t});\n\n\tOCA.Comments = _.extend({}, OCA.Comments);\n\tif (!OCA.Comments) {\n\t\t/**\n\t\t * @namespace\n\t\t */\n\t\tOCA.Comments = {};\n\t}\n\n\t/**\n\t * @namespace\n\t */\n\tOCA.Comments.FilesPlugin = {\n\t\tignoreLists: [\n\t\t\t'trashbin',\n\t\t\t'files.public'\n\t\t],\n\n\t\t_formatCommentCount: function(count) {\n\t\t\treturn OCA.Comments.Templates['filesplugin']({\n\t\t\t\tcount: count,\n\t\t\t\tcountMessage: n('comments', '%n unread comment', '%n unread comments', count),\n\t\t\t\ticonUrl: OC.imagePath('core', 'actions/comment')\n\t\t\t});\n\t\t},\n\n\t\tattach: function(fileList) {\n\t\t\tvar self = this;\n\t\t\tif (this.ignoreLists.indexOf(fileList.id) >= 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfileList.registerTabView(new OCA.Comments.CommentsTabView('commentsTabView'));\n\n\t\t\tvar oldGetWebdavProperties = fileList._getWebdavProperties;\n\t\t\tfileList._getWebdavProperties = function() {\n\t\t\t\tvar props = oldGetWebdavProperties.apply(this, arguments);\n\t\t\t\tprops.push(OC.Files.Client.PROPERTY_COMMENTS_UNREAD);\n\t\t\t\treturn props;\n\t\t\t};\n\n\t\t\tfileList.filesClient.addFileInfoParser(function(response) {\n\t\t\t\tvar data = {};\n\t\t\t\tvar props = response.propStat[0].properties;\n\t\t\t\tvar commentsUnread = props[OC.Files.Client.PROPERTY_COMMENTS_UNREAD];\n\t\t\t\tif (!_.isUndefined(commentsUnread) && commentsUnread !== '') {\n\t\t\t\t\tdata.commentsUnread = parseInt(commentsUnread, 10);\n\t\t\t\t}\n\t\t\t\treturn data;\n\t\t\t});\n\n\t\t\tfileList.$el.addClass('has-comments');\n\t\t\tvar oldCreateRow = fileList._createRow;\n\t\t\tfileList._createRow = function(fileData) {\n\t\t\t\tvar $tr = oldCreateRow.apply(this, arguments);\n\t\t\t\tif (fileData.commentsUnread) {\n\t\t\t\t\t$tr.attr('data-comments-unread', fileData.commentsUnread);\n\t\t\t\t}\n\t\t\t\treturn $tr;\n\t\t\t};\n\n\t\t\t// register \"comment\" action for reading comments\n\t\t\tfileList.fileActions.registerAction({\n\t\t\t\tname: 'Comment',\n\t\t\t\tdisplayName: function(context) {\n\t\t\t\t\tif (context && context.$file) {\n\t\t\t\t\t\tvar unread = parseInt(context.$file.data('comments-unread'), 10)\n\t\t\t\t\t\tif (unread >= 0) {\n\t\t\t\t\t\t\treturn n('comments', '1 new comment', '{unread} new comments', unread, { unread: unread })\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn t('comments', 'Comment')\n\t\t\t\t},\n\t\t\t\tmime: 'all',\n\t\t\t\torder: -140,\n\t\t\t\ticonClass: 'icon-comment',\n\t\t\t\tpermissions: OC.PERMISSION_READ,\n\t\t\t\ttype: OCA.Files.FileActions.TYPE_INLINE,\n\t\t\t\trender: function(actionSpec, isDefault, context) {\n\t\t\t\t\tvar $file = context.$file;\n\t\t\t\t\tvar unreadComments = $file.data('comments-unread');\n\t\t\t\t\tif (unreadComments) {\n\t\t\t\t\t\tvar $actionLink = $(self._formatCommentCount(unreadComments));\n\t\t\t\t\t\tcontext.$file.find('a.name>span.fileactions').append($actionLink);\n\t\t\t\t\t\treturn $actionLink;\n\t\t\t\t\t}\n\t\t\t\t\treturn '';\n\t\t\t\t},\n\t\t\t\tactionHandler: function(fileName, context) {\n\t\t\t\t\tcontext.$file.find('.action-comment').tooltip('hide');\n\t\t\t\t\t// open sidebar in comments section\n\t\t\t\t\tcontext.fileList.showDetailsView(fileName, 'commentsTabView');\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// add attribute to \"elementToFile\"\n\t\t\tvar oldElementToFile = fileList.elementToFile;\n\t\t\tfileList.elementToFile = function($el) {\n\t\t\t\tvar fileInfo = oldElementToFile.apply(this, arguments);\n\t\t\t\tvar commentsUnread = $el.data('comments-unread');\n\t\t\t\tif (commentsUnread) {\n\t\t\t\t\tfileInfo.commentsUnread = commentsUnread;\n\t\t\t\t}\n\t\t\t\treturn fileInfo;\n\t\t\t};\n\t\t}\n\t};\n\n})();\n\nOC.Plugins.register('OCA.Files.FileList', OCA.Comments.FilesPlugin);\n","/*\n * @author Joas Schilling <coding@schilljs.com>\n * Copyright (c) 2016\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n */\n\n(function() {\n\tOCA.Comments.ActivityTabViewPlugin = {\n\n\t\t/**\n\t\t * Prepare activity for display\n\t\t *\n\t\t * @param {OCA.Activity.ActivityModel} model for this activity\n\t\t * @param {jQuery} $el jQuery handle for this activity\n\t\t * @param {string} view The view that displayes this activity\n\t\t */\n\t\tprepareModelForDisplay: function (model, $el, view) {\n\t\t\tif (model.get('app') !== 'comments' || model.get('type') !== 'comments') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (view === 'ActivityTabView') {\n\t\t\t\t$el.addClass('comment');\n\t\t\t\tif (model.get('message') && this._isLong(model.get('message'))) {\n\t\t\t\t\t$el.addClass('collapsed');\n\t\t\t\t\tvar $overlay = $('<div>').addClass('message-overlay');\n\t\t\t\t\t$el.find('.activitymessage').after($overlay);\n\t\t\t\t\t$el.on('click', this._onClickCollapsedComment);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/*\n\t\t * Copy of CommentsTabView._onClickComment()\n\t\t */\n\t\t_onClickCollapsedComment: function(ev) {\n\t\t\tvar $row = $(ev.target);\n\t\t\tif (!$row.is('.comment')) {\n\t\t\t\t$row = $row.closest('.comment');\n\t\t\t}\n\t\t\t$row.removeClass('collapsed');\n\t\t},\n\n\t\t/*\n\t\t * Copy of CommentsTabView._isLong()\n\t\t */\n\t\t_isLong: function(message) {\n\t\t\treturn message.length > 250 || (message.match(/\\n/g) || []).length > 1;\n\t\t}\n\t};\n\n\n})();\n\nOC.Plugins.register('OCA.Activity.RenderingPlugins', OCA.Comments.ActivityTabViewPlugin);\n","/*\n * Copyright (c) 2014\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n(function(OC, OCA, $) {\n\t\"use strict\";\n\n\t/**\n\t * Construct a new FileActions instance\n\t * @constructs Files\n\t */\n\tvar Comment = function() {\n\t\tthis.initialize();\n\t};\n\n\tComment.prototype = {\n\n\t\tfileList: null,\n\n\t\t/**\n\t\t * Initialize the file search\n\t\t */\n\t\tinitialize: function() {\n\n\t\t\tvar self = this;\n\n\t\t\tthis.fileAppLoaded = function() {\n\t\t\t\treturn !!OCA.Files && !!OCA.Files.App;\n\t\t\t};\n\t\t\tfunction inFileList($row, result) {\n\t\t\t\treturn false;\n\n\t\t\t\tif (! self.fileAppLoaded()) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tvar dir = self.fileList.getCurrentDirectory().replace(/\\/+$/,'');\n\t\t\t\tvar resultDir = OC.dirname(result.path);\n\t\t\t\treturn dir === resultDir && self.fileList.inList(result.name);\n\t\t\t}\n\t\t\tfunction hideNoFilterResults() {\n\t\t\t\tvar $nofilterresults = $('.nofilterresults');\n\t\t\t\tif ( ! $nofilterresults.hasClass('hidden') ) {\n\t\t\t\t\t$nofilterresults.addClass('hidden');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/**\n\t\t\t *\n\t\t\t * @param {jQuery} $row\n\t\t\t * @param {Object} result\n\t\t\t * @param {int} result.id\n\t\t\t * @param {string} result.comment\n\t\t\t * @param {string} result.authorId\n\t\t\t * @param {string} result.authorName\n\t\t\t * @param {string} result.link\n\t\t\t * @param {string} result.fileName\n\t\t\t * @param {string} result.path\n\t\t\t * @returns {*}\n\t\t\t */\n\t\t\tthis.renderCommentResult = function($row, result) {\n\t\t\t\tif (inFileList($row, result)) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\thideNoFilterResults();\n\t\t\t\t/*render preview icon, show path beneath filename,\n\t\t\t\t show size and last modified date on the right */\n\t\t\t\tthis.updateLegacyMimetype(result);\n\n\t\t\t\tvar $pathDiv = $('<div>').addClass('path').text(result.path);\n\n\t\t\t\tvar $avatar = $('<div>');\n\t\t\t\t$avatar.addClass('avatar')\n\t\t\t\t\t.css('display', 'inline-block')\n\t\t\t\t\t.css('vertical-align', 'middle')\n\t\t\t\t\t.css('margin', '0 5px 2px 3px');\n\n\t\t\t\tif (result.authorName) {\n\t\t\t\t\t$avatar.avatar(result.authorId, 21, undefined, false, undefined, result.authorName);\n\t\t\t\t} else {\n\t\t\t\t\t$avatar.avatar(result.authorId, 21);\n\t\t\t\t}\n\n\t\t\t\t$row.find('td.info div.name').after($pathDiv).text(result.comment).prepend($('<span>').addClass('path').css('margin-right', '5px').text(result.authorName)).prepend($avatar);\n\t\t\t\t$row.find('td.result a').attr('href', result.link);\n\n\t\t\t\t$row.find('td.icon')\n\t\t\t\t\t.css('background-image', 'url(' + OC.imagePath('core', 'actions/comment') + ')')\n\t\t\t\t\t.css('opacity', '.4');\n\t\t\t\tvar dir = OC.dirname(result.path);\n\t\t\t\t// \"result.path\" does not include a leading \"/\", so \"OC.dirname\"\n\t\t\t\t// returns the path itself for files or folders in the root.\n\t\t\t\tif (dir === result.path) {\n\t\t\t\t\tdir = '/';\n\t\t\t\t}\n\t\t\t\t$row.find('td.info a').attr('href',\n\t\t\t\t\tOC.generateUrl('/apps/files/?dir={dir}&scrollto={scrollto}', {dir: dir, scrollto: result.fileName})\n\t\t\t\t);\n\n\t\t\t\treturn $row;\n\t\t\t};\n\n\t\t\tthis.handleCommentClick = function($row, result, event) {\n\t\t\t\tif (self.fileAppLoaded() && self.fileList.id === 'files') {\n\t\t\t\t\tself.fileList.changeDirectory(OC.dirname(result.path));\n\t\t\t\t\tself.fileList.scrollTo(result.name);\n\t\t\t\t\treturn false;\n\t\t\t\t} else {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tthis.updateLegacyMimetype = function (result) {\n\t\t\t\t// backward compatibility:\n\t\t\t\tif (!result.mime && result.mime_type) {\n\t\t\t\t\tresult.mime = result.mime_type;\n\t\t\t\t}\n\t\t\t};\n\t\t\tthis.setFileList = function (fileList) {\n\t\t\t\tthis.fileList = fileList;\n\t\t\t};\n\n\t\t\tOC.Plugins.register('OCA.Search.Core', this);\n\t\t},\n\t\tattach: function(search) {\n\t\t\tsearch.setRenderer('comment', this.renderCommentResult.bind(this));\n\t\t\tsearch.setHandler('comment', this.handleCommentClick.bind(this));\n\t\t}\n\t};\n\n\tOCA.Search.comment = new Comment();\n})(OC, OCA, $);\n","/*! jquery.caret 2015-02-01 */\n!function(a,b){\"function\"==typeof define&&define.amd?define([\"jquery\"],function(c){return a.returnExportsGlobal=b(c)}):\"object\"==typeof exports?module.exports=b(require(\"jquery\")):b(jQuery)}(this,function(a){\"use strict\";var b,c,d,e,f,g,h,i,j,k,l;k=\"caret\",b=function(){function b(a){this.$inputor=a,this.domInputor=this.$inputor[0]}return b.prototype.setPos=function(){return this.domInputor},b.prototype.getIEPosition=function(){return this.getPosition()},b.prototype.getPosition=function(){var a,b;return b=this.getOffset(),a=this.$inputor.offset(),b.left-=a.left,b.top-=a.top,b},b.prototype.getOldIEPos=function(){var a,b;return b=h.selection.createRange(),a=h.body.createTextRange(),a.moveToElementText(this.domInputor),a.setEndPoint(\"EndToEnd\",b),a.text.length},b.prototype.getPos=function(){var a,b,c;return(c=this.range())?(a=c.cloneRange(),a.selectNodeContents(this.domInputor),a.setEnd(c.endContainer,c.endOffset),b=a.toString().length,a.detach(),b):h.selection?this.getOldIEPos():void 0},b.prototype.getOldIEOffset=function(){var a,b;return a=h.selection.createRange().duplicate(),a.moveStart(\"character\",-1),b=a.getBoundingClientRect(),{height:b.bottom-b.top,left:b.left,top:b.top}},b.prototype.getOffset=function(){var b,c,d,e,f;return j.getSelection&&(d=this.range())?(d.endOffset-1>0&&d.endContainer===!this.domInputor&&(b=d.cloneRange(),b.setStart(d.endContainer,d.endOffset-1),b.setEnd(d.endContainer,d.endOffset),e=b.getBoundingClientRect(),c={height:e.height,left:e.left+e.width,top:e.top},b.detach()),c&&0!==(null!=c?c.height:void 0)||(b=d.cloneRange(),f=a(h.createTextNode(\"|\")),b.insertNode(f[0]),b.selectNode(f[0]),e=b.getBoundingClientRect(),c={height:e.height,left:e.left,top:e.top},f.remove(),b.detach())):h.selection&&(c=this.getOldIEOffset()),c&&(c.top+=a(j).scrollTop(),c.left+=a(j).scrollLeft()),c},b.prototype.range=function(){var a;if(j.getSelection)return a=j.getSelection(),a.rangeCount>0?a.getRangeAt(0):null},b}(),c=function(){function b(a){this.$inputor=a,this.domInputor=this.$inputor[0]}return b.prototype.getIEPos=function(){var a,b,c,d,e,f,g;return b=this.domInputor,f=h.selection.createRange(),e=0,f&&f.parentElement()===b&&(d=b.value.replace(/\\r\\n/g,\"\\n\"),c=d.length,g=b.createTextRange(),g.moveToBookmark(f.getBookmark()),a=b.createTextRange(),a.collapse(!1),e=g.compareEndPoints(\"StartToEnd\",a)>-1?c:-g.moveStart(\"character\",-c)),e},b.prototype.getPos=function(){return h.selection?this.getIEPos():this.domInputor.selectionStart},b.prototype.setPos=function(a){var b,c;return b=this.domInputor,h.selection?(c=b.createTextRange(),c.move(\"character\",a),c.select()):b.setSelectionRange&&b.setSelectionRange(a,a),b},b.prototype.getIEOffset=function(a){var b,c,d,e;return c=this.domInputor.createTextRange(),a||(a=this.getPos()),c.move(\"character\",a),d=c.boundingLeft,e=c.boundingTop,b=c.boundingHeight,{left:d,top:e,height:b}},b.prototype.getOffset=function(b){var c,d,e;return c=this.$inputor,h.selection?(d=this.getIEOffset(b),d.top+=a(j).scrollTop()+c.scrollTop(),d.left+=a(j).scrollLeft()+c.scrollLeft(),d):(d=c.offset(),e=this.getPosition(b),d={left:d.left+e.left-c.scrollLeft(),top:d.top+e.top-c.scrollTop(),height:e.height})},b.prototype.getPosition=function(a){var b,c,e,f,g,h,i;return b=this.$inputor,f=function(a){return a=a.replace(/<|>|`|\"|&/g,\"?\").replace(/\\r\\n|\\r|\\n/g,\"<br/>\"),/firefox/i.test(navigator.userAgent)&&(a=a.replace(/\\s/g,\"&nbsp;\")),a},void 0===a&&(a=this.getPos()),i=b.val().slice(0,a),e=b.val().slice(a),g=\"<span style='position: relative; display: inline;'>\"+f(i)+\"</span>\",g+=\"<span id='caret' style='position: relative; display: inline;'>|</span>\",g+=\"<span style='position: relative; display: inline;'>\"+f(e)+\"</span>\",h=new d(b),c=h.create(g).rect()},b.prototype.getIEPosition=function(a){var b,c,d,e,f;return d=this.getIEOffset(a),c=this.$inputor.offset(),e=d.left-c.left,f=d.top-c.top,b=d.height,{left:e,top:f,height:b}},b}(),d=function(){function b(a){this.$inputor=a}return b.prototype.css_attr=[\"borderBottomWidth\",\"borderLeftWidth\",\"borderRightWidth\",\"borderTopStyle\",\"borderRightStyle\",\"borderBottomStyle\",\"borderLeftStyle\",\"borderTopWidth\",\"boxSizing\",\"fontFamily\",\"fontSize\",\"fontWeight\",\"height\",\"letterSpacing\",\"lineHeight\",\"marginBottom\",\"marginLeft\",\"marginRight\",\"marginTop\",\"outlineWidth\",\"overflow\",\"overflowX\",\"overflowY\",\"paddingBottom\",\"paddingLeft\",\"paddingRight\",\"paddingTop\",\"textAlign\",\"textOverflow\",\"textTransform\",\"whiteSpace\",\"wordBreak\",\"wordWrap\"],b.prototype.mirrorCss=function(){var b,c=this;return b={position:\"absolute\",left:-9999,top:0,zIndex:-2e4},\"TEXTAREA\"===this.$inputor.prop(\"tagName\")&&this.css_attr.push(\"width\"),a.each(this.css_attr,function(a,d){return b[d]=c.$inputor.css(d)}),b},b.prototype.create=function(b){return this.$mirror=a(\"<div></div>\"),this.$mirror.css(this.mirrorCss()),this.$mirror.html(b),this.$inputor.after(this.$mirror),this},b.prototype.rect=function(){var a,b,c;return a=this.$mirror.find(\"#caret\"),b=a.position(),c={left:b.left,top:b.top,height:a.height()},this.$mirror.remove(),c},b}(),e={contentEditable:function(a){return!(!a[0].contentEditable||\"true\"!==a[0].contentEditable)}},g={pos:function(a){return a||0===a?this.setPos(a):this.getPos()},position:function(a){return h.selection?this.getIEPosition(a):this.getPosition(a)},offset:function(a){var b;return b=this.getOffset(a)}},h=null,j=null,i=null,l=function(a){var b;return(b=null!=a?a.iframe:void 0)?(i=b,j=b.contentWindow,h=b.contentDocument||j.document):(i=void 0,j=window,h=document)},f=function(a){var b;h=a[0].ownerDocument,j=h.defaultView||h.parentWindow;try{return i=j.frameElement}catch(c){b=c}},a.fn.caret=function(d,f,h){var i;return g[d]?(a.isPlainObject(f)?(l(f),f=void 0):l(h),i=e.contentEditable(this)?new b(this):new c(this),g[d].apply(i,[f])):a.error(\"Method \"+d+\" does not exist on jQuery.caret\")},a.fn.caret.EditableCaret=b,a.fn.caret.InputCaret=c,a.fn.caret.Utils=e,a.fn.caret.apis=g});","!function(t,e){\"function\"==typeof define&&define.amd?define([\"jquery\"],function(t){return e(t)}):\"object\"==typeof exports?module.exports=e(require(\"jquery\")):e(jQuery)}(this,function(t){var e,i;i={ESC:27,TAB:9,ENTER:13,CTRL:17,A:65,P:80,N:78,LEFT:37,UP:38,RIGHT:39,DOWN:40,BACKSPACE:8,SPACE:32},e={beforeSave:function(t){return r.arrayToDefaultHash(t)},matcher:function(t,e,i,n){var r,o,s,a,h;return t=t.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g,\"\\\\$&\"),i&&(t=\"(?:^|\\\\s)\"+t),r=decodeURI(\"%C3%80\"),o=decodeURI(\"%C3%BF\"),h=n?\" \":\"\",a=new RegExp(t+\"([A-Za-z\"+r+\"-\"+o+\"0-9_\"+h+\"'.+-]*)$|\"+t+\"([^\\\\x00-\\\\xff]*)$\",\"gi\"),s=a.exec(e),s?s[2]||s[1]:null},filter:function(t,e,i){var n,r,o,s;for(n=[],r=0,s=e.length;s>r;r++)o=e[r],~new String(o[i]).toLowerCase().indexOf(t.toLowerCase())&&n.push(o);return n},remoteFilter:null,sorter:function(t,e,i){var n,r,o,s;if(!t)return e;for(n=[],r=0,s=e.length;s>r;r++)o=e[r],o.atwho_order=new String(o[i]).toLowerCase().indexOf(t.toLowerCase()),o.atwho_order>-1&&n.push(o);return n.sort(function(t,e){return t.atwho_order-e.atwho_order})},tplEval:function(t,e){var i,n,r;r=t;try{return\"string\"!=typeof t&&(r=t(e)),r.replace(/\\$\\{([^\\}]*)\\}/g,function(t,i,n){return e[i]})}catch(n){return i=n,\"\"}},highlighter:function(t,e){var i;return e?(i=new RegExp(\">\\\\s*([^<]*?)(\"+e.replace(\"+\",\"\\\\+\")+\")([^<]*)\\\\s*<\",\"ig\"),t.replace(i,function(t,e,i,n){return\"> \"+e+\"<strong>\"+i+\"</strong>\"+n+\" <\"})):t},beforeInsert:function(t,e,i){return t},beforeReposition:function(t){return t},afterMatchFailed:function(t,e){}};var n;n=function(){function e(e){this.currentFlag=null,this.controllers={},this.aliasMaps={},this.$inputor=t(e),this.setupRootElement(),this.listen()}return e.prototype.createContainer=function(e){var i;return null!=(i=this.$el)&&i.remove(),t(e.body).append(this.$el=t(\"<div class='atwho-container'></div>\"))},e.prototype.setupRootElement=function(e,i){var n,r;if(null==i&&(i=!1),e)this.window=e.contentWindow,this.document=e.contentDocument||this.window.document,this.iframe=e;else{this.document=this.$inputor[0].ownerDocument,this.window=this.document.defaultView||this.document.parentWindow;try{this.iframe=this.window.frameElement}catch(r){if(n=r,this.iframe=null,t.fn.atwho.debug)throw new Error(\"iframe auto-discovery is failed.\\nPlease use `setIframe` to set the target iframe manually.\\n\"+n)}}return this.createContainer((this.iframeAsRoot=i)?this.document:document)},e.prototype.controller=function(t){var e,i,n,r;if(this.aliasMaps[t])i=this.controllers[this.aliasMaps[t]];else{r=this.controllers;for(n in r)if(e=r[n],n===t){i=e;break}}return i?i:this.controllers[this.currentFlag]},e.prototype.setContextFor=function(t){return this.currentFlag=t,this},e.prototype.reg=function(t,e){var i,n;return n=(i=this.controllers)[t]||(i[t]=this.$inputor.is(\"[contentEditable]\")?new l(this,t):new s(this,t)),e.alias&&(this.aliasMaps[e.alias]=t),n.init(e),this},e.prototype.listen=function(){return this.$inputor.on(\"compositionstart\",function(t){return function(e){var i;return null!=(i=t.controller())&&i.view.hide(),t.isComposing=!0,null}}(this)).on(\"compositionend\",function(t){return function(e){return t.isComposing=!1,setTimeout(function(e){return t.dispatch(e)}),null}}(this)).on(\"keyup.atwhoInner\",function(t){return function(e){return t.onKeyup(e)}}(this)).on(\"keydown.atwhoInner\",function(t){return function(e){return t.onKeydown(e)}}(this)).on(\"blur.atwhoInner\",function(t){return function(e){var i;return(i=t.controller())?(i.expectedQueryCBId=null,i.view.hide(e,i.getOpt(\"displayTimeout\"))):void 0}}(this)).on(\"click.atwhoInner\",function(t){return function(e){return t.dispatch(e)}}(this)).on(\"scroll.atwhoInner\",function(t){return function(){var e;return e=t.$inputor.scrollTop(),function(i){var n,r;return n=i.target.scrollTop,e!==n&&null!=(r=t.controller())&&r.view.hide(i),e=n,!0}}}(this)())},e.prototype.shutdown=function(){var t,e,i;i=this.controllers;for(t in i)e=i[t],e.destroy(),delete this.controllers[t];return this.$inputor.off(\".atwhoInner\"),this.$el.remove()},e.prototype.dispatch=function(t){var e,i,n,r;n=this.controllers,r=[];for(e in n)i=n[e],r.push(i.lookUp(t));return r},e.prototype.onKeyup=function(e){var n;switch(e.keyCode){case i.ESC:e.preventDefault(),null!=(n=this.controller())&&n.view.hide();break;case i.DOWN:case i.UP:case i.CTRL:case i.ENTER:t.noop();break;case i.P:case i.N:e.ctrlKey||this.dispatch(e);break;default:this.dispatch(e)}},e.prototype.onKeydown=function(e){var n,r;if(r=null!=(n=this.controller())?n.view:void 0,r&&r.visible())switch(e.keyCode){case i.ESC:e.preventDefault(),r.hide(e);break;case i.UP:e.preventDefault(),r.prev();break;case i.DOWN:e.preventDefault(),r.next();break;case i.P:if(!e.ctrlKey)return;e.preventDefault(),r.prev();break;case i.N:if(!e.ctrlKey)return;e.preventDefault(),r.next();break;case i.TAB:case i.ENTER:case i.SPACE:if(!r.visible())return;if(!this.controller().getOpt(\"spaceSelectsMatch\")&&e.keyCode===i.SPACE)return;if(!this.controller().getOpt(\"tabSelectsMatch\")&&e.keyCode===i.TAB)return;r.highlighted()?(e.preventDefault(),r.choose(e)):r.hide(e);break;default:t.noop()}},e}();var r,o=[].slice;r=function(){function i(e,i){this.app=e,this.at=i,this.$inputor=this.app.$inputor,this.id=this.$inputor[0].id||this.uid(),this.expectedQueryCBId=null,this.setting=null,this.query=null,this.pos=0,this.range=null,0===(this.$el=t(\"#atwho-ground-\"+this.id,this.app.$el)).length&&this.app.$el.append(this.$el=t(\"<div id='atwho-ground-\"+this.id+\"'></div>\")),this.model=new u(this),this.view=new c(this)}return i.prototype.uid=function(){return(Math.random().toString(16)+\"000000000\").substr(2,8)+(new Date).getTime()},i.prototype.init=function(e){return this.setting=t.extend({},this.setting||t.fn.atwho[\"default\"],e),this.view.init(),this.model.reload(this.setting.data)},i.prototype.destroy=function(){return this.trigger(\"beforeDestroy\"),this.model.destroy(),this.view.destroy(),this.$el.remove()},i.prototype.callDefault=function(){var i,n,r,s;s=arguments[0],i=2<=arguments.length?o.call(arguments,1):[];try{return e[s].apply(this,i)}catch(r){return n=r,t.error(n+\" Or maybe At.js doesn't have function \"+s)}},i.prototype.trigger=function(t,e){var i,n;return null==e&&(e=[]),e.push(this),i=this.getOpt(\"alias\"),n=i?t+\"-\"+i+\".atwho\":t+\".atwho\",this.$inputor.trigger(n,e)},i.prototype.callbacks=function(t){return this.getOpt(\"callbacks\")[t]||e[t]},i.prototype.getOpt=function(t,e){var i,n;try{return this.setting[t]}catch(n){return i=n,null}},i.prototype.insertContentFor=function(e){var i,n;return n=this.getOpt(\"insertTpl\"),i=t.extend({},e.data(\"item-data\"),{\"atwho-at\":this.at}),this.callbacks(\"tplEval\").call(this,n,i,\"onInsert\")},i.prototype.renderView=function(t){var e;return e=this.getOpt(\"searchKey\"),t=this.callbacks(\"sorter\").call(this,this.query.text,t.slice(0,1001),e),this.view.render(t.slice(0,this.getOpt(\"limit\")))},i.arrayToDefaultHash=function(e){var i,n,r,o;if(!t.isArray(e))return e;for(o=[],i=0,r=e.length;r>i;i++)n=e[i],t.isPlainObject(n)?o.push(n):o.push({name:n});return o},i.prototype.lookUp=function(t){var e,i;if((!t||\"click\"!==t.type||this.getOpt(\"lookUpOnClick\"))&&(!this.getOpt(\"suspendOnComposing\")||!this.app.isComposing))return(e=this.catchQuery(t))?(this.app.setContextFor(this.at),(i=this.getOpt(\"delay\"))?this._delayLookUp(e,i):this._lookUp(e),e):(this.expectedQueryCBId=null,e)},i.prototype._delayLookUp=function(t,e){var i,n;return i=Date.now?Date.now():(new Date).getTime(),this.previousCallTime||(this.previousCallTime=i),n=e-(i-this.previousCallTime),n>0&&e>n?(this.previousCallTime=i,this._stopDelayedCall(),this.delayedCallTimeout=setTimeout(function(e){return function(){return e.previousCallTime=0,e.delayedCallTimeout=null,e._lookUp(t)}}(this),e)):(this._stopDelayedCall(),this.previousCallTime!==i&&(this.previousCallTime=0),this._lookUp(t))},i.prototype._stopDelayedCall=function(){return this.delayedCallTimeout?(clearTimeout(this.delayedCallTimeout),this.delayedCallTimeout=null):void 0},i.prototype._generateQueryCBId=function(){return{}},i.prototype._lookUp=function(e){var i;return i=function(t,e){return t===this.expectedQueryCBId?e&&e.length>0?this.renderView(this.constructor.arrayToDefaultHash(e)):this.view.hide():void 0},this.expectedQueryCBId=this._generateQueryCBId(),this.model.query(e.text,t.proxy(i,this,this.expectedQueryCBId))},i}();var s,a=function(t,e){function i(){this.constructor=t}for(var n in e)h.call(e,n)&&(t[n]=e[n]);return i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype,t},h={}.hasOwnProperty;s=function(e){function i(){return i.__super__.constructor.apply(this,arguments)}return a(i,e),i.prototype.catchQuery=function(){var t,e,i,n,r,o,s;return e=this.$inputor.val(),t=this.$inputor.caret(\"pos\",{iframe:this.app.iframe}),s=e.slice(0,t),r=this.callbacks(\"matcher\").call(this,this.at,s,this.getOpt(\"startWithSpace\"),this.getOpt(\"acceptSpaceBar\")),n=\"string\"==typeof r,n&&r.length<this.getOpt(\"minLen\",0)?void 0:(n&&r.length<=this.getOpt(\"maxLen\",20)?(o=t-r.length,i=o+r.length,this.pos=o,r={text:r,headPos:o,endPos:i},this.trigger(\"matched\",[this.at,r.text])):(r=null,this.view.hide()),this.query=r)},i.prototype.rect=function(){var e,i,n;if(e=this.$inputor.caret(\"offset\",this.pos-1,{iframe:this.app.iframe}))return this.app.iframe&&!this.app.iframeAsRoot&&(i=t(this.app.iframe).offset(),e.left+=i.left,e.top+=i.top),n=this.app.document.selection?0:2,{left:e.left,top:e.top,bottom:e.top+e.height+n}},i.prototype.insert=function(t,e){var i,n,r,o,s;return i=this.$inputor,n=i.val(),r=n.slice(0,Math.max(this.query.headPos-this.at.length,0)),o=\"\"===(o=this.getOpt(\"suffix\"))?o:o||\" \",t+=o,s=\"\"+r+t+n.slice(this.query.endPos||0),i.val(s),i.caret(\"pos\",r.length+t.length,{iframe:this.app.iframe}),i.is(\":focus\")||i.focus(),i.change()},i}(r);var l,a=function(t,e){function i(){this.constructor=t}for(var n in e)h.call(e,n)&&(t[n]=e[n]);return i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype,t},h={}.hasOwnProperty;l=function(e){function n(){return n.__super__.constructor.apply(this,arguments)}return a(n,e),n.prototype._getRange=function(){var t;return t=this.app.window.getSelection(),t.rangeCount>0?t.getRangeAt(0):void 0},n.prototype._setRange=function(e,i,n){return null==n&&(n=this._getRange()),n&&i?(i=t(i)[0],\"after\"===e?(n.setEndAfter(i),n.setStartAfter(i)):(n.setEndBefore(i),n.setStartBefore(i)),n.collapse(!1),this._clearRange(n)):void 0},n.prototype._clearRange=function(t){var e;return null==t&&(t=this._getRange()),e=this.app.window.getSelection(),null==this.ctrl_a_pressed?(e.removeAllRanges(),e.addRange(t)):void 0},n.prototype._movingEvent=function(t){var e;return\"click\"===t.type||(e=t.which)===i.RIGHT||e===i.LEFT||e===i.UP||e===i.DOWN},n.prototype._unwrap=function(e){var i;return e=t(e).unwrap().get(0),(i=e.nextSibling)&&i.nodeValue&&(e.nodeValue+=i.nodeValue,t(i).remove()),e},n.prototype.catchQuery=function(e){var n,r,o,s,a,h,l,u,c,p,f,d;if((d=this._getRange())&&d.collapsed){if(e.which===i.ENTER)return(r=t(d.startContainer).closest(\".atwho-query\")).contents().unwrap(),r.is(\":empty\")&&r.remove(),(r=t(\".atwho-query\",this.app.document)).text(r.text()).contents().last().unwrap(),void this._clearRange();if(/firefox/i.test(navigator.userAgent)){if(t(d.startContainer).is(this.$inputor))return void this._clearRange();e.which===i.BACKSPACE&&d.startContainer.nodeType===document.ELEMENT_NODE&&(c=d.startOffset-1)>=0?(o=d.cloneRange(),o.setStart(d.startContainer,c),t(o.cloneContents()).contents().last().is(\".atwho-inserted\")&&(a=t(d.startContainer).contents().get(c),this._setRange(\"after\",t(a).contents().last()))):e.which===i.LEFT&&d.startContainer.nodeType===document.TEXT_NODE&&(n=t(d.startContainer.previousSibling),n.is(\".atwho-inserted\")&&0===d.startOffset&&this._setRange(\"after\",n.contents().last()))}if(t(d.startContainer).closest(\".atwho-inserted\").addClass(\"atwho-query\").siblings().removeClass(\"atwho-query\"),(r=t(\".atwho-query\",this.app.document)).length>0&&r.is(\":empty\")&&0===r.text().length&&r.remove(),this._movingEvent(e)||r.removeClass(\"atwho-inserted\"),r.length>0)switch(e.which){case i.LEFT:return this._setRange(\"before\",r.get(0),d),void r.removeClass(\"atwho-query\");case i.RIGHT:return this._setRange(\"after\",r.get(0).nextSibling,d),void r.removeClass(\"atwho-query\")}if(r.length>0&&(f=r.attr(\"data-atwho-at-query\"))&&(r.empty().html(f).attr(\"data-atwho-at-query\",null),this._setRange(\"after\",r.get(0),d)),o=d.cloneRange(),o.setStart(d.startContainer,0),u=this.callbacks(\"matcher\").call(this,this.at,o.toString(),this.getOpt(\"startWithSpace\"),this.getOpt(\"acceptSpaceBar\")),h=\"string\"==typeof u,0===r.length&&h&&(s=d.startOffset-this.at.length-u.length)>=0&&(d.setStart(d.startContainer,s),r=t(\"<span/>\",this.app.document).attr(this.getOpt(\"editableAtwhoQueryAttrs\")).addClass(\"atwho-query\"),d.surroundContents(r.get(0)),l=r.contents().last().get(0),l&&(/firefox/i.test(navigator.userAgent)?(d.setStart(l,l.length),d.setEnd(l,l.length),this._clearRange(d)):this._setRange(\"after\",l,d))),!(h&&u.length<this.getOpt(\"minLen\",0)))return h&&u.length<=this.getOpt(\"maxLen\",20)?(p={text:u,el:r},this.trigger(\"matched\",[this.at,p.text]),this.query=p):(this.view.hide(),this.query={el:r},r.text().indexOf(this.at)>=0&&(this._movingEvent(e)&&r.hasClass(\"atwho-inserted\")?r.removeClass(\"atwho-query\"):!1!==this.callbacks(\"afterMatchFailed\").call(this,this.at,r)&&this._setRange(\"after\",this._unwrap(r.text(r.text()).contents().first()))),null)}},n.prototype.rect=function(){var e,i,n;return n=this.query.el.offset(),n&&this.query.el[0].getClientRects().length?(this.app.iframe&&!this.app.iframeAsRoot&&(i=(e=t(this.app.iframe)).offset(),n.left+=i.left-this.$inputor.scrollLeft(),n.top+=i.top-this.$inputor.scrollTop()),n.bottom=n.top+this.query.el.height(),n):void 0},n.prototype.insert=function(t,e){var i,n,r,o,s;return this.$inputor.is(\":focus\")||this.$inputor.focus(),n=this.getOpt(\"functionOverrides\"),n.insert?n.insert.call(this,t,e):(o=\"\"===(o=this.getOpt(\"suffix\"))?o:o||\" \",i=e.data(\"item-data\"),this.query.el.removeClass(\"atwho-query\").addClass(\"atwho-inserted\").html(t).attr(\"data-atwho-at-query\",\"\"+i[\"atwho-at\"]+this.query.text).attr(\"contenteditable\",\"false\"),(r=this._getRange())&&(this.query.el.length&&r.setEndAfter(this.query.el[0]),r.collapse(!1),r.insertNode(s=this.app.document.createTextNode(\"\"+o)),this._setRange(\"after\",s,r)),this.$inputor.is(\":focus\")||this.$inputor.focus(),this.$inputor.change())},n}(r);var u;u=function(){function e(t){this.context=t,this.at=this.context.at,this.storage=this.context.$inputor}return e.prototype.destroy=function(){return this.storage.data(this.at,null)},e.prototype.saved=function(){return this.fetch()>0},e.prototype.query=function(t,e){var i,n,r;return n=this.fetch(),r=this.context.getOpt(\"searchKey\"),n=this.context.callbacks(\"filter\").call(this.context,t,n,r)||[],i=this.context.callbacks(\"remoteFilter\"),n.length>0||!i&&0===n.length?e(n):i.call(this.context,t,e)},e.prototype.fetch=function(){return this.storage.data(this.at)||[]},e.prototype.save=function(t){return this.storage.data(this.at,this.context.callbacks(\"beforeSave\").call(this.context,t||[]))},e.prototype.load=function(t){return!this.saved()&&t?this._load(t):void 0},e.prototype.reload=function(t){return this._load(t)},e.prototype._load=function(e){return\"string\"==typeof e?t.ajax(e,{dataType:\"json\"}).done(function(t){return function(e){return t.save(e)}}(this)):this.save(e)},e}();var c;c=function(){function e(e){this.context=e,this.$el=t(\"<div class='atwho-view'><ul class='atwho-view-ul'></ul></div>\"),this.$elUl=this.$el.children(),this.timeoutID=null,this.context.$el.append(this.$el),this.bindEvent()}return e.prototype.init=function(){var t,e;return e=this.context.getOpt(\"alias\")||this.context.at.charCodeAt(0),t=this.context.getOpt(\"headerTpl\"),t&&1===this.$el.children().length&&this.$el.prepend(t),this.$el.attr({id:\"at-view-\"+e})},e.prototype.destroy=function(){return this.$el.remove()},e.prototype.bindEvent=function(){var e,i,n;return e=this.$el.find(\"ul\"),i=0,n=0,e.on(\"mousemove.atwho-view\",\"li\",function(r){return function(r){var o;if((i!==r.clientX||n!==r.clientY)&&(i=r.clientX,n=r.clientY,o=t(r.currentTarget),!o.hasClass(\"cur\")))return e.find(\".cur\").removeClass(\"cur\"),o.addClass(\"cur\")}}(this)).on(\"click.atwho-view\",\"li\",function(i){return function(n){return e.find(\".cur\").removeClass(\"cur\"),t(n.currentTarget).addClass(\"cur\"),i.choose(n),n.preventDefault()}}(this))},e.prototype.visible=function(){return t.expr.filters.visible(this.$el[0])},e.prototype.highlighted=function(){return this.$el.find(\".cur\").length>0},e.prototype.choose=function(t){var e,i;return(e=this.$el.find(\".cur\")).length&&(i=this.context.insertContentFor(e),this.context._stopDelayedCall(),this.context.insert(this.context.callbacks(\"beforeInsert\").call(this.context,i,e,t),e),this.context.trigger(\"inserted\",[e,t]),this.hide(t)),this.context.getOpt(\"hideWithoutSuffix\")?this.stopShowing=!0:void 0},e.prototype.reposition=function(e){var i,n,r,o;return i=this.context.app.iframeAsRoot?this.context.app.window:window,e.bottom+this.$el.height()-t(i).scrollTop()>t(i).height()&&(e.bottom=e.top-this.$el.height()),e.left>(r=t(i).width()-this.$el.width()-5)&&(e.left=r),n={left:e.left,top:e.bottom},null!=(o=this.context.callbacks(\"beforeReposition\"))&&o.call(this.context,n),this.$el.offset(n),this.context.trigger(\"reposition\",[n])},e.prototype.next=function(){var t,e,i,n;return t=this.$el.find(\".cur\").removeClass(\"cur\"),e=t.next(),e.length||(e=this.$el.find(\"li:first\")),e.addClass(\"cur\"),i=e[0],n=i.offsetTop+i.offsetHeight+(i.nextSibling?i.nextSibling.offsetHeight:0),this.scrollTop(Math.max(0,n-this.$el.height()))},e.prototype.prev=function(){var t,e,i,n;return t=this.$el.find(\".cur\").removeClass(\"cur\"),i=t.prev(),i.length||(i=this.$el.find(\"li:last\")),i.addClass(\"cur\"),n=i[0],e=n.offsetTop+n.offsetHeight+(n.nextSibling?n.nextSibling.offsetHeight:0),this.scrollTop(Math.max(0,e-this.$el.height()))},e.prototype.scrollTop=function(t){var e;return e=this.context.getOpt(\"scrollDuration\"),e?this.$elUl.animate({scrollTop:t},e):this.$elUl.scrollTop(t)},e.prototype.show=function(){var t;return this.stopShowing?void(this.stopShowing=!1):(this.visible()||(this.$el.show(),this.$el.scrollTop(0),this.context.trigger(\"shown\")),(t=this.context.rect())?this.reposition(t):void 0)},e.prototype.hide=function(t,e){var i;if(this.visible())return isNaN(e)?(this.$el.hide(),this.context.trigger(\"hidden\",[t])):(i=function(t){return function(){return t.hide()}}(this),clearTimeout(this.timeoutID),this.timeoutID=setTimeout(i,e))},e.prototype.render=function(e){var i,n,r,o,s,a,h;if(!(t.isArray(e)&&e.length>0))return void this.hide();for(this.$el.find(\"ul\").empty(),n=this.$el.find(\"ul\"),h=this.context.getOpt(\"displayTpl\"),r=0,s=e.length;s>r;r++)o=e[r],o=t.extend({},o,{\"atwho-at\":this.context.at}),a=this.context.callbacks(\"tplEval\").call(this.context,h,o,\"onDisplay\"),i=t(this.context.callbacks(\"highlighter\").call(this.context,a,this.context.query.text)),i.data(\"item-data\",o),n.append(i);return this.show(),this.context.getOpt(\"highlightFirst\")?n.find(\"li:first\").addClass(\"cur\"):void 0},e}();var p;p={load:function(t,e){var i;return(i=this.controller(t))?i.model.load(e):void 0},isSelecting:function(){var t;return!!(null!=(t=this.controller())?t.view.visible():void 0)},hide:function(){var t;return null!=(t=this.controller())?t.view.hide():void 0},reposition:function(){var t;return(t=this.controller())?t.view.reposition(t.rect()):void 0},setIframe:function(t,e){return this.setupRootElement(t,e),null},run:function(){return this.dispatch()},destroy:function(){return this.shutdown(),this.$inputor.data(\"atwho\",null)}},t.fn.atwho=function(e){var i,r;return i=arguments,r=null,this.filter('textarea, input, [contenteditable=\"\"], [contenteditable=true]').each(function(){var o,s;return(s=(o=t(this)).data(\"atwho\"))||o.data(\"atwho\",s=new n(this)),\"object\"!=typeof e&&e?p[e]&&s?r=p[e].apply(s,Array.prototype.slice.call(i,1)):t.error(\"Method \"+e+\" does not exist on jQuery.atwho\"):s.reg(e.at,e)}),null!=r?r:this},t.fn.atwho[\"default\"]={at:void 0,alias:void 0,data:null,displayTpl:\"<li>${name}</li>\",insertTpl:\"${atwho-at}${name}\",headerTpl:null,callbacks:e,functionOverrides:{},searchKey:\"name\",suffix:void 0,hideWithoutSuffix:!1,startWithSpace:!0,acceptSpaceBar:!1,highlightFirst:!0,limit:5,maxLen:20,minLen:0,displayTimeout:300,delay:null,spaceSelectsMatch:!1,tabSelectsMatch:!0,editableAtwhoQueryAttrs:{},scrollDuration:150,suspendOnComposing:!0,lookUpOnClick:!0},t.fn.atwho.debug=!1});","var content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js!./autocomplete.scss\");\n\nif (typeof content === 'string') {\n content = [[module.id, content, '']];\n}\n\nvar options = {}\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = require(\"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\")(content, options);\n\nif (content.locals) {\n module.exports = content.locals;\n}\n","exports = module.exports = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".atwho-view{position:absolute;top:0;left:0;display:none;margin-top:18px;background:var(--color-main-background);color:var(--color-main-text);border:1px solid var(--color-border);border-radius:var(--border-radius);box-shadow:0 0 5px var(--color-box-shadow);min-width:120px;z-index:11110 !important}.atwho-view .atwho-header{padding:5px;margin:5px;cursor:pointer;border-bottom:solid 1px var(--color-border);color:var(--color-main-text);font-size:11px;font-weight:bold}.atwho-view .atwho-header .small{color:var(--color-main-text);float:right;padding-top:2px;margin-right:-5px;font-size:12px;font-weight:normal}.atwho-view .atwho-header:hover{cursor:default}.atwho-view .cur{background:var(--color-primary);color:var(--color-primary-text)}.atwho-view .cur small{color:var(--color-primary-text)}.atwho-view strong{color:var(--color-main-text);font-weight:normal}.atwho-view .cur strong{color:var(--color-primary-text);font-weight:normal}.atwho-view ul{list-style:none;padding:0;margin:auto;max-height:200px;overflow-y:auto}.atwho-view ul li{display:block;padding:5px 10px;border-bottom:1px solid var(--color-border);cursor:pointer}.atwho-view small{font-size:smaller;color:var(--color-main-text);font-weight:normal}\\n\", \"\"]);\n","var content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js!./comments.scss\");\n\nif (typeof content === 'string') {\n content = [[module.id, content, '']];\n}\n\nvar options = {}\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = require(\"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\")(content, options);\n\nif (content.locals) {\n module.exports = content.locals;\n}\n","exports = module.exports = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"#commentsTabView .emptycontent{margin-top:0}#commentsTabView .newCommentForm{margin-left:36px;position:relative}#commentsTabView .newCommentForm .message{width:100%;padding:10px;min-height:44px;margin:0;padding-right:30px}#commentsTabView .newCommentForm .submit,#commentsTabView .newCommentForm .submitLoading{width:44px;height:44px;margin:0;padding:13px;background-color:transparent;border:none;opacity:.3;position:absolute;bottom:0;right:0}#commentsTabView .deleteLoading{padding:14px;vertical-align:middle}#commentsTabView .newCommentForm .submit:not(:disabled):hover,#commentsTabView .newCommentForm .submit:not(:disabled):focus{opacity:1}#commentsTabView .newCommentForm div.message{resize:none}#commentsTabView .newCommentForm div.message:empty:before{content:attr(data-placeholder);color:grey}#commentsTabView .comment{position:relative;padding:10px 0 15px}#commentsTabView .comments .comment{border-top:1px solid var(--color-border)}#commentsTabView .comment .avatar,.atwho-view-ul * .avatar{width:32px;height:32px;line-height:32px;margin-right:5px}#commentsTabView .comment .message .avatar,.atwho-view-ul * .avatar{display:inline-block}#activityTabView li.comment.collapsed .activitymessage,#commentsTabView .comment.collapsed .message{white-space:pre-wrap}#activityTabView li.comment.collapsed .activitymessage,#commentsTabView .comment.collapsed .message{max-height:70px;overflow:hidden}#activityTabView li.comment .message-overlay,#commentsTabView .comment .message-overlay{display:none}#activityTabView li.comment.collapsed .message-overlay,#commentsTabView .comment.collapsed .message-overlay{display:block;position:absolute;z-index:2;height:50px;pointer-events:none;left:0;right:0;bottom:0;background:-moz-linear-gradient(rgba(var(--color-main-background), 0), var(--color-main-background));background:-webkit-linear-gradient(rgba(var(--color-main-background), 0), var(--color-main-background));background:-o-linear-gradient(rgba(var(--color-main-background), 0), var(--color-main-background));background:-ms-linear-gradient(rgba(var(--color-main-background), 0), var(--color-main-background));background:linear-gradient(rgba(var(--color-main-background), 0), var(--color-main-background));background-repeat:no-repeat}#commentsTabView .hidden{display:none !important}#commentsTabView .comment .authorRow{min-height:44px}#commentsTabView .comment .authorRow .tooltip{margin-top:5px}.atwho-view-ul * .avatar-name-wrapper,#commentsTabView .comment .authorRow{position:relative;display:inline-flex;align-items:center;width:100%}#commentsTabView .comment:not(.newCommentRow) .message .avatar-name-wrapper:not(.currentUser),#commentsTabView .comment:not(.newCommentRow) .message .avatar-name-wrapper:not(.currentUser) .avatar,#commentsTabView .comment:not(.newCommentRow) .message .avatar-name-wrapper:not(.currentUser) .avatar img,#commentsTabView .comment .authorRow .avatar:not(.currentUser),#commentsTabView .comment .authorRow .author:not(.currentUser){cursor:pointer}.atwho-view-ul .avatar-name-wrapper,.atwho-view-ul .avatar-name-wrapper .avatar,.atwho-view-ul .avatar-name-wrapper .avatar img{cursor:pointer}#commentsTabView .comments li .message .atwho-inserted .avatar-name-wrapper,#commentsTabView .newCommentForm .atwho-inserted .avatar-name-wrapper{position:relative;display:inline;vertical-align:top;background-color:var(--color-background-dark);border-radius:50vh;padding:1px 7px 1px 1px;white-space:nowrap}#commentsTabView .comments li .message .atwho-inserted .avatar-name-wrapper .avatar,#commentsTabView .newCommentForm .atwho-inserted .avatar-name-wrapper .avatar{height:16px;width:16px;vertical-align:middle;padding:1px;margin-top:-3px;margin-left:0;margin-right:2px}#commentsTabView .comments li .message .atwho-inserted .avatar-name-wrapper .avatar img,#commentsTabView .newCommentForm .atwho-inserted .avatar-name-wrapper .avatar img{vertical-align:top}#commentsTabView .comments li .message .atwho-inserted .avatar-name-wrapper strong,#commentsTabView .newCommentForm .atwho-inserted .avatar-name-wrapper strong{font-weight:bold}#commentsTabView .comments li .message .atwho-inserted .avatar-name-wrapper.currentUser,#commentsTabView .newCommentForm .atwho-inserted .avatar-name-wrapper.currentUser{background-color:var(--color-primary);color:var(--color-primary-text)}.atwho-view-ul * .avatar-name-wrapper{white-space:nowrap}#commentsTabView .comment .author,#commentsTabView .comment .date{opacity:.5}#commentsTabView .comment .author{max-width:210px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}#commentsTabView .comment .date{margin-left:auto;padding:10px 0px}#commentsTabView .comments>li:not(.newCommentRow) .message{padding-left:40px;word-wrap:break-word;overflow-wrap:break-word}#commentsTabView .comment .action{opacity:0.3;padding:14px;display:block}#commentsTabView .comment .action:hover,#commentsTabView .comment .action:focus{opacity:1}#commentsTabView .newCommentRow .action-container{margin-left:auto}#commentsTabView .comment.disabled .message{opacity:0.3}#commentsTabView .comment.disabled .action{display:none}#commentsTabView .message.error{color:#e9322d;border-color:#e9322d;box-shadow:0 0 6px #f8b9b7}.app-files .action-comment{padding:16px 14px}#commentsTabView .comment .message .contactsmenu-popover{left:-6px;top:24px}\\n\", \"\"]);\n"],"sourceRoot":""} \ No newline at end of file