This commit is contained in:
2022-07-01 22:43:41 +00:00
parent 0bf27c88be
commit 0e187e4564
11 changed files with 406 additions and 3947 deletions

View File

@@ -99,6 +99,12 @@
<DependentUpon>MainForm.cs</DependentUpon>
</Compile>
<Compile Include="InvoiceableItem.cs" />
<Compile Include="Map.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Map.Designer.cs">
<DependentUpon>Map.cs</DependentUpon>
</Compile>
<Compile Include="NameIdActiveChargeCostItem.cs" />
<Compile Include="NameIdActiveItem.cs" />
<Compile Include="NameIdItem.cs" />
@@ -187,6 +193,9 @@
<EmbeddedResource Include="MainForm.resx">
<DependentUpon>MainForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Map.resx">
<DependentUpon>Map.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
@@ -264,6 +273,7 @@
</ItemGroup>
<ItemGroup>
<Content Include="devinfo.txt" />
<None Include="Resources\logo.ico" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>

View File

@@ -28,9 +28,8 @@
/// </summary>
private void InitializeComponent()
{
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle();
this.menuStrip1 = new System.Windows.Forms.MenuStrip();
this.invoicesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
@@ -64,6 +63,7 @@
//
// menuStrip1
//
this.menuStrip1.Enabled = false;
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.invoicesToolStripMenuItem,
this.toolsToolStripMenuItem,
@@ -145,6 +145,7 @@
this.mapAndImportToolStripMenuItem.Name = "mapAndImportToolStripMenuItem";
this.mapAndImportToolStripMenuItem.Size = new System.Drawing.Size(245, 22);
this.mapAndImportToolStripMenuItem.Text = "&Map and import";
this.mapAndImportToolStripMenuItem.Click += new System.EventHandler(this.mapAndImportToolStripMenuItem_Click);
//
// invoiceDescriptiveTextTemplateToolStripMenuItem
//
@@ -199,17 +200,17 @@
this.grid.AllowUserToAddRows = false;
this.grid.AllowUserToDeleteRows = false;
this.grid.AllowUserToResizeRows = false;
dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke;
this.grid.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1;
dataGridViewCellStyle3.BackColor = System.Drawing.Color.WhiteSmoke;
this.grid.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle3;
this.grid.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;
dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.grid.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle2;
dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle4.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
dataGridViewCellStyle4.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.grid.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle4;
this.grid.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.grid.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.customer,
@@ -315,7 +316,6 @@
this.ClientSize = new System.Drawing.Size(790, 474);
this.Controls.Add(this.grid);
this.Controls.Add(this.menuStrip1);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MainMenuStrip = this.menuStrip1;
this.Name = "MainForm";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;

View File

@@ -15,6 +15,7 @@ namespace AyaNovaQBI
public MainForm()
{
InitializeComponent();
this.Icon = AyaNovaQBI.Properties.Resources.logo;
}
async private void MainForm_Load(object sender, EventArgs e)
@@ -47,6 +48,7 @@ namespace AyaNovaQBI
//}
}
grid.Visible = true;
menuStrip1.Enabled = true;
MessageBox.Show("DONE / OK");
// grid.DataSource = util.GetInvoiceableItems();
@@ -114,5 +116,17 @@ namespace AyaNovaQBI
await util.ValidateSettings(true);
//TODO: CODE THIS InitInvoices();
}
private void mapAndImportToolStripMenuItem_Click(object sender, EventArgs e)
{
Map m = new Map();
if (m.ShowDialog() == DialogResult.Abort)
this.Close();
else
{
m.Dispose();
//todo: this.InitInvoices();
}
}
}
}

File diff suppressed because it is too large Load Diff

182
AyaNovaQBI/Map.Designer.cs generated Normal file
View File

@@ -0,0 +1,182 @@
namespace AyaNovaQBI
{
partial class Map
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.menuStrip1 = new System.Windows.Forms.MenuStrip();
this.objectToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.customersToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.serviceRatesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.travelRatesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.partsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.vendorsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.showToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.allItemsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.linkedItemsOnlyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.unlinkedItemsOnlyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.autoLinkToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.updateAyaNovaPricesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.menuStrip1.SuspendLayout();
this.SuspendLayout();
//
// menuStrip1
//
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.objectToolStripMenuItem,
this.showToolStripMenuItem,
this.autoLinkToolStripMenuItem,
this.updateAyaNovaPricesToolStripMenuItem});
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
this.menuStrip1.Name = "menuStrip1";
this.menuStrip1.Size = new System.Drawing.Size(800, 24);
this.menuStrip1.TabIndex = 0;
this.menuStrip1.Text = "menuStrip1";
//
// objectToolStripMenuItem
//
this.objectToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.customersToolStripMenuItem,
this.serviceRatesToolStripMenuItem,
this.travelRatesToolStripMenuItem,
this.partsToolStripMenuItem,
this.vendorsToolStripMenuItem});
this.objectToolStripMenuItem.Name = "objectToolStripMenuItem";
this.objectToolStripMenuItem.Size = new System.Drawing.Size(54, 20);
this.objectToolStripMenuItem.Text = "&Object";
//
// customersToolStripMenuItem
//
this.customersToolStripMenuItem.Name = "customersToolStripMenuItem";
this.customersToolStripMenuItem.Size = new System.Drawing.Size(139, 22);
this.customersToolStripMenuItem.Text = "&Customers";
//
// serviceRatesToolStripMenuItem
//
this.serviceRatesToolStripMenuItem.Name = "serviceRatesToolStripMenuItem";
this.serviceRatesToolStripMenuItem.Size = new System.Drawing.Size(139, 22);
this.serviceRatesToolStripMenuItem.Text = "&Service rates";
//
// travelRatesToolStripMenuItem
//
this.travelRatesToolStripMenuItem.Name = "travelRatesToolStripMenuItem";
this.travelRatesToolStripMenuItem.Size = new System.Drawing.Size(139, 22);
this.travelRatesToolStripMenuItem.Text = "&Travel rates";
//
// partsToolStripMenuItem
//
this.partsToolStripMenuItem.Name = "partsToolStripMenuItem";
this.partsToolStripMenuItem.Size = new System.Drawing.Size(139, 22);
this.partsToolStripMenuItem.Text = "&Parts";
//
// vendorsToolStripMenuItem
//
this.vendorsToolStripMenuItem.Name = "vendorsToolStripMenuItem";
this.vendorsToolStripMenuItem.Size = new System.Drawing.Size(139, 22);
this.vendorsToolStripMenuItem.Text = "&Vendors";
//
// showToolStripMenuItem
//
this.showToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.allItemsToolStripMenuItem,
this.linkedItemsOnlyToolStripMenuItem,
this.unlinkedItemsOnlyToolStripMenuItem});
this.showToolStripMenuItem.Name = "showToolStripMenuItem";
this.showToolStripMenuItem.Size = new System.Drawing.Size(48, 20);
this.showToolStripMenuItem.Text = "&Show";
//
// allItemsToolStripMenuItem
//
this.allItemsToolStripMenuItem.Checked = true;
this.allItemsToolStripMenuItem.CheckOnClick = true;
this.allItemsToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked;
this.allItemsToolStripMenuItem.Name = "allItemsToolStripMenuItem";
this.allItemsToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.allItemsToolStripMenuItem.Text = "&All items";
this.allItemsToolStripMenuItem.Click += new System.EventHandler(this.showSubItemToolStripMenuItem_Click);
//
// linkedItemsOnlyToolStripMenuItem
//
this.linkedItemsOnlyToolStripMenuItem.CheckOnClick = true;
this.linkedItemsOnlyToolStripMenuItem.Name = "linkedItemsOnlyToolStripMenuItem";
this.linkedItemsOnlyToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.linkedItemsOnlyToolStripMenuItem.Text = "&Linked items only";
this.linkedItemsOnlyToolStripMenuItem.Click += new System.EventHandler(this.showSubItemToolStripMenuItem_Click);
//
// unlinkedItemsOnlyToolStripMenuItem
//
this.unlinkedItemsOnlyToolStripMenuItem.CheckOnClick = true;
this.unlinkedItemsOnlyToolStripMenuItem.Name = "unlinkedItemsOnlyToolStripMenuItem";
this.unlinkedItemsOnlyToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.unlinkedItemsOnlyToolStripMenuItem.Text = "&Unlinked items only";
this.unlinkedItemsOnlyToolStripMenuItem.Click += new System.EventHandler(this.showSubItemToolStripMenuItem_Click);
//
// autoLinkToolStripMenuItem
//
this.autoLinkToolStripMenuItem.Name = "autoLinkToolStripMenuItem";
this.autoLinkToolStripMenuItem.Size = new System.Drawing.Size(67, 20);
this.autoLinkToolStripMenuItem.Text = "&Auto link";
//
// updateAyaNovaPricesToolStripMenuItem
//
this.updateAyaNovaPricesToolStripMenuItem.Name = "updateAyaNovaPricesToolStripMenuItem";
this.updateAyaNovaPricesToolStripMenuItem.Size = new System.Drawing.Size(142, 20);
this.updateAyaNovaPricesToolStripMenuItem.Text = "&Update AyaNova prices";
//
// Map
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(800, 450);
this.Controls.Add(this.menuStrip1);
this.MainMenuStrip = this.menuStrip1;
this.Name = "Map";
this.Text = "Map";
this.menuStrip1.ResumeLayout(false);
this.menuStrip1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.MenuStrip menuStrip1;
private System.Windows.Forms.ToolStripMenuItem objectToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem customersToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem serviceRatesToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem travelRatesToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem partsToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem vendorsToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem showToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem allItemsToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem linkedItemsOnlyToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem unlinkedItemsOnlyToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem autoLinkToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem updateAyaNovaPricesToolStripMenuItem;
}
}

48
AyaNovaQBI/Map.cs Normal file
View File

@@ -0,0 +1,48 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace AyaNovaQBI
{
public partial class Map : Form
{
public Map()
{
InitializeComponent();
this.Icon = AyaNovaQBI.Properties.Resources.logo;
}
private void showSubItemToolStripMenuItem_Click(object sender, EventArgs e)
{
// Set the current clicked item to item
ToolStripMenuItem item = sender as ToolStripMenuItem;
// Loop through all items in the subMenu and uncheck them but do check the clicked item
foreach (ToolStripMenuItem tempItemp in showToolStripMenuItem.DropDownItems)
{
if (tempItemp == item)
tempItemp.Checked = true;
else
tempItemp.Checked = false;
}
}
/*
* Simplified, no drag and drop just pick and choose with clicks
* A menu to select the ayanova object type which then populates the ayanova items grid of that type showing:
A single grid showing all ayanova items of the selected type with their name in the first column and a second column showing what they are mapped to in qb item name, easy peasy, no drag and drop
User can select one or more items
when one or more are selected
a menu item appears saying "MAP Selected items" when they select they can pick a qb item of the type they want and accept in a popup dialog which also shows how many ayanova items are selected
a menyu tiem apepars saying UNMAP selected items when they select it it removes the mapping after confirmation dialog from all selected items
*/
}
}

123
AyaNovaQBI/Map.resx Normal file
View File

@@ -0,0 +1,123 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

View File

@@ -60,6 +60,16 @@ namespace AyaNovaQBI.Properties {
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Icon similar to (Icon).
/// </summary>
internal static System.Drawing.Icon logo {
get {
object obj = ResourceManager.GetObject("logo", resourceCulture);
return ((System.Drawing.Icon)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>

View File

@@ -124,4 +124,7 @@
<data name="pass" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\pass.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="logo" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\logo.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

Binary file not shown.

After

Width:  |  Height:  |  Size: 230 KiB

View File

@@ -1,4 +1,4 @@
TODO:
Test persisted form settings for server url
Test persisted form settings for server url (ONCE POSTED NEW BUILD OF AYANOVA TO TEST SERVER)
Docs should not refer to autoclose anymore, it's status driven now
disable menu on boot until ready for action