Skip to content
Snippets Groups Projects
save-numeric-package.component.ts 4.65 KiB
Newer Older
import { Component, OnInit, NgZone } from '@angular/core';
import { Http } from '@angular/http';
import { NotificationService } from './notification.service';

declare function $j(selector: any) : any;

declare var angularGlobals : any;


@Component({
    templateUrl : "../../../Views/save-numeric-package.component.html",
Florian Azizian's avatar
Florian Azizian committed
    // styleUrls   : ['../../node_modules/bootstrap/dist/css/bootstrap.min.css', 'css/profile.component.css']
})
export class SaveNumericPackageComponent implements OnInit {

    coreUrl                     : string;

    numericPackage              : any       = {
        base64                  : "",
        name                    : "",
        type                    : "",
        size                    : 0,
        label                   : "",
        extension               : "",
    };

    loading                     : boolean   = false;


    constructor(public http: Http, private zone: NgZone, private notify: NotificationService) {
        window['angularSaveNumericPackageComponent'] = {
            componentAfterUpload: (base64Content: any) => this.processAfterUpload(base64Content),
        };
    }

    preparePage() {
        $j('#inner_content').remove();
        $j('#menunav').hide();
        $j('#divList').remove();
        $j('#magicContactsTable').remove();
        $j('#manageBasketsOrderTable').remove();
        $j('#controlParamTechnicTable').remove();
        $j('#container').width("99%");
        if ($j('#content h1')[0] && $j('#content h1')[0] != $j('my-app h1')[0]) {
            $j('#content h1')[0].remove();
        }

    }

    updateBreadcrumb(applicationName: string) {
        if ($j('#ariane')[0]) {
            $j('#ariane')[0].innerHTML = "<a href='index.php?reinit=true'>" + applicationName + "</a> > Enregistrer un pli numérique";
        }
    }

    ngOnInit(): void {
        this.preparePage();
        this.updateBreadcrumb(angularGlobals.applicationName);
        this.coreUrl = angularGlobals.coreUrl;

        this.loading = false;

    }

    processAfterUpload(b64Content: any) {
        this.zone.run(() => this.resfreshUpload(b64Content));
    }

    resfreshUpload(b64Content: any) {
        this.numericPackage.base64 = b64Content.replace(/^data:.*?;base64,/, "");
    }

    uploadNumericPackage(fileInput: any) {
        if (fileInput.target.files && fileInput.target.files[0]) {
            var reader = new FileReader();

            this.numericPackage.name = fileInput.target.files[0].name;
            this.numericPackage.size = fileInput.target.files[0].size;
            this.numericPackage.type = fileInput.target.files[0].type;
            this.numericPackage.extension = fileInput.target.files[0].name.split('.').pop();
            if (this.numericPackage.label == "") {
                this.numericPackage.label = this.numericPackage.name;
            }

            reader.readAsDataURL(fileInput.target.files[0]);

            reader.onload = function (value: any) {
                window['angularSaveNumericPackageComponent'].componentAfterUpload(value.target.result);
            };

        }
    }

    submitNumericPackage() {
        if(this.numericPackage.size != 0) {
            this.http.post(this.coreUrl + 'rest/saveNumericPackage', this.numericPackage)
                .subscribe((data : any) => {
                    if (data.errors) {
                        this.notify.error(data.errors);
                    } else {
                        this.numericPackage  = {
                            base64                  : "",
                            name                    : "",
                            type                    : "",
                            size                    : 0,
                            label                   : "",
                            extension               : "",
                        };
                        $j("#numericPackageFilePath").val(null);
                        this.notify.success('Pli numérique correctement importé');

                        if(data.basketRedirection != null){
                            window.location.href = data.basketRedirection;
                            // action_send_first_request('index.php?display=true&page=manage_action&module=core', 'page',  22, '', 'res_letterbox', 'basket', 'letterbox_coll');
                        }
                    }
                });
        } else {
            this.numericPackage.name        = "";
            this.numericPackage.size        = 0;
            this.numericPackage.type        = "";
            this.numericPackage.base64      = "";
            this.numericPackage.extension   = "";

            this.notify.error("Aucun pli numérique séléctionné");