import ngModule from '../module'; import Component from 'core/lib/component'; class Controller extends Component { constructor($element, $, $httpParamSerializer, vnConfig) { super($element, $); this.vnConfig = vnConfig; this.$httpParamSerializer = $httpParamSerializer; this.moreOptions = [ {name: 'Show entry report', callback: this.showEntryReport} ]; } onMoreChange(callback) { callback.call(this); } get entry() { return this._entry; } set entry(value) { this._entry = value; if (!value) return; const date = value.travel.landed; let to = new Date(date); let from = new Date(date); to.setDate(to.getDate() + 10); to.setHours(0, 0, 0, 0); from.setDate(from.getDate() - 10); from.setHours(0, 0, 0, 0); let links = { btnOne: { icon: 'local_airport', state: `travel.index({q: '{"agencyFk": ${value.travel.agencyFk}}'})`, tooltip: 'All travels with current agency' }}; links.btnTwo = { icon: 'icon-entry', state: `entry.index({q: '{"supplierFk": ${value.supplierFk}, "to": "${to}", "from": "${from}"}'})`, tooltip: 'All entries with current supplier' }; this._quicklinks = links; } get quicklinks() { return this._quicklinks; } set quicklinks(value = {}) { this._quicklinks = Object.assign(value, this._quicklinks); } showEntryReport() { const params = { clientId: this.vnConfig.storage.currentUserWorkerId, entryId: this.entry.id }; const serializedParams = this.$httpParamSerializer(params); let url = `api/report/entry-order?${serializedParams}`; window.open(url); } } Controller.$inject = ['$element', '$scope', '$httpParamSerializer', 'vnConfig']; ngModule.component('vnEntryDescriptor', { template: require('./index.html'), bindings: { entry: '<', quicklinks: '<' }, require: { card: '^?vnEntryCard' }, controller: Controller });