summaryrefslogtreecommitdiffstats
path: root/core/src
diff options
context:
space:
mode:
authorDaniel Kesselberg <mail@danielkesselberg.de>2022-09-15 16:31:40 +0200
committerDaniel Kesselberg <mail@danielkesselberg.de>2022-09-15 17:08:04 +0200
commit700875d90d391543e5ebd8ed96459f45351ad763 (patch)
tree8353c87dd13e01f206996baf8048ee758a656c7c /core/src
parent1bfac6d0941894677117144519d14f8f3ed455ec (diff)
downloadnextcloud-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.js19
-rw-r--r--core/src/systemtags/systemtagsinputfield.js4
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))
},