client/tags: fix detecting changes to names
Since 243ab15
the order of tag aliases matters, so the changes need to
pick up also permuting - which were ignored before.
This commit is contained in:
parent
4bfdd4c5cb
commit
997eb3de63
2 changed files with 13 additions and 2 deletions
|
@ -45,7 +45,7 @@ class Tag extends events.EventTarget {
|
|||
const detail = {version: this._version};
|
||||
|
||||
// send only changed fields to avoid user privilege violation
|
||||
if (misc.arraysDiffer(this._names, this._orig._names)) {
|
||||
if (misc.arraysDiffer(this._names, this._orig._names, true)) {
|
||||
detail.names = this._names;
|
||||
}
|
||||
if (this._category !== this._orig._category) {
|
||||
|
|
|
@ -252,9 +252,20 @@ function escapeHtml(unsafe) {
|
|||
.replace(/'/g, ''');
|
||||
}
|
||||
|
||||
function arraysDiffer(source1, source2) {
|
||||
function arraysDiffer(source1, source2, orderImportant) {
|
||||
source1 = [...source1];
|
||||
source2 = [...source2];
|
||||
if (orderImportant === true) {
|
||||
if (source1.length !== source2.length) {
|
||||
return true;
|
||||
}
|
||||
for (let i = 0; i < source1.length; i++) {
|
||||
if (source1[i] !== source2[i]) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return (
|
||||
source1.filter(value => !source2.includes(value)).length > 0 ||
|
||||
source2.filter(value => !source1.includes(value)).length > 0);
|
||||
|
|
Loading…
Reference in a new issue