From 645c9ef3729a604df17ecdf74258f92ef73dd4f5 Mon Sep 17 00:00:00 2001
From: wei <>
Date: Thu, 18 Jan 2007 11:12:51 +0000
Subject: update address-book demo
---
demos/address-book/protected/application.xml | 12 ++-
.../protected/pages/AddressProvider.php | 25 +++++-
demos/address-book/protected/pages/Home.page | 15 +---
.../protected/pages/flex/bin/flex_address_book.swf | Bin 300237 -> 307529 bytes
.../protected/pages/flex/flex_address_book.mxml | 88 ++++++++++++++++-----
5 files changed, 107 insertions(+), 33 deletions(-)
(limited to 'demos')
diff --git a/demos/address-book/protected/application.xml b/demos/address-book/protected/application.xml
index 8e87be8c..8b68fe8f 100644
--- a/demos/address-book/protected/application.xml
+++ b/demos/address-book/protected/application.xml
@@ -3,8 +3,9 @@
+
-
+
@@ -12,6 +13,14 @@
+
+
+
+
+
+
+
+
@@ -21,6 +30,7 @@
provider="Application.pages.AddressProvider"
ClassMaps="AddressRecord" />
+
\ No newline at end of file
diff --git a/demos/address-book/protected/pages/AddressProvider.php b/demos/address-book/protected/pages/AddressProvider.php
index bbfedd1b..ae0b369f 100644
--- a/demos/address-book/protected/pages/AddressProvider.php
+++ b/demos/address-book/protected/pages/AddressProvider.php
@@ -6,8 +6,30 @@ Prado::using('Application.pages.AddressRecord');
* @version $Id$
* @since 3.1
*/
-class AddressProvider
+class AddressProvider extends TApplicationComponent
{
+ /**
+ * @throws exception if not logged in
+ */
+ public function __construct($server)
+ {
+ $authMethods = $server->getRequestedMethod()!=='login';
+ $guestUser = $this->User ? $this->User->IsGuest : true;
+ if($authMethods && $guestUser)
+ throw new TException('authentication required');
+ }
+
+ /**
+ * @param string $username
+ * @param string $password
+ * @return boolean
+ * @soapmethod
+ */
+ public function login($username, $password)
+ {
+ return $this->Application->Modules['auth']->login($username, $password);
+ }
+
/**
* @return AddressRecord[]
* @soapmethod
@@ -17,7 +39,6 @@ class AddressProvider
return AddressRecord::finder()->findAll();
}
-
/**
* Update address if $data->id > 0, otherwise add new address.
* @param AddressRecord $data
diff --git a/demos/address-book/protected/pages/Home.page b/demos/address-book/protected/pages/Home.page
index 801267e7..1489cf86 100644
--- a/demos/address-book/protected/pages/Home.page
+++ b/demos/address-book/protected/pages/Home.page
@@ -2,24 +2,15 @@
Prado Address Book
-
-
-
+
Prado + Flex + Soap Demo
+
Flash player version 9 or greater is required.
+
Username/password: demo/demo
AppName="flex_address_book"
Parameters.wsdl="<%= $this->Request->constructUrl('soap', 'address-book.wsdl') %>"
Width="100%" Height="300"/>
-
-
\ No newline at end of file
diff --git a/demos/address-book/protected/pages/flex/bin/flex_address_book.swf b/demos/address-book/protected/pages/flex/bin/flex_address_book.swf
index 9c3e63ef..03e29cf8 100644
Binary files a/demos/address-book/protected/pages/flex/bin/flex_address_book.swf and b/demos/address-book/protected/pages/flex/bin/flex_address_book.swf differ
diff --git a/demos/address-book/protected/pages/flex/flex_address_book.mxml b/demos/address-book/protected/pages/flex/flex_address_book.mxml
index d6db809a..eac50fe7 100644
--- a/demos/address-book/protected/pages/flex/flex_address_book.mxml
+++ b/demos/address-book/protected/pages/flex/flex_address_book.mxml
@@ -10,10 +10,27 @@
backgroundGradientColors="0"
layout="vertical" creationComplete="initApp()">
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -28,10 +45,15 @@
+
+
+
+
+
@@ -49,7 +71,6 @@
private function initApp():void
{
addrSrv.loadWSDL(getAddressBookWsdl());
- addrSrv.getAllAddress();
}
private function getAddressBookWsdl():String
@@ -75,31 +96,62 @@
data.username = _username.text;
data.phone = _phone.text;
addrSrv.saveAddress(data);
- currentState='';
+ currentState='grid';
}
}
private function doDelete():void
{
addrSrv.deleteAddress(list1.selectedItem.id);
- currentState='';
+ currentState='grid';
+ }
+
+ private function doLogin():void
+ {
+ if(Validator.validateAll([val3, val4]).length == 0)
+ {
+ addrSrv.login(login_name.text, login_pass.text);
+ login_name.enabled=false;
+ login_pass.enabled=false;
+ progress1.visible=true;
+ }
+ }
+
+ private function loginReturned(event:ResultEvent):void
+ {
+ if(!event.result)
+ {
+ login_name.enabled=true;
+ login_pass.enabled=true;
+ progress1.visible=false;
+ Alert.show("Username and password did not match!", "Login Error");
+ }
+ else
+ {
+ addrSrv.getAllAddress();
+ currentState='grid';
+ }
}
]]>
-
-
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
--
cgit v1.2.3