diff options
author | Daniel Kesselberg <mail@danielkesselberg.de> | 2022-09-15 16:31:40 +0200 |
---|---|---|
committer | Daniel Kesselberg <mail@danielkesselberg.de> | 2022-09-15 17:08:04 +0200 |
commit | 700875d90d391543e5ebd8ed96459f45351ad763 (patch) | |
tree | 8353c87dd13e01f206996baf8048ee758a656c7c /core/src | |
parent | 1bfac6d0941894677117144519d14f8f3ed455ec (diff) | |
download | nextcloud-server-700875d90d391543e5ebd8ed96459f45351ad763.tar.gz nextcloud-server-700875d90d391543e5ebd8ed96459f45351ad763.zip |
Rewrite OC.SystemTags.getDescriptiveTag to vanilla js
For every tag a deprecation warning is emitted.
With 10k tags the ui becomes unresponsive and inspector crashed occasionally.
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
Diffstat (limited to 'core/src')
-rw-r--r-- | core/src/systemtags/systemtags.js | 19 | ||||
-rw-r--r-- | core/src/systemtags/systemtagsinputfield.js | 4 |
2 files changed, 13 insertions, 10 deletions
diff --git a/core/src/systemtags/systemtags.js b/core/src/systemtags/systemtags.js index 91ace6b3425..bbb2ecac1d8 100644 --- a/core/src/systemtags/systemtags.js +++ b/core/src/systemtags/systemtags.js @@ -35,23 +35,24 @@ import escapeHTML from 'escape-html' /** * * @param {OC.SystemTags.SystemTagModel|Object|String} tag - * @returns {jQuery} + * @returns {HTMLElement} */ getDescriptiveTag: function(tag) { if (_.isUndefined(tag.name) && !_.isUndefined(tag.toJSON)) { tag = tag.toJSON() } + var $span = document.createElement('span') + if (_.isUndefined(tag.name)) { - return $('<span>').addClass('non-existing-tag').text( - t('core', 'Non-existing tag #{tag}', { + $span.classList.add('non-existing-tag') + $span.textContent = t('core', 'Non-existing tag #{tag}', { tag: tag - }) - ) + }) + return $span } - var $span = $('<span>') - $span.append(escapeHTML(tag.name)) + $span.textContent = escapeHTML(tag.name) var scope if (!tag.userAssignable) { @@ -62,7 +63,9 @@ import escapeHTML from 'escape-html' scope = t('core', 'invisible') } if (scope) { - $span.append($('<em>').text(' (' + scope + ')')) + var $scope = document.createElement('em') + $scope.textContent = ' (' + scope + ')' + $span.appendChild($scope) } return $span } diff --git a/core/src/systemtags/systemtagsinputfield.js b/core/src/systemtags/systemtagsinputfield.js index 7c68a4b09ad..1b6fb71f42d 100644 --- a/core/src/systemtags/systemtagsinputfield.js +++ b/core/src/systemtags/systemtagsinputfield.js @@ -292,7 +292,7 @@ import templateSelection from './templates/selection.handlebars' return templateResult(_.extend({ renameTooltip: t('core', 'Rename'), allowActions: this._allowActions, - tagMarkup: this._isAdmin ? OC.SystemTags.getDescriptiveTag(data)[0].innerHTML : null, + tagMarkup: this._isAdmin ? OC.SystemTags.getDescriptiveTag(data).innerHTML : null, isAdmin: this._isAdmin }, data)) }, @@ -305,7 +305,7 @@ import templateSelection from './templates/selection.handlebars' */ _formatSelection: function(data) { return templateSelection(_.extend({ - tagMarkup: this._isAdmin ? OC.SystemTags.getDescriptiveTag(data)[0].innerHTML : null, + tagMarkup: this._isAdmin ? OC.SystemTags.getDescriptiveTag(data).innerHTML : null, isAdmin: this._isAdmin }, data)) }, |