📄 account.mxml
字号:
generalOperationsService.flexdotorg.setDefaultScreenshot(screenshot.projectID, screenshot.id);
}
private function removeSubmission(mouseEvent:MouseEvent):void {
var project:Object = new Object();
project.nid = selectedProject.id;
project.type = "showcase_entry";
project.status = "0";
project.userid = user.id;
project.name = user.username;
nodeService.node.save.addEventListener(ResultEvent.RESULT, removeSubmissionSaveResultHandler);
nodeService.node.save.addEventListener(FaultEvent.FAULT, removeSubmissionSaveFaultHandler);
nodeService.node.save(project);
}
//////////////////////////////////////////////////
//dispatch functions
private function dispatchLogoutEvent():void {
var userEvent:UserEvent = new UserEvent(UserEvent.LOGOUT, true);
dispatchEvent(userEvent);
}
//////////////////////////////////////////////////
//handler functions
private function changedHandler(accountEvent:AccountEvent):void {
if (accountEvent.valid == false) {
readyToSave = false;
} else {
projectChanged = true;
projectInfoTab.validateProjectForm();
if (projectInfoTab.projectFormIsValid == true) {
readyToSave = true;
}
}
}
private function userChangeHandler(userEvent:UserEvent):void {
projects = user.projects;
reset();
}
private function userProjectsLoadedHandler(userEvent:UserEvent):void {
projects = user.projects;
reset();
}
private function projectsDataGridItemClickHandler(event:Event):void {
if (projectChanged == false) {
updateSelection();
} else {
Alert.buttonHeight=31;
Alert.show("The project information in the currently selected project has changed.\nDo you want to save the changes?", "Caution", Alert.YES | Alert.NO | Alert.CANCEL, null, saveAlertHandler, null, Alert.CANCEL);
}
}
private function saveAlertHandler(closeEvent:CloseEvent):void {
switch (closeEvent.detail) {
case Alert.YES :
save();
break;
case Alert.NO :
noSaveAndContinue();
break;
case Alert.CANCEL :
cancelNoContinue();
break;
}
}
private function logoutButtonClickHandler(mouseEvent:MouseEvent):void {
logout();
}
private function logoutSaveAlertHandler(closeEvent:CloseEvent):void {
switch (closeEvent.detail) {
case Alert.YES :
logoutSaveAndContinue();
break;
case Alert.NO :
dispatchLogoutEvent();
break;
case Alert.CANCEL :
break;
}
}
private function projectReloadEventHandler(projectEvent:ProjectEvent):void {
loadProject(selectedProject);
}
private function projectAddEventHandler(projectEvent:ProjectEvent):void {
var project:Project = projectEvent.project;
projects.addItem(project);
loadProject(project);
}
//nodeService.save---------------------------------
private function nodeServiceSaveResultHandler(resultEvent:ResultEvent):void {
nodeService.node.save.removeEventListener(ResultEvent.RESULT, nodeServiceSaveResultHandler);
nodeService.node.save.removeEventListener(FaultEvent.FAULT, nodeServiceSaveFaultHandler);
if (projectsDataGrid.selectedItem != null) {
lastSelectedIndex = projectsDataGrid.selectedIndex;
selectedProject = projectsDataGrid.selectedItem as Project;
Alert.buttonHeight=31;
Alert.show("Your project has been saved and submitted for approval.", "Save");
var date:Date = new Date();
var body:String = new String();
body += "Date: " + date.date + "/" + (date.month + 1) + "/" + date.fullYear + "\n";
body += "\n";
body += "User\n";
body += "ID: " + user.id + "\n";
body += "Name: " + user.firstName + " " + user.lastName + "\n";
body += "Email: " + user.email + "\n";
body += "\n";
body += "Project\n";
body += "ID: " + selectedProject.id + "\n";
body += "Name: " + selectedProject.name;
var mailEvent:MailEvent = new MailEvent(MailEvent.SEND, true);
mailEvent.mailKey = date.date.toString();
mailEvent.toEmail = flexShowcaseServiceConfig.adminEmailAddress;
mailEvent.subject = "Flex.org - Save Application";
mailEvent.body = body;
mailEvent.fromEmail = user.email;
dispatchEvent(mailEvent);
}
}
private function nodeServiceSaveFaultHandler(faultEvent:FaultEvent):void {
//trace("nodeServiceSaveFaultHandler: " + faultEvent.message);
}
//nodeService.load---------------------------------
private function nodeServiceLoadResultHandler(resultEvent:ResultEvent):void {
nodeService.node.load.removeEventListener(ResultEvent.RESULT, nodeServiceLoadResultHandler);
nodeService.node.load.removeEventListener(FaultEvent.FAULT, nodeServiceLoadFaultHandler);
parseUserProject(resultEvent.result);
}
private function nodeServiceLoadFaultHandler(resultEvent:ResultEvent):void {
nodeService.node.load.removeEventListener(ResultEvent.RESULT, nodeServiceLoadResultHandler);
nodeService.node.load.removeEventListener(FaultEvent.FAULT, nodeServiceLoadFaultHandler);
}
//nodeService.remove------------------------------
private function removeSubmissionSaveResultHandler(resultEvent:ResultEvent):void {
nodeService.node.save.removeEventListener(ResultEvent.RESULT, removeSubmissionSaveResultHandler);
nodeService.node.save.removeEventListener(FaultEvent.FAULT, removeSubmissionSaveFaultHandler);
Alert.buttonHeight = 31;
Alert.show("Your project will no longer apear in the Flex.org project listing; but will however remain in the system. To reactivate your project, update and save your project and the admin will be notified to publish your project.", "Remove submission");
var date:Date = new Date();
var body:String = new String();
body += "Date: " + date.date + "/" + (date.month + 1) + "/" + date.fullYear + "\n";
body += "\n";
body += "User\n";
body += "ID: " + user.id + "\n";
body += "Name: " + user.firstName + " " + user.lastName + "\n";
body += "Email: " + user.email + "\n";
body += "\n";
body += "Project\n";
body += "ID: " + selectedProject.id + "\n";
body += "Name: " + selectedProject.name;
var mailEvent:MailEvent = new MailEvent(MailEvent.SEND, true);
mailEvent.mailKey = date.date.toString();
mailEvent.toEmail = flexShowcaseServiceConfig.adminEmailAddress;
mailEvent.subject = "Flex.org - Remove Application";
mailEvent.body = body;
mailEvent.fromEmail = user.email;
dispatchEvent(mailEvent);
}
private function removeSubmissionSaveFaultHandler(faultEvent:FaultEvent):void {
nodeService.node.save.removeEventListener(ResultEvent.RESULT, removeSubmissionSaveResultHandler);
nodeService.node.save.removeEventListener(FaultEvent.FAULT, removeSubmissionSaveFaultHandler);
}
//generalOperationsService.setDefaultScreenshot---
private function setDefaultScreenshotResultHandler(resultEvent:ResultEvent):void {
generalOperationsService.flexdotorg.setDefaultScreenshot.removeEventListener(ResultEvent.RESULT, setDefaultScreenshotResultHandler);
generalOperationsService.flexdotorg.setDefaultScreenshot.removeEventListener(FaultEvent.FAULT, setDefaultScreenshotFaultHandler);
loadProject(selectedProject);
}
private function setDefaultScreenshotFaultHandler(faultEvent:FaultEvent):void {
generalOperationsService.flexdotorg.setDefaultScreenshot.removeEventListener(ResultEvent.RESULT, setDefaultScreenshotResultHandler);
generalOperationsService.flexdotorg.setDefaultScreenshot.removeEventListener(FaultEvent.FAULT, setDefaultScreenshotFaultHandler);
}
//generalOperationsService.deleteScreenshot-------
private function deleteScreenshotResultHandler(resultEvent:ResultEvent):void {
generalOperationsService.flexdotorg.deleteScreenshot.removeEventListener(ResultEvent.RESULT, deleteScreenshotResultHandler);
generalOperationsService.flexdotorg.deleteScreenshot.removeEventListener(FaultEvent.FAULT, deleteScreenshotFaultHandler);
loadProject(selectedProject);
}
private function deleteScreenshotFaultHandler(faultEvent:FaultEvent):void {
generalOperationsService.flexdotorg.deleteScreenshot.removeEventListener(ResultEvent.RESULT, deleteScreenshotResultHandler);
generalOperationsService.flexdotorg.deleteScreenshot.removeEventListener(FaultEvent.FAULT, deleteScreenshotFaultHandler);
}
//Tabs--------------------------------------------
private function screenshotsTabAddScreenshotHandler(accountEvent:AccountEvent):void {
addScreenshotPanel.show();
}
private function screenshotsTabDeleteScreenshotHandler(accountEvent:AccountEvent):void {
deleteScreenshot(accountEvent.screenshot);
}
private function screenshotsTabMarkAsDefaultScreenshotHandler(accountEvent:AccountEvent):void {
markAsDefaultScreenshot(accountEvent.screenshot);
}
//UI----------------------------------------------
private function addProjectClickHandler(mouseEvent:MouseEvent):void {
addSubmissionPanel.show();
}
private function myProfileButtonClickHandler(mouseEvent:MouseEvent):void {
profilePanel.show();
}
private function saveButtonClickHandler(mouseEvent:MouseEvent):void {
save();
}
//contact screen---------------------------------------------------------------------
private function openContactAdminPanel():void {
//this.contactAdminPanel.projectData=flexEngine.currentUserProject
this.contactAdminPanel.show();
}
]]>
</mx:Script>
<remote:NodeService
id="nodeService"
flexShowcaseServiceConfig="{flexShowcaseServiceConfig}"/>
<remote:GeneralOperationsService
id="generalOperationsService"
flexShowcaseServiceConfig="{flexShowcaseServiceConfig}"/>
<mx:Label id="username" styleName="profileEmail" left="10" top="10" text="{user.firstName}" />
<mx:Button id="logoutButton" styleName="blackButton" x="{username.x+username.width+5}" top="1"
label="Log Out" buttonMode="true" click="{logoutButtonClickHandler(event)}" width="90"/>
<mx:Button id="reportButton" styleName="blackButton" right="110" top="1" label="Contact Admin"
buttonMode="true" click="this.openContactAdminPanel()"/>
<mx:Button id="myProfileButton" styleName="blackButton" right="3" top="1" icon="@Embed('/assets/images/icons/profileIcon.png')" label="My Profile" buttonMode="true" click="myProfileButtonClickHandler(event)" />
<mx:VDividedBox left="10" right="10" top="40" bottom="31">
<mx:Canvas width="100%" minHeight="116" maxHeight="236">
<mx:DataGrid id="projectsDataGrid" headerStyleName="projectInfoDGHeader" left="0" right="0" top="0" bottom="37" height="170" paddingBottom="0" paddingTop="0" dataProvider="{user.projects}" itemClick="projectsDataGridItemClickHandler(event)">
<mx:columns>
<mx:DataGridColumn headerText="Applications" dataField="name" />
<mx:DataGridColumn headerText="Comments" dataField="numberOfComments" />
<mx:DataGridColumn headerText="Rating" dataField="rating" />
<mx:DataGridColumn headerText="Status" dataField="published" />
<mx:DataGridColumn headerText="Views" dataField="views" />
<mx:DataGridColumn headerText="Created" dataField="createdDate" />
</mx:columns>
</mx:DataGrid>
<mx:Canvas id="projectsCanvas" left="0" right="0" bottom="0" width="100%" height="38" horizontalScrollPolicy="off" verticalScrollPolicy="off">
<mx:Image source="@Embed('/assets/images/projectInfo_addRemoveBut_bg.png')" x="0" y="0" width="100%" />
<mx:Button id="addProject" styleName="blackButton" icon="@Embed('/assets/images/icons/plusIcon.png')" label="Add Application" left="5" verticalCenter="0" buttonMode="true" click="addProjectClickHandler(event)" />
<mx:Button id="removeProject" styleName="blackButton" icon="@Embed('/assets/images/icons/minusIcon.png')" label="Hide Application" right="5" verticalCenter="0" buttonMode="{!selectedProject.published}" enabled="{!selectedProject.published}" click="removeSubmission(event)" />
</mx:Canvas>
</mx:Canvas>
<mx:Canvas width="100%" height="100%" horizontalScrollPolicy="off" verticalScrollPolicy="off">
<mx:Label id="tabBarCanvasLoading" styleName="checkboxListHeaderText" x="10" y="10" text="Your Applications are currently loading..." visible="{!user.projectsLoaded}" />
<mx:Label id="tabBarCanvasNoProjects" styleName="checkboxListHeaderText" x="10" y="10" text="You currently have no Applications." visible="{!user.hasProjects && user.projectsLoaded}" />
<mx:Canvas id="tabBarCanvas" width="100%" height="100%" visible="{user.hasProjects}"
horizontalScrollPolicy="off" verticalScrollPolicy="auto">
<mx:TabBar left="0" right="-2.5" dataProvider="viewStack" tabStyleName="tabBarLabel" selectedTabTextStyleName="tabBarLabel" />
<mx:Canvas y="-5" width="100%" height="100%" horizontalScrollPolicy="off" verticalScrollPolicy="off">
<mx:ViewStack id="viewStack" left="0" right="0" top="30" bottom="10" creationPolicy="all">
<account:ProjectInfoTab id="projectInfoTab" project="{selectedProject}" />
<account:IndustriesTab id="industriesTab" project="{selectedProject}" industries="{industries}" />
<account:TechnologyTab id="technologiesTab" project="{selectedProject}" technologies="{technologies}" />
<account:TagsTab id="tagsTab" project="{selectedProject}" tags="{tags}" />
<account:ScreenshotsTab id="screenshotsTab" project="{selectedProject}" />
</mx:ViewStack>
</mx:Canvas>
</mx:Canvas>
</mx:Canvas>
</mx:VDividedBox>
<mx:Canvas left="10" right="10" bottom="10" height="37" width="100%" borderStyle="none" horizontalScrollPolicy="off" verticalScrollPolicy="off">
<mx:Image x="0" y="1" width="744" source="@Embed('/assets/images/footer_bg.png')" maintainAspectRatio="false" />
<mx:Button id="saveButton" styleName="blackButton" right="5" verticalCenter="0" label="Save" width="90"
buttonMode="{readyToSave}" enabled="{readyToSave}" click="saveButtonClickHandler(event)" />
</mx:Canvas>
<panels:AddSubmissionPanel id="addSubmissionPanel" user="{user}" flexShowcaseServiceConfig="{flexShowcaseServiceConfig}" visible="false" alpha="0"/>
<panels:MyProfilePanel id="profilePanel" user="{user}" flexShowcaseServiceConfig="{flexShowcaseServiceConfig}" visible="false" alpha="0"/>
<panels:AddScreenshotPanel id="addScreenshotPanel" user="{user}" flexShowcaseServiceConfig="{flexShowcaseServiceConfig}" project="{selectedProject}" visible="false" alpha="0"/>
<panels:ContactAdminPanel id="contactAdminPanel" user="{user}" flexShowcaseServiceConfig="{flexShowcaseServiceConfig}" visible="false" alpha="0"/>
</mx:Canvas>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -