src/it/ht/rcs/console/home/view/quick/QuickAgentForm.mxml
<?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>