﻿B4J=true
Group=Default Group
ModulesStructureVersion=1
Type=StaticCode
Version=8.8
@EndOfDesignText@
'statis code module
Sub Process_Globals
Public vuetify As VuetifyApp 
Public user3 As VueComponent 
Public path As String 
Public name As String = "user3" 
Private banano As BANano 
Private dtUser2 As VueTable 
Private dlgUser2 As VueElement 
Private Mode As String  
End Sub

Sub Initialize
'establish a reference to the app
vuetify = pgIndex.vuetify
''initialize the component
user3.Initialize(Me, name)
path = user3.path
'
''add a dialog for this page
Dim dlg As VueElement = vuetify.AddDialogAlertPrompt(Me, user3.Here, name, True, 500, "primary", "error")
user3.BindVueElement(dlg)
'
CreateTable
CreateDialog
'
'as soon as we have mounted, show the user2
Dim args As List = user3.newlist
user3.SetMounted(Me, "LoadUser2", args)
'add supporting CRUD methods...
user3.SetMethod(Me, "CreateUser1", args)
user3.SetMethod(Me, "DeleteUser1", args)
user3.SetMethod(Me, "UpdateUser1", args)
user3.SetMethod(Me, "ReadUser1", args)
''add the component as a router
vuetify.AddRoute(user3)
End Sub


Sub LoadUser2		'ignoredeadcode 
	'Show progress loader 
	dtUser2.UpdateLoading(user3, True) 
	Dim rsUser2 As BANanoMySQLE 
	rsUser2.Initialize("test", "users", "id", "id") 
	'add field types 
	rsUser2.SchemaAddInt(Array("id","age"))
rsUser2.SchemaAddText(Array("user","age"))
 
	rsUser2.SelectAll(Array("*"), Array("id")) 
	rsUser2.JSON = banano.CallInlinePHPWait(rsUser2.MethodName, rsUser2.Build) 
	rsUser2.FromJSON 
	Select Case rsUser2.OK 
	Case False 
	'clear content 
		dtUser2.Reload(user3, user3.NewList) 
		'hide progress loader 
		dtUser2.UpdateLoading(user3, False) 
		Dim strError As String = rsUser2.Error 
		vuetify.ShowSnackBarError("An error took place whilst running the command. " & strError) 
		Return 
	End Select 
	dtUser2.Reload(user3, rsUser2.Result) 
	'hide progress loader 
	dtUser2.UpdateLoading(user3, False) 
End Sub

Sub ReadUser1(sid As String)			'ignoredeadcode 
	 
	Dim rsUser2 As BANanoMySQLE 
	rsUser2.Initialize("test", "users", "id", "id") 
	'add field types 
	rsUser2.SchemaAddInt(Array("id","age"))
rsUser2.SchemaAddText(Array("user","age"))
 
	rsUser2.Read(sid) 
	rsUser2.JSON = banano.CallInlinePHPWait(rsUser2.MethodName, rsUser2.Build) 
	rsUser2.FromJSON 
	Select Case rsUser2.OK 
	Case False 
		Dim strError As String = rsUser2.Error 
		vuetify.ShowSnackBarError("An error took place whilst running the command. " & strError) 
		Return 
	End Select 
	Dim User1M As Map = rsUser2.result.Get(0) 
	'show the drawer 
	user3.SetData("dlguser2show", True) 
	user3.SetData("user1", User1M) 
End Sub

Sub UpdateUser1(User1M As Map)			'ignoredeadcode 
	 
	Dim sid As String = User1M.Get("id") 
	Dim rsUser2 As BANanoMySQLE 
	rsUser2.Initialize("test", "users", "id", "id") 
	'add field types 
	rsUser2.SchemaAddInt(Array("id","age"))
rsUser2.SchemaAddText(Array("user","age"))
 
	'insert current record 
	rsUser2.Update1(User1M, sid) 
	rsUser2.JSON = banano.CallInlinePHPWait(rsUser2.MethodName, rsUser2.Build) 
	rsUser2.FromJSON 
	Select Case rsUser2.OK 
	Case False 
		Dim strError As String = rsUser2.Error 
		vuetify.ShowSnackBarError("An error took place whilst running the command. " & strError) 
	Case Else 
		vuetify.ShowSnackBarSuccess("The user1 has been updated successfully!") 
		'hide modal form 
		user3.SetData("dlguser2show", False) 
		'load records 
		user3.RunMethod("LoadUser2", Null) 
	End Select 
End Sub

Sub CreateUser1(User1M As Map)			'ignoredeadcode 
	'remove the auto-increment key field 
	User1M.Remove("id") 
	 
	Dim rsUser2 As BANanoMySQLE 
	rsUser2.Initialize("test", "users", "id", "id") 
	'add field types 
	rsUser2.SchemaAddInt(Array("id","age"))
rsUser2.SchemaAddText(Array("user","age"))
 
	'insert current record 
	rsUser2.Insert1(User1M) 
	rsUser2.JSON = banano.CallInlinePHPWait(rsUser2.MethodName, rsUser2.Build) 
	rsUser2.FromJSON 
	Select Case rsUser2.OK 
	Case False 
		Dim strError As String = rsUser2.Error 
		vuetify.ShowSnackBarError("An error took place whilst running the command. " & strError) 
	Case Else 
		vuetify.ShowSnackBarSuccess("The user1 has been added successfully!") 
		'hide modal form 
		user3.SetData("dlguser2show", False) 
		'Load records 
		user3.RunMethod("LoadUser2", Null) 
	End Select 
End Sub

Sub DeleteUser1(sid As String)			'ignoredeadcode 
	Dim rsUser2 As BANanoMySQLE 
	rsUser2.Initialize("test", "users", "id", "id") 
	'add field types 
	rsUser2.SchemaAddInt(Array("id","age"))
rsUser2.SchemaAddText(Array("user","age"))
 
	rsUser2.Delete(sid) 
	rsUser2.JSON = banano.CallInlinePHPWait(rsUser2.MethodName, rsUser2.Build) 
	rsUser2.FromJSON 
	Select Case rsUser2.OK 
	Case False 
		Dim strError As String = rsUser2.Error 
		vuetify.ShowSnackBarError("An error took place whilst running the command. " & strError) 
		Return 
	Case Else 
		vuetify.ShowSnackBarSuccess("The user1 was deleted successfully!") 
	End Select 
	user3.RunMethod("LoadUser2", Null) 
End Sub

Sub CreateTable
'add a container to hold the user2 
	Dim contUser1 As VueElement = vuetify.AddContainer(Me, user3.Here, "contUser1", True) 
	contUser1.AddRows1.AddColumns12 
	contUser1.BuildGrid 
	' 
	user3.BindVueElement(contUser1)
dtUser2 = vuetify.AddDataTable(Me, contUser1.MatrixID(1,1), "dtUser2")
dtUser2.Title = "User2"
dtUser2.ItemKey = "id"
dtUser2.ItemsPerPage = 10
dtUser2.AddSpacer
dtUser2.AddSearch
dtUser2.AddDivider
dtUser2.AddNew(user3)
dtUser2.AddDivider
dtUser2.AddClearSort(user3)
dtUser2.AddDivider
dtUser2.AddFilter(user3, "primary--text")
dtUser2.AddDivider
dtUser2.AddClearFilter(user3)
dtUser2.AddDivider
dtUser2.AddRefresh(user3)
dtUser2.AddDivider
dtUser2.AddColumn("id", "id")
dtUser2.AddColumn("user", "user")
dtUser2.AddColumn("age", "age")
dtUser2.AddColumn("name", "name")
dtUser2.SetTextField("user", True)
dtUser2.SetTextField("age", True)
dtUser2.AddEdit
dtUser2.AddDelete
dtUser2.SetIconDimensions("edit", "", vuetify.COLOR_GREEN)
dtUser2.SetIconDimensions("delete", "", vuetify.COLOR_RED)
dtUser2.SetDataSource(user3.NewList)
user3.BindVueTable(dtUser2)
End Sub

Sub dlgUser2ok_click(e As BANanoEvent)			'ignoredeadcode 
	'validate the form 
	'Dim bValid As Boolean = vuetify.FormValidate("frmAddtopic") 
	'Log(bValid) 
	 
	'If bValid = False Then Return 
	'get the topic 
	Dim User1M As Map = user3.GetData("user1") 
	'Dim stopicname As String = topicm.Get("topicname") 
	'stopicname = stopicname.Trim 
	'If stopicname = "" Then 
	'	vuetify.ShowSnackBarError("The topic name should be specified!") 
	'	Return 
	'End If 
	Select Case Mode 
	Case "A" 
		user3.RunMethod("CreateUser1", User1M) 
	Case "E"	 
		user3.RunMethod("UpdateUser1", User1M) 
	End Select 
End Sub

Sub dlgUser2cancel_click(e As BANanoEvent)				'ignoredeadcode 
	Mode = "A" 
	'initialize the record 
	user3.SetData("user1", vuetify.NewMap) 
	'hide the drawer/dialog 
	user3.SetData("dlguser2show", False) 
End Sub

Sub dtUser2_add_click(e As BANanoEvent)				'ignoredeadcode 
	AddUser1 
End Sub

Sub AddUser1			'ignoreDeadCode 
	 
	user3.DialogUpdateTitle("dlgUser2", "Add User1") 
	Mode = "A" 
	'initialize the record 
	Dim nt As Map = CreateMap() 
	nt.put("id", "")
	nt.put("user", "")
	nt.put("age", "")
	nt.put("age", "")
 
	user3.SetData("user1", nt) 
	user3.SetData("idshow", False)
 
	'show the drawer 
	user3.SetData("dlguser2show", True) 
	'vuetify.SetFocus("") 
End Sub

Private Sub dtUser2_edit (item As Map)				'ignoredeadcode 
	user3.DialogUpdateTitle("dlgUser2", "Edit User1") 
	Mode = "E" 
	Dim sid As String = item.Get("id") 
	user3.RunMethod("ReadUser1", sid) 
	user3.SetData("idshow", False)
 
	vuetify.SetFocus("") 
End Sub

Private Sub dtUser2_delete (item As Map)				'ignoredeadcode 
	Dim suser4 As String = item.Get("user4") 
	Dim sid As String = item.Get("id") 
	user3.SetData("id", sid) 
	user3.ShowConfirm("deleteuser1", $"Confirm Delete: ${suser4}"$, $"Are you sure you want to delete this user1?<br><br>Please note you will not be able to undo your changes. Continue?"$, "Yes", "No") 
	End Sub

Sub user3ok_click(e As BANanoEvent)			'ignoredeadcode 
	user3.HideDialog 
	'get the process 
	Dim sconfirm As String = user3.Confirm 
	Select Case sconfirm 
	Case "deleteuser1" 
	'get the saved id 
		Dim sid As String = user3.GetData("id") 
		user3.RunMethod("DeleteUser1", sid) 
	End Select 
End Sub

Sub user3cancel_click(e As BANanoEvent)			'ignoredeadcode 
	user3.HideDialog 
	'get the process 
	Dim sconfirm As String = user3.Confirm 
	Select Case sconfirm 
	End Select 
End Sub

Private Sub dtUser2_clearsort_Click (e As BANanoEvent)		'ignoredeadcode 
	dtUser2.ClearSort(user3) 
End Sub

Private Sub dtUser2_clearfilter_click (e As BANanoEvent)			'ignoredeadcode 
	dtUser2.ClearFilter(user3) 
End Sub

Private Sub dtUser2_refresh_click (e As BANanoEvent)			'ignoredeadcode 
user3.RunMethod("LoadUser2", Null) 
End Sub

Private Sub dtUser2_change (item As Map)				'ignoredeadcode 
	user3.RunMethod("UpdateUser1", item) 
End Sub

Private Sub dtUser2_filter_click(e As BANanoEvent)		'ignoredeadcode 
	dtUser2.ApplyFilter(user3) 
End Sub

Sub dtUser2_SaveItem (item As Map) 
	user3.RunMethod("UpdateUser1", item) 
End Sub

Private Sub dtUser2_CancelItem (item As Map) 
End Sub

Private Sub dtUser2_OpenItem (item As Map) 
End Sub

Private Sub dtUser2_CloseItem (item As Map) 
End Sub

Private Sub dtUser2_ItemSelected (item As Map) 
End Sub

Private Sub dtUser2_ClickRow (e As BANanoEvent) 
End Sub

Sub CreateDialog
'create a container
Dim dlgUser2 As VueElement = vuetify.AddDialogInput(Me, user3.Here, "dlgUser2", True, "600", "User2", "Save", "primary", "Cancel", "error")
user3.BindVueElement(dlgUser2)
'get the container
Dim User1Cont As VueElement = user3.DialogContainer("dlgUser2")
User1Cont.AddRows1.AddColumns12
User1Cont.BuildGrid
Dim id As VueElement = vuetify.AddTextField1(Me, User1Cont.MatrixID(1, 1), "id", "user1.id", "id", Null)
id.VShow = "idshow"
user3.BindVueElement(id)
Dim user As VueElement = vuetify.AddTextField1(Me, User1Cont.MatrixID(2, 1), "user", "user1.user", "user", Null)
user3.BindVueElement(user)
Dim age As VueElement = vuetify.AddTextField1(Me, User1Cont.MatrixID(3, 1), "age", "user1.age", "age", Null)
user3.BindVueElement(age)

user3.BindVueElement(User1Cont)
user3.BindVueElement(dlgUser2)
'initialize the User1
Dim user1 As Map = CreateMap()
user1.put("id", "")
user1.put("user", "")
user1.put("age", "")
user1.put("age", "")

user3.SetData("user1", user1)
End Sub


