import ngModule from '../module';

class Controller {
    constructor($, $http, vnApp, $translate) {
        this.$http = $http;
        this.vnApp = vnApp;
        this.$translate = $translate;
        this.$ = $;
        this.moreOptions = [
            {callback: this.showRouteReport, name: 'Show route report'},
            {callback: this.sendRouteReport, name: 'Send route report'}
        ];
    }
    set quicklinks(value = {}) {
        this._quicklinks = Object.assign(value, this._quicklinks);
    }

    get quicklinks() {
        return this._quicklinks;
    }

    onMoreChange(callback) {
        callback.call(this);
    }

    showRouteReport() {
        let url = `/api/report/rpt-route?routeFk=${this.route.id}`;
        window.open(url);
    }

    sendRouteReport() {
        let url = `/api/email/driver-route?routeFk=${this.route.id}`;
        this.$http.post(url).then(() => {
            this.vnApp.showSuccess(this.$translate.instant('Report sent'));
        });
    }
}

Controller.$inject = ['$scope', '$http', 'vnApp', '$translate'];

ngModule.component('vnRouteDescriptor', {
    template: require('./index.html'),
    bindings: {
        route: '<',
        quicklinks: '<'
    },
    controller: Controller
});