hackedteam/rcs-console

View on GitHub
src/it/ht/rcs/console/home/view/quick/QuickAgentForm.mxml

Summary

Maintainability
Test Coverage
<?xml version="1.0" encoding="utf-8"?>
<utils:TitleWindowSaveCancel xmlns:fx="http://ns.adobe.com/mxml/2009"
                                                         xmlns:s="library://ns.adobe.com/flex/spark"
                                                         xmlns:mx="library://ns.adobe.com/flex/mx"
                                                         xmlns:utils="it.ht.rcs.console.utils.*"
                                                         xmlns:modules="it.ht.rcs.console.operations.view.configuration.advanced.forms.modules.*"
                                                         creationComplete="init()"
                                                         save="save()"
                                                         title="{R.get('QUICK_AGENT')}">

    <fx:Script>
        <![CDATA[
            import it.ht.rcs.console.accounting.controller.GroupManager;
            import it.ht.rcs.console.accounting.controller.UserManager;
            import it.ht.rcs.console.accounting.model.Group;
            import it.ht.rcs.console.agent.controller.AgentManager;
            import it.ht.rcs.console.agent.model.Agent;
            import it.ht.rcs.console.dashboard.controller.DashboardController;
            import it.ht.rcs.console.events.SectionEvent;
            import it.ht.rcs.console.operation.controller.OperationManager;
            import it.ht.rcs.console.operation.model.Operation;
            import it.ht.rcs.console.search.model.SearchItem;
            import it.ht.rcs.console.target.controller.TargetManager;
            import it.ht.rcs.console.target.model.Target;

            import locale.R;

            import mx.core.FlexGlobals;
            import mx.events.ValidationResultEvent;

            private function init():void
            {
                agentName.setFocus();
                saveButton.label="OK";
            }

            private function save():void
            {
                if (!val.isValid())
                    return;

                var g:Group=new Group(Group.defaultGroup());
                g.name=agentName.text + ' Group';
                GroupManager.instance.addGroup(g, function(g1:Group):void
                {
                    trace("addGroup")
                    GroupManager.instance.addUser(g1, Console.currentSession.user, function():void
                    {
                        trace("addUser")
                        var o:Operation=new Operation(Operation.defaultOperation());
                        o.name=agentName.text;
                        o.group_ids.addItem(g1._id);
                        OperationManager.instance.addOperation(o, function(o1:Operation):void
                        {
                            trace("addOperation")
                            UserManager.instance.add_recent(Console.currentSession.user, {id: o1._id, section: "operations", type: "operation"});
                            var t:Target=new Target(Target.defaultTarget());
                            t.name=agentName.text;
                            TargetManager.instance.addTarget(t, o1, function(t1:Target):void
                            {
                                trace("addTarget")
                                UserManager.instance.add_recent(Console.currentSession.user, {id: t1._id, section: "operations", type: "target"});
                                DashboardController.instance.newDashboardItem(t1._id);
                                var a:Agent=new Agent(Agent.defaultAgent());
                                a._kind='factory';
                                a.name=agentName.text;
                                a.type=agentType.selectedItem.label.toLowerCase();
                                AgentManager.instance.addFactory(a, o1, t1, function(a1:Agent):void
                                {
                                    trace("addFactory")
                                    var sectionEvent:SectionEvent=new SectionEvent(SectionEvent.CHANGE_SECTION);
                                    sectionEvent.section='Operations';
                                    sectionEvent.item=new SearchItem(a1);
                                    FlexGlobals.topLevelApplication.dispatchEvent(sectionEvent);
                                    close();
                                });
                            });
                        });
                    });


                });
            }
        ]]>
    </fx:Script>

    <s:VGroup horizontalAlign="center"
                        paddingLeft="20"
                        paddingRight="20"
                        paddingTop="20">

        <!-- <s:Label lineBreak="explicit" text="{R.get('QUICK_AGENT_HELP')}" textAlign="center"/> -->

        <s:Form defaultButton="{saveButton}">

            <s:FormItem label="{R.get('NAME')}">
                <s:HGroup>
                    <s:TextInput id="agentName"
                                             width="200"
                                             maxChars="50"
                                             restrict="A-Za-z0-9\-_ "/>
                </s:HGroup>
            </s:FormItem>

            <s:FormItem label="{R.get('TYPE')}">
                <s:DropDownList id="agentType"
                                                width="200"
                                                selectedIndex="0">
                    <s:ArrayCollection id="types">
                        <fx:Object label="Desktop"/>
                        <fx:Object label="Mobile"/>
                    </s:ArrayCollection>
                </s:DropDownList>
            </s:FormItem>

        </s:Form>

    </s:VGroup>

    <fx:Declarations>
        <fx:Array id="vals">
            <mx:StringValidator property="text"
                                                    required="true"
                                                    source="{agentName}"
                                                    triggerEvent=""/>
        </fx:Array>
        <utils:MetaValidator id="val"
                                                 validators="{vals}"/>
    </fx:Declarations>

</utils:TitleWindowSaveCancel>