SHOW:
|
|
- or go back to the newest paste.
1 | local composer = require "composer" | |
2 | local scene = composer.newScene() | |
3 | local json = require "json" | |
4 | local widget = require "widget" | |
5 | local firebase = require("plugin.firebase") | |
6 | require("extensions.table") | |
7 | ||
8 | ||
9 | - | print(fbResponse) |
9 | + | local lastScene = composer.getSceneName("previous") |
10 | ||
11 | ||
12 | ||
13 | local fbJson -->Converts Firebase response to JSON | |
14 | local fbDecoded -->Converts JSON to a Lua table | |
15 | local fbResponse | |
16 | function scene:create (event) | |
17 | loginGroup = self.view | |
18 | ||
19 | --fixes issues with buttons showing weird on android version | |
20 | widget.setTheme( "widget_theme_ios7" ) | |
21 | ||
22 | --Background | |
23 | local background = display.newRect(display.contentWidth/2, display.contentHeight/2, display.contentWidth*2, display.contentHeight*2) | |
24 | --Title | |
25 | local title = display.newText("PCI Connect", display.contentWidth/2, display.contentHeight/5, native.systemFontBold, display.viewableContentHeight/16) | |
26 | title:setFillColor(154/255, 17/255, 49/255) | |
27 | title.y = display.contentHeight/4 - 1.2*title.height | |
28 | --Email textbox | |
29 | local username = native.newTextField(display.contentWidth/2, display.contentHeight/4, 4*display.contentWidth/6, display.viewableContentHeight/20) | |
30 | username:setTextColor(154/255, 17/255, 49/255) | |
31 | username.placeholder = "Packer Username" | |
32 | --Email textbox border | |
33 | local usernameBox = display.newRect(0, 0, username.width, username.height) | |
34 | usernameBox.x = username.x | |
35 | usernameBox.y = username.y | |
36 | usernameBox:setStrokeColor(200/255,200/255,200/255) | |
37 | usernameBox.strokeWidth = display.contentWidth/90 | |
38 | --Password textbox | |
39 | local password = native.newTextField(display.contentWidth/2, username.y + display.viewableContentHeight/10, 4*display.contentWidth/6, display.viewableContentHeight/20) | |
40 | password:setTextColor(154/255, 17/255, 49/255) | |
41 | password.placeholder = "Password" | |
42 | --Password textbox border | |
43 | local passwordBox = display.newRect(0, 0, password.width, password.height) | |
44 | passwordBox.x = password.x | |
45 | passwordBox.y = password.y | |
46 | passwordBox:setStrokeColor(200/255,200/255,200/255) | |
47 | passwordBox.strokeWidth = display.contentWidth/90 | |
48 | --Forgot Password Button | |
49 | local forgotPasswordButton = display.newText("Forgot Password", display.contentWidth/2, password.y + 50, native.systemFontBold, display.viewableContentHeight/50) | |
50 | forgotPasswordButton.x = display.contentWidth/2 + passwordBox.width/2 - forgotPasswordButton.width/2 + 2 | |
51 | forgotPasswordButton.y = passwordBox.y + passwordBox.height | |
52 | forgotPasswordButton:setFillColor(200/255,200/255,200/255) | |
53 | --Login Box | |
54 | local loginButton = display.newRect(0, 0, display.contentWidth/3.2, display.contentHeight/13.5) | |
55 | loginButton.strokeWidth = display.contentWidth/220 | |
56 | loginButton:setStrokeColor(154/255, 17/255, 49/255) | |
57 | loginButton.x = display.contentWidth/2 | |
58 | loginButton.y = forgotPasswordButton.y + loginButton.height | |
59 | loginButton:setFillColor(1,1,1) | |
60 | --Login Text | |
61 | local loginText = display.newText("Login", loginButton.x, loginButton.y, native.systemFontBold, display.viewableContentHeight/20) | |
62 | loginText:setFillColor(154/255, 17/255, 49/255) | |
63 | --Create Account Text | |
64 | local createAccountText = display.newText("Create Account", loginButton.x, loginButton.y, native.systemFontBold, display.viewableContentHeight/44) | |
65 | createAccountText:setFillColor(154/255, 17/255, 49/255) | |
66 | createAccountText.y = loginButton.y + 3*createAccountText.height | |
67 | ||
68 | --Create Account Border | |
69 | local createAccountBorder = display.newRect(0, 0, display.contentWidth/3.2, display.contentHeight/13.5) | |
70 | createAccountBorder.strokeWidth = display.contentWidth/220 | |
71 | createAccountBorder:setStrokeColor(154/255, 17/255, 49/255) | |
72 | createAccountBorder.x = createAccountText.x | |
73 | createAccountBorder.y = createAccountText.y | |
74 | createAccountBorder.width = 1.1*createAccountText.width | |
75 | createAccountBorder.height = 1.1*createAccountText.height | |
76 | ||
77 | --Extra Info | |
78 | local extraInfo1 = display.newText("This application requires you to sign up", display.contentWidth/2, 0, native.systemFontBold, display.viewableContentHeight/48) | |
79 | extraInfo1:setFillColor(200/255,200/255,200/255) | |
80 | extraInfo1.y = extraInfo1.height*1.1 | |
81 | extraInfo1.alpha = 0 | |
82 | ||
83 | --Extra Info | |
84 | local extraInfo2 = display.newText("with your Packer email but this account", display.contentWidth/2, extraInfo1.height*2, native.systemFontBold, display.viewableContentHeight/48) | |
85 | extraInfo2:setFillColor(200/255,200/255,200/255) | |
86 | extraInfo2.alpha = 0 | |
87 | ||
88 | --Extra Info | |
89 | local extraInfo3 = display.newText("is not connected to your Packer login.", display.contentWidth/2, extraInfo2.height*2, native.systemFontBold, display.viewableContentHeight/48) | |
90 | extraInfo3:setFillColor(200/255,200/255,200/255) | |
91 | extraInfo3.alpha = 0 | |
92 | ||
93 | --INSERTING EACH ELEMENT OF THE PAGE INTO THE GROUP TO MAKE REMOVAL EASIER | |
94 | loginGroup:insert(background) | |
95 | loginGroup:insert(title) | |
96 | loginGroup:insert(usernameBox) | |
97 | loginGroup:insert(username) | |
98 | loginGroup:insert(passwordBox) | |
99 | loginGroup:insert(password) | |
100 | loginGroup:insert(loginButton) | |
101 | loginGroup:insert(loginText) | |
102 | loginGroup:insert(createAccountBorder) | |
103 | loginGroup:insert(createAccountText) | |
104 | loginGroup:insert(forgotPasswordButton) | |
105 | loginGroup:insert(extraInfo1) | |
106 | loginGroup:insert(extraInfo2) | |
107 | loginGroup:insert(extraInfo3) | |
108 | ||
109 | --password field doesnt allow placeholder when secure so this changes it after it is clicked | |
110 | local function secureField(event) | |
111 | password.isSecure = true | |
112 | end | |
113 | password:addEventListener("userInput", secureField) | |
114 | ||
115 | ||
116 | local function lis( e ) | |
117 | ||
118 | --Converts JSON to Lua table | |
119 | fbResponse = json.encode(e.error) | |
120 | --Converts data to JSON | |
121 | fbJson=json.decode(fbResponse) | |
122 | --print(fbJson) | |
123 | fbDecoded = json.decode(fbJson) | |
124 | print(fbResponse) | |
125 | ||
126 | ||
127 | --[[local tempVar = e.error | |
128 | print(tempVar) | |
129 | if (tempVar == nil) then | |
130 | dataLocal.username = username.text.."@packer.edu" | |
131 | dataLocal.password = password.text | |
132 | if (dataLocal.form == 0 or dataLocal.form == nil) then | |
133 | composer.gotoScene("Form", {effect = "fade", time = 300}) | |
134 | dataLocal.form = 1 | |
135 | else | |
136 | composer.gotoScene("HomeScreen", {effect = "fade", time = 300}) | |
137 | table.save(dataLocal, "localSave") | |
138 | end | |
139 | elseif (tempVar == "email not verified")then | |
140 | username.text = "" | |
141 | password.text = "" | |
142 | dataLocal.username = "" | |
143 | dataLocal.password = "" | |
144 | table.save(dataLocal, "localSave") | |
145 | username.placeholder = "Please Verify Your" | |
146 | password.placeholder = "Email Address." | |
147 | extraInfo1.alpha = 1 | |
148 | extraInfo2.alpha = 2 | |
149 | extraInfo3.alpha = 3 | |
150 | else | |
151 | username.placeholder = "Error Try Again" | |
152 | dataLocal.username = "" | |
153 | dataLocal.password = "" | |
154 | table.save(dataLocal, "localSave") | |
155 | extraInfo1.alpha = 1 | |
156 | extraInfo2.alpha = 2 | |
157 | extraInfo3.alpha = 3 | |
158 | end]] | |
159 | end | |
160 | ||
161 | --ALLOWS YOU TO OPEN AND CLOSE KEYBOARD BY TAPPING ON SCREEN | |
162 | local function keyboardListener(event) | |
163 | native.setKeyboardFocus(nil) | |
164 | end | |
165 | ||
166 | local function textListener( event ) | |
167 | if ( event.phase == "editing" ) then | |
168 | ||
169 | elseif(event.phase == "ended" or event.phase == "submitted")then | |
170 | keyboardListener() | |
171 | end | |
172 | end | |
173 | ||
174 | --Function that is used for login button | |
175 | local function loginFunction(event) | |
176 | if (event.phase == "began") then | |
177 | loginButton:setFillColor(154/255, 17/255, 49/255) | |
178 | loginText:setFillColor(1,1,1) | |
179 | elseif (event.phase == "cancelled") then | |
180 | print("Event cancelled") | |
181 | loginButton:setFillColor(1,1,1) | |
182 | loginText:setFillColor(154/255, 17/255, 49/255) | |
183 | elseif (event.phase == "ended") then | |
184 | loginButton:setFillColor(1,1,1) | |
185 | loginText:setFillColor(154/255, 17/255, 49/255) | |
186 | firebase.login(username.text.."@packer.edu", password.text, lis, true) | |
187 | end | |
188 | end | |
189 | ||
190 | loginButton:addEventListener("touch", loginFunction) | |
191 | ||
192 | --Function that goes to create account page | |
193 | local function createAccount(event) | |
194 | if (event.phase == "began") then | |
195 | createAccountBorder:setFillColor(154/255, 17/255, 49/255) | |
196 | createAccountText:setFillColor(1,1,1) | |
197 | elseif (event.phase == "cancelled") then | |
198 | print("Event cancelled") | |
199 | createAccountBorder:setFillColor(1,1,1) | |
200 | createAccountText:setFillColor(154/255, 17/255, 49/255) | |
201 | elseif (event.phase == "ended") then | |
202 | createAccountBorder:setFillColor(1,1,1) | |
203 | createAccountText:setFillColor(154/255, 17/255, 49/255) | |
204 | composer.gotoScene("CreateAccount") | |
205 | end | |
206 | end | |
207 | createAccountText:addEventListener("touch", createAccount) | |
208 | ||
209 | --Function that goes to forgot password | |
210 | local function forgotPassword (event) | |
211 | composer.gotoScene("ForgotPassword") | |
212 | end | |
213 | forgotPasswordButton:addEventListener("tap", forgotPassword) | |
214 | ||
215 | username:addEventListener("ended", keyboardListener) | |
216 | username:addEventListener("submitted", keyboardListener) | |
217 | password:addEventListener("ended", keyboardListener) | |
218 | password:addEventListener("submitted", keyboardListener) | |
219 | background:addEventListener("tap", keyboardListener) | |
220 | end | |
221 | ||
222 | --THIS FUNCTION HIDES THE WHOLE PAGE | |
223 | function scene:hide (event) | |
224 | ||
225 | end | |
226 | ||
227 | --THIS FUNCTION SHOWS THE NEXT EVENT | |
228 | function scene:show (event) | |
229 | ||
230 | end | |
231 | ||
232 | scene:addEventListener("create", scene) | |
233 | scene:addEventListener("show", scene) | |
234 | scene:addEventListener("hide", scene) | |
235 | return scene |