diff --git a/resources/report/html/loot-plugin-card.html b/resources/report/html/loot-plugin-card.html index 068f97c2..c085f07c 100644 --- a/resources/report/html/loot-plugin-card.html +++ b/resources/report/html/loot-plugin-card.html @@ -162,6 +162,8 @@ loot-clear-metadata observe: { 'data.crc': 'onCrcChange', + 'data.tags': 'onTagsChange', + 'data.messages': 'onMessagesChange' }, attached: function() { @@ -196,24 +198,44 @@ loot-clear-metadata this.shadowRoot.getElementById('editor').data = this.data; if (newValue != undefined) { /* Also initialise the non-simple-string data. */ + this.onCrcChange(); + this.onTagsChange(); + this.onMessagesChange(); + } + }, - /* CRC */ - this.getElementsByClassName('crc')[0].textContent = newValue.getCrcString(); + onCrcChange: function(oldValue, newValue) { + if (this.data) { + this.getElementsByClassName('crc')[0].textContent = this.data.getCrcString(); + } else { + this.getElementsByClassName('crc')[0].textContent = ''; + } + }, - /* Bash Tags */ - var tags = newValue.getTagStrings(); - this.getElementsByClassName('tag add')[0].textContent = tags.added; - this.getElementsByClassName('tag add')[0].classList.toggle('hidden', tags.added.length == 0); - this.getElementsByClassName('tag remove')[0].textContent = tags.removed; - this.getElementsByClassName('tag remove')[0].classList.toggle('hidden', tags.removed.length == 0); + onTagsChange: function(oldValue, newValue) { + var tags; + if (this.data) { + tags = this.data.getTagStrings(); + } else { + tags = { + added: [], + removed: [] + }; + } + this.getElementsByClassName('tag add')[0].textContent = tags.added; + this.getElementsByClassName('tag add')[0].classList.toggle('hidden', tags.added.length == 0); + this.getElementsByClassName('tag remove')[0].textContent = tags.removed; + this.getElementsByClassName('tag remove')[0].classList.toggle('hidden', tags.removed.length == 0); + }, - /* Messages */ - /* First clear any existing messages. */ - var messageUL = this.getElementsByTagName('ul')[0]; - while(messageUL.firstElementChild) { - messageUL.removeChild(messageUL.firstElementChild); - } - var messages = newValue.getUIMessages(); + onMessagesChange: function(oldValue, newValue) { + /* First clear any existing messages. */ + var messageUL = this.getElementsByTagName('ul')[0]; + while(messageUL.firstElementChild) { + messageUL.removeChild(messageUL.firstElementChild); + } + if (this.data) { + var messages = this.data.getUIMessages(); for (var i = 0; i < messages.length; ++i) { messageUL.appendChild(messages[i]); } @@ -221,10 +243,6 @@ loot-clear-metadata } }, - onCrcChange: function(oldValue, newValue) { - this.getElementsByClassName('crc')[0].textContent = this.data.getCrcString(); - }, - getName: function() { return this.getElementsByTagName('h1')[0].textContent; },