From 48619109291ed90bd0e11f4be27384ca7a95ddf4 Mon Sep 17 00:00:00 2001
From: emkael <emkael@tlen.pl>
Date: Thu, 10 Mar 2016 17:14:25 +0100
Subject:  * registration form as a component

---
 app/php/components/RegistrationForm.php | 26 ++++++++++++++
 app/php/components/RegistrationForm.tpl | 59 ++++++++++++++++++++++++++++++++
 app/php/pages/Signup.page               | 60 +--------------------------------
 app/php/pages/Signup.php                | 26 --------------
 4 files changed, 86 insertions(+), 85 deletions(-)
 create mode 100644 app/php/components/RegistrationForm.php
 create mode 100644 app/php/components/RegistrationForm.tpl
 delete mode 100644 app/php/pages/Signup.php

diff --git a/app/php/components/RegistrationForm.php b/app/php/components/RegistrationForm.php
new file mode 100644
index 0000000..71d4df1
--- /dev/null
+++ b/app/php/components/RegistrationForm.php
@@ -0,0 +1,26 @@
+<?php
+
+Prado::using('Application.model.User');
+
+class RegistrationForm extends TTemplateControl {
+
+    public function checkUsername($sender, $param) {
+        $param->IsValid = !User::finder()->countByLogin($this->Login->SafeText);
+    }
+
+    public function registerUser($sender, $param) {
+        if ($this->Page->IsValid) {
+            $newUser = new User();
+            $newUser->Login = $this->Login->SafeText;
+            $newUser->Password = DbUser::generatePassword($this->Password->Text);
+            $newUser->IsAdmin = $this->Admin->Checked;
+            $newUser->save();
+            $this->Response->redirect(
+                $this->Service->constructUrl(NULL)
+            );
+        }
+    }
+
+}
+
+?>
diff --git a/app/php/components/RegistrationForm.tpl b/app/php/components/RegistrationForm.tpl
new file mode 100644
index 0000000..295aff1
--- /dev/null
+++ b/app/php/components/RegistrationForm.tpl
@@ -0,0 +1,59 @@
+Username:
+<com:TTextBox ID="Login"
+              ValidationGroup="SignupGroup" />
+<com:TRequiredFieldValidator
+   ControlToValidate="Login"
+   Display="Dynamic"
+   ErrorMessage="Username cannot be empty"
+   ValidationGroup="SignupGroup" />
+<com:TRegularExpressionValidator
+   ControlToValidate="Login"
+   RegularExpression="[a-zA-Z0-9_]{6,255}"
+   Display="Dynamic"
+   ErrorMessage="Username must contain 6-255 characters, all Latin alphanumeric or underscore"
+   ValidationGroup="SignupGroup" />
+<com:TCustomValidator
+   ControlToValidate="Login"
+   OnServerValidate="checkUsername"
+   Display="Dynamic"
+   ErrorMessage="Username already exists"
+   ValidationGroup="SignupGroup" />
+<br />
+Password:
+<com:TTextBox ID="Password"
+              TextMode="Password"
+              ValidationGroup="SignupGroup" />
+<com:TRequiredFieldValidator
+   ControlToValidate="Password"
+   Display="Dynamic"
+   ErrorMessage="Password cannot be empty"
+   ValidationGroup="SignupGroup" />
+<br />
+Repeat password:
+<com:TTextBox ID="RePassword"
+              TextMode="Password"
+              ValidationGroup="SignupGroup" />
+<com:TRequiredFieldValidator
+   ControlToValidate="RePassword"
+   Display="Dynamic"
+   ErrorMessage="Password cannot be empty"
+   ValidationGroup="SignupGroup" />
+<com:TCompareValidator
+   ControlToValidate="RePassword"
+   ControlToCompare="Password"
+   DataType="String"
+   Operator="Equal"
+   Display="Dynamic"
+   ErrorMessage="Passwords don't match"
+   ValidationGroup="SignupGroup" />
+<br />
+Admin:
+<com:TCheckBox ID="Admin"
+               ValidationGroup="SignupGroup" />
+<br />
+<com:TButton
+   Text="Create"
+   OnCommand="registerUser"
+   ValidationGroup="SignupGroup" />
+<com:TValidationSummary
+   ValidationGroup="SignupGroup" />
diff --git a/app/php/pages/Signup.page b/app/php/pages/Signup.page
index b8ce6bd..da863d4 100644
--- a/app/php/pages/Signup.page
+++ b/app/php/pages/Signup.page
@@ -1,61 +1,3 @@
 <com:TContent ID="Content">
-  Username:
-  <com:TTextBox ID="Login"
-                ValidationGroup="SignupGroup" />
-  <com:TRequiredFieldValidator
-     ControlToValidate="Login"
-     Display="Dynamic"
-     ErrorMessage="Username cannot be empty"
-     ValidationGroup="SignupGroup" />
-  <com:TRegularExpressionValidator
-     ControlToValidate="Login"
-     RegularExpression="[a-zA-Z0-9_]{6,255}"
-     Display="Dynamic"
-     ErrorMessage="Username must contain 6-255 characters, all Latin alphanumeric or underscore"
-     ValidationGroup="SignupGroup" />
-  <com:TCustomValidator
-     ControlToValidate="Login"
-     OnServerValidate="checkUsername"
-     Display="Dynamic"
-     ErrorMessage="Username already exists"
-     ValidationGroup="SignupGroup" />
-  <br />
-  Password:
-  <com:TTextBox ID="Password"
-                TextMode="Password"
-                ValidationGroup="SignupGroup" />
-  <com:TRequiredFieldValidator
-     ControlToValidate="Password"
-     Display="Dynamic"
-     ErrorMessage="Password cannot be empty"
-     ValidationGroup="SignupGroup" />
-  <br />
-  Repeat password:
-  <com:TTextBox ID="RePassword"
-                TextMode="Password"
-                ValidationGroup="SignupGroup" />
-  <com:TRequiredFieldValidator
-     ControlToValidate="RePassword"
-     Display="Dynamic"
-     ErrorMessage="Password cannot be empty"
-     ValidationGroup="SignupGroup" />
-  <com:TCompareValidator
-     ControlToValidate="RePassword"
-     ControlToCompare="Password"
-     DataType="String"
-     Operator="Equal"
-     Display="Dynamic"
-     ErrorMessage="Passwords don't match"
-     ValidationGroup="SignupGroup" />
-  <br />
-  Admin:
-  <com:TCheckBox ID="Admin"
-                 ValidationGroup="SignupGroup" />
-  <br />
-  <com:TButton
-     Text="Create"
-     OnCommand="registerUser"
-     ValidationGroup="SignupGroup" />
-  <com:TValidationSummary
-     ValidationGroup="SignupGroup" />
+  <com:RegistrationForm />
 </com:TContent>
diff --git a/app/php/pages/Signup.php b/app/php/pages/Signup.php
deleted file mode 100644
index e989eb6..0000000
--- a/app/php/pages/Signup.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-
-Prado::using('Application.model.User');
-
-class Signup extends TPage {
-
-    public function checkUsername($sender, $param) {
-        $param->IsValid = !User::finder()->countByLogin($this->Login->SafeText);
-    }
-
-    public function registerUser($sender, $param) {
-        if ($this->Page->IsValid) {
-            $newUser = new User();
-            $newUser->Login = $this->Login->SafeText;
-            $newUser->Password = DbUser::generatePassword($this->Password->Text);
-            $newUser->IsAdmin = $this->Admin->Checked;
-            $newUser->save();
-            $this->Response->redirect(
-                $this->Service->constructUrl(NULL)
-            );
-        }
-    }
-
-}
-
-?>
-- 
cgit v1.2.3