'statis code module
Sub Process_Globals
Public vuetify As VuetifyApp 
Public user As VueComponent 
Public path As String 
Public name As String = "user" 
Private banano As BANano 
Private dtUser As VueTable 
Private dlgUser As VueElement 
Private Mode As String  
End Sub

Sub Initialize
'establish a reference to the app
vuetify = pgIndex.vuetify
''initialize the component
user.Initialize(Me, name)
path = user.path
'
''add a dialog for this page
Dim dlg As VueElement = vuetify.AddDialogAlertPrompt(Me, user.Here, name, True, 500, "primary", "error")
user.BindVueElement(dlg)
'
CreateTable
CreateDialog
'
'as soon as we have mounted, show the user
Dim args As List = user.newlist
user.SetMounted(Me, "LoadUser", args)
'add supporting CRUD methods...
user.SetMethod(Me, "CreateUser", args)
user.SetMethod(Me, "DeleteUser", args)
user.SetMethod(Me, "UpdateUser", args)
user.SetMethod(Me, "ReadUser", args)
''add the component as a router
vuetify.AddRoute(user)
End Sub


Sub LoadUser		'ignoredeadcode 
	'Show progress loader 
	dtUser.UpdateLoading(user, True) 
	Dim rsUser As BANanoMySQLE 
	rsUser.Initialize("test", "users", "id", "id") 
	'add field types 
	rsUser.SchemaAddInt(Array("id","age"))
rsUser.SchemaAddText(Array("user","age"))
 
	rsUser.SelectAll(Array("*"), Array("id")) 
	rsUser.JSON = banano.CallInlinePHPWait(rsUser.MethodName, rsUser.Build) 
	rsUser.FromJSON 
	Select Case rsUser.OK 
	Case False 
	'clear content 
		dtUser.Reload(user, user.NewList) 
		'hide progress loader 
		dtUser.UpdateLoading(user, False) 
		Dim strError As String = rsUser.Error 
		vuetify.ShowSnackBarError("An error took place whilst running the command. " & strError) 
		Return 
	End Select 
	dtUser.Reload(user, rsUser.Result) 
	'hide progress loader 
	dtUser.UpdateLoading(user, False) 
End Sub

Sub ReadUser(sid As String)			'ignoredeadcode 
	 
	Dim rsUser As BANanoMySQLE 
	rsUser.Initialize("test", "users", "id", "id") 
	'add field types 
	rsUser.SchemaAddInt(Array("id","age"))
rsUser.SchemaAddText(Array("user","age"))
 
	rsUser.Read(sid) 
	rsUser.JSON = banano.CallInlinePHPWait(rsUser.MethodName, rsUser.Build) 
	rsUser.FromJSON 
	Select Case rsUser.OK 
	Case False 
		Dim strError As String = rsUser.Error 
		vuetify.ShowSnackBarError("An error took place whilst running the command. " & strError) 
		Return 
	End Select 
	Dim UserM As Map = rsUser.result.Get(0) 
	'show the drawer 
	user.SetData("dlgusershow", True) 
	user.SetData("user", UserM) 
End Sub

Sub UpdateUser(UserM As Map)			'ignoredeadcode 
	 
	Dim sid As String = UserM.Get("id") 
	Dim rsUser As BANanoMySQLE 
	rsUser.Initialize("test", "users", "id", "id") 
	'add field types 
	rsUser.SchemaAddInt(Array("id","age"))
rsUser.SchemaAddText(Array("user","age"))
 
	'insert current record 
	rsUser.Update1(UserM, sid) 
	rsUser.JSON = banano.CallInlinePHPWait(rsUser.MethodName, rsUser.Build) 
	rsUser.FromJSON 
	Select Case rsUser.OK 
	Case False 
		Dim strError As String = rsUser.Error 
		vuetify.ShowSnackBarError("An error took place whilst running the command. " & strError) 
	Case Else 
		vuetify.ShowSnackBarSuccess("The user has been updated successfully!") 
		'hide modal form 
		user.SetData("dlgusershow", False) 
		'load records 
		user.RunMethod("LoadUser", Null) 
	End Select 
End Sub

Sub CreateUser(UserM As Map)			'ignoredeadcode 
	'remove the auto-increment key field 
	UserM.Remove("id") 
	 
	Dim rsUser As BANanoMySQLE 
	rsUser.Initialize("test", "users", "id", "id") 
	'add field types 
	rsUser.SchemaAddInt(Array("id","age"))
rsUser.SchemaAddText(Array("user","age"))
 
	'insert current record 
	rsUser.Insert1(UserM) 
	rsUser.JSON = banano.CallInlinePHPWait(rsUser.MethodName, rsUser.Build) 
	rsUser.FromJSON 
	Select Case rsUser.OK 
	Case False 
		Dim strError As String = rsUser.Error 
		vuetify.ShowSnackBarError("An error took place whilst running the command. " & strError) 
	Case Else 
		vuetify.ShowSnackBarSuccess("The user has been added successfully!") 
		'hide modal form 
		user.SetData("dlgusershow", False) 
		'Load records 
		user.RunMethod("LoadUser", Null) 
	End Select 
End Sub

Sub DeleteUser(sid As String)			'ignoredeadcode 
	Dim rsUser As BANanoMySQLE 
	rsUser.Initialize("test", "users", "id", "id") 
	'add field types 
	rsUser.SchemaAddInt(Array("id","age"))
rsUser.SchemaAddText(Array("user","age"))
 
	rsUser.Delete(sid) 
	rsUser.JSON = banano.CallInlinePHPWait(rsUser.MethodName, rsUser.Build) 
	rsUser.FromJSON 
	Select Case rsUser.OK 
	Case False 
		Dim strError As String = rsUser.Error 
		vuetify.ShowSnackBarError("An error took place whilst running the command. " & strError) 
		Return 
	Case Else 
		vuetify.ShowSnackBarSuccess("The user was deleted successfully!") 
	End Select 
	user.RunMethod("LoadUser", Null) 
End Sub

Sub CreateTable
'add a container to hold the user 
	Dim contUser As VueElement = vuetify.AddContainer(Me, user.Here, "contUser", True) 
	contUser.AddRows1.AddColumns12 
	contUser.BuildGrid 
	' 
	user.BindVueElement(contUser)
dtUser = vuetify.AddDataTable(Me, contUser.MatrixID(1,1), "dtUser")
dtUser.Title = "User"
dtUser.ItemKey = "id"
dtUser.ItemsPerPage = 10
dtUser.AddSpacer
dtUser.AddSearch
dtUser.AddDivider
dtUser.AddNew(user)
dtUser.AddDivider
dtUser.AddClearSort(user)
dtUser.AddDivider
dtUser.AddFilter(user, "primary--text")
dtUser.AddDivider
dtUser.AddClearFilter(user)
dtUser.AddDivider
dtUser.AddRefresh(user)
dtUser.AddDivider
dtUser.AddColumn("id", "id")
dtUser.AddColumn("user", "user")
dtUser.AddColumn("age", "age")
dtUser.AddColumn("name", "name")
dtUser.SetTextField("user", true)
dtUser.SetTextField("age", true)
dtUser.AddEdit
dtUser.AddDelete
dtUser.SetIconDimensions("edit", "", vuetify.COLOR_GREEN)
dtUser.SetIconDimensions("delete", "", vuetify.COLOR_RED)
dtUser.SetDataSource(user.NewList)
user.BindVueTable(dtUser)
End Sub

Sub dlgUserok_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 UserM As Map = user.GetData("user") 
	'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" 
		user.RunMethod("CreateUser", UserM) 
	Case "E"	 
		user.RunMethod("UpdateUser", UserM) 
	End Select 
End Sub

Sub dlgUsercancel_click(e As BANanoEvent)				'ignoredeadcode 
	Mode = "A" 
	'initialize the record 
	user.SetData("user", vuetify.NewMap) 
	'hide the drawer/dialog 
	user.SetData("dlgusershow", False) 
End Sub

Sub dtUser_add_click(e As BANanoEvent)				'ignoredeadcode 
	AddUser 
End Sub

Sub AddUser			'ignoreDeadCode 
	 
	user.DialogUpdateTitle("dlgUser", "Add User") 
	Mode = "A" 
	'initialize the record 
	Dim nt As Map = CreateMap() 
	nt.put("id", )
nt.put("user", "")
nt.put("age", "")
nt.put("age", )
 
	user.SetData("user", nt) 
	user.SetData("idshow", false)
 
	'show the drawer 
	user.SetData("dlgusershow", True) 
	'vuetify.SetFocus("") 
End Sub

Private Sub dtUser_edit (item As Map)				'ignoredeadcode 
	user.DialogUpdateTitle("dlgUser", "Edit User") 
	Mode = "E" 
	Dim sid As String = item.Get("id") 
	user.RunMethod("ReadUser", sid) 
	user.SetData("idshow", false)
 
	vuetify.SetFocus("") 
End Sub

Private Sub dtUser_delete (item As Map)				'ignoredeadcode 
	Dim suser As String = item.Get("user") 
	Dim sid As String = item.Get("id") 
	user.SetData("id", sid) 
	user.ShowConfirm("deleteuser", $"Confirm Delete: ${suser}"$, $"Are you sure you want to delete this user?<br><br>Please note you will not be able to undo your changes. Continue?"$, "Yes", "No") 
	End Sub

Sub userok_click(e As BANanoEvent)			'ignoredeadcode 
	user.HideDialog 
	'get the process 
	Dim sconfirm As String = user.Confirm 
	Select Case sconfirm 
	Case "deleteuser" 
	'get the saved id 
		Dim sid As String = user.GetData("id") 
		user.RunMethod("DeleteUser", sid) 
	End Select 
End Sub

Sub usercancel_click(e As BANanoEvent)			'ignoredeadcode 
	user.HideDialog 
	'get the process 
	Dim sconfirm As String = user.Confirm 
	Select Case sconfirm 
	End Select 
End Sub

Private Sub dtUser_clearsort_Click (e As BANanoEvent)		'ignoredeadcode 
	dtUser.ClearSort(user) 
End Sub

Private Sub dtUser_clearfilter_click (e As BANanoEvent)			'ignoredeadcode 
	dtUser.ClearFilter(user) 
End Sub

Private Sub dtUser_refresh_click (e As BANanoEvent)			'ignoredeadcode 
user.RunMethod("LoadUser", Null) 
End Sub

Private Sub dtUser_change (item As Map)				'ignoredeadcode 
	user.RunMethod("UpdateUser", item) 
End Sub

Private Sub dtUser_filter_click(e As BANanoEvent)		'ignoredeadcode 
	dtUser.ApplyFilter(user) 
End Sub

Sub dtUser_SaveItem (item As Map) 
	user.RunMethod("UpdateUser", item) 
End Sub

Private Sub dtUser_CancelItem (item As Map) 
End Sub

Private Sub dtUser_OpenItem (item As Map) 
End Sub

Private Sub dtUser_CloseItem (item As Map) 
End Sub

Private Sub dtUser_ItemSelected (item As Map) 
End Sub

Private Sub dtUser_ClickRow (e As BANanoEvent) 
End Sub

Sub CreateDialog
'create a container
Dim dlgUser As VueElement = vuetify.AddDialogInput(Me, user.Here, "dlgUser", True, "600", "User", "Save", "primary", "Cancel", "error")
user.BindVueElement(dlgUser)
'get the container
Dim UserCont As VueElement = user.DialogContainer("dlgUser")
UserCont.AddRows1.AddColumns12
UserCont.BuildGrid
Dim id As VueElement = vuetify.AddTextField1(Me, UserCont.MatrixID(1, 1), "id", "user.id", "id", Null)
id.VShow = "idshow"
user.BindVueElement(id)
Dim user As VueElement = vuetify.AddTextField1(Me, UserCont.MatrixID(2, 1), "user", "user.user", "user", Null)
user.BindVueElement(user)
Dim age As VueElement = vuetify.AddTextField1(Me, UserCont.MatrixID(3, 1), "age", "user.age", "age", Null)
user.BindVueElement(age)

user.BindVueElement(UserCont)
user.BindVueElement(dlgUser)
'initialize the User
Dim user As Map = CreateMap()
user.put("id", )
user.put("user", "")
user.put("age", "")
user.put("age", )

user.SetData("user", user)
End Sub


