<?xml version="1.0" encoding="utf-8"?>
<Application>
	<AppTitle>VisualNEO Web - neoTable Plugin Tutorial</AppTitle>
	<AppShortName>neoTable</AppShortName>
	<Author>SinLios</Author>
	<Version>1.0</Version>
	<Description>neoTable Plugin Tutorial</Description>
	<DesignDeviceName>Samsung Galaxy Tab 7</DesignDeviceName>
	<Variables>[idnumber],[loginMessage],[miobj],[mydata(&apos;BirthDate&apos;)],[mydata(&apos;City&apos;)],[mydata(&apos;FirstName&apos;)],[mydata(&apos;LastName&apos;)],[mydata(&apos;Notes&apos;)],[mydata(&apos;Title&apos;)],[mydata],[neoTableRow],[password],[selectedRow],[serverResponse],[strlength],[totalRows],[user],[userData(&apos;error&apos;)],[userData],[value]</Variables>
	<VariablesScanned>True</VariablesScanned>
	<PageWidth>1024</PageWidth>
	<PageHeight>600</PageHeight>
	<AutoSizeWidth>False</AutoSizeWidth>
	<AutoSizeHeight>False</AutoSizeHeight>
	<HideScrollbars>False</HideScrollbars>
	<PublishPlatform>WebApp</PublishPlatform>
	<EmptyBuildFolder>False</EmptyBuildFolder>
	<CustomCSS>.thead{
   background-color:#eaeaea;
}
.pages{
  background:#E0E0E0;
  overflow:hidden;
}
strong{
  color:#ed792f;
}
h1 strong,h2 strong,h3 strong{
  color:#403f3c;
}</CustomCSS>
	<LanguageCode>en</LanguageCode>
	<MobileOSTypes>[AndroidOS,iOS,WindowsPhoneOS]</MobileOSTypes>
	<WindowState>normal</WindowState>
	<TitleBar>True</TitleBar>
	<Sizeable>True</Sizeable>
	<MaximizeBtn>False</MaximizeBtn>
	<MinimizeBtn>True</MinimizeBtn>
	<SystemMenu>True</SystemMenu>
	<ContextMenu>False</ContextMenu>
	<AlwaysOnTop>False</AlwaysOnTop>
	<ShowInTaskbar>True</ShowInTaskbar>
	<SingleInstance>False</SingleInstance>
	<ChromeKioskMode>False</ChromeKioskMode>
	<startup>TopCenterApp
neoPhpSetPath &quot;neofunctions.php&quot;
neoTableConfigDB &quot;dataContainer1&quot; &quot;mydb&quot; &quot;Employees&quot; &quot;EmployeeID&quot;</startup>
	<Components>
		<FunctionList name="Subroutines">
			<Components>
				<Function name="getUserData">
					<Code>CreateEmptyObject [userData]
ParseJSON &quot;[loginData]&quot; [userData]
SetVar [user] &quot;&quot;
SetVar [password] &quot;&quot;
If [userData(&apos;error&apos;)] != &quot;&quot;
  FocusObject &quot;TextInput1&quot;
  SetVar [loginMessage] &quot;Wrong credentials, please try again&quot;
Else
  HideObject &quot;loginPanel&quot; &quot;fadeOut&quot; 13
  SetVar [loginMessage] &quot;Please enter user and password&quot;
EndIf</Code>
					<Params>[loginData]|STRING|JSON user data from server</Params>
				</Function>
				<Function name="testName">
					<Code>If [value] = &quot;&quot;
 Return &quot;Empty value not allowed&quot;
Else
 StrLen &quot;[value]&quot; [strlength]
 If [strlength] &gt; 20
   Return &quot;Max length 20 chars&quot;
 EndIf
EndIf</Code>
					<Params>[value]|STRING|name to test</Params>
				</Function>
				<Function name="testNotes">
					<Code>If [value] = &quot;&quot;
 Return &quot;Empty value not allowed&quot;
Else
 StrLen &quot;[value]&quot; [strlength]
 If [strlength] &gt; 200
   Return &quot;Max length 200 chars&quot;
 EndIf
EndIf</Code>
				</Function>
				<Function name="backFromServer">
					<Code>SetVar [serverResponse] [resp]</Code>
					<Params>[resp]|STRING|Server response</Params>
				</Function>
				<Function name="parsedata">
					<Code>CreateEmptyObject [miobj]
SetVar [miobj] [resp]
ArrayLen [miobj] [totalRows]
ConsoleLog &quot;Total records: [totalRows]&quot;

neoTableEditColumnAsText &quot;dataContainer1&quot; &quot;3&quot; &quot;popup&quot; &quot;right&quot; &quot;Last name&quot; &quot;&quot; true &quot;testName&quot; true &quot;backFromServer&quot;
neoTableEditColumnAsText &quot;dataContainer1&quot; &quot;4&quot; &quot;popup&quot; &quot;bottom&quot; &quot;First name&quot; &quot;&quot; true &quot;testName&quot; true &quot;backFromServer&quot;
neoTableEditColumnAsSelect &quot;dataContainer1&quot; &quot;5&quot; &quot;popup&quot; &quot;bottom&quot; &quot;Select title&quot; &quot;Sales Representative\nSales Manager\nVice President\nInside Sales Coordinator\nSecretary&quot; &quot;&quot; true &quot;backFromServer&quot;
neoTableEditColumnAsDate &quot;dataContainer1&quot; &quot;6&quot; &quot;bottom&quot; &quot;Select birth date&quot; &quot;mm/dd/yyyy&quot; &quot;mm/dd/yyyy&quot; &quot;Sunday&quot; &quot;en&quot; &quot;&quot; true &quot;backFromServer&quot;
neoTableEditColumnAsCheckList &quot;dataContainer1&quot; &quot;7&quot; &quot;popup&quot; &quot;bottom&quot; &quot;Choose cities&quot; &quot;London\nMadrid\nSeattle\nTacoma\nKirkland\nRedmond\nNew York\nSan Francisco&quot; &quot;&quot; true &quot;backFromServer&quot;
neoTableEditColumnAsTextArea &quot;dataContainer1&quot; &quot;8&quot; &quot;popup&quot; &quot;left&quot; &quot;Add some notes&quot; &quot;&quot; true &quot;testNotes&quot; true &quot;backFromServer&quot;

neoTableResetColumns &quot;dataContainer1&quot;
neoTableSetSelectColumn &quot;dataContainer1&quot; 1 &quot;EmployeeID&quot;
neoTableSetColumn &quot;dataContainer1&quot; 2 &quot;EmployeeID&quot; &quot;Id&quot; &quot;&quot; false false false &quot;&quot;
neoTableSetColumn &quot;dataContainer1&quot; 3 &quot;LastName&quot; &quot;Last name&quot; &quot;&quot; false true true &quot;&quot;
neoTableSetColumn &quot;dataContainer1&quot; 4 &quot;FirstName&quot; &quot;First name&quot; &quot;&quot; false true true &quot;&quot;
neoTableSetColumn &quot;dataContainer1&quot; 5 &quot;Title&quot; &quot;Title&quot; &quot;&quot; false true true &quot;&quot;
neoTableSetColumn &quot;dataContainer1&quot; 6 &quot;BirthDate&quot; &quot;Birth Date&quot; &quot;&quot; false true true &quot;&quot;
neoTableSetColumn &quot;dataContainer1&quot; 7 &quot;City&quot; &quot;Cities&quot; &quot;&quot; false true true &quot;&quot;
neoTableSetColumn &quot;dataContainer1&quot; 8 &quot;Notes&quot; &quot;Notes&quot; &quot;&quot; false true true &quot;&quot;

neoTableInitTable &quot;dataContainer1&quot; &quot;&quot; 0 &quot;Table&quot; true true true true false &quot;&quot;
neoTableLoadData &quot;dataContainer1&quot; [miobj]

EnableObject &quot;PushButtonDeleteRow&quot;
EnableObject &quot;PushButtonAddRow&quot;</Code>
					<Params>[resp]|STRING|JSON Data</Params>
				</Function>
				<Function name="parsedata2">
					<Code>CreateEmptyObject [miobj]
SetVar [miobj] [resp]
ArrayLen [miobj] [totalRows]
ConsoleLog &quot;Total records: [totalRows]&quot;

neoTableResetColumns &quot;dataContainer1&quot;
neoTableSetColumn &quot;dataContainer1&quot; 1 &quot;EmployeeID&quot; &quot;Id&quot; &quot;&quot; false false false &quot;&quot;
neoTableSetColumn &quot;dataContainer1&quot; 2 &quot;LastName&quot; &quot;Last name&quot; &quot;&quot; false false true &quot;&quot;
neoTableSetColumn &quot;dataContainer1&quot; 3 &quot;FirstName&quot; &quot;First name&quot; &quot;&quot; false false true &quot;&quot;
neoTableSetColumn &quot;dataContainer1&quot; 4 &quot;Title&quot; &quot;Title&quot; &quot;&quot; false false true &quot;&quot;
neoTableSetColumn &quot;dataContainer1&quot; 5 &quot;BirthDate&quot; &quot;Birth Date&quot; &quot;&quot; false false true &quot;&quot;
neoTableSetColumn &quot;dataContainer1&quot; 6 &quot;City&quot; &quot;Cities&quot; &quot;&quot; false false true &quot;&quot;
neoTableSetColumn &quot;dataContainer1&quot; 7 &quot;Notes&quot; &quot;Notes&quot; &quot;&quot; false false true &quot;&quot;

neoTableInitTable &quot;dataContainer1&quot; &quot;&quot; 0 &quot;Table&quot; true true true true false &quot;&quot;
neoTableLoadData &quot;dataContainer1&quot; [miobj]

EnableObject &quot;PushButtonDeleteRow&quot;
EnableObject &quot;PushButtonAddRow&quot;</Code>
					<Params>[resp]|STRING|Server data</Params>
				</Function>
				<Function name="userLogout">
					<Code>ShowObject &quot;loginPanel&quot; &quot;fadeIn&quot; 13</Code>
				</Function>
				<Function name="loadrecords">
					<Code>neoPhpExecSql &quot;mydb&quot; &quot;selectemployees&quot; &quot;&quot; &quot;parsedata&quot;</Code>
				</Function>
			</Components>
		</FunctionList>
		<LibraryList name="Libraries"/>
		<PageList name="Main">
			<Components>
				<Page id="Simple">
					<style>background-color:#E0E0E0;overflow-x:visible;overflow-y:visible</style>
					<foreground_masterpage>MasterPage</foreground_masterpage>
					<enter_effect>fadeIn</enter_effect>
					<pageenter>SetVar [loginMessage] &quot;Please enter user and password&quot;</pageenter>
					<Components>
						<Rectangle id="Rectangle1">
							<left>0px</left>
							<top>0px</top>
							<width>1024px</width>
							<height>88px</height>
							<style>fill:#403f3c</style>
							<corner_radius>0</corner_radius>
						</Rectangle>
						<Headline id="Headline1">
							<left>0px</left>
							<top>16px</top>
							<width>496px</width>
							<height>56px</height>
							<style>color:#ffffff;font-family:verdana;font-size:20pt;background-color:#ed792f;padding-bottom:15px;padding-left:15px;padding-right:15px;padding-top:10px</style>
							<text>&lt;strong&gt;neoTable&lt;/strong&gt; 2.0</text>
							<kind>h2</kind>
						</Headline>
						<Container id="dataContainer1">
							<left>16px</left>
							<top>136px</top>
							<width>992px</width>
							<height>448px</height>
							<style>background-color:#FFFFFF;border-color:#A8A8A8;border-style:solid;border-width:1px;overflow-x:visible;overflow-y:auto</style>
							<css_class>Paragrph1</css_class>
						</Container>
						<Headline id="Headline4">
							<left>249px</left>
							<top>16px</top>
							<width>775px</width>
							<height>56px</height>
							<style>color:#ffffff;font-family:verdana;font-size:20pt;text-align:right;background-color:#ed792f;padding-bottom:15px;padding-left:15px;padding-right:15px;padding-top:10px</style>
							<text>DataBase edition capabilities</text>
							<kind>h2</kind>
						</Headline>
						<PushButton id="PushButton22">
							<left>552px</left>
							<top>96px</top>
							<width>88px</width>
							<height>32px</height>
							<caption>Edit Data</caption>
							<click>neoPhpExecSql &quot;mydb&quot; &quot;selectemployees&quot; &quot;&quot; &quot;parsedata&quot;</click>
						</PushButton>
						<PushButton id="PushButton1">
							<left>16px</left>
							<top>96px</top>
							<width>168px</width>
							<height>32px</height>
							<caption>Load&amp;nbsp;Data from DB</caption>
							<icon>glyphicon-cloud-download</icon>
							<click>neoPhpExecSql &quot;mydb&quot; &quot;selectemployees&quot; &quot;&quot; &quot;parsedata2&quot;</click>
						</PushButton>
						<PushButton id="PushButtonDeleteRow">
							<left>784px</left>
							<top>96px</top>
							<width>136px</width>
							<height>32px</height>
							<enabled>False</enabled>
							<caption>Delete Row</caption>
							<icon>glyphicon-trash</icon>
							<kind>danger</kind>
							<click>neoTableGetSelectedId &quot;dataContainer1&quot; [selectedRow]
If [selectedRow] != undefined
  neoPhpExecSql &quot;mydb&quot; &quot;deleteemployeesrow&quot; &quot;[selectedRow]&quot; &quot;loadrecords&quot;
Else
  AlertBox &quot;Warning&quot; &quot;Please select a row first.&lt;br&gt;New rows must be reloaded before deleting them&quot; &quot;&quot;
EndIf</click>
						</PushButton>
						<PushButton id="PushButtonAddRow">
							<left>648px</left>
							<top>96px</top>
							<width>128px</width>
							<height>32px</height>
							<enabled>False</enabled>
							<caption>Add new row</caption>
							<icon>glyphicon-plus-sign</icon>
							<kind>primary</kind>
							<click>neoPhpExecSql &quot;mydb&quot; &quot;insertemployees&quot; &quot;&quot; &quot;loadrecords&quot;</click>
						</PushButton>
						<PushButton id="PushButton5">
							<left>928px</left>
							<top>96px</top>
							<width>80px</width>
							<height>32px</height>
							<caption>Logout</caption>
							<click>neoPhpUserLogOut &quot;userLogout&quot;</click>
						</PushButton>
					</Components>
				</Page>
			</Components>
		</PageList>
		<PageList name="Master">
			<Components>
				<Page id="MasterPage"/>
			</Components>
		</PageList>
		<PageList name="Dialog">
			<Components>
				<Page id="NewDialog">
					<Components>
						<DialogContainer id="DialogContainer1">
							<left>0px</left>
							<top>0px</top>
							<width>1024px</width>
							<height>600px</height>
							<close_button>False</close_button>
						</DialogContainer>
					</Components>
				</Page>
			</Components>
		</PageList>
	</Components>
</Application>
