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};
|
const detail = {version: this._version};
|
||||||
|
|
||||||
// send only changed fields to avoid user privilege violation
|
// 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;
|
detail.names = this._names;
|
||||||
}
|
}
|
||||||
if (this._category !== this._orig._category) {
|
if (this._category !== this._orig._category) {
|
||||||
|
|
|
@ -252,9 +252,20 @@ function escapeHtml(unsafe) {
|
||||||
.replace(/'/g, ''');
|
.replace(/'/g, ''');
|
||||||
}
|
}
|
||||||
|
|
||||||
function arraysDiffer(source1, source2) {
|
function arraysDiffer(source1, source2, orderImportant) {
|
||||||
source1 = [...source1];
|
source1 = [...source1];
|
||||||
source2 = [...source2];
|
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 (
|
return (
|
||||||
source1.filter(value => !source2.includes(value)).length > 0 ||
|
source1.filter(value => !source2.includes(value)).length > 0 ||
|
||||||
source2.filter(value => !source1.includes(value)).length > 0);
|
source2.filter(value => !source1.includes(value)).length > 0);
|
||||||
|
|
Loading…
Reference in a new issue