src/it/ht/rcs/console/operations/view/filesystem/PendingForm.mxml
<?xml version="1.0" encoding="utf-8"?>
<s:TitleWindow xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" width="700" height="400"
close="closeMe(event)" title="{R.get('PENDING_REQUESTS')}"
creationComplete="init()"
xmlns:view="it.ht.rcs.console.utils.*">
<fx:Script>
<![CDATA[
import it.ht.rcs.console.agent.controller.AgentManager;
import it.ht.rcs.console.agent.model.Agent;
import it.ht.rcs.console.events.SessionEvent;
import it.ht.rcs.console.target.model.Target;
import it.ht.rcs.console.utils.AlertPopUp;
import it.ht.rcs.console.utils.TimeUtils;
import locale.R;
import mx.collections.ArrayCollection;
import mx.core.FlexGlobals;
import mx.events.CloseEvent;
import mx.managers.PopUpManager;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import spark.components.gridClasses.GridSelectionMode;
private var agent:Agent;
private var itemsToDelete:int=0;
private var deletionIndex:int=0;
public var deletedItems:Array;
protected function closeMe(event:*):void
{
dispatchEvent(new Event("pendingclose"))
PopUpManager.removePopUp(this);
}
private function init():void
{
FlexGlobals.topLevelApplication.addEventListener(SessionEvent.LOGOUT, closeMe);
}
public function getFilesystems(agent:Agent):void
{
this.agent=agent;
AgentManager.instance.getFilesystems(agent, onListResult)
}
private function onListResult(e:ResultEvent):void
{
trace("result")
filesystemsDg.dataProvider=e.result as ArrayCollection;
itemsToDelete=0;
deletionIndex=0;
}
private function deleteFilesystem():void
{
deletedItems=new Array()
itemsToDelete=filesystemsDg.selectedItems.length;
deletionIndex=0;
AlertPopUp.show(R.get('FILESYSTEM_DELETION_CONFIRM'), R.get('CONFIRM'),
AlertPopUp.YES|AlertPopUp.NO, null,
function(e:CloseEvent):void {
if (e.detail == AlertPopUp.YES)
doDelete(0)
}, null, AlertPopUp.NO);
}
private function onDeleteResult(e:ResultEvent):void
{
deletionIndex++
if(deletionIndex==itemsToDelete){
getFilesystems(agent);
}
else{
doDelete(deletionIndex)
}
}
private function onDeleteFault(e:FaultEvent):void
{
AlertPopUp.show(e.fault.faultDetail)
}
private function doDelete(currentIndex:int):void
{
AgentManager.instance.deleteFilesystem(agent,filesystemsDg.selectedItems[currentIndex]._id, onDeleteResult, onDeleteFault)
deletedItems.push(filesystemsDg.selectedItems[currentIndex]);
}
private function dateFunction(item:Object, column:GridColumn):String
{
try
{
var value:Number=item[column.dataField];
return value ? TimeUtils.timestampFormatter(value * 1000) : 'not yet';
}
catch (e:Error)
{
}
return '';
}
]]>
</fx:Script>
<s:VGroup width="100%"
height="100%"
paddingBottom="20"
paddingLeft="20"
paddingRight="20"
paddingTop="20">
<s:Label text="This agents has {filesystemsDg.dataProvider.length} {R.get('PENDING_REQUESTS')}"/>
<s:DataGrid id="filesystemsDg" width="100%" height="100%" sortableColumns="false" selectionMode="{GridSelectionMode.MULTIPLE_ROWS}">
<s:columns>
<s:ArrayList>
<s:GridColumn dataField="path" headerText="{R.get('PATH')}"/>
<s:GridColumn dataField="depth" headerText="{R.get('DEPTH')}" width="50"/>
<s:GridColumn dataField="created_at" headerText="{R.get('CREATED_AT')}" width="130" labelFunction="dateFunction"/>
<s:GridColumn dataField="sent_at" headerText="{R.get('SENT_AT')}" width="130" labelFunction="dateFunction"/>
</s:ArrayList>
</s:columns>
</s:DataGrid>
<s:HGroup horizontalAlign="center" width="100%">
<s:Button label="{R.get('DELETE')}" enabled="{filesystemsDg.selectedItems.length>0}" click="deleteFilesystem()"/>
<s:Button label="{R.get('CANCEL')}" click="closeMe(event)"/>
</s:HGroup>
</s:VGroup>
</s:TitleWindow>