saveAlbumAction und uploadAction in Upload.js (Plugin)?

Hi,

in meinem Plugin wird ein File Upload realisiert in ein vorgegebenes Album realiasiert:

url: ‚{url controller=„mediaManager“ action=„upload“}?albumID=‘+me.albumId

wobei ich nun gern den Usecase 1.) Album anlegen und 2.) dann die Bilder hochladen realisieren möchte. (Der Albumname soll die Artikel ID oder auch Datum sein…) 

 

Ich weiß bereits zuverlässig, dass ich erst die action=„saveAlbum“ anwenden können soll um dann verschachtelt action=„upload“ zu initieren.

jetzt Frage ich mich … wie?  

und auch … kann der folgende Parameter String für die saveAlbum Action einmal begutachtet werden? … folgendes geht demnach nicht.

 

//url: ‚{url controller=„mediaManager“ action=„upload“}?albumID=‘+me.albumId,
url: ‚{url controller=„mediaManager“ action=„saveAlbum“}?text=‘+selectedArticleID+’&parentId=’+me.albumId+’&iconCls=„sprite-eye–arrow“&createThumbnails=1&thumbnailSize=400x400’,

 

und dann habe ich eine abschließende ganz wesentliche Frage… bisher habe ich scheinbar nur den IE und Safari Lösung an der Hand… über die URL …

ich habe keinen Plan wie ich die Verschachtelung und saveAlbumAction für gewöhnlich in der Funktion auflösen kann - Vielen Dank!

 

createUploadFields: function() {
        var me = this;

        me.fileUploadField = Ext.create('Ext.form.field.File', {
            fieldLabel: me.snippets.mediaUpload,
            buttonOnly: false,
            labelWidth: 100,
            width: '100%',
            name: 'fileId',
            buttonText : me.snippets.upload,
            listeners: {
                scope: this,
                afterrender: function(btn) {
                    btn.fileInputEl.dom.multiple = true;
                },
                change: function(field) {
                    me.fireEvent('mediaUpload', field)
                }
            },
            buttonConfig : {
                iconCls: 'sprite-inbox-upload',
                cls: 'small secondary'
            }
        });

        if(Ext.isIE || Ext.isSafari) {
            var form = Ext.create('Ext.form.Panel', {
                unstyled: true,
                border: 0,
                bodyBorder: 0,
                style: 'background: transparent',
                bodyStyle: 'background: transparent',
                //url: '{url controller="mediaManager" action="upload"}?albumID='+me.albumId,
				//url: '{url controller="mediaManager" action="saveAlbum"}?text='Test'&parentId='+me.albumId+'&iconCls="sprite-eye--arrow"&createThumbnails=1&thumbnailSize=400x400',
				url: '{url controller="mediaManager" action="saveAlbum"}?text='Test'&parentId='+me.albumId+'&iconCls=sprite-eye--arrow',
                items: [me.fileUploadField]
            });
            me.fileUploadField = form;
        }

        // Media selection field
        me.mediaSelection = Ext.create('Shopware.MediaManager.MediaSelection', {
            fieldLabel: me.snippets.mediaSelection,
            labelWidth: 100,
            name: 'media-manager-selection',
            multiSelect: true,
            width: '100%',
            buttonText: me.snippets.mediaSelection,
            buttonConfig : {
                width:150
            },
            albumId: me.albumId,
            allowBlank: false,
            validTypes: me.getAllowedExtensions(),
            validTypeErrorFunction: me.getExtensionErrorCallback()
        });

        return Ext.create('Ext.container.Container', {
            width: '100%',
            layout: 'vbox',
            margin: '20 0 0 0',
            items: [
                me.mediaSelection,
                me.fileUploadField
            ]
        });
    },