elements with an id tag that provides the name of the request.
+
+A request response will contain HTML document data that will be replaced as the innerHTML of the request 'placeholder'. Variables specified in the view will be rendered and the HTML is attached to the document structure where the request exists.
+
+The document content of the response may contain a script tag which contains javascript that executes immediately after the HTML is attached to the document.
+
+\section{Business Entities}
+
+Business entities provide the framework in which to hang all thiese views and logic. Business entities allow for the description of account, customers, products, inventories and any other associated data elements that may be used in business logic consideration.
+
+Instances of business entities are considered entity objects or entity instances. Interaction with business entities is performed using an object style interface and JETServer uses mySQL underneath to perform the persistent storage operations.
+
+Views are associated with a business entity combined with a microservice method to create functionality.
+
+\section{Microservice Methods}
+
+JETServer uses a microservices style architecture and provides access to backend services through an API set that is designed to interact with the various view components of the application.
+
+Microservice methods are oriented around the business entity structure and are used to provide information query handling as well as the add, update and delete functionality of new business entity instances.
+
+Microservice methods can also be used to provide lists of objects that can be further used in modifying or removing instances.
+
+Applications can be designed that employee various business logic entities. Views that define forms for adding new customers or information on books or some other data entity can be specified and attached to the business entity. Common lists of objects that have filters applied can be retrieved and views selected for presentation of the data.
+
+\section{URIs}
+
+A URI provides an external access string to be mapped to a site view. When a browser submits a GET request to a URI that is mapped to the server then it will return the resulting site marker forcing the session to check its current state and send the appropriate information.
+
+The URI may be specified as \emph{complete} or \emph{partial}. Partial URI specification will match the pattern check but will also pass additional parameters not specified into the view so that it may parse the content and provide the appropriate display result.
+
+\section{Packages}
+
+Packages provide extensibility to the JETServer environment by allowing custom tools, applications, themes, templates, entities and components to be added to the server and utilized in the presentation. Installed packages are provided a root namespace and all related content must be contained and extended by this root path namespace.
+
+Packages can contain many things including full application request flows that can be integrated into other work flows or used as is.
+
+Local code is setup automatically in a default package named 'local'. The local package is always searched first when resolving names to finding objects.
+
+The system itself maintains a package space which is where the tools and control logic are kept. This space is static within the JETServer executable and is not modifiable.
+
+You can create an empty package and give it a namespace and write custom items into that package space. This package space can then be saved and distributed on the JETStore if it provides useful utility to others.
+
+It is intended to provide a JETStore for the user to browse for registered packages of all kinds from themes to full application work flows. It is hopeful that someday there will be a rich environment for providing tools and applications for the JETServer system.
+
+\chapter{ServerCore Network Platform}
+
+JETServer is utilizing the ServerCore library to implement the TCP networking requirements. Using the Linux operating system and the epoll system architecture JETServer delivers high performance networking with extreme control.
+
+Written in C++ JETServer is designed for performance at all levels of the technical implementation. Using the core namespace along with the http namespace to create the basic core functionality JETServer provides a framework in which to create complete work flow patterns required to build complex applications.
+
+\chapter{User Interfaces and Tools}
+
+\section{View Layout Editor}
+
+The View Layout Editor provides a WYSIWYG interface for combining HTML elements to formulate the presentation. Style sheet activities and parameters are automatically maintained as elements are manipulated in a graphical environment. Previews provided by various automatic layout objects including absolute mode which allows WYSIWYG placement of elements.
+
+Development of a theme editor provides ability to allow user to set various themes for the graphical elements of the design. Ability to view the layouts using various theme data configurations provides a useful thematic testing environment.
+
+The designed view layouts can be saved to create a view library and are usually associated to an entity and placed into the workflow storyboard.
+
+In order to create a subfunctionlity within a view you can add the request object into the view layouts. As these layouts are rendered to the browser they willmake their subsequent requests to the server keeping the event chain alive for the initiating or root request object.
+
+\section{Business Entity Editor}
+
+The Business Entity Editor provides a work management area to create and maintain business entity related data and the relationship between them. A repository provides for linking together data description elements with views and work flow elements to create a feature rich base to construct highly capable work flows for business and function.
+
+\section{Storyboard Editor}
+
+The Storyboard Editor provides the designer the ability to layout the pages and their components and design the flow relationships between the elements. As designs require extending the control elements of various views the storyboard editor keeps track of the request branching and allows the designer to maintain control over the hierarchical flow elements of the UI design.
+
+The design approach provides the ability to layout \emph{request} objects and associate various URI elements to these internal request objects to generate a complete presentation of the elements.
+
+Various views can be layed out in the storyboard. Storyboards are based around the request object as each request object will perform a request activity which may result in a chain of further request events.
+
+\chapter{JET Tag Reference}
+
+JET tags can be used within views as well as microservice methods to build business logic.
+
+\section{CALL}
+\section{COMMENT}
+\section{DATABASE}
+\section{EXCLUDE}
+\section{EXTRACT}
+\section{FOR}
+\section{IF.. ELSE}
+\section{IFNOROW... ELSE}
+\section{IFROW... ELSE}
+\section{SYSTEM}
+\section{TAG}
+\section{WHILE}
+\section{WHILEROW}
+
+\end{document}
diff --git a/JETServer Concepts.toc b/JETServer Concepts.toc
new file mode 100644
index 0000000..65b8d25
--- /dev/null
+++ b/JETServer Concepts.toc
@@ -0,0 +1,32 @@
+\contentsline {chapter}{\numberline {1}Basic Concepts}{5}
+\contentsline {section}{\numberline {1.1}Sessions}{5}
+\contentsline {section}{\numberline {1.2}Views}{5}
+\contentsline {subsection}{\numberline {1.2.1}View Data Sources}{6}
+\contentsline {section}{\numberline {1.3}View Components}{6}
+\contentsline {section}{\numberline {1.4}Forms}{7}
+\contentsline {section}{\numberline {1.5}Image Library}{7}
+\contentsline {section}{\numberline {1.6}Work Flow Networks}{7}
+\contentsline {section}{\numberline {1.7}Requests}{7}
+\contentsline {section}{\numberline {1.8}Business Entities}{8}
+\contentsline {section}{\numberline {1.9}Microservice Methods}{8}
+\contentsline {section}{\numberline {1.10}URIs}{9}
+\contentsline {section}{\numberline {1.11}Packages}{9}
+\contentsline {chapter}{\numberline {2}ServerCore Network Platform}{11}
+\contentsline {chapter}{\numberline {3}User Interfaces and Tools}{13}
+\contentsline {section}{\numberline {3.1}View Layout Editor}{13}
+\contentsline {section}{\numberline {3.2}Business Entity Editor}{13}
+\contentsline {section}{\numberline {3.3}Storyboard Editor}{14}
+\contentsline {chapter}{\numberline {4}JET Tag Reference}{15}
+\contentsline {section}{\numberline {4.1}CALL}{16}
+\contentsline {section}{\numberline {4.2}COMMENT}{16}
+\contentsline {section}{\numberline {4.3}DATABASE}{16}
+\contentsline {section}{\numberline {4.4}EXCLUDE}{16}
+\contentsline {section}{\numberline {4.5}EXTRACT}{16}
+\contentsline {section}{\numberline {4.6}FOR}{16}
+\contentsline {section}{\numberline {4.7}IF.. ELSE}{16}
+\contentsline {section}{\numberline {4.8}IFNOROW... ELSE}{16}
+\contentsline {section}{\numberline {4.9}IFROW... ELSE}{16}
+\contentsline {section}{\numberline {4.10}SYSTEM}{16}
+\contentsline {section}{\numberline {4.11}TAG}{16}
+\contentsline {section}{\numberline {4.12}WHILE}{16}
+\contentsline {section}{\numberline {4.13}WHILEROW}{16}
diff --git a/__configure.h b/__configure.h
new file mode 100644
index 0000000..8a33a05
--- /dev/null
+++ b/__configure.h
@@ -0,0 +1,37 @@
+#ifndef ____configure_h__
+#define ____configure_h__
+
+namespace http {
+
+ class __configure : public HTTPPage {
+
+ int processCommand(std::string request, core::Session *session, HTTPSession *httpSession, HTTPRequest &httpRequest, std::stringstream &data) override {
+
+ data << "
" << std::endl;
+
+ httpRequest.response.addHeader("Content-Type", "text/html");
+
+ return true;
+ }
+ };
+}
+
+#endif
diff --git a/__mainmenu.h b/__mainmenu.h
index cdeb963..12d0279 100644
--- a/__mainmenu.h
+++ b/__mainmenu.h
@@ -14,10 +14,11 @@ namespace http {
std::stringstream &data) override {
data << "
" << std::endl;
- data << "
" << std::endl;
+ data << "
" << std::endl;
data << " Setup Server Parameters" << std::endl;
data << "
" << std::endl;
- data << "
" << std::endl;
data << " View and Layout Designer" << std::endl;
data << "
" << std::endl;
diff --git a/__newview.h b/__newview.h
index 6db8cc6..2fc6c01 100644
--- a/__newview.h
+++ b/__newview.h
@@ -100,7 +100,7 @@ namespace http {
data << " " << std::endl;
data << "
" << std::endl;
data << "" << std::endl;
- data << " " << std::endl;
+ data << " " << std::endl;
httpRequest.response.addHeader("Content-Type", "text/html");
return 0;
diff --git a/__script.h b/__script.h
index 81a7753..9622ad9 100644
--- a/__script.h
+++ b/__script.h
@@ -21,8 +21,7 @@ namespace http {
data << "function getPage(url, receiver) {" << std::endl;
data << " serverSend(url, \"GET\", receiver, null, function(data, receiver) {" << std::endl;
- data << " var panel1 = document.getElementById(receiver);" << std::endl;
- data << " panel1.innerHTML = data;" << std::endl;
+ data << " insertAndExecute(receiver, data);" << std::endl;
data << " });" << std::endl;
data << "}" << std::endl;
@@ -30,19 +29,18 @@ namespace http {
data << " var formElement = document.querySelector(\"form[name='\" + formName + \"']\");" << std::endl;
data << " var formData = new FormData(formElement);" << std::endl;
data << " serverSend(url, \"POST\", receiver, formData, function(data, receiver) {" << std::endl;
- data << " var panel1 = document.getElementById(receiver);" << std::endl;
- data << " panel1.innerHTML = data;" << std::endl;
+ data << " insertAndExecute(receiver, data);" << std::endl;
data << " });" << std::endl;
data << "}" << std::endl;
-// data << "var setInnerHTML = function(elm, html) {" << std::endl;
-// data << " lm.innerHTML = html;" << std::endl;
-// data << " Array.from(elm.querySelectorAll("script")).forEach( oldScript => {" << std::endl;
-// data << " const newScript = document.createElement("script");" << std::endl;
-// data << " Array.from(oldScript.attributes)" << std::endl;
-// data << " .forEach( attr => newScript.setAttribute(attr.name, attr.value) );" << std::endl;
-// data << " newScript.appendChild(document.createTextNode(oldScript.innerHTML));" << std::endl;
-// data << " oldScript.parentNode.replaceChild(newScript, oldScript);" << std::endl;
+ data << "function insertAndExecute(id, text) {" << std::endl;
+ data << " idresolved = document.getElementById(id);" << std::endl;
+ data << " idresolved.innerHTML = text;" << std::endl;
+ data << " var script = idresolved.getElementsByTagName(\"script\");" << std::endl;
+ data << " for(var ix=0;ix