﻿// $Id: Main.js 18890 2009-10-28 16:18:56Z joris $

Ext.namespace('V12.Cms.Modules');


V12.Cms.Modules.MenuDocuments = Ext.extend(V12.Cms.Module, {
    dependencies: ['CustomModules/MenuDocuments/DocumentPanel.js'],

    commands: [{
        groupName: V12.tr('Menu'),
        commandName: V12.tr('Menu items'),

        groupIcon: "silk-link-go",
        iconClass: "silk-link-edit",
        commandFunction: function() {
            var me = this;
            var documentGrid = new V12.Cms.Modules.MenuDocuments.DocumentPanel({
                height: 200, 
                fillContainer: true,
                title: 'Gekoppelde bestanden',
                
                filter: { menuId: -1 },
                menuId: -1,
                handler: V12.Cms.Context.cmsUrl + 'CustomModules/MenuDocuments/MenuDocumentHandler.ashx'
            });

            /*var documentPanel = new Ext.Panel({ title: 'Gekoppelde bestanden', layout: 'fit', height: 200, fillContainer: true, border: false });
            documentPanel.add(documentGrid);
            documentPanel.doLayout();*/

            var treePanel = V12.Cms.Modules.Menu.TreePanel();
            var basicProperties = new V12.Cms.Modules.Menu.MenuForm();

            var translateStore = new V12.Cms.Data.Store({
                handler: 'modules/Menu/Translates/CmsHandlerData.ashx',
                filter: null,
                directLoad: false,
                autoSave: false
            });

            var multiLanguageForm = new V12.Cms.Modules.Menu.MultiLanguageForm({
                translateStore: translateStore
            });
            multiLanguageForm.on('nameChanged', function(newName, language) {
                if (V12.Cms.Context.user.languageCode == language) {
                    me.selectedNode.setText(newName);
                }
            });

            var saveButton = new Ext.Button({
                text: V12.tr('Save'),
                handler: function() {
                    var valid = multiLanguageForm.isValid();
                    valid = valid && basicProperties.getForm().isValid();
                    if (valid) {
                        multiLanguageForm.saveRecords(basicProperties.translateId);
                        basicProperties.getForm().updateRecord(basicProperties.record);
                        propertyPanels.fbar.addText('Saved');
                    } else {
                        V12.error('Niet opgeslagen', 'Let op: Dit item is niet opgeslagen omdat niet alle velden juist zijn ingevuld');
                    }
                }
            });
            
            var propertyPanels = new Ext.Panel({
                //layout: 'vbox',
                layout: 'fillcontainer',
                autoScroll: true,
                layoutConfig: { align: 'stretch' },
                title: V12.tr('Menu item properties'),
                region: 'center',
                border: true,
                buttons: [saveButton],
                items: [multiLanguageForm, basicProperties, documentGrid]
            });

            var mainPanel = new Ext.Panel({
                layout: 'border',
                border: false,
                items: [treePanel, propertyPanels]
            });

            V12.Cms.Modules.Core.requestSwitchPanel(mainPanel);
            treePanel.getSelectionModel().on('selectionchange', function(tree, node) {
                if (node) {
                    propertyPanels.setDisabled(true);
                    var translateId = node.record.get('translateId');
                    basicProperties.getForm().loadRecord(node.record);
                    basicProperties.record = node.record;
                    basicProperties.translateId = translateId;
                    me.selectedNode = node;

                    var filter = { 'translateId': translateId };
                    translateStore.filter = filter;
                    translateStore.load({});

                    var menuId = node.record.get('menuId');
                    documentGrid.menuId = menuId;
                    documentGrid.filter = { menuId: menuId };
                    documentGrid.store.filter = documentGrid.filter;
                    documentGrid.store.load({});

                }
            })
            translateStore.on('load', function() {
                propertyPanels.setDisabled(false);
                saveButton.setDisabled(false);
            });
        }
    }
    ]
});


