addElement(data) { var item = document.createElement('li'); item.classList.add('item', data.type); item.innerHTML = this.listItemTemplate(data); IconHelper.setImage(item.querySelector('.icon'), data.icon); this.el.appendChild(item); item.addEventListener('click', function(data, evt) { if (evt.target.classList.contains('install-button')) { return; } this.detailsHandlers.forEach(handler => { handler(data); }); }.bind(this, data)); item.querySelector('.install-button').addEventListener('click', function(data) { this.installHandlers.forEach(handler => { handler(data); }); }.bind(this, data)); return item; }
updateElement(element, data) { element.classList.toggle('installed', data.installed); var button = element.querySelector('.install-button'); button.textContent = data.installed ? 'Open' : 'Install'; var icon = element.querySelector('.icon'); if (data.icon && icon.src !== data.icon) { IconHelper.setImage(icon, data.icon); } }
fillAppDetails(app) { var detail = Object.create(null); detail.manifestURL = app.manifestURL; detail.name = app.manifest.name; detail.description = app.manifest.description; detail.icon = IconHelper.getIconURL(app, app.manifest.icons); detail.author = app.manifest.developer ? app.manifest.developer.name : ''; detail.app = app; return detail; }
fillAppDetailsFromEntryPoint(app, entry_point) { var detail = Object.create(null); detail.manifestURL = app.manifestURL; detail.description = app.manifest.description; detail.author = app.manifest.developer ? app.manifest.developer.name : ''; detail.app = app; detail.name = app.manifest.entry_points[entry_point].name; detail.icon = IconHelper.getIconURL(app, app.manifest.entry_points[entry_point].icons); detail.entry_point = entry_point; return detail; }
addElement(data) { var item = document.createElement('li'); item.classList.add('app'); item.innerHTML = Sanitizer.unwrapSafeHTML(this.listItemTemplate(data)); IconHelper.setImage(item.querySelector('.icon'), data.icon); this.el.appendChild(item); item.querySelector('.open-button').addEventListener('click', function(data) { this.openHandler(data); }.bind(this, data)); return item; }