<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://mh-svr.de/mw/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mh</id>
	<title>MH - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://mh-svr.de/mw/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mh"/>
	<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php/Spezial:Beitr%C3%A4ge/Mh"/>
	<updated>2026-08-23T19:56:03Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.31.1</generator>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=MediaWiki:Sidebar&amp;diff=223</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=MediaWiki:Sidebar&amp;diff=223"/>
		<updated>2018-02-10T16:56:43Z</updated>

		<summary type="html">&lt;p&gt;Mh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** PoNG|PoNG&lt;br /&gt;
** Studio Shooting|Studio Shooting&lt;br /&gt;
** Studio Shooting (en)|Studio Shooting (en)&lt;br /&gt;
** Media Datenbank|Media Datenbank&lt;br /&gt;
** https://mh-svr.de/blog | Blog&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=PoNG_Description&amp;diff=222</id>
		<title>PoNG Description</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=PoNG_Description&amp;diff=222"/>
		<updated>2016-03-26T08:27:10Z</updated>

		<summary type="html">&lt;p&gt;Mh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:PoNG]]&lt;br /&gt;
IMHO there is no good reason to render dynamic web pages server side. &lt;br /&gt;
&lt;br /&gt;
Server side HTML rendering prevents easy scaling, simple architecture, barrier free content and device independence. &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Everything gets so easy, when you throw all legacy truth away and rethink the web.&amp;#039;&amp;#039;&amp;#039; Please read my [[PoNG: 10 Reasons to Rethink the Web|ten reasons to rethink the web]]. &lt;br /&gt;
&lt;br /&gt;
[[PoNG]] is my prototype of this idea. &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;No joke: For dynamic rendered browser app, you only need static files server-side -- so no Tomcat, Sharepoint, Liferay, PHP, JEE ... is required.&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Have a look at the &amp;#039;&amp;#039;&amp;#039;[http://mh-svr.de/pong_dev/ demos]&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== Vision ==&lt;br /&gt;
Wouldn&amp;#039;t it be fine to say: &amp;quot;I need these content, that data tables, blog, these forms on my web page without any HTML coding.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
For all standard tasks, the browser should be able to render an appropriate web page, described with a few information only. Also the data and content can be given to the browser in a structured and raw, but non HTML format. Data can be any product catalog, any blog messages, any database result. &lt;br /&gt;
&lt;br /&gt;
Of course -- the description of the page layout and the content data should be in a machine readable format and precise enough, that your browser is able to understand it. But these description of layout and data must still be human readable, self explaining and without HTML.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
&lt;br /&gt;
HTML can do a lot of good things and it will still be the best way to explain the browser how to do the rendering details. But is there a reason that humans write HTML? There are so many standard tasks on the web, which are always the same. I looked through a bunch of web sites and found always the same elements. Only the layout and graphical design looks different -- and of course the content. &lt;br /&gt;
&lt;br /&gt;
An other good thing is, that you only have to provide the &amp;quot;raw information&amp;quot; and all the rendering is transfered to the frontend. In the past, there was a huge gap of computing power of servers and clients. The gap has been closed and there is no reason to have all the workload in the backends. We have no good reason to render all dynamic web pages in the backend.&lt;br /&gt;
&lt;br /&gt;
Rendering HTML in the backend is also a bad idea, since the client types of are so different and you have to do all the client specific decisions on the wrong point.&lt;br /&gt;
&lt;br /&gt;
[[Datei:PoNG.jpg|right|600px]]PoNG is &amp;#039;&amp;#039;&amp;#039;&amp;quot;Portal NG&amp;quot;&amp;#039;&amp;#039;&amp;#039; (next generation):&lt;br /&gt;
* It is a prototype or study, how it may work!!&lt;br /&gt;
* Collect information from different RESTful resources into one HTML5 + JavaScript portal&lt;br /&gt;
* Easy set up: Complete separation of layout, information, style&lt;br /&gt;
* Modular: see [[PoNG Modules]]&lt;br /&gt;
* Flexible backends: Static HTML, PHP, Java Web Container, JEE, ...&lt;br /&gt;
&lt;br /&gt;
Things that are implemented already:&lt;br /&gt;
* [[PoNG Structure Specification|Basic rendering of the layout]]&lt;br /&gt;
* Plug-in programming model for modules using hooks&lt;br /&gt;
* [[PoNG Modules|Some very useful ready to use modules]]&lt;br /&gt;
* Modal dialogs&lt;br /&gt;
&lt;br /&gt;
Planned:&lt;br /&gt;
* I18N&lt;br /&gt;
* Security model: Authentication&lt;br /&gt;
* Personal customizing&lt;br /&gt;
* Zoom views to full width &lt;br /&gt;
* Tomcat Backend&lt;br /&gt;
* PHP Backend&lt;br /&gt;
* Dynamic Administration&lt;br /&gt;
&lt;br /&gt;
== How does PoNG works ==&lt;br /&gt;
# The browser loads a standard index file (do not edit this file)&lt;br /&gt;
# The index file pushes the browser to request the layout resource for the layout information and renders the response&lt;br /&gt;
# The layout in the browser will contain different additional information resources, which are loaded and processed to a web page&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=PoNG&amp;diff=221</id>
		<title>PoNG</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=PoNG&amp;diff=221"/>
		<updated>2016-03-26T07:34:20Z</updated>

		<summary type="html">&lt;p&gt;Mh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
== Project is on GitHub now ==&lt;br /&gt;
All you need to create dynamic web apps is now on GitHub:&lt;br /&gt;
&lt;br /&gt;
[https://github.com/ma-ha/rest-web-ui GitHub rest-web-ui]&lt;br /&gt;
&lt;br /&gt;
Nevertheless here is still a lot of useful documentation.&lt;br /&gt;
&lt;br /&gt;
== About Portal NG ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Create web portals for backend service (APIs) w/o programming.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
[[Category:PoNG]]&lt;br /&gt;
&lt;br /&gt;
Quick Links:&lt;br /&gt;
* [[PoNG Modules]]&lt;br /&gt;
* [[PoNG Structure Specification]]&lt;br /&gt;
* [[PoNG Module Programming]]&lt;br /&gt;
&lt;br /&gt;
== Basic Idea: Portal NG ==&lt;br /&gt;
Build a Web GUI for REST/JOSN API backends without programing HTML and JS.&lt;br /&gt;
&lt;br /&gt;
=== Main Structure ===&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;portal&amp;#039;&amp;#039; has always a &amp;#039;&amp;#039;&amp;#039;header&amp;#039;&amp;#039;&amp;#039;, some &amp;#039;&amp;#039;&amp;#039;rows&amp;#039;&amp;#039;&amp;#039; and a &amp;#039;&amp;#039;&amp;#039;footer&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
[[Datei:Pong-struct-1.png|200px]]&lt;br /&gt;
&lt;br /&gt;
You can specify the hight of each row individually.&lt;br /&gt;
&lt;br /&gt;
=== Structured Views ===&lt;br /&gt;
A row can contain a &amp;#039;&amp;#039;&amp;#039;view&amp;#039;&amp;#039;&amp;#039; or a set of &amp;#039;&amp;#039;&amp;#039;columns&amp;#039;&amp;#039;&amp;#039; ...&lt;br /&gt;
&lt;br /&gt;
[[Datei:Pong-struct-2.png|200px]]&lt;br /&gt;
&lt;br /&gt;
... and columns can contain views or rows, containing views or ... (you understand?). You can define the width of each column.&lt;br /&gt;
&lt;br /&gt;
With this construct you should be able to do every possible arrangement of views.&lt;br /&gt;
&lt;br /&gt;
=== Views use Plug-Ins ===&lt;br /&gt;
Views can use ready to use plug-ins with different functionality&lt;br /&gt;
&lt;br /&gt;
[[Datei:Pong-struct-3a.png|300px]] &lt;br /&gt;
&lt;br /&gt;
There are also plug-ins for the header and footer, e.g. to display navigation bars, logos, link-lists or language switch buttons.&lt;br /&gt;
&lt;br /&gt;
=== Configure the Views ===&lt;br /&gt;
All views load their own configuration to initialize the view. The configuration comes from a web server or application server (dynamic configuration).&lt;br /&gt;
&lt;br /&gt;
[[Datei:Pong-struct-4.png|400px]]&lt;br /&gt;
&lt;br /&gt;
=== Data and Content in Views ===&lt;br /&gt;
After the initialization the view can load, modify, save or create data on a RESTful server backend. I.e. the WIKI content plug-in can load pages from a MediaWiki server.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Pong-struct-5.png|400px]]&lt;br /&gt;
&lt;br /&gt;
=== ... and Action! ===&lt;br /&gt;
For a dynamic page, all views can do different interactions:&lt;br /&gt;
# Views can call functions on a HTTP server backend (via REST calls)&lt;br /&gt;
# Views can call update method of other views. These views typically call the server backend to load data.&lt;br /&gt;
# Views can load a view into a row or a column, replacing the view there.&lt;br /&gt;
# Views can navigate to another page. Hopefully another portal page.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Pong-struct-6.png|400px]]&lt;br /&gt;
&lt;br /&gt;
The interactions are defined in the configuration of the view. E.g. in a view using the form plug-in you can define a button to save the form data and triggering an update of a table view afterwards.&lt;br /&gt;
&lt;br /&gt;
Of course -- the description of the page layout and the content data should be in a machine readable format and precise enough, that your browser is able to understand it. But these description of layout and data must still be human readable, self explaining and without HTML or JS coding necessary.&lt;br /&gt;
&lt;br /&gt;
Please read also the [[PoNG Description]].&lt;br /&gt;
&lt;br /&gt;
== A Quick Start in 2 min (local installation) ==&lt;br /&gt;
You need a (simple) Web Server, so install Apache package on you Unix or get e.g. XAMPP or ... or ...&lt;br /&gt;
# Download the [[PoNG_Static_HTML_Distribution|static HTML distribution]] package [[http://keller.minidns.net/mh/pong_v0.3a1.zip here]] (523 kB)&lt;br /&gt;
# Unpack the archive into your web server HTML directory, e.g. /var/www/portal&lt;br /&gt;
# Point your web browser to the portal root, e.g. http://mydomain.com/portal &lt;br /&gt;
&lt;br /&gt;
Start [[PoNG_Static_HTML_Distribution#Start_customizing_the_static_portal|customizing the portal]] ...&lt;br /&gt;
&lt;br /&gt;
== PoNG: Portal as a Service ==&lt;br /&gt;
We offer a [[Portal as a Service]] for free (v0.3 beta test phase). &lt;br /&gt;
&lt;br /&gt;
You can sign up an account and design a new portal on our [http://mh-svr.de/portal/ Portal as a Service] with seconds.&lt;br /&gt;
&lt;br /&gt;
== Layout Configuration ==&lt;br /&gt;
The layout-structure is a JSON file, requested by the layout resource. By default the &amp;lt;tt&amp;gt;/svc/layout/main/structure&amp;lt;/tt&amp;gt; is loaded first. &lt;br /&gt;
&lt;br /&gt;
Your site may have other layouts than &amp;quot;main&amp;quot;, e.g. &amp;lt;tt&amp;gt;/svc/layout/admin/structure&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== The &amp;quot;structure&amp;quot; JSON format ===&lt;br /&gt;
[[Datei:PoNG Example1.png|right|350px]]&lt;br /&gt;
The basic object hierarchy of the objects are:&lt;br /&gt;
* layout&lt;br /&gt;
** title &lt;br /&gt;
** header&lt;br /&gt;
** rows&lt;br /&gt;
*** cols &lt;br /&gt;
**** rows&lt;br /&gt;
***** ...&lt;br /&gt;
** footer&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;rows&amp;lt;/code&amp;gt; can contain either nested &amp;lt;code&amp;gt;cols&amp;lt;/code&amp;gt; or alternatively a resource. The same for &amp;lt;code&amp;gt;cols&amp;lt;/code&amp;gt;. A resource specifies the URL, where to load information about the content, has some meta data to define its layout, actions and dialogs.&lt;br /&gt;
&lt;br /&gt;
You can get every possible layout with this nesting of rows, cols and resources.&lt;br /&gt;
&lt;br /&gt;
Please refer the [[PoNG Structure Specification]] for details.&lt;br /&gt;
&lt;br /&gt;
The example shows, that you can set up a complex portal page with different information resource views on it with a very view lines of meta data definition. The result of this example is shown on the screen shot on the right (no fake). BTW, I would describe it in this way: &amp;lt;i&amp;gt;&amp;quot;This &amp;quot;portal&amp;quot; has a header, then two rows, the second row contains two columns, and then there is a footer.&amp;quot;&amp;lt;/i&amp;gt; &lt;br /&gt;
&lt;br /&gt;
So how can you explain your browser this w/o any HTML code? Let&amp;#039;s try:&lt;br /&gt;
==== Example ====&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;layout&amp;quot;: {&lt;br /&gt;
    &amp;quot;title&amp;quot;: &amp;quot;Title&amp;quot;,&lt;br /&gt;
    &amp;quot;header&amp;quot;: {&lt;br /&gt;
      &amp;quot;logoURL&amp;quot;: &amp;quot;logo.png&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;rows&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;rowId&amp;quot;: &amp;quot;myBlog&amp;quot;,&lt;br /&gt;
        &amp;quot;height&amp;quot;: &amp;quot;185px&amp;quot;,&lt;br /&gt;
        &amp;quot;resourceURL&amp;quot;: &amp;quot;blog&amp;quot;,&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;pong-list&amp;quot;,&lt;br /&gt;
        &amp;quot;decor&amp;quot; : &amp;quot;decor&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;rowId&amp;quot;: &amp;quot;r1&amp;quot;,&lt;br /&gt;
        &amp;quot;height&amp;quot;: &amp;quot;450px&amp;quot;,&lt;br /&gt;
        &amp;quot;cols&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;columnId&amp;quot;: &amp;quot;tbl&amp;quot;,&lt;br /&gt;
            &amp;quot;width&amp;quot;: &amp;quot;40%&amp;quot;,&lt;br /&gt;
            &amp;quot;resourceURL&amp;quot;: &amp;quot;resX&amp;quot;,&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;pong-table&amp;quot;,&lt;br /&gt;
            &amp;quot;decor&amp;quot; : &amp;quot;decor&amp;quot;,&lt;br /&gt;
            &amp;quot;actions&amp;quot; : [ { &amp;quot;actionName&amp;quot;: &amp;quot;Help&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;pong-help&amp;quot; } ]&lt;br /&gt;
          },&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;columnId&amp;quot;: &amp;quot;plot&amp;quot;,&lt;br /&gt;
            &amp;quot;width&amp;quot;: &amp;quot;60%&amp;quot;,&lt;br /&gt;
            &amp;quot;decor&amp;quot; : &amp;quot;decor&amp;quot;,&lt;br /&gt;
            &amp;quot;resourceURL&amp;quot;: &amp;quot;gnuplot&amp;quot;,&lt;br /&gt;
            &amp;quot;callback&amp;quot;: &amp;quot;grmh()&amp;quot;,&lt;br /&gt;
            &amp;quot;actions&amp;quot; : [ { &amp;quot;actionName&amp;quot;: &amp;quot;Config&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;modal-form&amp;quot; } ]&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;footer&amp;quot;: {&lt;br /&gt;
      &amp;quot;copyrightText&amp;quot;: &amp;quot;Copyright 2015, MH.&amp;quot;,&lt;br /&gt;
      &amp;quot;linkList&amp;quot;: [&lt;br /&gt;
      	{ &amp;quot;text&amp;quot;:&amp;quot;Impressum&amp;quot;, &amp;quot;url&amp;quot;: &amp;quot;impress.html&amp;quot;},&lt;br /&gt;
      	{ &amp;quot;text&amp;quot;:&amp;quot;Privacy Note&amp;quot;, &amp;quot;url&amp;quot;: &amp;quot;privacy.html&amp;quot;}&lt;br /&gt;
      ]	&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
This example layout structure will result in a &amp;quot;myBlog&amp;quot; box of full width and below are two columns, one with the &amp;quot;resX&amp;quot; and the other smaller one with a &amp;quot;plot&amp;quot;. If you just starts with this file, all views will be empty, because no one defined the resource details, that are just resource names at the moment.&lt;br /&gt;
&lt;br /&gt;
And if you think, the there is a bunch of work in defining e.g. the &amp;quot;blog&amp;quot;, then check out, what is [[PoNG Module: List View|the todo of this resource definition]].&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;[http://mh-svr.de/PoNG/ Test the prototype]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Installation Manual ==&lt;br /&gt;
Please refer also the [[PoNG Release Notes]].&lt;br /&gt;
=== Static HTML Installation ===&lt;br /&gt;
Perhaps you start here. Since PoNG is client centric, you can play a lot with a static backend. You can focus on implementing, configuring or integrating REST web services and view the data in the browser.&lt;br /&gt;
 &lt;br /&gt;
Simply load and extract the [[PoNG Static HTML Distribution]] to any subdirectory of your web server and customize the structure file &amp;lt;code&amp;gt;/svc/layout/main/structure&amp;lt;/code&amp;gt;, logo and CSS files to your needs.&lt;br /&gt;
&lt;br /&gt;
=== Tomcat based Installation ===&lt;br /&gt;
TODO&lt;br /&gt;
=== PHP based Installation ===&lt;br /&gt;
The [[PoNG PHP Backend]] powers the [[Portal as a Service]]. &lt;br /&gt;
&lt;br /&gt;
For local installations please contact &amp;#039;&amp;#039;admin (at) mh-svr dot de&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Browser Support ==&lt;br /&gt;
PoNG is tested with&lt;br /&gt;
* Firefox 27.0.1 (Ubuntu 13.10 64bit)&lt;br /&gt;
* Safari (iPad, iOS 7)&lt;br /&gt;
* Chrome on Android&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=Portal_as_a_Service_-_User_Agreement&amp;diff=220</id>
		<title>Portal as a Service - User Agreement</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=Portal_as_a_Service_-_User_Agreement&amp;diff=220"/>
		<updated>2015-08-12T18:58:13Z</updated>

		<summary type="html">&lt;p&gt;Mh: /* &amp;quot;Pro Account&amp;quot; Upgrade Option */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The SaaS offering is a hosted solution based on &amp;quot;ReST Web GUI Framework&amp;quot;. &lt;br /&gt;
== Free Sign Up ==&lt;br /&gt;
&amp;quot;Free sign up&amp;quot; is free of charge and offers the same functionality as &amp;quot;pro account&amp;quot;. This is to test or develop your own portal pages using our intuitive portal builder and for hosting of small solutions.&lt;br /&gt;
&lt;br /&gt;
Free sign up is limited to one portal with max. 3 pages and throttled page delivery after 100 page views per month.&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Pro Account&amp;quot; Upgrade Option ==&lt;br /&gt;
The &amp;quot;pro account&amp;quot; offers unlimited portals, with unlimited pages per portal and no page view limitation. &lt;br /&gt;
&lt;br /&gt;
You can upgrade your &amp;quot;free sign up&amp;quot; to a &amp;quot;pro account&amp;quot; at any time using the link on the management page.&lt;br /&gt;
=== Fees ===&lt;br /&gt;
* Upgrade to &amp;quot;pro account&amp;quot;: 5 EUR (once)&lt;br /&gt;
* 0.029 EUR per portal page view &lt;br /&gt;
=== Service Agreement ===&lt;br /&gt;
* Email support&lt;br /&gt;
* 99.9 % uptime*, otherwise 50% price discount &amp;lt;br/&amp;gt;*) on monthly bases: uptime = ( &amp;quot;Maximum Available Minutes&amp;quot; - &amp;quot;Downtime minutes&amp;quot; ) / &amp;quot;Maximum Available Minutes&amp;quot; x 100&lt;br /&gt;
&lt;br /&gt;
== Privacy Policy ==&lt;br /&gt;
We act according German data protection law. We store data at out hosting partner to provide this service. &lt;br /&gt;
&lt;br /&gt;
Stored data may be used to create reports to improve the service for our customers. &lt;br /&gt;
== Content == &lt;br /&gt;
The User is responsible for all content provided by his portal pages.&lt;br /&gt;
&lt;br /&gt;
We as service provider will delete portals and accounts, if pages violate German law.&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
The policies posted on our sites may be changed from time to time. Changes take effect when we post them on this site.&lt;br /&gt;
== Warranty ==&lt;br /&gt;
THE SOFTWARE IS PROVIDED &amp;quot;AS IS&amp;quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR&lt;br /&gt;
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,&lt;br /&gt;
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE&lt;br /&gt;
SERVICE PROVIDERS OR AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER&lt;br /&gt;
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,&lt;br /&gt;
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE&lt;br /&gt;
SOFTWARE.&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=Portal_as_a_Service_-_User_Agreement&amp;diff=219</id>
		<title>Portal as a Service - User Agreement</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=Portal_as_a_Service_-_User_Agreement&amp;diff=219"/>
		<updated>2015-08-12T18:57:12Z</updated>

		<summary type="html">&lt;p&gt;Mh: /* Free Sign Up */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The SaaS offering is a hosted solution based on &amp;quot;ReST Web GUI Framework&amp;quot;. &lt;br /&gt;
== Free Sign Up ==&lt;br /&gt;
&amp;quot;Free sign up&amp;quot; is free of charge and offers the same functionality as &amp;quot;pro account&amp;quot;. This is to test or develop your own portal pages using our intuitive portal builder and for hosting of small solutions.&lt;br /&gt;
&lt;br /&gt;
Free sign up is limited to one portal with max. 3 pages and throttled page delivery after 100 page views per month.&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Pro Account&amp;quot; Upgrade Option ==&lt;br /&gt;
The &amp;quot;pro account&amp;quot; offers unlimited portals, with unlimited pages per portal and no page view limitation.&lt;br /&gt;
=== Fees ===&lt;br /&gt;
* Upgrade to &amp;quot;pro account&amp;quot;: 5 EUR (once)&lt;br /&gt;
* 0.029 EUR per portal page view &lt;br /&gt;
=== Service Agreement ===&lt;br /&gt;
* Email support&lt;br /&gt;
* 99.9 % uptime*, otherwise 50% price discount &amp;lt;br/&amp;gt;*) on monthly bases: uptime = ( &amp;quot;Maximum Available Minutes&amp;quot; - &amp;quot;Downtime minutes&amp;quot; ) / &amp;quot;Maximum Available Minutes&amp;quot; x 100&lt;br /&gt;
&lt;br /&gt;
== Privacy Policy ==&lt;br /&gt;
We act according German data protection law. We store data at out hosting partner to provide this service. &lt;br /&gt;
&lt;br /&gt;
Stored data may be used to create reports to improve the service for our customers. &lt;br /&gt;
== Content == &lt;br /&gt;
The User is responsible for all content provided by his portal pages.&lt;br /&gt;
&lt;br /&gt;
We as service provider will delete portals and accounts, if pages violate German law.&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
The policies posted on our sites may be changed from time to time. Changes take effect when we post them on this site.&lt;br /&gt;
== Warranty ==&lt;br /&gt;
THE SOFTWARE IS PROVIDED &amp;quot;AS IS&amp;quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR&lt;br /&gt;
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,&lt;br /&gt;
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE&lt;br /&gt;
SERVICE PROVIDERS OR AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER&lt;br /&gt;
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,&lt;br /&gt;
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE&lt;br /&gt;
SOFTWARE.&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=Portal_as_a_Service_-_User_Agreement&amp;diff=218</id>
		<title>Portal as a Service - User Agreement</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=Portal_as_a_Service_-_User_Agreement&amp;diff=218"/>
		<updated>2015-08-12T18:49:55Z</updated>

		<summary type="html">&lt;p&gt;Mh: /* Content */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The SaaS offering is a hosted solution based on &amp;quot;ReST Web GUI Framework&amp;quot;. &lt;br /&gt;
== Free Sign Up ==&lt;br /&gt;
Free sign up is free of charge and offers the same functionality as &amp;quot;pro account&amp;quot;. This is to test or develop your own portal pages using our intuitive portal builder and for hosting of small solutions.&lt;br /&gt;
&lt;br /&gt;
Free sign up is limited to one portal with max. 3 pages and throttled page delivery after 100 page views per month.&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Pro Account&amp;quot; Upgrade Option ==&lt;br /&gt;
The &amp;quot;pro account&amp;quot; offers unlimited portals, with unlimited pages per portal and no page view limitation.&lt;br /&gt;
=== Fees ===&lt;br /&gt;
* Upgrade to &amp;quot;pro account&amp;quot;: 5 EUR (once)&lt;br /&gt;
* 0.029 EUR per portal page view &lt;br /&gt;
=== Service Agreement ===&lt;br /&gt;
* Email support&lt;br /&gt;
* 99.9 % uptime*, otherwise 50% price discount &amp;lt;br/&amp;gt;*) on monthly bases: uptime = ( &amp;quot;Maximum Available Minutes&amp;quot; - &amp;quot;Downtime minutes&amp;quot; ) / &amp;quot;Maximum Available Minutes&amp;quot; x 100&lt;br /&gt;
&lt;br /&gt;
== Privacy Policy ==&lt;br /&gt;
We act according German data protection law. We store data at out hosting partner to provide this service. &lt;br /&gt;
&lt;br /&gt;
Stored data may be used to create reports to improve the service for our customers. &lt;br /&gt;
== Content == &lt;br /&gt;
The User is responsible for all content provided by his portal pages.&lt;br /&gt;
&lt;br /&gt;
We as service provider will delete portals and accounts, if pages violate German law.&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
The policies posted on our sites may be changed from time to time. Changes take effect when we post them on this site.&lt;br /&gt;
== Warranty ==&lt;br /&gt;
THE SOFTWARE IS PROVIDED &amp;quot;AS IS&amp;quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR&lt;br /&gt;
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,&lt;br /&gt;
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE&lt;br /&gt;
SERVICE PROVIDERS OR AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER&lt;br /&gt;
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,&lt;br /&gt;
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE&lt;br /&gt;
SOFTWARE.&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=Portal_as_a_Service_-_User_Agreement&amp;diff=217</id>
		<title>Portal as a Service - User Agreement</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=Portal_as_a_Service_-_User_Agreement&amp;diff=217"/>
		<updated>2015-08-12T18:48:42Z</updated>

		<summary type="html">&lt;p&gt;Mh: /* &amp;quot;Pro Account&amp;quot; Upgrade Option */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The SaaS offering is a hosted solution based on &amp;quot;ReST Web GUI Framework&amp;quot;. &lt;br /&gt;
== Free Sign Up ==&lt;br /&gt;
Free sign up is free of charge and offers the same functionality as &amp;quot;pro account&amp;quot;. This is to test or develop your own portal pages using our intuitive portal builder and for hosting of small solutions.&lt;br /&gt;
&lt;br /&gt;
Free sign up is limited to one portal with max. 3 pages and throttled page delivery after 100 page views per month.&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Pro Account&amp;quot; Upgrade Option ==&lt;br /&gt;
The &amp;quot;pro account&amp;quot; offers unlimited portals, with unlimited pages per portal and no page view limitation.&lt;br /&gt;
=== Fees ===&lt;br /&gt;
* Upgrade to &amp;quot;pro account&amp;quot;: 5 EUR (once)&lt;br /&gt;
* 0.029 EUR per portal page view &lt;br /&gt;
=== Service Agreement ===&lt;br /&gt;
* Email support&lt;br /&gt;
* 99.9 % uptime*, otherwise 50% price discount &amp;lt;br/&amp;gt;*) on monthly bases: uptime = ( &amp;quot;Maximum Available Minutes&amp;quot; - &amp;quot;Downtime minutes&amp;quot; ) / &amp;quot;Maximum Available Minutes&amp;quot; x 100&lt;br /&gt;
&lt;br /&gt;
== Privacy Policy ==&lt;br /&gt;
We act according German data protection law. We store data at out hosting partner to provide this service. &lt;br /&gt;
&lt;br /&gt;
Stored data may be used to create reports to improve the service for our customers. &lt;br /&gt;
== Content == &lt;br /&gt;
User is responsible for all content provided by his portal pages.&lt;br /&gt;
&lt;br /&gt;
We will delete portals and accounts, if pages violate German law. &lt;br /&gt;
== General ==&lt;br /&gt;
The policies posted on our sites may be changed from time to time. Changes take effect when we post them on this site.&lt;br /&gt;
== Warranty ==&lt;br /&gt;
THE SOFTWARE IS PROVIDED &amp;quot;AS IS&amp;quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR&lt;br /&gt;
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,&lt;br /&gt;
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE&lt;br /&gt;
SERVICE PROVIDERS OR AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER&lt;br /&gt;
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,&lt;br /&gt;
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE&lt;br /&gt;
SOFTWARE.&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=Portal_as_a_Service_-_User_Agreement&amp;diff=216</id>
		<title>Portal as a Service - User Agreement</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=Portal_as_a_Service_-_User_Agreement&amp;diff=216"/>
		<updated>2015-08-12T18:48:05Z</updated>

		<summary type="html">&lt;p&gt;Mh: /* Free Sign Up */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The SaaS offering is a hosted solution based on &amp;quot;ReST Web GUI Framework&amp;quot;. &lt;br /&gt;
== Free Sign Up ==&lt;br /&gt;
Free sign up is free of charge and offers the same functionality as &amp;quot;pro account&amp;quot;. This is to test or develop your own portal pages using our intuitive portal builder and for hosting of small solutions.&lt;br /&gt;
&lt;br /&gt;
Free sign up is limited to one portal with max. 3 pages and throttled page delivery after 100 page views per month.&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Pro Account&amp;quot; Upgrade Option ==&lt;br /&gt;
The &amp;quot;pro account&amp;quot; offers unlimited portals with unlimited pages per portal no page view limitation.&lt;br /&gt;
=== Fees ===&lt;br /&gt;
* Upgrade to &amp;quot;pro account&amp;quot;: 5 EUR (once)&lt;br /&gt;
* 0.029 EUR per portal page view &lt;br /&gt;
=== Service Agreement ===&lt;br /&gt;
* Email support&lt;br /&gt;
* 99.9 % uptime*, otherwise 50% price discount &amp;lt;br/&amp;gt;*) on monthly bases: uptime = ( &amp;quot;Maximum Available Minutes&amp;quot; - &amp;quot;Downtime minutes&amp;quot; ) / &amp;quot;Maximum Available Minutes&amp;quot; x 100&lt;br /&gt;
== Privacy Policy ==&lt;br /&gt;
We act according German data protection law. We store data at out hosting partner to provide this service. &lt;br /&gt;
&lt;br /&gt;
Stored data may be used to create reports to improve the service for our customers. &lt;br /&gt;
== Content == &lt;br /&gt;
User is responsible for all content provided by his portal pages.&lt;br /&gt;
&lt;br /&gt;
We will delete portals and accounts, if pages violate German law. &lt;br /&gt;
== General ==&lt;br /&gt;
The policies posted on our sites may be changed from time to time. Changes take effect when we post them on this site.&lt;br /&gt;
== Warranty ==&lt;br /&gt;
THE SOFTWARE IS PROVIDED &amp;quot;AS IS&amp;quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR&lt;br /&gt;
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,&lt;br /&gt;
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE&lt;br /&gt;
SERVICE PROVIDERS OR AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER&lt;br /&gt;
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,&lt;br /&gt;
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE&lt;br /&gt;
SOFTWARE.&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=Portal_as_a_Service_-_User_Agreement&amp;diff=215</id>
		<title>Portal as a Service - User Agreement</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=Portal_as_a_Service_-_User_Agreement&amp;diff=215"/>
		<updated>2015-08-12T18:47:40Z</updated>

		<summary type="html">&lt;p&gt;Mh: /* Free Sign Up */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The SaaS offering is a hosted solution based on &amp;quot;ReST Web GUI Framework&amp;quot;. &lt;br /&gt;
== Free Sign Up ==&lt;br /&gt;
Free sign up is free of charge, has the same functionality as &amp;quot;pro account&amp;quot;. This is to test or develop your own portal pages using our intuitive portal builder and for hosting of small solutions.&lt;br /&gt;
&lt;br /&gt;
Free sign up is limited to one portal with max. 3 pages and throttled page delivery after 100 page views per month.&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Pro Account&amp;quot; Upgrade Option ==&lt;br /&gt;
The &amp;quot;pro account&amp;quot; offers unlimited portals with unlimited pages per portal no page view limitation.&lt;br /&gt;
=== Fees ===&lt;br /&gt;
* Upgrade to &amp;quot;pro account&amp;quot;: 5 EUR (once)&lt;br /&gt;
* 0.029 EUR per portal page view &lt;br /&gt;
=== Service Agreement ===&lt;br /&gt;
* Email support&lt;br /&gt;
* 99.9 % uptime*, otherwise 50% price discount &amp;lt;br/&amp;gt;*) on monthly bases: uptime = ( &amp;quot;Maximum Available Minutes&amp;quot; - &amp;quot;Downtime minutes&amp;quot; ) / &amp;quot;Maximum Available Minutes&amp;quot; x 100&lt;br /&gt;
== Privacy Policy ==&lt;br /&gt;
We act according German data protection law. We store data at out hosting partner to provide this service. &lt;br /&gt;
&lt;br /&gt;
Stored data may be used to create reports to improve the service for our customers. &lt;br /&gt;
== Content == &lt;br /&gt;
User is responsible for all content provided by his portal pages.&lt;br /&gt;
&lt;br /&gt;
We will delete portals and accounts, if pages violate German law. &lt;br /&gt;
== General ==&lt;br /&gt;
The policies posted on our sites may be changed from time to time. Changes take effect when we post them on this site.&lt;br /&gt;
== Warranty ==&lt;br /&gt;
THE SOFTWARE IS PROVIDED &amp;quot;AS IS&amp;quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR&lt;br /&gt;
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,&lt;br /&gt;
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE&lt;br /&gt;
SERVICE PROVIDERS OR AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER&lt;br /&gt;
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,&lt;br /&gt;
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE&lt;br /&gt;
SOFTWARE.&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=Portal_as_a_Service_-_User_Agreement&amp;diff=214</id>
		<title>Portal as a Service - User Agreement</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=Portal_as_a_Service_-_User_Agreement&amp;diff=214"/>
		<updated>2015-08-12T18:46:37Z</updated>

		<summary type="html">&lt;p&gt;Mh: /* Free Sign Up */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The SaaS offering is a hosted solution based on &amp;quot;ReST Web GUI Framework&amp;quot;. &lt;br /&gt;
== Free Sign Up ==&lt;br /&gt;
Free sign up is free of charge, has the same functionality as &amp;quot;pro account&amp;quot;, but is limited to one portal with max. 3 pages and throttled page delivery after 100 page views per month. &lt;br /&gt;
This is to test or develop your own portal pages using our intuitive portal builder and for hosting of small solutions.&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Pro Account&amp;quot; Upgrade Option ==&lt;br /&gt;
The &amp;quot;pro account&amp;quot; offers unlimited portals with unlimited pages per portal no page view limitation.&lt;br /&gt;
=== Fees ===&lt;br /&gt;
* Upgrade to &amp;quot;pro account&amp;quot;: 5 EUR (once)&lt;br /&gt;
* 0.029 EUR per portal page view &lt;br /&gt;
=== Service Agreement ===&lt;br /&gt;
* Email support&lt;br /&gt;
* 99.9 % uptime*, otherwise 50% price discount &amp;lt;br/&amp;gt;*) on monthly bases: uptime = ( &amp;quot;Maximum Available Minutes&amp;quot; - &amp;quot;Downtime minutes&amp;quot; ) / &amp;quot;Maximum Available Minutes&amp;quot; x 100&lt;br /&gt;
== Privacy Policy ==&lt;br /&gt;
We act according German data protection law. We store data at out hosting partner to provide this service. &lt;br /&gt;
&lt;br /&gt;
Stored data may be used to create reports to improve the service for our customers. &lt;br /&gt;
== Content == &lt;br /&gt;
User is responsible for all content provided by his portal pages.&lt;br /&gt;
&lt;br /&gt;
We will delete portals and accounts, if pages violate German law. &lt;br /&gt;
== General ==&lt;br /&gt;
The policies posted on our sites may be changed from time to time. Changes take effect when we post them on this site.&lt;br /&gt;
== Warranty ==&lt;br /&gt;
THE SOFTWARE IS PROVIDED &amp;quot;AS IS&amp;quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR&lt;br /&gt;
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,&lt;br /&gt;
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE&lt;br /&gt;
SERVICE PROVIDERS OR AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER&lt;br /&gt;
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,&lt;br /&gt;
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE&lt;br /&gt;
SOFTWARE.&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=Portal_as_a_Service_-_User_Agreement&amp;diff=213</id>
		<title>Portal as a Service - User Agreement</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=Portal_as_a_Service_-_User_Agreement&amp;diff=213"/>
		<updated>2015-08-12T18:46:10Z</updated>

		<summary type="html">&lt;p&gt;Mh: /* Free Sign Up */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The SaaS offering is a hosted solution based on &amp;quot;ReST Web GUI Framework&amp;quot;. &lt;br /&gt;
== Free Sign Up ==&lt;br /&gt;
Free sign up is free of charge, same functionality as &amp;quot;pro account&amp;quot;, but limited to one portal with max. 3 pages and throttled page delivery after 100 page views per month. &lt;br /&gt;
This is to test or develop your own portal pages using our intuitive portal builder and for hosting of small solutions.&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Pro Account&amp;quot; Upgrade Option ==&lt;br /&gt;
The &amp;quot;pro account&amp;quot; offers unlimited portals with unlimited pages per portal no page view limitation.&lt;br /&gt;
=== Fees ===&lt;br /&gt;
* Upgrade to &amp;quot;pro account&amp;quot;: 5 EUR (once)&lt;br /&gt;
* 0.029 EUR per portal page view &lt;br /&gt;
=== Service Agreement ===&lt;br /&gt;
* Email support&lt;br /&gt;
* 99.9 % uptime*, otherwise 50% price discount &amp;lt;br/&amp;gt;*) on monthly bases: uptime = ( &amp;quot;Maximum Available Minutes&amp;quot; - &amp;quot;Downtime minutes&amp;quot; ) / &amp;quot;Maximum Available Minutes&amp;quot; x 100&lt;br /&gt;
== Privacy Policy ==&lt;br /&gt;
We act according German data protection law. We store data at out hosting partner to provide this service. &lt;br /&gt;
&lt;br /&gt;
Stored data may be used to create reports to improve the service for our customers. &lt;br /&gt;
== Content == &lt;br /&gt;
User is responsible for all content provided by his portal pages.&lt;br /&gt;
&lt;br /&gt;
We will delete portals and accounts, if pages violate German law. &lt;br /&gt;
== General ==&lt;br /&gt;
The policies posted on our sites may be changed from time to time. Changes take effect when we post them on this site.&lt;br /&gt;
== Warranty ==&lt;br /&gt;
THE SOFTWARE IS PROVIDED &amp;quot;AS IS&amp;quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR&lt;br /&gt;
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,&lt;br /&gt;
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE&lt;br /&gt;
SERVICE PROVIDERS OR AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER&lt;br /&gt;
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,&lt;br /&gt;
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE&lt;br /&gt;
SOFTWARE.&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=Portal_as_a_Service_-_User_Agreement&amp;diff=212</id>
		<title>Portal as a Service - User Agreement</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=Portal_as_a_Service_-_User_Agreement&amp;diff=212"/>
		<updated>2015-08-12T18:43:33Z</updated>

		<summary type="html">&lt;p&gt;Mh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The SaaS offering is a hosted solution based on &amp;quot;ReST Web GUI Framework&amp;quot;. &lt;br /&gt;
== Free Sign Up ==&lt;br /&gt;
Free sign up is limited to one portal with max. 3 pages and max. 100 page views per month. &lt;br /&gt;
This is to test or develop your own portal pages using our intuitive portal builder and for hosting of small solutions.&lt;br /&gt;
== &amp;quot;Pro Account&amp;quot; Upgrade Option ==&lt;br /&gt;
The &amp;quot;pro account&amp;quot; offers unlimited portals with unlimited pages per portal no page view limitation.&lt;br /&gt;
=== Fees ===&lt;br /&gt;
* Upgrade to &amp;quot;pro account&amp;quot;: 5 EUR (once)&lt;br /&gt;
* 0.029 EUR per portal page view &lt;br /&gt;
=== Service Agreement ===&lt;br /&gt;
* Email support&lt;br /&gt;
* 99.9 % uptime*, otherwise 50% price discount &amp;lt;br/&amp;gt;*) on monthly bases: uptime = ( &amp;quot;Maximum Available Minutes&amp;quot; - &amp;quot;Downtime minutes&amp;quot; ) / &amp;quot;Maximum Available Minutes&amp;quot; x 100&lt;br /&gt;
== Privacy Policy ==&lt;br /&gt;
We act according German data protection law. We store data at out hosting partner to provide this service. &lt;br /&gt;
&lt;br /&gt;
Stored data may be used to create reports to improve the service for our customers. &lt;br /&gt;
== Content == &lt;br /&gt;
User is responsible for all content provided by his portal pages.&lt;br /&gt;
&lt;br /&gt;
We will delete portals and accounts, if pages violate German law. &lt;br /&gt;
== General ==&lt;br /&gt;
The policies posted on our sites may be changed from time to time. Changes take effect when we post them on this site.&lt;br /&gt;
== Warranty ==&lt;br /&gt;
THE SOFTWARE IS PROVIDED &amp;quot;AS IS&amp;quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR&lt;br /&gt;
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,&lt;br /&gt;
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE&lt;br /&gt;
SERVICE PROVIDERS OR AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER&lt;br /&gt;
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,&lt;br /&gt;
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE&lt;br /&gt;
SOFTWARE.&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=Portal_as_a_Service_-_User_Agreement&amp;diff=210</id>
		<title>Portal as a Service - User Agreement</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=Portal_as_a_Service_-_User_Agreement&amp;diff=210"/>
		<updated>2015-08-12T18:30:20Z</updated>

		<summary type="html">&lt;p&gt;Mh: Mh verschob die Seite SaaS Pro Account User Agreement nach Portal as a Service - User Agreement&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The SaaS offering is a hosted solution based on &amp;quot;ReST Web GUI Framework&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Free sign up is limited to one portal with max. 3 pages and max. 100 page views per month.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;pro account&amp;quot; offers unlimited portals with unlimited pages per portal.  &lt;br /&gt;
== &amp;quot;Pro Account&amp;quot; ==&lt;br /&gt;
=== Fees ===&lt;br /&gt;
* Sign up: 5 EUR once&lt;br /&gt;
* 0.029 EUR per portal page view &lt;br /&gt;
=== Service Agreement ===&lt;br /&gt;
* unlimited portals with unlimited pages per portal &lt;br /&gt;
* no page view limitation&lt;br /&gt;
* Email support&lt;br /&gt;
* 99.9 % uptime*, otherwise 50% price discount &amp;lt;br/&amp;gt;*) on monthly bases: uptime = ( &amp;quot;Maximum Available Minutes&amp;quot; - &amp;quot;Downtime minutes&amp;quot; ) / &amp;quot;Maximum Available Minutes&amp;quot; x 100&lt;br /&gt;
== Privacy Policy ==&lt;br /&gt;
We act according German data protection law. We store data at out hosting partner to provide this service. &lt;br /&gt;
&lt;br /&gt;
Stored data may be used to create reports to improve the service for our customers. &lt;br /&gt;
== Content == &lt;br /&gt;
User is responsible for all content provided by his portal pages.&lt;br /&gt;
&lt;br /&gt;
We will delete portals and accounts, if pages violate German law. &lt;br /&gt;
== General ==&lt;br /&gt;
The policies posted on our sites may be changed from time to time. Changes take effect when we post them on this site.&lt;br /&gt;
== Warranty ==&lt;br /&gt;
THE SOFTWARE IS PROVIDED &amp;quot;AS IS&amp;quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR&lt;br /&gt;
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,&lt;br /&gt;
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE&lt;br /&gt;
SERVICE PROVIDERS OR AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER&lt;br /&gt;
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,&lt;br /&gt;
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE&lt;br /&gt;
SOFTWARE.&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=SaaS_Pro_Account_User_Agreement&amp;diff=211</id>
		<title>SaaS Pro Account User Agreement</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=SaaS_Pro_Account_User_Agreement&amp;diff=211"/>
		<updated>2015-08-12T18:30:20Z</updated>

		<summary type="html">&lt;p&gt;Mh: Mh verschob die Seite SaaS Pro Account User Agreement nach Portal as a Service - User Agreement&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#WEITERLEITUNG [[Portal as a Service - User Agreement]]&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=Portal_as_a_Service_-_User_Agreement&amp;diff=209</id>
		<title>Portal as a Service - User Agreement</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=Portal_as_a_Service_-_User_Agreement&amp;diff=209"/>
		<updated>2015-08-12T18:26:12Z</updated>

		<summary type="html">&lt;p&gt;Mh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The SaaS offering is a hosted solution based on &amp;quot;ReST Web GUI Framework&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Free sign up is limited to one portal with max. 3 pages and max. 100 page views per month.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;pro account&amp;quot; offers unlimited portals with unlimited pages per portal.  &lt;br /&gt;
== &amp;quot;Pro Account&amp;quot; ==&lt;br /&gt;
=== Fees ===&lt;br /&gt;
* Sign up: 5 EUR once&lt;br /&gt;
* 0.029 EUR per portal page view &lt;br /&gt;
=== Service Agreement ===&lt;br /&gt;
* unlimited portals with unlimited pages per portal &lt;br /&gt;
* no page view limitation&lt;br /&gt;
* Email support&lt;br /&gt;
* 99.9 % uptime*, otherwise 50% price discount &amp;lt;br/&amp;gt;*) on monthly bases: uptime = ( &amp;quot;Maximum Available Minutes&amp;quot; - &amp;quot;Downtime minutes&amp;quot; ) / &amp;quot;Maximum Available Minutes&amp;quot; x 100&lt;br /&gt;
== Privacy Policy ==&lt;br /&gt;
We act according German data protection law. We store data at out hosting partner to provide this service. &lt;br /&gt;
&lt;br /&gt;
Stored data may be used to create reports to improve the service for our customers. &lt;br /&gt;
== Content == &lt;br /&gt;
User is responsible for all content provided by his portal pages.&lt;br /&gt;
&lt;br /&gt;
We will delete portals and accounts, if pages violate German law. &lt;br /&gt;
== General ==&lt;br /&gt;
The policies posted on our sites may be changed from time to time. Changes take effect when we post them on this site.&lt;br /&gt;
== Warranty ==&lt;br /&gt;
THE SOFTWARE IS PROVIDED &amp;quot;AS IS&amp;quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR&lt;br /&gt;
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,&lt;br /&gt;
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE&lt;br /&gt;
SERVICE PROVIDERS OR AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER&lt;br /&gt;
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,&lt;br /&gt;
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE&lt;br /&gt;
SOFTWARE.&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=Portal_as_a_Service_-_User_Agreement&amp;diff=208</id>
		<title>Portal as a Service - User Agreement</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=Portal_as_a_Service_-_User_Agreement&amp;diff=208"/>
		<updated>2015-08-12T18:19:16Z</updated>

		<summary type="html">&lt;p&gt;Mh: Die Seite wurde neu angelegt: „== Introduction == The SaaS offering is a hosted solution based on &amp;quot;ReST Web GUI Framework&amp;quot;.   Free sign up is limited to one portal with max. 3 pages and max.…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
The SaaS offering is a hosted solution based on &amp;quot;ReST Web GUI Framework&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Free sign up is limited to one portal with max. 3 pages and max. 100 page views per month.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;pro account&amp;quot; offers unlimited portals with unlimited pages per portal.  &lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Pro Account&amp;quot; ==&lt;br /&gt;
=== Fees ===&lt;br /&gt;
* Sign up: 5 EUR once&lt;br /&gt;
* 0.029 EUR per portal page view &lt;br /&gt;
&lt;br /&gt;
=== Service Agreement ===&lt;br /&gt;
* unlimited portals with unlimited pages per portal &lt;br /&gt;
* no page view limitation&lt;br /&gt;
* Email support&lt;br /&gt;
* 99.9 % uptime*, otherwise 50% price discount &amp;lt;br/&amp;gt;*) on monthly bases: uptime = ( &amp;quot;Maximum Available Minutes&amp;quot; - &amp;quot;Downtime minutes&amp;quot; ) / &amp;quot;Maximum Available Minutes&amp;quot; x 100&lt;br /&gt;
&lt;br /&gt;
== Privacy Policy ==&lt;br /&gt;
We act according German data protection law. We store data at out hosting partner to provide this service. &lt;br /&gt;
&lt;br /&gt;
Stored data may be used to create reports to improve the service for our customers. &lt;br /&gt;
&lt;br /&gt;
== Content == &lt;br /&gt;
User is responsible for all content provided by his portal pages.&lt;br /&gt;
&lt;br /&gt;
We will delete portals and accounts, if pages violate German law. &lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
The policies posted on our sites may be changed from time to time. Changes take effect when we post them on this site.&lt;br /&gt;
&lt;br /&gt;
== Warranty ==&lt;br /&gt;
THE SOFTWARE IS PROVIDED &amp;quot;AS IS&amp;quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR&lt;br /&gt;
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,&lt;br /&gt;
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE&lt;br /&gt;
SERVICE PROVIDERS OR AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER&lt;br /&gt;
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,&lt;br /&gt;
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE&lt;br /&gt;
SOFTWARE.&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=PoNG&amp;diff=207</id>
		<title>PoNG</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=PoNG&amp;diff=207"/>
		<updated>2015-02-25T06:02:10Z</updated>

		<summary type="html">&lt;p&gt;Mh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;u&amp;gt;&amp;#039;&amp;#039;&amp;#039;Portal NG&amp;#039;&amp;#039;&amp;#039;:&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Create web portals for backend service (APIs) w/o programming.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
[[Category:PoNG]]&lt;br /&gt;
&lt;br /&gt;
Quick Links:&lt;br /&gt;
* [[PoNG Modules]]&lt;br /&gt;
* [[PoNG Structure Specification]]&lt;br /&gt;
* [[PoNG Module Programming]]&lt;br /&gt;
&lt;br /&gt;
== Basic Idea: Portal NG ==&lt;br /&gt;
Build a Web GUI for REST/JOSN API backends without programing HTML and JS.&lt;br /&gt;
&lt;br /&gt;
=== Main Structure ===&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;portal&amp;#039;&amp;#039; has always a &amp;#039;&amp;#039;&amp;#039;header&amp;#039;&amp;#039;&amp;#039;, some &amp;#039;&amp;#039;&amp;#039;rows&amp;#039;&amp;#039;&amp;#039; and a &amp;#039;&amp;#039;&amp;#039;footer&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
[[Datei:Pong-struct-1.png|200px]]&lt;br /&gt;
&lt;br /&gt;
You can specify the hight of each row individually.&lt;br /&gt;
&lt;br /&gt;
=== Structured Views ===&lt;br /&gt;
A row can contain a &amp;#039;&amp;#039;&amp;#039;view&amp;#039;&amp;#039;&amp;#039; or a set of &amp;#039;&amp;#039;&amp;#039;columns&amp;#039;&amp;#039;&amp;#039; ...&lt;br /&gt;
&lt;br /&gt;
[[Datei:Pong-struct-2.png|200px]]&lt;br /&gt;
&lt;br /&gt;
... and columns can contain views or rows, containing views or ... (you understand?). You can define the width of each column.&lt;br /&gt;
&lt;br /&gt;
With this construct you should be able to do every possible arrangement of views.&lt;br /&gt;
&lt;br /&gt;
=== Views use Plug-Ins ===&lt;br /&gt;
Views can use ready to use plug-ins with different functionality&lt;br /&gt;
&lt;br /&gt;
[[Datei:Pong-struct-3a.png|300px]] &lt;br /&gt;
&lt;br /&gt;
There are also plug-ins for the header and footer, e.g. to display navigation bars, logos, link-lists or language switch buttons.&lt;br /&gt;
&lt;br /&gt;
=== Configure the Views ===&lt;br /&gt;
All views load their own configuration to initialize the view. The configuration comes from a web server or application server (dynamic configuration).&lt;br /&gt;
&lt;br /&gt;
[[Datei:Pong-struct-4.png|400px]]&lt;br /&gt;
&lt;br /&gt;
=== Data and Content in Views ===&lt;br /&gt;
After the initialization the view can load, modify, save or create data on a RESTful server backend. I.e. the WIKI content plug-in can load pages from a MediaWiki server.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Pong-struct-5.png|400px]]&lt;br /&gt;
&lt;br /&gt;
=== ... and Action! ===&lt;br /&gt;
For a dynamic page, all views can do different interactions:&lt;br /&gt;
# Views can call functions on a HTTP server backend (via REST calls)&lt;br /&gt;
# Views can call update method of other views. These views typically call the server backend to load data.&lt;br /&gt;
# Views can load a view into a row or a column, replacing the view there.&lt;br /&gt;
# Views can navigate to another page. Hopefully another portal page.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Pong-struct-6.png|400px]]&lt;br /&gt;
&lt;br /&gt;
The interactions are defined in the configuration of the view. E.g. in a view using the form plug-in you can define a button to save the form data and triggering an update of a table view afterwards.&lt;br /&gt;
&lt;br /&gt;
Of course -- the description of the page layout and the content data should be in a machine readable format and precise enough, that your browser is able to understand it. But these description of layout and data must still be human readable, self explaining and without HTML or JS coding necessary.&lt;br /&gt;
&lt;br /&gt;
Please read also the [[PoNG Description]].&lt;br /&gt;
&lt;br /&gt;
== A Quick Start in 2 min (local installation) ==&lt;br /&gt;
You need a (simple) Web Server, so install Apache package on you Unix or get e.g. XAMPP or ... or ...&lt;br /&gt;
# Download the [[PoNG_Static_HTML_Distribution|static HTML distribution]] package [[http://keller.minidns.net/mh/pong_v0.3a1.zip here]] (523 kB)&lt;br /&gt;
# Unpack the archive into your web server HTML directory, e.g. /var/www/portal&lt;br /&gt;
# Point your web browser to the portal root, e.g. http://mydomain.com/portal &lt;br /&gt;
&lt;br /&gt;
Start [[PoNG_Static_HTML_Distribution#Start_customizing_the_static_portal|customizing the portal]] ...&lt;br /&gt;
&lt;br /&gt;
== PoNG: Portal as a Service ==&lt;br /&gt;
We offer a [[Portal as a Service]] for free (v0.3 beta test phase). &lt;br /&gt;
&lt;br /&gt;
You can sign up an account and design a new portal on our [http://mh-svr.de/portal/ Portal as a Service] with seconds.&lt;br /&gt;
&lt;br /&gt;
== Layout Configuration ==&lt;br /&gt;
The layout-structure is a JSON file, requested by the layout resource. By default the &amp;lt;tt&amp;gt;/svc/layout/main/structure&amp;lt;/tt&amp;gt; is loaded first. &lt;br /&gt;
&lt;br /&gt;
Your site may have other layouts than &amp;quot;main&amp;quot;, e.g. &amp;lt;tt&amp;gt;/svc/layout/admin/structure&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== The &amp;quot;structure&amp;quot; JSON format ===&lt;br /&gt;
[[Datei:PoNG Example1.png|right|350px]]&lt;br /&gt;
The basic object hierarchy of the objects are:&lt;br /&gt;
* layout&lt;br /&gt;
** title &lt;br /&gt;
** header&lt;br /&gt;
** rows&lt;br /&gt;
*** cols &lt;br /&gt;
**** rows&lt;br /&gt;
***** ...&lt;br /&gt;
** footer&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;rows&amp;lt;/code&amp;gt; can contain either nested &amp;lt;code&amp;gt;cols&amp;lt;/code&amp;gt; or alternatively a resource. The same for &amp;lt;code&amp;gt;cols&amp;lt;/code&amp;gt;. A resource specifies the URL, where to load information about the content, has some meta data to define its layout, actions and dialogs.&lt;br /&gt;
&lt;br /&gt;
You can get every possible layout with this nesting of rows, cols and resources.&lt;br /&gt;
&lt;br /&gt;
Please refer the [[PoNG Structure Specification]] for details.&lt;br /&gt;
&lt;br /&gt;
The example shows, that you can set up a complex portal page with different information resource views on it with a very view lines of meta data definition. The result of this example is shown on the screen shot on the right (no fake). BTW, I would describe it in this way: &amp;lt;i&amp;gt;&amp;quot;This &amp;quot;portal&amp;quot; has a header, then two rows, the second row contains two columns, and then there is a footer.&amp;quot;&amp;lt;/i&amp;gt; &lt;br /&gt;
&lt;br /&gt;
So how can you explain your browser this w/o any HTML code? Let&amp;#039;s try:&lt;br /&gt;
==== Example ====&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;layout&amp;quot;: {&lt;br /&gt;
    &amp;quot;title&amp;quot;: &amp;quot;Title&amp;quot;,&lt;br /&gt;
    &amp;quot;header&amp;quot;: {&lt;br /&gt;
      &amp;quot;logoURL&amp;quot;: &amp;quot;logo.png&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;rows&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;rowId&amp;quot;: &amp;quot;myBlog&amp;quot;,&lt;br /&gt;
        &amp;quot;height&amp;quot;: &amp;quot;185px&amp;quot;,&lt;br /&gt;
        &amp;quot;resourceURL&amp;quot;: &amp;quot;blog&amp;quot;,&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;pong-list&amp;quot;,&lt;br /&gt;
        &amp;quot;decor&amp;quot; : &amp;quot;decor&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;rowId&amp;quot;: &amp;quot;r1&amp;quot;,&lt;br /&gt;
        &amp;quot;height&amp;quot;: &amp;quot;450px&amp;quot;,&lt;br /&gt;
        &amp;quot;cols&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;columnId&amp;quot;: &amp;quot;tbl&amp;quot;,&lt;br /&gt;
            &amp;quot;width&amp;quot;: &amp;quot;40%&amp;quot;,&lt;br /&gt;
            &amp;quot;resourceURL&amp;quot;: &amp;quot;resX&amp;quot;,&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;pong-table&amp;quot;,&lt;br /&gt;
            &amp;quot;decor&amp;quot; : &amp;quot;decor&amp;quot;,&lt;br /&gt;
            &amp;quot;actions&amp;quot; : [ { &amp;quot;actionName&amp;quot;: &amp;quot;Help&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;pong-help&amp;quot; } ]&lt;br /&gt;
          },&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;columnId&amp;quot;: &amp;quot;plot&amp;quot;,&lt;br /&gt;
            &amp;quot;width&amp;quot;: &amp;quot;60%&amp;quot;,&lt;br /&gt;
            &amp;quot;decor&amp;quot; : &amp;quot;decor&amp;quot;,&lt;br /&gt;
            &amp;quot;resourceURL&amp;quot;: &amp;quot;gnuplot&amp;quot;,&lt;br /&gt;
            &amp;quot;callback&amp;quot;: &amp;quot;grmh()&amp;quot;,&lt;br /&gt;
            &amp;quot;actions&amp;quot; : [ { &amp;quot;actionName&amp;quot;: &amp;quot;Config&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;modal-form&amp;quot; } ]&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;footer&amp;quot;: {&lt;br /&gt;
      &amp;quot;copyrightText&amp;quot;: &amp;quot;Copyright 2015, MH.&amp;quot;,&lt;br /&gt;
      &amp;quot;linkList&amp;quot;: [&lt;br /&gt;
      	{ &amp;quot;text&amp;quot;:&amp;quot;Impressum&amp;quot;, &amp;quot;url&amp;quot;: &amp;quot;impress.html&amp;quot;},&lt;br /&gt;
      	{ &amp;quot;text&amp;quot;:&amp;quot;Privacy Note&amp;quot;, &amp;quot;url&amp;quot;: &amp;quot;privacy.html&amp;quot;}&lt;br /&gt;
      ]	&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
This example layout structure will result in a &amp;quot;myBlog&amp;quot; box of full width and below are two columns, one with the &amp;quot;resX&amp;quot; and the other smaller one with a &amp;quot;plot&amp;quot;. If you just starts with this file, all views will be empty, because no one defined the resource details, that are just resource names at the moment.&lt;br /&gt;
&lt;br /&gt;
And if you think, the there is a bunch of work in defining e.g. the &amp;quot;blog&amp;quot;, then check out, what is [[PoNG Module: List View|the todo of this resource definition]].&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;[http://mh-svr.de/PoNG/ Test the prototype]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Installation Manual ==&lt;br /&gt;
Please refer also the [[PoNG Release Notes]].&lt;br /&gt;
=== Static HTML Installation ===&lt;br /&gt;
Perhaps you start here. Since PoNG is client centric, you can play a lot with a static backend. You can focus on implementing, configuring or integrating REST web services and view the data in the browser.&lt;br /&gt;
 &lt;br /&gt;
Simply load and extract the [[PoNG Static HTML Distribution]] to any subdirectory of your web server and customize the structure file &amp;lt;code&amp;gt;/svc/layout/main/structure&amp;lt;/code&amp;gt;, logo and CSS files to your needs.&lt;br /&gt;
&lt;br /&gt;
=== Tomcat based Installation ===&lt;br /&gt;
TODO&lt;br /&gt;
=== PHP based Installation ===&lt;br /&gt;
The [[PoNG PHP Backend]] powers the [[Portal as a Service]]. &lt;br /&gt;
&lt;br /&gt;
For local installations please contact &amp;#039;&amp;#039;admin (at) mh-svr dot de&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Browser Support ==&lt;br /&gt;
PoNG is tested with&lt;br /&gt;
* Firefox 27.0.1 (Ubuntu 13.10 64bit)&lt;br /&gt;
* Safari (iPad, iOS 7)&lt;br /&gt;
* Chrome on Android&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=PoNG&amp;diff=206</id>
		<title>PoNG</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=PoNG&amp;diff=206"/>
		<updated>2015-02-25T06:01:45Z</updated>

		<summary type="html">&lt;p&gt;Mh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Portal NG&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Create web portals for backend service (APIs) w/o programming.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
[[Category:PoNG]]&lt;br /&gt;
&lt;br /&gt;
Quick Links:&lt;br /&gt;
* [[PoNG Modules]]&lt;br /&gt;
* [[PoNG Structure Specification]]&lt;br /&gt;
* [[PoNG Module Programming]]&lt;br /&gt;
&lt;br /&gt;
== Basic Idea: Portal NG ==&lt;br /&gt;
Build a Web GUI for REST/JOSN API backends without programing HTML and JS.&lt;br /&gt;
&lt;br /&gt;
=== Main Structure ===&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;portal&amp;#039;&amp;#039; has always a &amp;#039;&amp;#039;&amp;#039;header&amp;#039;&amp;#039;&amp;#039;, some &amp;#039;&amp;#039;&amp;#039;rows&amp;#039;&amp;#039;&amp;#039; and a &amp;#039;&amp;#039;&amp;#039;footer&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
[[Datei:Pong-struct-1.png|200px]]&lt;br /&gt;
&lt;br /&gt;
You can specify the hight of each row individually.&lt;br /&gt;
&lt;br /&gt;
=== Structured Views ===&lt;br /&gt;
A row can contain a &amp;#039;&amp;#039;&amp;#039;view&amp;#039;&amp;#039;&amp;#039; or a set of &amp;#039;&amp;#039;&amp;#039;columns&amp;#039;&amp;#039;&amp;#039; ...&lt;br /&gt;
&lt;br /&gt;
[[Datei:Pong-struct-2.png|200px]]&lt;br /&gt;
&lt;br /&gt;
... and columns can contain views or rows, containing views or ... (you understand?). You can define the width of each column.&lt;br /&gt;
&lt;br /&gt;
With this construct you should be able to do every possible arrangement of views.&lt;br /&gt;
&lt;br /&gt;
=== Views use Plug-Ins ===&lt;br /&gt;
Views can use ready to use plug-ins with different functionality&lt;br /&gt;
&lt;br /&gt;
[[Datei:Pong-struct-3a.png|300px]] &lt;br /&gt;
&lt;br /&gt;
There are also plug-ins for the header and footer, e.g. to display navigation bars, logos, link-lists or language switch buttons.&lt;br /&gt;
&lt;br /&gt;
=== Configure the Views ===&lt;br /&gt;
All views load their own configuration to initialize the view. The configuration comes from a web server or application server (dynamic configuration).&lt;br /&gt;
&lt;br /&gt;
[[Datei:Pong-struct-4.png|400px]]&lt;br /&gt;
&lt;br /&gt;
=== Data and Content in Views ===&lt;br /&gt;
After the initialization the view can load, modify, save or create data on a RESTful server backend. I.e. the WIKI content plug-in can load pages from a MediaWiki server.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Pong-struct-5.png|400px]]&lt;br /&gt;
&lt;br /&gt;
=== ... and Action! ===&lt;br /&gt;
For a dynamic page, all views can do different interactions:&lt;br /&gt;
# Views can call functions on a HTTP server backend (via REST calls)&lt;br /&gt;
# Views can call update method of other views. These views typically call the server backend to load data.&lt;br /&gt;
# Views can load a view into a row or a column, replacing the view there.&lt;br /&gt;
# Views can navigate to another page. Hopefully another portal page.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Pong-struct-6.png|400px]]&lt;br /&gt;
&lt;br /&gt;
The interactions are defined in the configuration of the view. E.g. in a view using the form plug-in you can define a button to save the form data and triggering an update of a table view afterwards.&lt;br /&gt;
&lt;br /&gt;
Of course -- the description of the page layout and the content data should be in a machine readable format and precise enough, that your browser is able to understand it. But these description of layout and data must still be human readable, self explaining and without HTML or JS coding necessary.&lt;br /&gt;
&lt;br /&gt;
Please read also the [[PoNG Description]].&lt;br /&gt;
&lt;br /&gt;
== A Quick Start in 2 min (local installation) ==&lt;br /&gt;
You need a (simple) Web Server, so install Apache package on you Unix or get e.g. XAMPP or ... or ...&lt;br /&gt;
# Download the [[PoNG_Static_HTML_Distribution|static HTML distribution]] package [[http://keller.minidns.net/mh/pong_v0.3a1.zip here]] (523 kB)&lt;br /&gt;
# Unpack the archive into your web server HTML directory, e.g. /var/www/portal&lt;br /&gt;
# Point your web browser to the portal root, e.g. http://mydomain.com/portal &lt;br /&gt;
&lt;br /&gt;
Start [[PoNG_Static_HTML_Distribution#Start_customizing_the_static_portal|customizing the portal]] ...&lt;br /&gt;
&lt;br /&gt;
== PoNG: Portal as a Service ==&lt;br /&gt;
We offer a [[Portal as a Service]] for free (v0.3 beta test phase). &lt;br /&gt;
&lt;br /&gt;
You can sign up an account and design a new portal on our [http://mh-svr.de/portal/ Portal as a Service] with seconds.&lt;br /&gt;
&lt;br /&gt;
== Layout Configuration ==&lt;br /&gt;
The layout-structure is a JSON file, requested by the layout resource. By default the &amp;lt;tt&amp;gt;/svc/layout/main/structure&amp;lt;/tt&amp;gt; is loaded first. &lt;br /&gt;
&lt;br /&gt;
Your site may have other layouts than &amp;quot;main&amp;quot;, e.g. &amp;lt;tt&amp;gt;/svc/layout/admin/structure&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== The &amp;quot;structure&amp;quot; JSON format ===&lt;br /&gt;
[[Datei:PoNG Example1.png|right|350px]]&lt;br /&gt;
The basic object hierarchy of the objects are:&lt;br /&gt;
* layout&lt;br /&gt;
** title &lt;br /&gt;
** header&lt;br /&gt;
** rows&lt;br /&gt;
*** cols &lt;br /&gt;
**** rows&lt;br /&gt;
***** ...&lt;br /&gt;
** footer&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;rows&amp;lt;/code&amp;gt; can contain either nested &amp;lt;code&amp;gt;cols&amp;lt;/code&amp;gt; or alternatively a resource. The same for &amp;lt;code&amp;gt;cols&amp;lt;/code&amp;gt;. A resource specifies the URL, where to load information about the content, has some meta data to define its layout, actions and dialogs.&lt;br /&gt;
&lt;br /&gt;
You can get every possible layout with this nesting of rows, cols and resources.&lt;br /&gt;
&lt;br /&gt;
Please refer the [[PoNG Structure Specification]] for details.&lt;br /&gt;
&lt;br /&gt;
The example shows, that you can set up a complex portal page with different information resource views on it with a very view lines of meta data definition. The result of this example is shown on the screen shot on the right (no fake). BTW, I would describe it in this way: &amp;lt;i&amp;gt;&amp;quot;This &amp;quot;portal&amp;quot; has a header, then two rows, the second row contains two columns, and then there is a footer.&amp;quot;&amp;lt;/i&amp;gt; &lt;br /&gt;
&lt;br /&gt;
So how can you explain your browser this w/o any HTML code? Let&amp;#039;s try:&lt;br /&gt;
==== Example ====&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;layout&amp;quot;: {&lt;br /&gt;
    &amp;quot;title&amp;quot;: &amp;quot;Title&amp;quot;,&lt;br /&gt;
    &amp;quot;header&amp;quot;: {&lt;br /&gt;
      &amp;quot;logoURL&amp;quot;: &amp;quot;logo.png&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;rows&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;rowId&amp;quot;: &amp;quot;myBlog&amp;quot;,&lt;br /&gt;
        &amp;quot;height&amp;quot;: &amp;quot;185px&amp;quot;,&lt;br /&gt;
        &amp;quot;resourceURL&amp;quot;: &amp;quot;blog&amp;quot;,&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;pong-list&amp;quot;,&lt;br /&gt;
        &amp;quot;decor&amp;quot; : &amp;quot;decor&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;rowId&amp;quot;: &amp;quot;r1&amp;quot;,&lt;br /&gt;
        &amp;quot;height&amp;quot;: &amp;quot;450px&amp;quot;,&lt;br /&gt;
        &amp;quot;cols&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;columnId&amp;quot;: &amp;quot;tbl&amp;quot;,&lt;br /&gt;
            &amp;quot;width&amp;quot;: &amp;quot;40%&amp;quot;,&lt;br /&gt;
            &amp;quot;resourceURL&amp;quot;: &amp;quot;resX&amp;quot;,&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;pong-table&amp;quot;,&lt;br /&gt;
            &amp;quot;decor&amp;quot; : &amp;quot;decor&amp;quot;,&lt;br /&gt;
            &amp;quot;actions&amp;quot; : [ { &amp;quot;actionName&amp;quot;: &amp;quot;Help&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;pong-help&amp;quot; } ]&lt;br /&gt;
          },&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;columnId&amp;quot;: &amp;quot;plot&amp;quot;,&lt;br /&gt;
            &amp;quot;width&amp;quot;: &amp;quot;60%&amp;quot;,&lt;br /&gt;
            &amp;quot;decor&amp;quot; : &amp;quot;decor&amp;quot;,&lt;br /&gt;
            &amp;quot;resourceURL&amp;quot;: &amp;quot;gnuplot&amp;quot;,&lt;br /&gt;
            &amp;quot;callback&amp;quot;: &amp;quot;grmh()&amp;quot;,&lt;br /&gt;
            &amp;quot;actions&amp;quot; : [ { &amp;quot;actionName&amp;quot;: &amp;quot;Config&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;modal-form&amp;quot; } ]&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;footer&amp;quot;: {&lt;br /&gt;
      &amp;quot;copyrightText&amp;quot;: &amp;quot;Copyright 2015, MH.&amp;quot;,&lt;br /&gt;
      &amp;quot;linkList&amp;quot;: [&lt;br /&gt;
      	{ &amp;quot;text&amp;quot;:&amp;quot;Impressum&amp;quot;, &amp;quot;url&amp;quot;: &amp;quot;impress.html&amp;quot;},&lt;br /&gt;
      	{ &amp;quot;text&amp;quot;:&amp;quot;Privacy Note&amp;quot;, &amp;quot;url&amp;quot;: &amp;quot;privacy.html&amp;quot;}&lt;br /&gt;
      ]	&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
This example layout structure will result in a &amp;quot;myBlog&amp;quot; box of full width and below are two columns, one with the &amp;quot;resX&amp;quot; and the other smaller one with a &amp;quot;plot&amp;quot;. If you just starts with this file, all views will be empty, because no one defined the resource details, that are just resource names at the moment.&lt;br /&gt;
&lt;br /&gt;
And if you think, the there is a bunch of work in defining e.g. the &amp;quot;blog&amp;quot;, then check out, what is [[PoNG Module: List View|the todo of this resource definition]].&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;[http://mh-svr.de/PoNG/ Test the prototype]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Installation Manual ==&lt;br /&gt;
Please refer also the [[PoNG Release Notes]].&lt;br /&gt;
=== Static HTML Installation ===&lt;br /&gt;
Perhaps you start here. Since PoNG is client centric, you can play a lot with a static backend. You can focus on implementing, configuring or integrating REST web services and view the data in the browser.&lt;br /&gt;
 &lt;br /&gt;
Simply load and extract the [[PoNG Static HTML Distribution]] to any subdirectory of your web server and customize the structure file &amp;lt;code&amp;gt;/svc/layout/main/structure&amp;lt;/code&amp;gt;, logo and CSS files to your needs.&lt;br /&gt;
&lt;br /&gt;
=== Tomcat based Installation ===&lt;br /&gt;
TODO&lt;br /&gt;
=== PHP based Installation ===&lt;br /&gt;
The [[PoNG PHP Backend]] powers the [[Portal as a Service]]. &lt;br /&gt;
&lt;br /&gt;
For local installations please contact &amp;#039;&amp;#039;admin (at) mh-svr dot de&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Browser Support ==&lt;br /&gt;
PoNG is tested with&lt;br /&gt;
* Firefox 27.0.1 (Ubuntu 13.10 64bit)&lt;br /&gt;
* Safari (iPad, iOS 7)&lt;br /&gt;
* Chrome on Android&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=PoNG_Module_Programming&amp;diff=205</id>
		<title>PoNG Module Programming</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=PoNG_Module_Programming&amp;diff=205"/>
		<updated>2015-02-24T19:03:35Z</updated>

		<summary type="html">&lt;p&gt;Mh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Please have a look at the other [[PoNG_Modules#Standard_Modules_coming_with_PoNG|standard modules coming with PoNG]]. &lt;br /&gt;
[[Category:PoNG]]&lt;br /&gt;
== Basic Module Concept ==&lt;br /&gt;
Modules are defined in the file &amp;lt;code&amp;gt;modules/portal-ng-modules.js&amp;lt;/code&amp;gt;. The modules are &amp;quot;.js&amp;quot; files in the subdirectory &amp;lt;code&amp;gt;modules/&amp;lt;modulename&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In the &amp;lt;code&amp;gt;modules/portal-ng-modules.js&amp;lt;/code&amp;gt; you have to do two things:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1. Define the module itself&amp;#039;&amp;#039;&amp;#039; by adding a line&lt;br /&gt;
 moduleMap[ &amp;quot;modulename&amp;quot; ] = {  ... }; &lt;br /&gt;
PoNG will include the file &amp;lt;code&amp;gt;modules/&amp;lt;modulename&amp;gt;/&amp;lt;modulename&amp;gt;.js&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
PoNG also loads style definitions from the &amp;lt;code&amp;gt;modules/&amp;lt;modulename&amp;gt;/&amp;lt;modulename&amp;gt;.css&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
Modules coming with PoNG will have the naming convention &amp;lt;code&amp;gt;pong-&amp;lt;modulename&amp;gt;&amp;lt;/code&amp;gt; and give you some common core functionality.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2. Define all hooks, given by the module&amp;#039;&amp;#039;&amp;#039; by adding the line&lt;br /&gt;
 moduleMap[ &amp;quot;modulename&amp;quot; ] = {   &lt;br /&gt;
    &amp;quot;hooks&amp;quot; : [ { &amp;quot;hook&amp;quot;: &amp;quot;&amp;lt;hookname&amp;gt;&amp;quot;, &amp;quot;method&amp;quot;:&amp;quot;&amp;lt;hook function name&amp;gt;&amp;quot; } ]&lt;br /&gt;
  };&lt;br /&gt;
The function should be in the module JS file, loaded by step one. &lt;br /&gt;
&lt;br /&gt;
It is always a good idea, to start all your &amp;lt;hook function name&amp;gt; with your module name, to prevent name collisions with other modules. &lt;br /&gt;
&lt;br /&gt;
There are some hooks in the distribution of PoNG, for example a modal-form hook. You can have a look at these modules to get more insight.&lt;br /&gt;
&lt;br /&gt;
== Module Template ==&lt;br /&gt;
To make it easy, there is a hook template. Please have a look on &amp;lt;code&amp;gt;modules/pong-modules/module-template.js&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Copy to the file your favorite module name, implement the methods and follow the advices in the comments. To enable you have to put the hooks into &amp;lt;code&amp;gt;modules/portal-ng-modules.js&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Available Hooks ==&lt;br /&gt;
You can use these hook names in the &amp;lt;code&amp;gt;portal-ng-modules.js&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
=== addHeaderHtml Hook ===&lt;br /&gt;
This is called when the header is created. You can use this to add HTML or script code to the heeder div. &lt;br /&gt;
&lt;br /&gt;
[[PoNG Structure Specification|Structure definition]]: in header can define property-array &lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;quot;modules&amp;quot; : [ { &amp;quot;id&amp;quot;: &amp;quot;&amp;lt;module-id&amp;gt;&amp;quot;, &amp;quot;type&amp;quot;: &amp;#039;&amp;#039;&amp;#039;&amp;quot;&amp;lt;module-name&amp;gt;&amp;quot;, &amp;quot;param&amp;quot;: {&amp;lt;your-optional-parameters&amp;gt;}&amp;#039;&amp;#039;&amp;#039; }, ... ] &amp;lt;/code&amp;gt;&lt;br /&gt;
Function Parameters:&lt;br /&gt;
* id (the id of the resource, as specified in the modules list in the structure file)&lt;br /&gt;
* type (the type of action, as specified in the modules list in the structure file)&lt;br /&gt;
* pram (optional parameter object)&lt;br /&gt;
&lt;br /&gt;
=== addFooterHtml Hook ===&lt;br /&gt;
This is called when the footer is created. You can use this to add HTML or script code to the footer div. &lt;br /&gt;
&lt;br /&gt;
[[PoNG Structure Specification|Structure definition]]: in footer can define property-array &lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;quot;modules&amp;quot; : [ { &amp;quot;id&amp;quot;: &amp;quot;&amp;lt;module-id&amp;gt;&amp;quot;, &amp;#039;&amp;#039;&amp;#039;&amp;quot;type&amp;quot;: &amp;quot;&amp;lt;module-name&amp;gt;&amp;quot;, &amp;quot;param&amp;quot;: {&amp;lt;your-optional-parameters&amp;gt;}&amp;#039;&amp;#039;&amp;#039; }, ... ] &amp;lt;/code&amp;gt;&lt;br /&gt;
Function Parameters:&lt;br /&gt;
* id (the id of the resource, as specified in the modules list in the structure file)&lt;br /&gt;
* type (the type of action, as specified in the modules list in the structure file)&lt;br /&gt;
* pram (optional parameter object)&lt;br /&gt;
&lt;br /&gt;
=== addActionBtn Hook  === &lt;br /&gt;
[[PoNG Structure Specification|Structure definition]]: in rows or cols you can define property-array &lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;quot;actions&amp;quot; : [ { &amp;quot;actionName&amp;quot;: &amp;quot;&amp;lt;name&amp;gt;&amp;quot;, &amp;#039;&amp;#039;&amp;#039;&amp;quot;type&amp;quot;: &amp;quot;&amp;lt;module-name&amp;gt;&amp;quot;&amp;#039;&amp;#039;&amp;#039; }, ... ] &amp;lt;/code&amp;gt;&lt;br /&gt;
Function Parameters:&lt;br /&gt;
* id (the id of the resource, as specified in the structure file)&lt;br /&gt;
* actionName (the name of action, as specified in the structure file)&lt;br /&gt;
* resourceURL (the URL of the resource, as specified in the structure file)&lt;br /&gt;
* Return value: The HTML with the button code, the dialog (div) and script code to add event listeners to the button.&lt;br /&gt;
Post conditions: creModal is called with same parameters in a later phase of the life cycle of page creation to load content asynchronous&lt;br /&gt;
=== creModal Hook ===&lt;br /&gt;
Trigger: This is called later int he page set up life cycle, when you use a &amp;lt;code&amp;gt;addActionBtn&amp;lt;/code&amp;gt; hook. &lt;br /&gt;
&lt;br /&gt;
Function Parameters &lt;br /&gt;
* id&lt;br /&gt;
* modalName&lt;br /&gt;
* resourceURL&lt;br /&gt;
* Return value: none&lt;br /&gt;
=== loadResourcesHtml Hook  ===&lt;br /&gt;
Trigger: You simply have to add a type to your resource in the [[PoNG Structure Specification|structure definition]], e.g.&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;layout&amp;quot;: {&lt;br /&gt;
     ...&lt;br /&gt;
     &amp;quot;rows&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;rowId&amp;quot;: &amp;quot;yxz&amp;quot;,&lt;br /&gt;
         &amp;quot;resourceURL&amp;quot;: &amp;quot;resX&amp;quot;,&lt;br /&gt;
         &amp;quot;resourceParam&amp;quot;: { &amp;quot;kay&amp;quot;: &amp;quot;value&amp;quot;, ... },&lt;br /&gt;
         &amp;#039;&amp;#039;&amp;#039;&amp;quot;type&amp;quot;: &amp;quot;pong-form&amp;quot;,&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
         ...&lt;br /&gt;
       },&lt;br /&gt;
       ...&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== Module Constructor Function ====  &lt;br /&gt;
* divId (ID in HTML DIV tag, PoNG expects the function to replace the content there)&lt;br /&gt;
* resourceURL&lt;br /&gt;
* Parmeter (object)&lt;br /&gt;
Return value: none&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Module Config:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
There are two ways to configure the module:&lt;br /&gt;
# Embed the config into the layout in the &amp;lt;code&amp;gt;moduleConfig&amp;lt;/code&amp;gt; attribute&lt;br /&gt;
# Load it from the resourceURL or somewhere else &lt;br /&gt;
&lt;br /&gt;
Your code you must be prepared to deal with the 1st option.&lt;br /&gt;
&lt;br /&gt;
 function myModuleHTML( divId, resourceURL, params ) {&lt;br /&gt;
    ...&lt;br /&gt;
    if ( moduleConfig[ divId ] != null ) { &amp;#039;&amp;#039;// *must* have&amp;#039;&amp;#039;&lt;br /&gt;
        renderHTML( divId, resourceURL, params, moduleConfig[ divId ] );&lt;br /&gt;
    } else { &amp;#039;&amp;#039;// *optional*: load config somwhere else&amp;#039;&amp;#039;&lt;br /&gt;
        $.getJSON( &lt;br /&gt;
            resourceURL+&amp;quot;/myModuleConfig.json&amp;quot;, &lt;br /&gt;
                function( config ) {&lt;br /&gt;
                    renderHTML( divId, resourceURL, params, config );&lt;br /&gt;
                }&lt;br /&gt;
            );	&lt;br /&gt;
        }	&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Update Function Hook ===&lt;br /&gt;
This is not a MUST, but nevertheless you should implement this hook.&lt;br /&gt;
&lt;br /&gt;
Trigger: This is typically triggered by other actions on the page. The hook is called, if you call &amp;lt;code&amp;gt;udateModuleData( divId, paramsObj );&amp;lt;/code&amp;gt; from framework.&lt;br /&gt;
&lt;br /&gt;
Function Parameters &lt;br /&gt;
* divId&lt;br /&gt;
* paramsObj&lt;br /&gt;
* Return value: none&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Example&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
Module Map:&lt;br /&gt;
 moduleMap[ &amp;quot;pong-list&amp;quot; ] = {&lt;br /&gt;
   &amp;quot;name&amp;quot;:  &amp;quot;pong-list&amp;quot;,&lt;br /&gt;
      &amp;quot;hooks&amp;quot;: [&lt;br /&gt;
         { hook: &amp;quot;loadResourcesHtml&amp;quot;, method:&amp;quot;pongListDivHTML&amp;quot; },&lt;br /&gt;
         { hook: &amp;quot;update&amp;quot;, method:&amp;quot;ponglisteUpdateData&amp;quot; }&lt;br /&gt;
      ]&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Code in pong-list.js:&lt;br /&gt;
 function ponglisteUpdateData( divId, paramsObj ) {&lt;br /&gt;
     ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Module Example ==&lt;br /&gt;
=== modules/portal-ng-modules.js ===&lt;br /&gt;
To define the module and the hook functions in the modules file, you need to&lt;br /&gt;
# add the JS file as element of the &amp;lt;code&amp;gt;moduleMap&amp;lt;/code&amp;gt; map. You only need to specify the base name here. PoNG will add the subpath and .js for you.&lt;br /&gt;
# add your hooks and the function, which you wrote for this as element of the &amp;lt;code&amp;gt;hooks&amp;lt;/code&amp;gt; array. As type you should reference your module-name as defined in the &amp;lt;code&amp;gt;&amp;lt;moduleMap/code&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
 moduleMap[ &amp;quot;my-module&amp;quot; ] = {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;my-module&amp;quot;,&lt;br /&gt;
        &amp;quot;hooks&amp;quot;: [&lt;br /&gt;
            { hook: &amp;quot;addActionBtn&amp;quot;, method:&amp;quot;myModuleAddActionBtn&amp;quot; }&lt;br /&gt;
        ]&lt;br /&gt;
 };&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
=== modules/my-module/my-module.js ===&lt;br /&gt;
Implement you module script:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 log( &amp;quot;my-module&amp;quot;, &amp;quot;Loading Module&amp;quot;);&lt;br /&gt;
 &amp;amp;nbsp;&lt;br /&gt;
 function myModuleAddActionBtn( id, name, resourceURL ) {&lt;br /&gt;
    log( &amp;quot;my-module&amp;quot;, &amp;quot;myModuleAddActionBtn:  &amp;quot; + name );&lt;br /&gt;
    var html = &amp;#039;&amp;lt;button id=&amp;quot;myModuleBtn&amp;#039;+id+&amp;#039;&amp;gt;...&amp;lt;/button&amp;gt;&amp;lt;div id=&amp;quot;myModuleDlg&amp;#039;+id+&amp;#039;&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&amp;lt;script&amp;gt;....&amp;lt;/script&amp;gt;&amp;#039;;&lt;br /&gt;
    return html;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Please be prepared, that the the hook may be used more than once. So as seen in the example, you should use the &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; from the parameters in the HTML id to keep it unique.&lt;br /&gt;
&lt;br /&gt;
It may be required to have the modal form &amp;lt;code&amp;gt;div&amp;lt;/code&amp;gt; empty, so you can load it in a later stage of the life cycle. You can use the &amp;lt;code&amp;gt;creModal&amp;lt;/code&amp;gt; hook to load it asynchronous. If you do this, you are responsible to keep your HTML ids in sync in both hook functions.&lt;br /&gt;
&lt;br /&gt;
=== Use your Hook in Structure Definition ===&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;layout&amp;quot;: {&lt;br /&gt;
    &amp;quot;title&amp;quot;: &amp;quot;My Site with a hook&amp;quot;, &lt;br /&gt;
    &amp;quot;header&amp;quot;: {&lt;br /&gt;
       ...&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;rows&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;rowId&amp;quot;: &amp;quot;example&amp;quot;,&lt;br /&gt;
        &amp;quot;resourceURL&amp;quot;: &amp;quot;MyResource&amp;quot;,&lt;br /&gt;
        &amp;quot;decor&amp;quot; : &amp;quot;decor&amp;quot;,&lt;br /&gt;
        ...&lt;br /&gt;
        &amp;quot;actions&amp;quot; : [ { &amp;quot;actionName&amp;quot;: &amp;quot;MyButton&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;my-module&amp;quot; } ]&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        ...&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;footer&amp;quot;: {&lt;br /&gt;
        ... &lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
The decor tag is important to get the menu bar rendered, so that you can see the button generated by your hook.&lt;br /&gt;
&lt;br /&gt;
Please refer the [[PoNG Structure Specification]] for more details.&lt;br /&gt;
&lt;br /&gt;
=== CSS ===&lt;br /&gt;
At least you should prepare a custom css file for your module with the same name of the module and place it in the folder &amp;lt;code&amp;gt;modules/&amp;lt;modulename&amp;gt;/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;#039;&amp;#039;&amp;#039;modules/my-module/my-module&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 #myModuleBtn { font-size:10pt; }&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=PoNG_Release_Notes&amp;diff=204</id>
		<title>PoNG Release Notes</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=PoNG_Release_Notes&amp;diff=204"/>
		<updated>2015-02-24T19:00:34Z</updated>

		<summary type="html">&lt;p&gt;Mh: /* Version 0.4 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:PoNG]][[PoNG]] Releases:&lt;br /&gt;
* [[PoNG_Static_HTML_Distribution]] (please note: you don&amp;#039;t need more than that ;-)&lt;br /&gt;
* [[PoNG_PHP_Backend]]&lt;br /&gt;
== Version 0.4 ==&lt;br /&gt;
* General Improvements&lt;br /&gt;
** [[PoNG_Module_Programming#Basic_Module_Concept|New Module Directory Structure]]&lt;br /&gt;
&lt;br /&gt;
== Version 0.3 ==&lt;br /&gt;
* General Improvements&lt;br /&gt;
** [[PoNG_Static_HTML_Distribution#Shared_scipts_and_CSSs|Config for JS/CSS location]]&lt;br /&gt;
** [[PoNG_Module_Programming#update|Update callback mechanism for modules]]&lt;br /&gt;
** [[PoNG_Structure_Specification#Resources|Module configuration can be embedded in structure file as &amp;#039;&amp;#039;moduleConfig&amp;#039;&amp;#039;]]&lt;br /&gt;
* Modules:&lt;br /&gt;
** [[PoNG Module: Form View|Form View]]&lt;br /&gt;
** [[PoNG_Module:_Table_View#Editable_Cells|Table with editable cells]]&lt;br /&gt;
** [[PoNG_Module:_List_View#Editable_Cells|List with editable cells]]&lt;br /&gt;
** Layout Editor&lt;br /&gt;
* Extras:&lt;br /&gt;
** [[PoNG_Module_Programming#Module_Template|Module template for programmers]]&lt;br /&gt;
** [[PoNG_PHP_Backend|PHP-BE: API to save layout and settings]]&lt;br /&gt;
* Fixes&lt;br /&gt;
** Display title also w/o decor&lt;br /&gt;
&lt;br /&gt;
== Version 0.2 ==&lt;br /&gt;
General:&lt;br /&gt;
* PHP Backend Base&lt;br /&gt;
* Header/Footer Improvements&lt;br /&gt;
* Allow links in Copyright&lt;br /&gt;
* Basic auth mechnism&lt;br /&gt;
&lt;br /&gt;
Modules:&lt;br /&gt;
* [[PoNG Module: MediaWiki View|MediaWiki]]&lt;br /&gt;
* Security Header &lt;br /&gt;
* [[PoNG Module: Master Details View|Master-Detail-Tables View]]&lt;br /&gt;
* [[PoNG Module: I18N|Internationalization]]&lt;br /&gt;
&lt;br /&gt;
== Version 0.1 ==&lt;br /&gt;
Features:&lt;br /&gt;
* Rendering of basic PoNG [[PoNG Structure Specification]]&lt;br /&gt;
* [[PoGN_Structure_Specification#Modal_dialogs|Modal dialog for views]]&lt;br /&gt;
* [[PoNG_Modules|Basic module and hook concept]]&lt;br /&gt;
* Hooks&lt;br /&gt;
** [[PoNG_Modules#addHeaderHtml|Header]] and [[PoNG_Modules#addFooterHtml|Footer]] hooks&lt;br /&gt;
** [[PoNG_Modules#addActionBtn|Action button]] and [[PoNG_Modules#creModal|modal dialog loader]]&lt;br /&gt;
** [[PoNG_Modules#loadResourcesHtml|Resource HTML loader]]&lt;br /&gt;
* Modules:&lt;br /&gt;
** [[PoNG Module: Table View|Table View]]&lt;br /&gt;
** [[PoNG Module: List View|List View]]&lt;br /&gt;
** [[PoNG Module: Form View|Form View]]&lt;br /&gt;
** [[PoNG Module: Modal Form Dialog|Modal Form Dialog]]&lt;br /&gt;
** [[PoNG Module: Help Dialog|Help Dialog]]&lt;br /&gt;
* Includes static out of the box demo&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=PoNG_Module_Programming&amp;diff=203</id>
		<title>PoNG Module Programming</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=PoNG_Module_Programming&amp;diff=203"/>
		<updated>2015-02-24T19:00:06Z</updated>

		<summary type="html">&lt;p&gt;Mh: /* Basic Module Concept */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Please have a look at the other [[PoNG_Modules#Standard_Modules_coming_with_PoNG|standard modules coming with PoNG]]. &lt;br /&gt;
[[Category:PoNG]]&lt;br /&gt;
== Basic Module Concept ==&lt;br /&gt;
Modules are defined in the file &amp;lt;code&amp;gt;modules/portal-ng-modules.js&amp;lt;/code&amp;gt;. The modules are &amp;quot;.js&amp;quot; files in the subdirectory &amp;lt;code&amp;gt;modules/&amp;lt;modulename&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In the &amp;lt;code&amp;gt;modules/portal-ng-modules.js&amp;lt;/code&amp;gt; you have to do two things:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1. Define the module itself&amp;#039;&amp;#039;&amp;#039; by adding a line&lt;br /&gt;
 moduleMap[ &amp;quot;modulename&amp;quot; ] = {  ... }; &lt;br /&gt;
PoNG will include the file &amp;lt;code&amp;gt;modules/&amp;lt;modulename&amp;gt;/&amp;lt;modulename&amp;gt;.js&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
PoNG also loads style definitions from the &amp;lt;code&amp;gt;modules/&amp;lt;modulename&amp;gt;/&amp;lt;modulename&amp;gt;.css&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
Modules coming with PoNG will have the naming convention &amp;lt;code&amp;gt;pong-&amp;lt;modulename&amp;gt;&amp;lt;/code&amp;gt; and give you some common core functionality.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2. Define all hooks, given by the module&amp;#039;&amp;#039;&amp;#039; by adding the line&lt;br /&gt;
 moduleMap[ &amp;quot;modulename&amp;quot; ] = {   &lt;br /&gt;
    &amp;quot;hooks&amp;quot; : [ { &amp;quot;hook&amp;quot;: &amp;quot;&amp;lt;hookname&amp;gt;&amp;quot;, &amp;quot;method&amp;quot;:&amp;quot;&amp;lt;hook function name&amp;gt;&amp;quot; } ]&lt;br /&gt;
  };&lt;br /&gt;
The function should be in the module JS file, loaded by step one. &lt;br /&gt;
&lt;br /&gt;
It is always a good idea, to start all your &amp;lt;hook function name&amp;gt; with your module name, to prevent name collisions with other modules. &lt;br /&gt;
&lt;br /&gt;
There are some hooks in the distribution of PoNG, for example a modal-form hook. You can have a look at these modules to get more insight.&lt;br /&gt;
&lt;br /&gt;
== Module Template ==&lt;br /&gt;
To make it easy, there is a hook template. Please have a look on &amp;lt;code&amp;gt;js/pong-modules/module-template.js&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Copy to the file your favorite module name, implement the methods and follow the advices in the comments. To enable you have to put the hooks into &amp;lt;code&amp;gt;js/portal-ng-modules.js&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Available Hooks ==&lt;br /&gt;
You can use these hook names in the &amp;lt;code&amp;gt;portal-ng-modules.js&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
=== addHeaderHtml Hook ===&lt;br /&gt;
This is called when the header is created. You can use this to add HTML or script code to the heeder div. &lt;br /&gt;
&lt;br /&gt;
[[PoNG Structure Specification|Structure definition]]: in header can define property-array &lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;quot;modules&amp;quot; : [ { &amp;quot;id&amp;quot;: &amp;quot;&amp;lt;module-id&amp;gt;&amp;quot;, &amp;quot;type&amp;quot;: &amp;#039;&amp;#039;&amp;#039;&amp;quot;&amp;lt;module-name&amp;gt;&amp;quot;, &amp;quot;param&amp;quot;: {&amp;lt;your-optional-parameters&amp;gt;}&amp;#039;&amp;#039;&amp;#039; }, ... ] &amp;lt;/code&amp;gt;&lt;br /&gt;
Function Parameters:&lt;br /&gt;
* id (the id of the resource, as specified in the modules list in the structure file)&lt;br /&gt;
* type (the type of action, as specified in the modules list in the structure file)&lt;br /&gt;
* pram (optional parameter object)&lt;br /&gt;
&lt;br /&gt;
=== addFooterHtml Hook ===&lt;br /&gt;
This is called when the footer is created. You can use this to add HTML or script code to the footer div. &lt;br /&gt;
&lt;br /&gt;
[[PoNG Structure Specification|Structure definition]]: in footer can define property-array &lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;quot;modules&amp;quot; : [ { &amp;quot;id&amp;quot;: &amp;quot;&amp;lt;module-id&amp;gt;&amp;quot;, &amp;#039;&amp;#039;&amp;#039;&amp;quot;type&amp;quot;: &amp;quot;&amp;lt;module-name&amp;gt;&amp;quot;, &amp;quot;param&amp;quot;: {&amp;lt;your-optional-parameters&amp;gt;}&amp;#039;&amp;#039;&amp;#039; }, ... ] &amp;lt;/code&amp;gt;&lt;br /&gt;
Function Parameters:&lt;br /&gt;
* id (the id of the resource, as specified in the modules list in the structure file)&lt;br /&gt;
* type (the type of action, as specified in the modules list in the structure file)&lt;br /&gt;
* pram (optional parameter object)&lt;br /&gt;
&lt;br /&gt;
=== addActionBtn Hook  === &lt;br /&gt;
[[PoNG Structure Specification|Structure definition]]: in rows or cols you can define property-array &lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;quot;actions&amp;quot; : [ { &amp;quot;actionName&amp;quot;: &amp;quot;&amp;lt;name&amp;gt;&amp;quot;, &amp;#039;&amp;#039;&amp;#039;&amp;quot;type&amp;quot;: &amp;quot;&amp;lt;module-name&amp;gt;&amp;quot;&amp;#039;&amp;#039;&amp;#039; }, ... ] &amp;lt;/code&amp;gt;&lt;br /&gt;
Function Parameters:&lt;br /&gt;
* id (the id of the resource, as specified in the structure file)&lt;br /&gt;
* actionName (the name of action, as specified in the structure file)&lt;br /&gt;
* resourceURL (the URL of the resource, as specified in the structure file)&lt;br /&gt;
* Return value: The HTML with the button code, the dialog (div) and script code to add event listeners to the button.&lt;br /&gt;
Post conditions: creModal is called with same parameters in a later phase of the life cycle of page creation to load content asynchronous&lt;br /&gt;
=== creModal Hook ===&lt;br /&gt;
Trigger: This is called later int he page set up life cycle, when you use a &amp;lt;code&amp;gt;addActionBtn&amp;lt;/code&amp;gt; hook. &lt;br /&gt;
&lt;br /&gt;
Function Parameters &lt;br /&gt;
* id&lt;br /&gt;
* modalName&lt;br /&gt;
* resourceURL&lt;br /&gt;
* Return value: none&lt;br /&gt;
=== loadResourcesHtml Hook  ===&lt;br /&gt;
Trigger: You simply have to add a type to your resource in the [[PoNG Structure Specification|structure definition]], e.g.&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;layout&amp;quot;: {&lt;br /&gt;
     ...&lt;br /&gt;
     &amp;quot;rows&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;rowId&amp;quot;: &amp;quot;yxz&amp;quot;,&lt;br /&gt;
         &amp;quot;resourceURL&amp;quot;: &amp;quot;resX&amp;quot;,&lt;br /&gt;
         &amp;quot;resourceParam&amp;quot;: { &amp;quot;kay&amp;quot;: &amp;quot;value&amp;quot;, ... },&lt;br /&gt;
         &amp;#039;&amp;#039;&amp;#039;&amp;quot;type&amp;quot;: &amp;quot;pong-form&amp;quot;,&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
         ...&lt;br /&gt;
       },&lt;br /&gt;
       ...&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== Module Constructor Function ====  &lt;br /&gt;
* divId (ID in HTML DIV tag, PoNG expects the function to replace the content there)&lt;br /&gt;
* resourceURL&lt;br /&gt;
* Parmeter (object)&lt;br /&gt;
Return value: none&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Module Config:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
There are two ways to configure the module:&lt;br /&gt;
# Embed the config into the layout in the &amp;lt;code&amp;gt;moduleConfig&amp;lt;/code&amp;gt; attribute&lt;br /&gt;
# Load it from the resourceURL or somewhere else &lt;br /&gt;
&lt;br /&gt;
Your code you must be prepared to deal with the 1st option.&lt;br /&gt;
&lt;br /&gt;
 function myModuleHTML( divId, resourceURL, params ) {&lt;br /&gt;
    ...&lt;br /&gt;
    if ( moduleConfig[ divId ] != null ) { &amp;#039;&amp;#039;// *must* have&amp;#039;&amp;#039;&lt;br /&gt;
        renderHTML( divId, resourceURL, params, moduleConfig[ divId ] );&lt;br /&gt;
    } else { &amp;#039;&amp;#039;// *optional*: load config somwhere else&amp;#039;&amp;#039;&lt;br /&gt;
        $.getJSON( &lt;br /&gt;
            resourceURL+&amp;quot;/myModuleConfig.json&amp;quot;, &lt;br /&gt;
                function( config ) {&lt;br /&gt;
                    renderHTML( divId, resourceURL, params, config );&lt;br /&gt;
                }&lt;br /&gt;
            );	&lt;br /&gt;
        }	&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Update Function Hook ===&lt;br /&gt;
This is not a MUST, but nevertheless you should implement this hook.&lt;br /&gt;
&lt;br /&gt;
Trigger: This is typically triggered by other actions on the page. The hook is called, if you call &amp;lt;code&amp;gt;udateModuleData( divId, paramsObj );&amp;lt;/code&amp;gt; from framework.&lt;br /&gt;
&lt;br /&gt;
Function Parameters &lt;br /&gt;
* divId&lt;br /&gt;
* paramsObj&lt;br /&gt;
* Return value: none&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Example&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
Module Map:&lt;br /&gt;
 moduleMap[ &amp;quot;pong-list&amp;quot; ] = {&lt;br /&gt;
   &amp;quot;name&amp;quot;:  &amp;quot;pong-list&amp;quot;,&lt;br /&gt;
      &amp;quot;hooks&amp;quot;: [&lt;br /&gt;
         { hook: &amp;quot;loadResourcesHtml&amp;quot;, method:&amp;quot;pongListDivHTML&amp;quot; },&lt;br /&gt;
         { hook: &amp;quot;update&amp;quot;, method:&amp;quot;ponglisteUpdateData&amp;quot; }&lt;br /&gt;
      ]&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Code in pong-list.js:&lt;br /&gt;
 function ponglisteUpdateData( divId, paramsObj ) {&lt;br /&gt;
     ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Module Example ==&lt;br /&gt;
=== js/portal-ng-modules.js ===&lt;br /&gt;
To define the module and the hook functions in the modules file, you need to&lt;br /&gt;
# add the JS file as element of the &amp;lt;code&amp;gt;moduleMap&amp;lt;/code&amp;gt; map. You only need to specify the base name here. PoNG will add the subpath and .js for you.&lt;br /&gt;
# add your hooks and the function, which you wrote for this as element of the &amp;lt;code&amp;gt;hooks&amp;lt;/code&amp;gt; array. As type you should reference your module-name as defined in the &amp;lt;code&amp;gt;&amp;lt;moduleMap/code&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
 moduleMap[ &amp;quot;my-module&amp;quot; ] = {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;my-module&amp;quot;,&lt;br /&gt;
        &amp;quot;hooks&amp;quot;: [&lt;br /&gt;
            { hook: &amp;quot;addActionBtn&amp;quot;, method:&amp;quot;myModuleAddActionBtn&amp;quot; }&lt;br /&gt;
        ]&lt;br /&gt;
 };&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
=== js/pong-modules/my-module.js ===&lt;br /&gt;
Implement you module script:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 log( &amp;quot;my-module&amp;quot;, &amp;quot;Loading Module&amp;quot;);&lt;br /&gt;
 &amp;amp;nbsp;&lt;br /&gt;
 function myModuleAddActionBtn( id, name, resourceURL ) {&lt;br /&gt;
    log( &amp;quot;my-module&amp;quot;, &amp;quot;myModuleAddActionBtn:  &amp;quot; + name );&lt;br /&gt;
    var html = &amp;#039;&amp;lt;button id=&amp;quot;myModuleBtn&amp;#039;+id+&amp;#039;&amp;gt;...&amp;lt;/button&amp;gt;&amp;lt;div id=&amp;quot;myModuleDlg&amp;#039;+id+&amp;#039;&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&amp;lt;script&amp;gt;....&amp;lt;/script&amp;gt;&amp;#039;;&lt;br /&gt;
    return html;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Please be prepared, that the the hook may be used more than once. So as seen in the example, you should use the &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; from the parameters in the HTML id to keep it unique.&lt;br /&gt;
&lt;br /&gt;
It may be required to have the modal form &amp;lt;code&amp;gt;div&amp;lt;/code&amp;gt; empty, so you can load it in a later stage of the life cycle. You can use the &amp;lt;code&amp;gt;creModal&amp;lt;/code&amp;gt; hook to load it asynchronous. If you do this, you are responsible to keep your HTML ids in sync in both hook functions.&lt;br /&gt;
&lt;br /&gt;
=== Use your Hook in Structure Definition ===&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;layout&amp;quot;: {&lt;br /&gt;
    &amp;quot;title&amp;quot;: &amp;quot;My Site with a hook&amp;quot;, &lt;br /&gt;
    &amp;quot;header&amp;quot;: {&lt;br /&gt;
       ...&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;rows&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;rowId&amp;quot;: &amp;quot;example&amp;quot;,&lt;br /&gt;
        &amp;quot;resourceURL&amp;quot;: &amp;quot;MyResource&amp;quot;,&lt;br /&gt;
        &amp;quot;decor&amp;quot; : &amp;quot;decor&amp;quot;,&lt;br /&gt;
        ...&lt;br /&gt;
        &amp;quot;actions&amp;quot; : [ { &amp;quot;actionName&amp;quot;: &amp;quot;MyButton&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;my-module&amp;quot; } ]&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        ...&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;footer&amp;quot;: {&lt;br /&gt;
        ... &lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
The decor tag is important to get the menu bar rendered, so that you can see the button generated by your hook.&lt;br /&gt;
&lt;br /&gt;
Please refer the [[PoNG Structure Specification]] for more details.&lt;br /&gt;
&lt;br /&gt;
=== CSS ===&lt;br /&gt;
At least you should prepare a custom css file for your module with the same name of the module and place it in the folder &amp;lt;code&amp;gt;css/pong-modules/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;#039;&amp;#039;&amp;#039;my-module.css&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 #myModuleBtn { font-size:10pt; }&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=PoNG_Release_Notes&amp;diff=202</id>
		<title>PoNG Release Notes</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=PoNG_Release_Notes&amp;diff=202"/>
		<updated>2015-02-24T18:57:33Z</updated>

		<summary type="html">&lt;p&gt;Mh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:PoNG]][[PoNG]] Releases:&lt;br /&gt;
* [[PoNG_Static_HTML_Distribution]] (please note: you don&amp;#039;t need more than that ;-)&lt;br /&gt;
* [[PoNG_PHP_Backend]]&lt;br /&gt;
== Version 0.4 ==&lt;br /&gt;
* General Improvements&lt;br /&gt;
** New Module Directory Structure&lt;br /&gt;
== Version 0.3 ==&lt;br /&gt;
* General Improvements&lt;br /&gt;
** [[PoNG_Static_HTML_Distribution#Shared_scipts_and_CSSs|Config for JS/CSS location]]&lt;br /&gt;
** [[PoNG_Module_Programming#update|Update callback mechanism for modules]]&lt;br /&gt;
** [[PoNG_Structure_Specification#Resources|Module configuration can be embedded in structure file as &amp;#039;&amp;#039;moduleConfig&amp;#039;&amp;#039;]]&lt;br /&gt;
* Modules:&lt;br /&gt;
** [[PoNG Module: Form View|Form View]]&lt;br /&gt;
** [[PoNG_Module:_Table_View#Editable_Cells|Table with editable cells]]&lt;br /&gt;
** [[PoNG_Module:_List_View#Editable_Cells|List with editable cells]]&lt;br /&gt;
** Layout Editor&lt;br /&gt;
* Extras:&lt;br /&gt;
** [[PoNG_Module_Programming#Module_Template|Module template for programmers]]&lt;br /&gt;
** [[PoNG_PHP_Backend|PHP-BE: API to save layout and settings]]&lt;br /&gt;
* Fixes&lt;br /&gt;
** Display title also w/o decor&lt;br /&gt;
&lt;br /&gt;
== Version 0.2 ==&lt;br /&gt;
General:&lt;br /&gt;
* PHP Backend Base&lt;br /&gt;
* Header/Footer Improvements&lt;br /&gt;
* Allow links in Copyright&lt;br /&gt;
* Basic auth mechnism&lt;br /&gt;
&lt;br /&gt;
Modules:&lt;br /&gt;
* [[PoNG Module: MediaWiki View|MediaWiki]]&lt;br /&gt;
* Security Header &lt;br /&gt;
* [[PoNG Module: Master Details View|Master-Detail-Tables View]]&lt;br /&gt;
* [[PoNG Module: I18N|Internationalization]]&lt;br /&gt;
&lt;br /&gt;
== Version 0.1 ==&lt;br /&gt;
Features:&lt;br /&gt;
* Rendering of basic PoNG [[PoNG Structure Specification]]&lt;br /&gt;
* [[PoGN_Structure_Specification#Modal_dialogs|Modal dialog for views]]&lt;br /&gt;
* [[PoNG_Modules|Basic module and hook concept]]&lt;br /&gt;
* Hooks&lt;br /&gt;
** [[PoNG_Modules#addHeaderHtml|Header]] and [[PoNG_Modules#addFooterHtml|Footer]] hooks&lt;br /&gt;
** [[PoNG_Modules#addActionBtn|Action button]] and [[PoNG_Modules#creModal|modal dialog loader]]&lt;br /&gt;
** [[PoNG_Modules#loadResourcesHtml|Resource HTML loader]]&lt;br /&gt;
* Modules:&lt;br /&gt;
** [[PoNG Module: Table View|Table View]]&lt;br /&gt;
** [[PoNG Module: List View|List View]]&lt;br /&gt;
** [[PoNG Module: Form View|Form View]]&lt;br /&gt;
** [[PoNG Module: Modal Form Dialog|Modal Form Dialog]]&lt;br /&gt;
** [[PoNG Module: Help Dialog|Help Dialog]]&lt;br /&gt;
* Includes static out of the box demo&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=PoNG_Static_HTML_Distribution&amp;diff=201</id>
		<title>PoNG Static HTML Distribution</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=PoNG_Static_HTML_Distribution&amp;diff=201"/>
		<updated>2015-02-24T18:56:30Z</updated>

		<summary type="html">&lt;p&gt;Mh: /* PoNG Quick Start: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Static does not mean, the [[PoNG]] portal is not dynamic -- it just needs only a static backend!! So no need of PHP or Tomcat or JEE servers ...&lt;br /&gt;
&lt;br /&gt;
Please also check the [[PoNG Release Notes]].&lt;br /&gt;
&lt;br /&gt;
== [[PoNG]] Quick Start: ==&lt;br /&gt;
The &amp;#039;&amp;#039;PoNG JS Framework V0.4&amp;#039;&amp;#039; and the &amp;#039;&amp;#039;PoNG Static HTML Distribution V0.4&amp;#039;&amp;#039; are released under [[PoNG_Static_HTML_Distribution#PoNG_License|MIT License]]&lt;br /&gt;
# Download the static html package [http://mh-svr.de/downloads/pong_v0.4.zip here (V0.3, 625 kB)] &lt;br /&gt;
# Unpack the archive into your web server html directory, e.g. &amp;lt;code&amp;gt;/var/www/portal&amp;lt;/code&amp;gt;&lt;br /&gt;
# Start the web browser and point it to the portal root, e.g. &amp;lt;code&amp;gt;http://mydomain.com/portal&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The portal contains two pages, one static welcome page and a second form type page.&lt;br /&gt;
&lt;br /&gt;
Please read the [[PoNG|abstract]] to understand [[PoNG Description|the idea and vision]].&lt;br /&gt;
&lt;br /&gt;
[[Category:PoNG]]&lt;br /&gt;
&lt;br /&gt;
== What is inside the install package ==&lt;br /&gt;
{| &lt;br /&gt;
| . || index.html  ||  an empty page, just to initialize the framework -- there is no need to edit this file&lt;br /&gt;
|-&lt;br /&gt;
| . || nav  ||                      [[PoNG_Structure_Specification#JSON_basics|JSON]] to define the navigation bar&amp;#039;s items&lt;br /&gt;
|-&lt;br /&gt;
| /i18n/ || ||                     translation packages, add your translations here&lt;br /&gt;
|-&lt;br /&gt;
| /i18n/ ||    DE.json &lt;br /&gt;
|-&lt;br /&gt;
| /i18n/ ||     EN.json&lt;br /&gt;
|-&lt;br /&gt;
|  /css/ || ||                       style sheets to customize the look and feel&lt;br /&gt;
|-&lt;br /&gt;
| /css/ ||     custom.css ||             define your modifications here&lt;br /&gt;
|-&lt;br /&gt;
| /css/ ||    ... ||  other files, you won&amp;#039;t need to customize any of them&lt;br /&gt;
|-&lt;br /&gt;
|  /img/  || ... ||                     folder for graphic decoration and pictures&lt;br /&gt;
|-&lt;br /&gt;
| /js/ || ||  The heart of the framework &lt;br /&gt;
|-&lt;br /&gt;
| /js/ ||    portal-ng-XY.js     ||    (main framework&lt;br /&gt;
|-&lt;br /&gt;
| /pong-modules  ||    portal-ng-modules.js  ||  (modules hook list&lt;br /&gt;
|-&lt;br /&gt;
| /pong-modules  || XYZ/        ||     ... sub folder with plug ins ...&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| /svc/  ||  ||                  your services, should deliver [[PoNG_Structure_Specification#JSON_basics|JSON]] data, HTML and JS content&lt;br /&gt;
|-&lt;br /&gt;
| /svc/layout/ ||   ||             serve [[PoNG_Structure_Specification|JSON config]] for portal pages&lt;br /&gt;
|-&lt;br /&gt;
| /svc/layout/main/ || structure || [[PoNG_Structure_Specification#JSON_basics|JSON]] to define start page and main layout,  other layouts may include the header and footer from here&lt;br /&gt;
|-&lt;br /&gt;
|  /svc/layout/test/ || structure || JSON for a layout with two rows, with a form in the 1st row and two columns for output in the second row&lt;br /&gt;
|-&lt;br /&gt;
|  /svc/test/            ||  ||  This is a REST service&lt;br /&gt;
|-&lt;br /&gt;
|  /svc/test/   || pong-form ||      [[PoNG_Structure_Specification#JSON_basics|JSON]] to initialize the [[PoNG Module: Form View|web form]] and the actions)&lt;br /&gt;
|-&lt;br /&gt;
|  /svc/test/info/       || (index.html) ||      delivers dummy output for the &amp;quot;info&amp;quot; button&lt;br /&gt;
|-&lt;br /&gt;
|  /svc/test/check/      || (index.html) ||      delivers dummy output for the &amp;quot;check&amp;quot; button&lt;br /&gt;
|-&lt;br /&gt;
|  /svc/test/help/       || (index.html) ||      PHP -ui- to deliver help text in different languages&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Start customizing the static portal ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1:&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
Customize the [[PoNG Module: Navigation Bar|nav bar]] by editing the &amp;lt;code&amp;gt;nav&amp;lt;/code&amp;gt; file. &lt;br /&gt;
&lt;br /&gt;
If you add an item, e.g. &amp;quot;blah&amp;quot;, you have to add a layout file, so &amp;lt;code&amp;gt;/svc/layout/blah/structure&amp;lt;/code&amp;gt;, refer &amp;quot;step 2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 2:&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
Customize the [[PoNG_Structure_Specification|layout specification]]: &lt;br /&gt;
* Customize the [[PoNG_Structure_Specification#Header|header]] and [[PoNG_Structure_Specification#Footer|footer]] as you like. I think you may want to replace the logo. &lt;br /&gt;
* Edit the [[PoNG_Structure_Specification|structure file]] and define your own set of rows and columns and point them to [[PoNG_Structure_Specification#Resources|resources]] and [[PoNG Modules|define module]] types. Now you have to configure the resources and modules, refer &amp;quot;step 3&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 3:&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
The resources are &amp;quot;folders&amp;quot; in the static backend, so you have to create the folders with the resource names (specified in &amp;quot;step 2&amp;quot;) and put the module config there to tell the [[PoNG Modules|module plug-ins]], how to deal with the content of the resource.&lt;br /&gt;
&lt;br /&gt;
== Shared scipts and CSSs ==&lt;br /&gt;
To share the JS scripts for modules and CSS files you can modify the main &amp;lt;code&amp;gt;index.html&amp;lt;/code&amp;gt; file. By default a relative path to subdirectories is used.&lt;br /&gt;
&lt;br /&gt;
To change the loaders, please search and modify the following section in the &amp;lt;code&amp;gt;index.html&amp;lt;/code&amp;gt;:&lt;br /&gt;
 // EDIT THIS VAR TO SHARE THE INSTALL PACKAGES &lt;br /&gt;
 var cssPath = &amp;quot;css/&amp;quot;;&lt;br /&gt;
 var jsPath  = &amp;quot;js/&amp;quot;;&lt;br /&gt;
 var modulesJsPath  = &amp;quot;js/pong-modules/&amp;quot;;&lt;br /&gt;
 var modulesCssPath  = &amp;quot;css/pong-modules/&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PoNG JS Framework License ==&lt;br /&gt;
The MIT License (MIT)&lt;br /&gt;
&lt;br /&gt;
Copyright (c) 2014 Markus Harms, ma@mh-svr.de&lt;br /&gt;
&lt;br /&gt;
Permission is hereby granted, free of charge, to any person obtaining a copy&lt;br /&gt;
of this software and associated documentation files (the &amp;quot;Software&amp;quot;), to deal&lt;br /&gt;
in the Software without restriction, including without limitation the rights&lt;br /&gt;
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell&lt;br /&gt;
copies of the Software, and to permit persons to whom the Software is&lt;br /&gt;
furnished to do so, subject to the following conditions:&lt;br /&gt;
&lt;br /&gt;
The above copyright notice and this permission notice shall be included in&lt;br /&gt;
all copies or substantial portions of the Software.&lt;br /&gt;
&lt;br /&gt;
THE SOFTWARE IS PROVIDED &amp;quot;AS IS&amp;quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR&lt;br /&gt;
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,&lt;br /&gt;
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE&lt;br /&gt;
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER&lt;br /&gt;
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,&lt;br /&gt;
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN&lt;br /&gt;
THE SOFTWARE.&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=PoNG_Static_HTML_Distribution&amp;diff=200</id>
		<title>PoNG Static HTML Distribution</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=PoNG_Static_HTML_Distribution&amp;diff=200"/>
		<updated>2015-02-24T18:55:40Z</updated>

		<summary type="html">&lt;p&gt;Mh: /* What is inside the install package */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Static does not mean, the [[PoNG]] portal is not dynamic -- it just needs only a static backend!! So no need of PHP or Tomcat or JEE servers ...&lt;br /&gt;
&lt;br /&gt;
Please also check the [[PoNG Release Notes]].&lt;br /&gt;
&lt;br /&gt;
== [[PoNG]] Quick Start: ==&lt;br /&gt;
The &amp;#039;&amp;#039;PoNG JS Framework V0.3&amp;#039;&amp;#039; and the &amp;#039;&amp;#039;PoNG Static HTML Distribution V0.3&amp;#039;&amp;#039; are released under [[PoNG_Static_HTML_Distribution#PoNG_License|MIT License]]&lt;br /&gt;
# Download the static html package [http://mh-svr.de/downloads/pong_0.3.zip here (V0.3, 620 kB)] &lt;br /&gt;
# Unpack the archive into your web server html directory, e.g. &amp;lt;code&amp;gt;/var/www/portal&amp;lt;/code&amp;gt;&lt;br /&gt;
# Start the web browser and point it to the portal root, e.g. &amp;lt;code&amp;gt;http://mydomain.com/portal&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The portal contains two pages, one static welcome page and a second form type page.&lt;br /&gt;
&lt;br /&gt;
Please read the [[PoNG|abstract]] to understand [[PoNG Description|the idea and vision]].&lt;br /&gt;
&lt;br /&gt;
[[Category:PoNG]]&lt;br /&gt;
&lt;br /&gt;
== What is inside the install package ==&lt;br /&gt;
{| &lt;br /&gt;
| . || index.html  ||  an empty page, just to initialize the framework -- there is no need to edit this file&lt;br /&gt;
|-&lt;br /&gt;
| . || nav  ||                      [[PoNG_Structure_Specification#JSON_basics|JSON]] to define the navigation bar&amp;#039;s items&lt;br /&gt;
|-&lt;br /&gt;
| /i18n/ || ||                     translation packages, add your translations here&lt;br /&gt;
|-&lt;br /&gt;
| /i18n/ ||    DE.json &lt;br /&gt;
|-&lt;br /&gt;
| /i18n/ ||     EN.json&lt;br /&gt;
|-&lt;br /&gt;
|  /css/ || ||                       style sheets to customize the look and feel&lt;br /&gt;
|-&lt;br /&gt;
| /css/ ||     custom.css ||             define your modifications here&lt;br /&gt;
|-&lt;br /&gt;
| /css/ ||    ... ||  other files, you won&amp;#039;t need to customize any of them&lt;br /&gt;
|-&lt;br /&gt;
|  /img/  || ... ||                     folder for graphic decoration and pictures&lt;br /&gt;
|-&lt;br /&gt;
| /js/ || ||  The heart of the framework &lt;br /&gt;
|-&lt;br /&gt;
| /js/ ||    portal-ng-XY.js     ||    (main framework&lt;br /&gt;
|-&lt;br /&gt;
| /pong-modules  ||    portal-ng-modules.js  ||  (modules hook list&lt;br /&gt;
|-&lt;br /&gt;
| /pong-modules  || XYZ/        ||     ... sub folder with plug ins ...&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| /svc/  ||  ||                  your services, should deliver [[PoNG_Structure_Specification#JSON_basics|JSON]] data, HTML and JS content&lt;br /&gt;
|-&lt;br /&gt;
| /svc/layout/ ||   ||             serve [[PoNG_Structure_Specification|JSON config]] for portal pages&lt;br /&gt;
|-&lt;br /&gt;
| /svc/layout/main/ || structure || [[PoNG_Structure_Specification#JSON_basics|JSON]] to define start page and main layout,  other layouts may include the header and footer from here&lt;br /&gt;
|-&lt;br /&gt;
|  /svc/layout/test/ || structure || JSON for a layout with two rows, with a form in the 1st row and two columns for output in the second row&lt;br /&gt;
|-&lt;br /&gt;
|  /svc/test/            ||  ||  This is a REST service&lt;br /&gt;
|-&lt;br /&gt;
|  /svc/test/   || pong-form ||      [[PoNG_Structure_Specification#JSON_basics|JSON]] to initialize the [[PoNG Module: Form View|web form]] and the actions)&lt;br /&gt;
|-&lt;br /&gt;
|  /svc/test/info/       || (index.html) ||      delivers dummy output for the &amp;quot;info&amp;quot; button&lt;br /&gt;
|-&lt;br /&gt;
|  /svc/test/check/      || (index.html) ||      delivers dummy output for the &amp;quot;check&amp;quot; button&lt;br /&gt;
|-&lt;br /&gt;
|  /svc/test/help/       || (index.html) ||      PHP -ui- to deliver help text in different languages&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Start customizing the static portal ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1:&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
Customize the [[PoNG Module: Navigation Bar|nav bar]] by editing the &amp;lt;code&amp;gt;nav&amp;lt;/code&amp;gt; file. &lt;br /&gt;
&lt;br /&gt;
If you add an item, e.g. &amp;quot;blah&amp;quot;, you have to add a layout file, so &amp;lt;code&amp;gt;/svc/layout/blah/structure&amp;lt;/code&amp;gt;, refer &amp;quot;step 2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 2:&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
Customize the [[PoNG_Structure_Specification|layout specification]]: &lt;br /&gt;
* Customize the [[PoNG_Structure_Specification#Header|header]] and [[PoNG_Structure_Specification#Footer|footer]] as you like. I think you may want to replace the logo. &lt;br /&gt;
* Edit the [[PoNG_Structure_Specification|structure file]] and define your own set of rows and columns and point them to [[PoNG_Structure_Specification#Resources|resources]] and [[PoNG Modules|define module]] types. Now you have to configure the resources and modules, refer &amp;quot;step 3&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 3:&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
The resources are &amp;quot;folders&amp;quot; in the static backend, so you have to create the folders with the resource names (specified in &amp;quot;step 2&amp;quot;) and put the module config there to tell the [[PoNG Modules|module plug-ins]], how to deal with the content of the resource.&lt;br /&gt;
&lt;br /&gt;
== Shared scipts and CSSs ==&lt;br /&gt;
To share the JS scripts for modules and CSS files you can modify the main &amp;lt;code&amp;gt;index.html&amp;lt;/code&amp;gt; file. By default a relative path to subdirectories is used.&lt;br /&gt;
&lt;br /&gt;
To change the loaders, please search and modify the following section in the &amp;lt;code&amp;gt;index.html&amp;lt;/code&amp;gt;:&lt;br /&gt;
 // EDIT THIS VAR TO SHARE THE INSTALL PACKAGES &lt;br /&gt;
 var cssPath = &amp;quot;css/&amp;quot;;&lt;br /&gt;
 var jsPath  = &amp;quot;js/&amp;quot;;&lt;br /&gt;
 var modulesJsPath  = &amp;quot;js/pong-modules/&amp;quot;;&lt;br /&gt;
 var modulesCssPath  = &amp;quot;css/pong-modules/&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PoNG JS Framework License ==&lt;br /&gt;
The MIT License (MIT)&lt;br /&gt;
&lt;br /&gt;
Copyright (c) 2014 Markus Harms, ma@mh-svr.de&lt;br /&gt;
&lt;br /&gt;
Permission is hereby granted, free of charge, to any person obtaining a copy&lt;br /&gt;
of this software and associated documentation files (the &amp;quot;Software&amp;quot;), to deal&lt;br /&gt;
in the Software without restriction, including without limitation the rights&lt;br /&gt;
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell&lt;br /&gt;
copies of the Software, and to permit persons to whom the Software is&lt;br /&gt;
furnished to do so, subject to the following conditions:&lt;br /&gt;
&lt;br /&gt;
The above copyright notice and this permission notice shall be included in&lt;br /&gt;
all copies or substantial portions of the Software.&lt;br /&gt;
&lt;br /&gt;
THE SOFTWARE IS PROVIDED &amp;quot;AS IS&amp;quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR&lt;br /&gt;
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,&lt;br /&gt;
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE&lt;br /&gt;
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER&lt;br /&gt;
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,&lt;br /&gt;
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN&lt;br /&gt;
THE SOFTWARE.&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=Portal_as_a_Service&amp;diff=199</id>
		<title>Portal as a Service</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=Portal_as_a_Service&amp;diff=199"/>
		<updated>2015-02-23T19:47:30Z</updated>

		<summary type="html">&lt;p&gt;Mh: /* How do I start? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ [[Category:PoNG]]&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Create web portals for backend service (APIs) w/o programming.&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
== What is it? ==&lt;br /&gt;
* It is a web based configuration for PoNG portals.&lt;br /&gt;
* It is a hosting for PoNG portals designed by you.&lt;br /&gt;
* It is free! [[Portal_as_a_Service#Disclaimer|*]]&lt;br /&gt;
* Itself is based on PoNG -- so a prove that it works :-)&lt;br /&gt;
&lt;br /&gt;
== How do I start? ==&lt;br /&gt;
Be sure that you know the REST/JSON APIs and API-URLs you want to use. In the WIKI example here, the API is pretty simple: It is basically the WIKI Base URL and the page name you have to know. The API of a CRUD service for a data entity or a chat server may be more tricky.&lt;br /&gt;
# Create your account on the &amp;#039;&amp;#039;&amp;#039;[http://mh-svr.de/portal/ Portal as a Service page]&amp;#039;&amp;#039;&amp;#039;. &lt;br /&gt;
# Log in with your account and create a new Portal&lt;br /&gt;
# Click &amp;#039;&amp;#039;Customize&amp;#039;&amp;#039; to jump to the portal administration page&lt;br /&gt;
# Add a page and click &amp;#039;&amp;#039;Edit&amp;#039;&amp;#039;&lt;br /&gt;
# You can use the interactive &amp;#039;&amp;#039;&amp;#039;Page Layout Designer&amp;#039;&amp;#039;&amp;#039; to create your portal page &lt;br /&gt;
#* Configure your first running sample view: &lt;br /&gt;
#** &amp;#039;&amp;#039;Click on &amp;quot;Change&amp;quot; in the preview (pen symbol)&amp;#039;&amp;#039;&lt;br /&gt;
#** &amp;#039;&amp;#039;Change type to &amp;quot;pong-meadiawiki&amp;quot;&amp;#039;&amp;#039; (Optional: you can press save and click the pen symbol again, to read out the default module config)&lt;br /&gt;
#** &amp;#039;&amp;#039;Set size to &amp;quot;400px&amp;quot;&amp;#039;&amp;#039;&lt;br /&gt;
#** &amp;#039;&amp;#039;Change resource URL to &amp;quot;http://mh-svr.de/mw/&amp;quot;&amp;#039;&amp;#039;&lt;br /&gt;
#** &amp;#039;&amp;#039;Save the configuration&amp;#039;&amp;#039;&lt;br /&gt;
# Click the page name in the layout designer to jump to your new portal page and show it. You can now use this URL to show this page (in the SaaS mode).&lt;br /&gt;
&lt;br /&gt;
Please click on the &amp;quot;JSON&amp;quot; link in the layout designer to have a look at the page config. That&amp;#039;s all the info PoNG needs to render the page. You can safe it to your local PoNG layout web folder and run it on your machine, if you want. The layout editor is just to make it easier to assemble this JSON layout configuration.&lt;br /&gt;
&lt;br /&gt;
== Page Layout Designer Guide ==&lt;br /&gt;
You can create page layouts interactively:&lt;br /&gt;
&lt;br /&gt;
[[Datei:PoNG LayoutDesigner.png]]&lt;br /&gt;
&lt;br /&gt;
The basic layout structure is are &amp;#039;&amp;#039;&amp;#039;rows&amp;#039;&amp;#039;&amp;#039;, containing views. You can add rows using the &amp;#039;&amp;#039;horizontal split&amp;#039;&amp;#039; button. Using the &amp;#039;&amp;#039;vertical split&amp;#039;&amp;#039; button, you can convert the rows view into a &amp;#039;&amp;#039;&amp;#039;set of columns&amp;#039;&amp;#039;&amp;#039; containing views. With the &amp;#039;&amp;#039;vertical split button&amp;#039;&amp;#039;, you can concert a column view  into a set of rows.&lt;br /&gt;
&lt;br /&gt;
At the end you are able to create any layout with a hierarchy of rows and columns,&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
This is a &amp;#039;&amp;#039;&amp;#039;free public beta test&amp;#039;&amp;#039;&amp;#039; of the &amp;#039;&amp;#039;Portal NG&amp;#039;&amp;#039; SERVICE.&lt;br /&gt;
&lt;br /&gt;
The beta test may end at any time. Any data and configuration stored inside the SERVICE may be removed at any time. &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Important:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
THE SERVICE IS PROVIDED &amp;quot;AS IS&amp;quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR&lt;br /&gt;
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,&lt;br /&gt;
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE&lt;br /&gt;
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER&lt;br /&gt;
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,&lt;br /&gt;
OUT OF OR IN CONNECTION WITH THE SERVICE OR THE USE OR OTHER DEALINGS IN&lt;br /&gt;
THE SERVICE.&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=Portal_as_a_Service&amp;diff=198</id>
		<title>Portal as a Service</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=Portal_as_a_Service&amp;diff=198"/>
		<updated>2015-02-23T19:46:01Z</updated>

		<summary type="html">&lt;p&gt;Mh: /* How do I start? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ [[Category:PoNG]]&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Create web portals for backend service (APIs) w/o programming.&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
== What is it? ==&lt;br /&gt;
* It is a web based configuration for PoNG portals.&lt;br /&gt;
* It is a hosting for PoNG portals designed by you.&lt;br /&gt;
* It is free! [[Portal_as_a_Service#Disclaimer|*]]&lt;br /&gt;
* Itself is based on PoNG -- so a prove that it works :-)&lt;br /&gt;
&lt;br /&gt;
== How do I start? ==&lt;br /&gt;
Be sure that you know the REST/JSON APIs and API-URLs you want to use. In the WIKI example here, the API is pretty simple: It is basically the WIKI Base URL and the page name you have to know. The API of a CRUD service for a data entity or a chat server may be more tricky.&lt;br /&gt;
# Create your account on the &amp;#039;&amp;#039;&amp;#039;[http://mh-svr.de/portal/ Portal as a Service page]&amp;#039;&amp;#039;&amp;#039;. &lt;br /&gt;
# Log in with your account and create a new Portal&lt;br /&gt;
# Click &amp;#039;&amp;#039;Customize&amp;#039;&amp;#039; to jump to the portal administration page&lt;br /&gt;
# Add a page and click &amp;#039;&amp;#039;Edit&amp;#039;&amp;#039;&lt;br /&gt;
# You can use the interactive &amp;#039;&amp;#039;&amp;#039;Page Layout Designer&amp;#039;&amp;#039;&amp;#039; to create your portal page &lt;br /&gt;
#* Configure your first running sample view: &lt;br /&gt;
#** &amp;#039;&amp;#039;Click on &amp;quot;Change&amp;quot; in the preview (pen symbol)&amp;#039;&amp;#039;&lt;br /&gt;
#** &amp;#039;&amp;#039;Change type to &amp;quot;pong-meadiawiki&amp;quot;&amp;#039;&amp;#039; (click the pen symbol again to read out the default module config)&lt;br /&gt;
#** &amp;#039;&amp;#039;Set size to &amp;quot;400px&amp;quot;&amp;#039;&amp;#039;&lt;br /&gt;
#** &amp;#039;&amp;#039;Change resource URL to &amp;quot;http://mh-svr.de/mw/&amp;quot;&amp;#039;&amp;#039;&lt;br /&gt;
#** &amp;#039;&amp;#039;Save the configuration&amp;#039;&amp;#039;&lt;br /&gt;
# Click the page name in the layout designer to jump to your new portal page and show it. You can now use this URL to show this page (in the SaaS mode).&lt;br /&gt;
&lt;br /&gt;
Please click on the &amp;quot;JSON&amp;quot; link in the layout designer to have a look at the page config. That&amp;#039;s all the info PoNG needs to render the page. You can safe it to your local PoNG layout web folder and run it on your machine, if you want. The layout editor is just to make it easier to assemble this JSON layout configuration.&lt;br /&gt;
&lt;br /&gt;
== Page Layout Designer Guide ==&lt;br /&gt;
You can create page layouts interactively:&lt;br /&gt;
&lt;br /&gt;
[[Datei:PoNG LayoutDesigner.png]]&lt;br /&gt;
&lt;br /&gt;
The basic layout structure is are &amp;#039;&amp;#039;&amp;#039;rows&amp;#039;&amp;#039;&amp;#039;, containing views. You can add rows using the &amp;#039;&amp;#039;horizontal split&amp;#039;&amp;#039; button. Using the &amp;#039;&amp;#039;vertical split&amp;#039;&amp;#039; button, you can convert the rows view into a &amp;#039;&amp;#039;&amp;#039;set of columns&amp;#039;&amp;#039;&amp;#039; containing views. With the &amp;#039;&amp;#039;vertical split button&amp;#039;&amp;#039;, you can concert a column view  into a set of rows.&lt;br /&gt;
&lt;br /&gt;
At the end you are able to create any layout with a hierarchy of rows and columns,&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
This is a &amp;#039;&amp;#039;&amp;#039;free public beta test&amp;#039;&amp;#039;&amp;#039; of the &amp;#039;&amp;#039;Portal NG&amp;#039;&amp;#039; SERVICE.&lt;br /&gt;
&lt;br /&gt;
The beta test may end at any time. Any data and configuration stored inside the SERVICE may be removed at any time. &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Important:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
THE SERVICE IS PROVIDED &amp;quot;AS IS&amp;quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR&lt;br /&gt;
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,&lt;br /&gt;
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE&lt;br /&gt;
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER&lt;br /&gt;
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,&lt;br /&gt;
OUT OF OR IN CONNECTION WITH THE SERVICE OR THE USE OR OTHER DEALINGS IN&lt;br /&gt;
THE SERVICE.&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=Portal_as_a_Service&amp;diff=197</id>
		<title>Portal as a Service</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=Portal_as_a_Service&amp;diff=197"/>
		<updated>2015-02-23T19:44:59Z</updated>

		<summary type="html">&lt;p&gt;Mh: /* How do I start? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ [[Category:PoNG]]&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Create web portals for backend service (APIs) w/o programming.&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
== What is it? ==&lt;br /&gt;
* It is a web based configuration for PoNG portals.&lt;br /&gt;
* It is a hosting for PoNG portals designed by you.&lt;br /&gt;
* It is free! [[Portal_as_a_Service#Disclaimer|*]]&lt;br /&gt;
* Itself is based on PoNG -- so a prove that it works :-)&lt;br /&gt;
&lt;br /&gt;
== How do I start? ==&lt;br /&gt;
Be sure that you know the REST/JSON APIs and API-URLs you want to use. In the WIKI example here, the API is pretty simple: It is basically the WIKI Base URL and the page name you have to know. The API of a CRUD service for a data entity or a chat server may be more tricky.&lt;br /&gt;
# Create your account on the &amp;#039;&amp;#039;&amp;#039;[http://mh-svr.de/portal/ Portal as a Service page]&amp;#039;&amp;#039;&amp;#039;. &lt;br /&gt;
# Log in with your account and create a new Portal&lt;br /&gt;
# Click &amp;#039;&amp;#039;Customize&amp;#039;&amp;#039; to jump to the portal administration page&lt;br /&gt;
# Add a page and click &amp;#039;&amp;#039;Edit&amp;#039;&amp;#039;&lt;br /&gt;
# You can use the interactive &amp;#039;&amp;#039;&amp;#039;Page Layout Designer&amp;#039;&amp;#039;&amp;#039; to create your portal page &lt;br /&gt;
#* Example: &lt;br /&gt;
#** &amp;#039;&amp;#039;Click on &amp;quot;Change&amp;quot; in the preview (pen symbol)&amp;#039;&amp;#039;&lt;br /&gt;
#** &amp;#039;&amp;#039;Change type to &amp;quot;pong-meadiawiki&amp;quot;&amp;#039;&amp;#039; (click the pen symbol again to read out the default module config)&lt;br /&gt;
#** &amp;#039;&amp;#039;Set size to &amp;quot;400px&amp;quot;&amp;#039;&amp;#039;&lt;br /&gt;
#** &amp;#039;&amp;#039;Change resource URL to &amp;quot;http://mh-svr.de/mw/&amp;quot;&amp;#039;&amp;#039;&lt;br /&gt;
#** &amp;#039;&amp;#039;Save the configuration&amp;#039;&amp;#039;&lt;br /&gt;
# Click the page name in the layout designer to jump to your new portal page and show it. You can now use this URL to show this page (in the SaaS mode).&lt;br /&gt;
&lt;br /&gt;
Please click on the &amp;quot;JSON&amp;quot; link in the layout designer to have a look at the page config. That&amp;#039;s all the info PoNG needs to render the page. You can safe it to your local PoNG layout web folder and run it on your machine, if you want. The layout editor is just to make it easier to assemble this JSON layout configuration.&lt;br /&gt;
&lt;br /&gt;
== Page Layout Designer Guide ==&lt;br /&gt;
You can create page layouts interactively:&lt;br /&gt;
&lt;br /&gt;
[[Datei:PoNG LayoutDesigner.png]]&lt;br /&gt;
&lt;br /&gt;
The basic layout structure is are &amp;#039;&amp;#039;&amp;#039;rows&amp;#039;&amp;#039;&amp;#039;, containing views. You can add rows using the &amp;#039;&amp;#039;horizontal split&amp;#039;&amp;#039; button. Using the &amp;#039;&amp;#039;vertical split&amp;#039;&amp;#039; button, you can convert the rows view into a &amp;#039;&amp;#039;&amp;#039;set of columns&amp;#039;&amp;#039;&amp;#039; containing views. With the &amp;#039;&amp;#039;vertical split button&amp;#039;&amp;#039;, you can concert a column view  into a set of rows.&lt;br /&gt;
&lt;br /&gt;
At the end you are able to create any layout with a hierarchy of rows and columns,&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
This is a &amp;#039;&amp;#039;&amp;#039;free public beta test&amp;#039;&amp;#039;&amp;#039; of the &amp;#039;&amp;#039;Portal NG&amp;#039;&amp;#039; SERVICE.&lt;br /&gt;
&lt;br /&gt;
The beta test may end at any time. Any data and configuration stored inside the SERVICE may be removed at any time. &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Important:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
THE SERVICE IS PROVIDED &amp;quot;AS IS&amp;quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR&lt;br /&gt;
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,&lt;br /&gt;
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE&lt;br /&gt;
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER&lt;br /&gt;
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,&lt;br /&gt;
OUT OF OR IN CONNECTION WITH THE SERVICE OR THE USE OR OTHER DEALINGS IN&lt;br /&gt;
THE SERVICE.&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=Portal_as_a_Service&amp;diff=196</id>
		<title>Portal as a Service</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=Portal_as_a_Service&amp;diff=196"/>
		<updated>2015-02-23T19:44:23Z</updated>

		<summary type="html">&lt;p&gt;Mh: /* How do I start? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ [[Category:PoNG]]&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Create web portals for backend service (APIs) w/o programming.&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
== What is it? ==&lt;br /&gt;
* It is a web based configuration for PoNG portals.&lt;br /&gt;
* It is a hosting for PoNG portals designed by you.&lt;br /&gt;
* It is free! [[Portal_as_a_Service#Disclaimer|*]]&lt;br /&gt;
* Itself is based on PoNG -- so a prove that it works :-)&lt;br /&gt;
&lt;br /&gt;
== How do I start? ==&lt;br /&gt;
Be sure that you know the REST/JSON APIs and API-URLs you want to use. In the WIKI example here the API is pretty simple, it is basically the WIKI Base URL and the page name you have to know. The API of a CRUD service for a data entity or a chat server may be more tricky.&lt;br /&gt;
# Create your account on the &amp;#039;&amp;#039;&amp;#039;[http://mh-svr.de/portal/ Portal as a Service page]&amp;#039;&amp;#039;&amp;#039;. &lt;br /&gt;
# Log in with your account and create a new Portal&lt;br /&gt;
# Click &amp;#039;&amp;#039;Customize&amp;#039;&amp;#039; to jump to the portal administration page&lt;br /&gt;
# Add a page and click &amp;#039;&amp;#039;Edit&amp;#039;&amp;#039;&lt;br /&gt;
# You can use the interactive &amp;#039;&amp;#039;&amp;#039;Page Layout Designer&amp;#039;&amp;#039;&amp;#039; to create your portal page &lt;br /&gt;
#* Example: &lt;br /&gt;
#** &amp;#039;&amp;#039;Click on &amp;quot;Change&amp;quot; in the preview (pen symbol)&amp;#039;&amp;#039;&lt;br /&gt;
#** &amp;#039;&amp;#039;Change type to &amp;quot;pong-meadiawiki&amp;quot;&amp;#039;&amp;#039; (click the pen symbol again to read out the default module config)&lt;br /&gt;
#** &amp;#039;&amp;#039;Set size to &amp;quot;400px&amp;quot;&amp;#039;&amp;#039;&lt;br /&gt;
#** &amp;#039;&amp;#039;Change resource URL to &amp;quot;http://mh-svr.de/mw/&amp;quot;&amp;#039;&amp;#039;&lt;br /&gt;
#** &amp;#039;&amp;#039;Save the configuration&amp;#039;&amp;#039;&lt;br /&gt;
# Click the page name in the layout designer to jump to your new portal page and show it. You can now use this URL to show this page (in the SaaS mode).&lt;br /&gt;
&lt;br /&gt;
Please click on the &amp;quot;JSON&amp;quot; link in the layout designer to have a look at the page config. That&amp;#039;s all the info PoNG needs to render the page. You can safe it to your local PoNG layout web folder and run it on your machine, if you want. The layout editor is just to make it easier to assemble this JSON layout configuration.&lt;br /&gt;
&lt;br /&gt;
== Page Layout Designer Guide ==&lt;br /&gt;
You can create page layouts interactively:&lt;br /&gt;
&lt;br /&gt;
[[Datei:PoNG LayoutDesigner.png]]&lt;br /&gt;
&lt;br /&gt;
The basic layout structure is are &amp;#039;&amp;#039;&amp;#039;rows&amp;#039;&amp;#039;&amp;#039;, containing views. You can add rows using the &amp;#039;&amp;#039;horizontal split&amp;#039;&amp;#039; button. Using the &amp;#039;&amp;#039;vertical split&amp;#039;&amp;#039; button, you can convert the rows view into a &amp;#039;&amp;#039;&amp;#039;set of columns&amp;#039;&amp;#039;&amp;#039; containing views. With the &amp;#039;&amp;#039;vertical split button&amp;#039;&amp;#039;, you can concert a column view  into a set of rows.&lt;br /&gt;
&lt;br /&gt;
At the end you are able to create any layout with a hierarchy of rows and columns,&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
This is a &amp;#039;&amp;#039;&amp;#039;free public beta test&amp;#039;&amp;#039;&amp;#039; of the &amp;#039;&amp;#039;Portal NG&amp;#039;&amp;#039; SERVICE.&lt;br /&gt;
&lt;br /&gt;
The beta test may end at any time. Any data and configuration stored inside the SERVICE may be removed at any time. &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Important:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
THE SERVICE IS PROVIDED &amp;quot;AS IS&amp;quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR&lt;br /&gt;
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,&lt;br /&gt;
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE&lt;br /&gt;
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER&lt;br /&gt;
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,&lt;br /&gt;
OUT OF OR IN CONNECTION WITH THE SERVICE OR THE USE OR OTHER DEALINGS IN&lt;br /&gt;
THE SERVICE.&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=Portal_as_a_Service&amp;diff=195</id>
		<title>Portal as a Service</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=Portal_as_a_Service&amp;diff=195"/>
		<updated>2015-02-23T19:40:46Z</updated>

		<summary type="html">&lt;p&gt;Mh: /* How do I start? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ [[Category:PoNG]]&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Create web portals for backend service (APIs) w/o programming.&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
== What is it? ==&lt;br /&gt;
* It is a web based configuration for PoNG portals.&lt;br /&gt;
* It is a hosting for PoNG portals designed by you.&lt;br /&gt;
* It is free! [[Portal_as_a_Service#Disclaimer|*]]&lt;br /&gt;
* Itself is based on PoNG -- so a prove that it works :-)&lt;br /&gt;
&lt;br /&gt;
== How do I start? ==&lt;br /&gt;
# Be sure that you know the REST/JSON APIs and API-URLs you want to use&lt;br /&gt;
# Create your account on the &amp;#039;&amp;#039;&amp;#039;[http://mh-svr.de/portal/ Portal as a Service page]&amp;#039;&amp;#039;&amp;#039;. &lt;br /&gt;
# Log in with your account and create a new Portal&lt;br /&gt;
# Click &amp;#039;&amp;#039;Customize&amp;#039;&amp;#039; to jump to the portal administration page&lt;br /&gt;
# Add a page and click &amp;#039;&amp;#039;Edit&amp;#039;&amp;#039;&lt;br /&gt;
# You can use the interactive &amp;#039;&amp;#039;&amp;#039;Page Layout Designer&amp;#039;&amp;#039;&amp;#039; to create your portal page &lt;br /&gt;
#* Example: &lt;br /&gt;
#** &amp;#039;&amp;#039;Click on &amp;quot;Change&amp;quot; in the preview (pen symbol)&amp;#039;&amp;#039;&lt;br /&gt;
#** &amp;#039;&amp;#039;Change type to &amp;quot;pong-meadiawiki&amp;quot;&amp;#039;&amp;#039; (click the pen symbol again to read out the default module config)&lt;br /&gt;
#** &amp;#039;&amp;#039;Set size to &amp;quot;400px&amp;quot;&amp;#039;&amp;#039;&lt;br /&gt;
#** &amp;#039;&amp;#039;Change resource URL to &amp;quot;http://mh-svr.de/mw/&amp;quot;&amp;#039;&amp;#039;&lt;br /&gt;
#** &amp;#039;&amp;#039;Save the configuration&amp;#039;&amp;#039;&lt;br /&gt;
# Click the page name in the layout designer to jump to your new portal page and show it. You can now use this URL to show this page (in the SaaS mode).&lt;br /&gt;
&lt;br /&gt;
Please click on the &amp;quot;JSON&amp;quot; link in the layout designer to have a look at the page config. That&amp;#039;s all the info PoNG needs to render the page. You can safe it to your local PoNG layout web folder and run it on your machine, if you want. The layout editor is just to make it easier to assemble this JSON layout configuration.&lt;br /&gt;
&lt;br /&gt;
== Page Layout Designer Guide ==&lt;br /&gt;
You can create page layouts interactively:&lt;br /&gt;
&lt;br /&gt;
[[Datei:PoNG LayoutDesigner.png]]&lt;br /&gt;
&lt;br /&gt;
The basic layout structure is are &amp;#039;&amp;#039;&amp;#039;rows&amp;#039;&amp;#039;&amp;#039;, containing views. You can add rows using the &amp;#039;&amp;#039;horizontal split&amp;#039;&amp;#039; button. Using the &amp;#039;&amp;#039;vertical split&amp;#039;&amp;#039; button, you can convert the rows view into a &amp;#039;&amp;#039;&amp;#039;set of columns&amp;#039;&amp;#039;&amp;#039; containing views. With the &amp;#039;&amp;#039;vertical split button&amp;#039;&amp;#039;, you can concert a column view  into a set of rows.&lt;br /&gt;
&lt;br /&gt;
At the end you are able to create any layout with a hierarchy of rows and columns,&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
This is a &amp;#039;&amp;#039;&amp;#039;free public beta test&amp;#039;&amp;#039;&amp;#039; of the &amp;#039;&amp;#039;Portal NG&amp;#039;&amp;#039; SERVICE.&lt;br /&gt;
&lt;br /&gt;
The beta test may end at any time. Any data and configuration stored inside the SERVICE may be removed at any time. &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Important:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
THE SERVICE IS PROVIDED &amp;quot;AS IS&amp;quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR&lt;br /&gt;
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,&lt;br /&gt;
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE&lt;br /&gt;
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER&lt;br /&gt;
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,&lt;br /&gt;
OUT OF OR IN CONNECTION WITH THE SERVICE OR THE USE OR OTHER DEALINGS IN&lt;br /&gt;
THE SERVICE.&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=Portal_as_a_Service&amp;diff=194</id>
		<title>Portal as a Service</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=Portal_as_a_Service&amp;diff=194"/>
		<updated>2015-02-23T19:33:42Z</updated>

		<summary type="html">&lt;p&gt;Mh: /* How do I start? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ [[Category:PoNG]]&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Create web portals for backend service (APIs) w/o programming.&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
== What is it? ==&lt;br /&gt;
* It is a web based configuration for PoNG portals.&lt;br /&gt;
* It is a hosting for PoNG portals designed by you.&lt;br /&gt;
* It is free! [[Portal_as_a_Service#Disclaimer|*]]&lt;br /&gt;
* Itself is based on PoNG -- so a prove that it works :-)&lt;br /&gt;
&lt;br /&gt;
== How do I start? ==&lt;br /&gt;
# Be sure that you know the REST/JSON APIs and API-URLs you want to use&lt;br /&gt;
# Create your account on the &amp;#039;&amp;#039;&amp;#039;[http://mh-svr.de/portal/ Portal as a Service page]&amp;#039;&amp;#039;&amp;#039;. &lt;br /&gt;
# Log in with your account and create a new Portal&lt;br /&gt;
# Click &amp;#039;&amp;#039;Customize&amp;#039;&amp;#039; to jump to the portal administration page&lt;br /&gt;
# Add a page and click &amp;#039;&amp;#039;Edit&amp;#039;&amp;#039;&lt;br /&gt;
# You can use the interactive &amp;#039;&amp;#039;&amp;#039;Page Layout Designer&amp;#039;&amp;#039;&amp;#039; to create your portal page &lt;br /&gt;
#* Example: &lt;br /&gt;
#** &amp;#039;&amp;#039;Click on &amp;quot;Change&amp;quot; in the preview (pen symbol)&amp;#039;&amp;#039;&lt;br /&gt;
#** &amp;#039;&amp;#039;Change type to &amp;quot;pong-meadiawiki&amp;quot;&amp;#039;&amp;#039; (click the pen symbol again to read out the default module config)&lt;br /&gt;
#** &amp;#039;&amp;#039;Set size to &amp;quot;400px&amp;quot;&amp;#039;&amp;#039;&lt;br /&gt;
#** &amp;#039;&amp;#039;Change resource URL to &amp;quot;http://mh-svr.de/mw/&amp;quot;&amp;#039;&amp;#039;&lt;br /&gt;
#** &amp;#039;&amp;#039;Save the configuration&amp;#039;&amp;#039;&lt;br /&gt;
# Click the page name in the layout designer to jump to your new portal page and show it.&lt;br /&gt;
&lt;br /&gt;
== Page Layout Designer Guide ==&lt;br /&gt;
You can create page layouts interactively:&lt;br /&gt;
&lt;br /&gt;
[[Datei:PoNG LayoutDesigner.png]]&lt;br /&gt;
&lt;br /&gt;
The basic layout structure is are &amp;#039;&amp;#039;&amp;#039;rows&amp;#039;&amp;#039;&amp;#039;, containing views. You can add rows using the &amp;#039;&amp;#039;horizontal split&amp;#039;&amp;#039; button. Using the &amp;#039;&amp;#039;vertical split&amp;#039;&amp;#039; button, you can convert the rows view into a &amp;#039;&amp;#039;&amp;#039;set of columns&amp;#039;&amp;#039;&amp;#039; containing views. With the &amp;#039;&amp;#039;vertical split button&amp;#039;&amp;#039;, you can concert a column view  into a set of rows.&lt;br /&gt;
&lt;br /&gt;
At the end you are able to create any layout with a hierarchy of rows and columns,&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
This is a &amp;#039;&amp;#039;&amp;#039;free public beta test&amp;#039;&amp;#039;&amp;#039; of the &amp;#039;&amp;#039;Portal NG&amp;#039;&amp;#039; SERVICE.&lt;br /&gt;
&lt;br /&gt;
The beta test may end at any time. Any data and configuration stored inside the SERVICE may be removed at any time. &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Important:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
THE SERVICE IS PROVIDED &amp;quot;AS IS&amp;quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR&lt;br /&gt;
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,&lt;br /&gt;
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE&lt;br /&gt;
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER&lt;br /&gt;
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,&lt;br /&gt;
OUT OF OR IN CONNECTION WITH THE SERVICE OR THE USE OR OTHER DEALINGS IN&lt;br /&gt;
THE SERVICE.&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=Portal_as_a_Service&amp;diff=193</id>
		<title>Portal as a Service</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=Portal_as_a_Service&amp;diff=193"/>
		<updated>2015-02-23T19:20:15Z</updated>

		<summary type="html">&lt;p&gt;Mh: /* How do I start? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ [[Category:PoNG]]&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Create web portals for backend service (APIs) w/o programming.&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
== What is it? ==&lt;br /&gt;
* It is a web based configuration for PoNG portals.&lt;br /&gt;
* It is a hosting for PoNG portals designed by you.&lt;br /&gt;
* It is free! [[Portal_as_a_Service#Disclaimer|*]]&lt;br /&gt;
* Itself is based on PoNG -- so a prove that it works :-)&lt;br /&gt;
&lt;br /&gt;
== How do I start? ==&lt;br /&gt;
# Be sure that you know the REST/JSON APIs and API-URLs you want to use&lt;br /&gt;
# Create your account on the &amp;#039;&amp;#039;&amp;#039;[http://mh-svr.de/portal/ Portal as a Service page]&amp;#039;&amp;#039;&amp;#039;. &lt;br /&gt;
# Log in with your account and create a new Portal&lt;br /&gt;
# Click &amp;#039;&amp;#039;Customize&amp;#039;&amp;#039; to jump to the portal administration page&lt;br /&gt;
# Add a page and click &amp;#039;&amp;#039;Edit&amp;#039;&amp;#039;&lt;br /&gt;
# You can use the interactive &amp;#039;&amp;#039;&amp;#039;Page Layout Designer&amp;#039;&amp;#039;&amp;#039; to create your portal page &lt;br /&gt;
# Click the page name in the layout designer to jump to your new portal page and preview it.&lt;br /&gt;
&lt;br /&gt;
== Page Layout Designer Guide ==&lt;br /&gt;
You can create page layouts interactively:&lt;br /&gt;
&lt;br /&gt;
[[Datei:PoNG LayoutDesigner.png]]&lt;br /&gt;
&lt;br /&gt;
The basic layout structure is are &amp;#039;&amp;#039;&amp;#039;rows&amp;#039;&amp;#039;&amp;#039;, containing views. You can add rows using the &amp;#039;&amp;#039;horizontal split&amp;#039;&amp;#039; button. Using the &amp;#039;&amp;#039;vertical split&amp;#039;&amp;#039; button, you can convert the rows view into a &amp;#039;&amp;#039;&amp;#039;set of columns&amp;#039;&amp;#039;&amp;#039; containing views. With the &amp;#039;&amp;#039;vertical split button&amp;#039;&amp;#039;, you can concert a column view  into a set of rows.&lt;br /&gt;
&lt;br /&gt;
At the end you are able to create any layout with a hierarchy of rows and columns,&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
This is a &amp;#039;&amp;#039;&amp;#039;free public beta test&amp;#039;&amp;#039;&amp;#039; of the &amp;#039;&amp;#039;Portal NG&amp;#039;&amp;#039; SERVICE.&lt;br /&gt;
&lt;br /&gt;
The beta test may end at any time. Any data and configuration stored inside the SERVICE may be removed at any time. &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Important:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
THE SERVICE IS PROVIDED &amp;quot;AS IS&amp;quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR&lt;br /&gt;
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,&lt;br /&gt;
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE&lt;br /&gt;
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER&lt;br /&gt;
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,&lt;br /&gt;
OUT OF OR IN CONNECTION WITH THE SERVICE OR THE USE OR OTHER DEALINGS IN&lt;br /&gt;
THE SERVICE.&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=Portal_as_a_Service&amp;diff=192</id>
		<title>Portal as a Service</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=Portal_as_a_Service&amp;diff=192"/>
		<updated>2015-02-23T19:18:37Z</updated>

		<summary type="html">&lt;p&gt;Mh: /* How do I start? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ [[Category:PoNG]]&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Create web portals for backend service (APIs) w/o programming.&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
== What is it? ==&lt;br /&gt;
* It is a web based configuration for PoNG portals.&lt;br /&gt;
* It is a hosting for PoNG portals designed by you.&lt;br /&gt;
* It is free! [[Portal_as_a_Service#Disclaimer|*]]&lt;br /&gt;
* Itself is based on PoNG -- so a prove that it works :-)&lt;br /&gt;
&lt;br /&gt;
== How do I start? ==&lt;br /&gt;
# Create your account on the &amp;#039;&amp;#039;&amp;#039;[http://mh-svr.de/portal/ Portal as a Service page]&amp;#039;&amp;#039;&amp;#039;. &lt;br /&gt;
# Log in with your account and create a new Portal&lt;br /&gt;
# Click &amp;#039;&amp;#039;Customize&amp;#039;&amp;#039; to jump to the portal administration page&lt;br /&gt;
# Add a page and click &amp;#039;&amp;#039;Edit&amp;#039;&amp;#039;&lt;br /&gt;
# You can use the interactive &amp;#039;&amp;#039;&amp;#039;Page Layout Designer&amp;#039;&amp;#039;&amp;#039; to create your portal page &lt;br /&gt;
# Click the page name in the layout designer to jump to your new portal page and preview it.&lt;br /&gt;
&lt;br /&gt;
== Page Layout Designer Guide ==&lt;br /&gt;
You can create page layouts interactively:&lt;br /&gt;
&lt;br /&gt;
[[Datei:PoNG LayoutDesigner.png]]&lt;br /&gt;
&lt;br /&gt;
The basic layout structure is are &amp;#039;&amp;#039;&amp;#039;rows&amp;#039;&amp;#039;&amp;#039;, containing views. You can add rows using the &amp;#039;&amp;#039;horizontal split&amp;#039;&amp;#039; button. Using the &amp;#039;&amp;#039;vertical split&amp;#039;&amp;#039; button, you can convert the rows view into a &amp;#039;&amp;#039;&amp;#039;set of columns&amp;#039;&amp;#039;&amp;#039; containing views. With the &amp;#039;&amp;#039;vertical split button&amp;#039;&amp;#039;, you can concert a column view  into a set of rows.&lt;br /&gt;
&lt;br /&gt;
At the end you are able to create any layout with a hierarchy of rows and columns,&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
This is a &amp;#039;&amp;#039;&amp;#039;free public beta test&amp;#039;&amp;#039;&amp;#039; of the &amp;#039;&amp;#039;Portal NG&amp;#039;&amp;#039; SERVICE.&lt;br /&gt;
&lt;br /&gt;
The beta test may end at any time. Any data and configuration stored inside the SERVICE may be removed at any time. &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Important:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
THE SERVICE IS PROVIDED &amp;quot;AS IS&amp;quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR&lt;br /&gt;
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,&lt;br /&gt;
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE&lt;br /&gt;
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER&lt;br /&gt;
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,&lt;br /&gt;
OUT OF OR IN CONNECTION WITH THE SERVICE OR THE USE OR OTHER DEALINGS IN&lt;br /&gt;
THE SERVICE.&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=Portal_as_a_Service&amp;diff=191</id>
		<title>Portal as a Service</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=Portal_as_a_Service&amp;diff=191"/>
		<updated>2015-02-23T19:18:08Z</updated>

		<summary type="html">&lt;p&gt;Mh: /* What is it? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ [[Category:PoNG]]&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Create web portals for backend service (APIs) w/o programming.&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
== What is it? ==&lt;br /&gt;
* It is a web based configuration for PoNG portals.&lt;br /&gt;
* It is a hosting for PoNG portals designed by you.&lt;br /&gt;
* It is free! [[Portal_as_a_Service#Disclaimer|*]]&lt;br /&gt;
* Itself is based on PoNG -- so a prove that it works :-)&lt;br /&gt;
&lt;br /&gt;
== How do I start? ==&lt;br /&gt;
# Create your account on the [http://mh-svr.de/portal/ Portal as a Service page]. &lt;br /&gt;
# Log in with your account and create a new Portal&lt;br /&gt;
# Click &amp;#039;&amp;#039;Customize&amp;#039;&amp;#039; to jump to the portal administration page&lt;br /&gt;
# Add a page and click &amp;#039;&amp;#039;Edit&amp;#039;&amp;#039;&lt;br /&gt;
# You can use the interactive &amp;#039;&amp;#039;&amp;#039;Page Layout Designer&amp;#039;&amp;#039;&amp;#039; to create your portal page &lt;br /&gt;
# Click the page name in the layout designer to jump to your new portal page and preview it.&lt;br /&gt;
&lt;br /&gt;
== Page Layout Designer Guide ==&lt;br /&gt;
You can create page layouts interactively:&lt;br /&gt;
&lt;br /&gt;
[[Datei:PoNG LayoutDesigner.png]]&lt;br /&gt;
&lt;br /&gt;
The basic layout structure is are &amp;#039;&amp;#039;&amp;#039;rows&amp;#039;&amp;#039;&amp;#039;, containing views. You can add rows using the &amp;#039;&amp;#039;horizontal split&amp;#039;&amp;#039; button. Using the &amp;#039;&amp;#039;vertical split&amp;#039;&amp;#039; button, you can convert the rows view into a &amp;#039;&amp;#039;&amp;#039;set of columns&amp;#039;&amp;#039;&amp;#039; containing views. With the &amp;#039;&amp;#039;vertical split button&amp;#039;&amp;#039;, you can concert a column view  into a set of rows.&lt;br /&gt;
&lt;br /&gt;
At the end you are able to create any layout with a hierarchy of rows and columns,&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
This is a &amp;#039;&amp;#039;&amp;#039;free public beta test&amp;#039;&amp;#039;&amp;#039; of the &amp;#039;&amp;#039;Portal NG&amp;#039;&amp;#039; SERVICE.&lt;br /&gt;
&lt;br /&gt;
The beta test may end at any time. Any data and configuration stored inside the SERVICE may be removed at any time. &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Important:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
THE SERVICE IS PROVIDED &amp;quot;AS IS&amp;quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR&lt;br /&gt;
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,&lt;br /&gt;
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE&lt;br /&gt;
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER&lt;br /&gt;
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,&lt;br /&gt;
OUT OF OR IN CONNECTION WITH THE SERVICE OR THE USE OR OTHER DEALINGS IN&lt;br /&gt;
THE SERVICE.&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=Portal_as_a_Service&amp;diff=190</id>
		<title>Portal as a Service</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=Portal_as_a_Service&amp;diff=190"/>
		<updated>2015-02-23T19:17:07Z</updated>

		<summary type="html">&lt;p&gt;Mh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ [[Category:PoNG]]&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Create web portals for backend service (APIs) w/o programming.&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
== What is it? ==&lt;br /&gt;
* It is a web based configuration for PoNG portals.&lt;br /&gt;
* It is a hosting for PoNG portals designed by you.&lt;br /&gt;
* It is free! [[Portal_as_a_Service#Disclaimer|*]]&lt;br /&gt;
&lt;br /&gt;
== How do I start? ==&lt;br /&gt;
# Create your account on the [http://mh-svr.de/portal/ Portal as a Service page]. &lt;br /&gt;
# Log in with your account and create a new Portal&lt;br /&gt;
# Click &amp;#039;&amp;#039;Customize&amp;#039;&amp;#039; to jump to the portal administration page&lt;br /&gt;
# Add a page and click &amp;#039;&amp;#039;Edit&amp;#039;&amp;#039;&lt;br /&gt;
# You can use the interactive &amp;#039;&amp;#039;&amp;#039;Page Layout Designer&amp;#039;&amp;#039;&amp;#039; to create your portal page &lt;br /&gt;
# Click the page name in the layout designer to jump to your new portal page and preview it.&lt;br /&gt;
&lt;br /&gt;
== Page Layout Designer Guide ==&lt;br /&gt;
You can create page layouts interactively:&lt;br /&gt;
&lt;br /&gt;
[[Datei:PoNG LayoutDesigner.png]]&lt;br /&gt;
&lt;br /&gt;
The basic layout structure is are &amp;#039;&amp;#039;&amp;#039;rows&amp;#039;&amp;#039;&amp;#039;, containing views. You can add rows using the &amp;#039;&amp;#039;horizontal split&amp;#039;&amp;#039; button. Using the &amp;#039;&amp;#039;vertical split&amp;#039;&amp;#039; button, you can convert the rows view into a &amp;#039;&amp;#039;&amp;#039;set of columns&amp;#039;&amp;#039;&amp;#039; containing views. With the &amp;#039;&amp;#039;vertical split button&amp;#039;&amp;#039;, you can concert a column view  into a set of rows.&lt;br /&gt;
&lt;br /&gt;
At the end you are able to create any layout with a hierarchy of rows and columns,&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
This is a &amp;#039;&amp;#039;&amp;#039;free public beta test&amp;#039;&amp;#039;&amp;#039; of the &amp;#039;&amp;#039;Portal NG&amp;#039;&amp;#039; SERVICE.&lt;br /&gt;
&lt;br /&gt;
The beta test may end at any time. Any data and configuration stored inside the SERVICE may be removed at any time. &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Important:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
THE SERVICE IS PROVIDED &amp;quot;AS IS&amp;quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR&lt;br /&gt;
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,&lt;br /&gt;
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE&lt;br /&gt;
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER&lt;br /&gt;
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,&lt;br /&gt;
OUT OF OR IN CONNECTION WITH THE SERVICE OR THE USE OR OTHER DEALINGS IN&lt;br /&gt;
THE SERVICE.&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=PoNG&amp;diff=189</id>
		<title>PoNG</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=PoNG&amp;diff=189"/>
		<updated>2015-02-23T19:16:11Z</updated>

		<summary type="html">&lt;p&gt;Mh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Create web portals for backend service (APIs) w/o programming.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
[[Category:PoNG]]&lt;br /&gt;
&lt;br /&gt;
Quick Links:&lt;br /&gt;
* [[PoNG Modules]]&lt;br /&gt;
* [[PoNG Structure Specification]]&lt;br /&gt;
* [[PoNG Module Programming]]&lt;br /&gt;
&lt;br /&gt;
== Basic Idea ==&lt;br /&gt;
&lt;br /&gt;
=== Main Structure ===&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;portal&amp;#039;&amp;#039; has always a &amp;#039;&amp;#039;&amp;#039;header&amp;#039;&amp;#039;&amp;#039;, some &amp;#039;&amp;#039;&amp;#039;rows&amp;#039;&amp;#039;&amp;#039; and a &amp;#039;&amp;#039;&amp;#039;footer&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
[[Datei:Pong-struct-1.png|200px]]&lt;br /&gt;
&lt;br /&gt;
You can specify the hight of each row individually.&lt;br /&gt;
&lt;br /&gt;
=== Structured Views ===&lt;br /&gt;
A row can contain a &amp;#039;&amp;#039;&amp;#039;view&amp;#039;&amp;#039;&amp;#039; or a set of &amp;#039;&amp;#039;&amp;#039;columns&amp;#039;&amp;#039;&amp;#039; ...&lt;br /&gt;
&lt;br /&gt;
[[Datei:Pong-struct-2.png|200px]]&lt;br /&gt;
&lt;br /&gt;
... and columns can contain views or rows, containing views or ... (you understand?). You can define the width of each column.&lt;br /&gt;
&lt;br /&gt;
With this construct you should be able to do every possible arrangement of views.&lt;br /&gt;
&lt;br /&gt;
=== Views use Plug-Ins ===&lt;br /&gt;
Views can use ready to use plug-ins with different functionality&lt;br /&gt;
&lt;br /&gt;
[[Datei:Pong-struct-3a.png|300px]] &lt;br /&gt;
&lt;br /&gt;
There are also plug-ins for the header and footer, e.g. to display navigation bars, logos, link-lists or language switch buttons.&lt;br /&gt;
&lt;br /&gt;
=== Configure the Views ===&lt;br /&gt;
All views load their own configuration to initialize the view. The configuration comes from a web server or application server (dynamic configuration).&lt;br /&gt;
&lt;br /&gt;
[[Datei:Pong-struct-4.png|400px]]&lt;br /&gt;
&lt;br /&gt;
=== Data and Content in Views ===&lt;br /&gt;
After the initialization the view can load, modify, save or create data on a RESTful server backend. I.e. the WIKI content plug-in can load pages from a MediaWiki server.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Pong-struct-5.png|400px]]&lt;br /&gt;
&lt;br /&gt;
=== ... and Action! ===&lt;br /&gt;
For a dynamic page, all views can do different interactions:&lt;br /&gt;
# Views can call functions on a HTTP server backend (via REST calls)&lt;br /&gt;
# Views can call update method of other views. These views typically call the server backend to load data.&lt;br /&gt;
# Views can load a view into a row or a column, replacing the view there.&lt;br /&gt;
# Views can navigate to another page. Hopefully another portal page.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Pong-struct-6.png|400px]]&lt;br /&gt;
&lt;br /&gt;
The interactions are defined in the configuration of the view. E.g. in a view using the form plug-in you can define a button to save the form data and triggering an update of a table view afterwards.&lt;br /&gt;
&lt;br /&gt;
Of course -- the description of the page layout and the content data should be in a machine readable format and precise enough, that your browser is able to understand it. But these description of layout and data must still be human readable, self explaining and without HTML or JS coding necessary.&lt;br /&gt;
&lt;br /&gt;
Please read also the [[PoNG Description]].&lt;br /&gt;
&lt;br /&gt;
== A Quick Start in 2 min (local installation) ==&lt;br /&gt;
You need a (simple) Web Server, so install Apache package on you Unix or get e.g. XAMPP or ... or ...&lt;br /&gt;
# Download the [[PoNG_Static_HTML_Distribution|static HTML distribution]] package [[http://keller.minidns.net/mh/pong_v0.3a1.zip here]] (523 kB)&lt;br /&gt;
# Unpack the archive into your web server HTML directory, e.g. /var/www/portal&lt;br /&gt;
# Point your web browser to the portal root, e.g. http://mydomain.com/portal &lt;br /&gt;
&lt;br /&gt;
Start [[PoNG_Static_HTML_Distribution#Start_customizing_the_static_portal|customizing the portal]] ...&lt;br /&gt;
&lt;br /&gt;
== PoNG: Portal as a Service ==&lt;br /&gt;
We offer a [[Portal as a Service]] for free (v0.3 beta test phase). &lt;br /&gt;
&lt;br /&gt;
You can sign up an account and design a new portal on our [http://mh-svr.de/portal/ Portal as a Service] with seconds.&lt;br /&gt;
&lt;br /&gt;
== Layout Configuration ==&lt;br /&gt;
The layout-structure is a JSON file, requested by the layout resource. By default the &amp;lt;tt&amp;gt;/svc/layout/main/structure&amp;lt;/tt&amp;gt; is loaded first. &lt;br /&gt;
&lt;br /&gt;
Your site may have other layouts than &amp;quot;main&amp;quot;, e.g. &amp;lt;tt&amp;gt;/svc/layout/admin/structure&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== The &amp;quot;structure&amp;quot; JSON format ===&lt;br /&gt;
[[Datei:PoNG Example1.png|right|350px]]&lt;br /&gt;
The basic object hierarchy of the objects are:&lt;br /&gt;
* layout&lt;br /&gt;
** title &lt;br /&gt;
** header&lt;br /&gt;
** rows&lt;br /&gt;
*** cols &lt;br /&gt;
**** rows&lt;br /&gt;
***** ...&lt;br /&gt;
** footer&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;rows&amp;lt;/code&amp;gt; can contain either nested &amp;lt;code&amp;gt;cols&amp;lt;/code&amp;gt; or alternatively a resource. The same for &amp;lt;code&amp;gt;cols&amp;lt;/code&amp;gt;. A resource specifies the URL, where to load information about the content, has some meta data to define its layout, actions and dialogs.&lt;br /&gt;
&lt;br /&gt;
You can get every possible layout with this nesting of rows, cols and resources.&lt;br /&gt;
&lt;br /&gt;
Please refer the [[PoNG Structure Specification]] for details.&lt;br /&gt;
&lt;br /&gt;
The example shows, that you can set up a complex portal page with different information resource views on it with a very view lines of meta data definition. The result of this example is shown on the screen shot on the right (no fake). BTW, I would describe it in this way: &amp;lt;i&amp;gt;&amp;quot;This &amp;quot;portal&amp;quot; has a header, then two rows, the second row contains two columns, and then there is a footer.&amp;quot;&amp;lt;/i&amp;gt; &lt;br /&gt;
&lt;br /&gt;
So how can you explain your browser this w/o any HTML code? Let&amp;#039;s try:&lt;br /&gt;
==== Example ====&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;layout&amp;quot;: {&lt;br /&gt;
    &amp;quot;title&amp;quot;: &amp;quot;Title&amp;quot;,&lt;br /&gt;
    &amp;quot;header&amp;quot;: {&lt;br /&gt;
      &amp;quot;logoURL&amp;quot;: &amp;quot;logo.png&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;rows&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;rowId&amp;quot;: &amp;quot;myBlog&amp;quot;,&lt;br /&gt;
        &amp;quot;height&amp;quot;: &amp;quot;185px&amp;quot;,&lt;br /&gt;
        &amp;quot;resourceURL&amp;quot;: &amp;quot;blog&amp;quot;,&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;pong-list&amp;quot;,&lt;br /&gt;
        &amp;quot;decor&amp;quot; : &amp;quot;decor&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;rowId&amp;quot;: &amp;quot;r1&amp;quot;,&lt;br /&gt;
        &amp;quot;height&amp;quot;: &amp;quot;450px&amp;quot;,&lt;br /&gt;
        &amp;quot;cols&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;columnId&amp;quot;: &amp;quot;tbl&amp;quot;,&lt;br /&gt;
            &amp;quot;width&amp;quot;: &amp;quot;40%&amp;quot;,&lt;br /&gt;
            &amp;quot;resourceURL&amp;quot;: &amp;quot;resX&amp;quot;,&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;pong-table&amp;quot;,&lt;br /&gt;
            &amp;quot;decor&amp;quot; : &amp;quot;decor&amp;quot;,&lt;br /&gt;
            &amp;quot;actions&amp;quot; : [ { &amp;quot;actionName&amp;quot;: &amp;quot;Help&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;pong-help&amp;quot; } ]&lt;br /&gt;
          },&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;columnId&amp;quot;: &amp;quot;plot&amp;quot;,&lt;br /&gt;
            &amp;quot;width&amp;quot;: &amp;quot;60%&amp;quot;,&lt;br /&gt;
            &amp;quot;decor&amp;quot; : &amp;quot;decor&amp;quot;,&lt;br /&gt;
            &amp;quot;resourceURL&amp;quot;: &amp;quot;gnuplot&amp;quot;,&lt;br /&gt;
            &amp;quot;callback&amp;quot;: &amp;quot;grmh()&amp;quot;,&lt;br /&gt;
            &amp;quot;actions&amp;quot; : [ { &amp;quot;actionName&amp;quot;: &amp;quot;Config&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;modal-form&amp;quot; } ]&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;footer&amp;quot;: {&lt;br /&gt;
      &amp;quot;copyrightText&amp;quot;: &amp;quot;Copyright 2015, MH.&amp;quot;,&lt;br /&gt;
      &amp;quot;linkList&amp;quot;: [&lt;br /&gt;
      	{ &amp;quot;text&amp;quot;:&amp;quot;Impressum&amp;quot;, &amp;quot;url&amp;quot;: &amp;quot;impress.html&amp;quot;},&lt;br /&gt;
      	{ &amp;quot;text&amp;quot;:&amp;quot;Privacy Note&amp;quot;, &amp;quot;url&amp;quot;: &amp;quot;privacy.html&amp;quot;}&lt;br /&gt;
      ]	&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
This example layout structure will result in a &amp;quot;myBlog&amp;quot; box of full width and below are two columns, one with the &amp;quot;resX&amp;quot; and the other smaller one with a &amp;quot;plot&amp;quot;. If you just starts with this file, all views will be empty, because no one defined the resource details, that are just resource names at the moment.&lt;br /&gt;
&lt;br /&gt;
And if you think, the there is a bunch of work in defining e.g. the &amp;quot;blog&amp;quot;, then check out, what is [[PoNG Module: List View|the todo of this resource definition]].&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;[http://mh-svr.de/PoNG/ Test the prototype]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Installation Manual ==&lt;br /&gt;
Please refer also the [[PoNG Release Notes]].&lt;br /&gt;
=== Static HTML Installation ===&lt;br /&gt;
Perhaps you start here. Since PoNG is client centric, you can play a lot with a static backend. You can focus on implementing, configuring or integrating REST web services and view the data in the browser.&lt;br /&gt;
 &lt;br /&gt;
Simply load and extract the [[PoNG Static HTML Distribution]] to any subdirectory of your web server and customize the structure file &amp;lt;code&amp;gt;/svc/layout/main/structure&amp;lt;/code&amp;gt;, logo and CSS files to your needs.&lt;br /&gt;
&lt;br /&gt;
=== Tomcat based Installation ===&lt;br /&gt;
TODO&lt;br /&gt;
=== PHP based Installation ===&lt;br /&gt;
The [[PoNG PHP Backend]] powers the [[Portal as a Service]]. &lt;br /&gt;
&lt;br /&gt;
For local installations please contact &amp;#039;&amp;#039;admin (at) mh-svr dot de&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Browser Support ==&lt;br /&gt;
PoNG is tested with&lt;br /&gt;
* Firefox 27.0.1 (Ubuntu 13.10 64bit)&lt;br /&gt;
* Safari (iPad, iOS 7)&lt;br /&gt;
* Chrome on Android&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=PoNG&amp;diff=188</id>
		<title>PoNG</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=PoNG&amp;diff=188"/>
		<updated>2015-02-23T19:15:48Z</updated>

		<summary type="html">&lt;p&gt;Mh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Create web portals for backend service (APIs) w/o programming.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
[[Category:PoNG]]&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Quick Links:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* [[PoNG Modules]]&lt;br /&gt;
* [[PoNG Structure Specification]]&lt;br /&gt;
* [[PoNG Module Programming]]&lt;br /&gt;
&lt;br /&gt;
== Basic Idea ==&lt;br /&gt;
&lt;br /&gt;
=== Main Structure ===&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;portal&amp;#039;&amp;#039; has always a &amp;#039;&amp;#039;&amp;#039;header&amp;#039;&amp;#039;&amp;#039;, some &amp;#039;&amp;#039;&amp;#039;rows&amp;#039;&amp;#039;&amp;#039; and a &amp;#039;&amp;#039;&amp;#039;footer&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
[[Datei:Pong-struct-1.png|200px]]&lt;br /&gt;
&lt;br /&gt;
You can specify the hight of each row individually.&lt;br /&gt;
&lt;br /&gt;
=== Structured Views ===&lt;br /&gt;
A row can contain a &amp;#039;&amp;#039;&amp;#039;view&amp;#039;&amp;#039;&amp;#039; or a set of &amp;#039;&amp;#039;&amp;#039;columns&amp;#039;&amp;#039;&amp;#039; ...&lt;br /&gt;
&lt;br /&gt;
[[Datei:Pong-struct-2.png|200px]]&lt;br /&gt;
&lt;br /&gt;
... and columns can contain views or rows, containing views or ... (you understand?). You can define the width of each column.&lt;br /&gt;
&lt;br /&gt;
With this construct you should be able to do every possible arrangement of views.&lt;br /&gt;
&lt;br /&gt;
=== Views use Plug-Ins ===&lt;br /&gt;
Views can use ready to use plug-ins with different functionality&lt;br /&gt;
&lt;br /&gt;
[[Datei:Pong-struct-3a.png|300px]] &lt;br /&gt;
&lt;br /&gt;
There are also plug-ins for the header and footer, e.g. to display navigation bars, logos, link-lists or language switch buttons.&lt;br /&gt;
&lt;br /&gt;
=== Configure the Views ===&lt;br /&gt;
All views load their own configuration to initialize the view. The configuration comes from a web server or application server (dynamic configuration).&lt;br /&gt;
&lt;br /&gt;
[[Datei:Pong-struct-4.png|400px]]&lt;br /&gt;
&lt;br /&gt;
=== Data and Content in Views ===&lt;br /&gt;
After the initialization the view can load, modify, save or create data on a RESTful server backend. I.e. the WIKI content plug-in can load pages from a MediaWiki server.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Pong-struct-5.png|400px]]&lt;br /&gt;
&lt;br /&gt;
=== ... and Action! ===&lt;br /&gt;
For a dynamic page, all views can do different interactions:&lt;br /&gt;
# Views can call functions on a HTTP server backend (via REST calls)&lt;br /&gt;
# Views can call update method of other views. These views typically call the server backend to load data.&lt;br /&gt;
# Views can load a view into a row or a column, replacing the view there.&lt;br /&gt;
# Views can navigate to another page. Hopefully another portal page.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Pong-struct-6.png|400px]]&lt;br /&gt;
&lt;br /&gt;
The interactions are defined in the configuration of the view. E.g. in a view using the form plug-in you can define a button to save the form data and triggering an update of a table view afterwards.&lt;br /&gt;
&lt;br /&gt;
Of course -- the description of the page layout and the content data should be in a machine readable format and precise enough, that your browser is able to understand it. But these description of layout and data must still be human readable, self explaining and without HTML or JS coding necessary.&lt;br /&gt;
&lt;br /&gt;
Please read also the [[PoNG Description]].&lt;br /&gt;
&lt;br /&gt;
== A Quick Start in 2 min (local installation) ==&lt;br /&gt;
You need a (simple) Web Server, so install Apache package on you Unix or get e.g. XAMPP or ... or ...&lt;br /&gt;
# Download the [[PoNG_Static_HTML_Distribution|static HTML distribution]] package [[http://keller.minidns.net/mh/pong_v0.3a1.zip here]] (523 kB)&lt;br /&gt;
# Unpack the archive into your web server HTML directory, e.g. /var/www/portal&lt;br /&gt;
# Point your web browser to the portal root, e.g. http://mydomain.com/portal &lt;br /&gt;
&lt;br /&gt;
Start [[PoNG_Static_HTML_Distribution#Start_customizing_the_static_portal|customizing the portal]] ...&lt;br /&gt;
&lt;br /&gt;
== PoNG: Portal as a Service ==&lt;br /&gt;
We offer a [[Portal as a Service]] for free (v0.3 beta test phase). &lt;br /&gt;
&lt;br /&gt;
You can sign up an account and design a new portal on our [http://mh-svr.de/portal/ Portal as a Service] with seconds.&lt;br /&gt;
&lt;br /&gt;
== Layout Configuration ==&lt;br /&gt;
The layout-structure is a JSON file, requested by the layout resource. By default the &amp;lt;tt&amp;gt;/svc/layout/main/structure&amp;lt;/tt&amp;gt; is loaded first. &lt;br /&gt;
&lt;br /&gt;
Your site may have other layouts than &amp;quot;main&amp;quot;, e.g. &amp;lt;tt&amp;gt;/svc/layout/admin/structure&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== The &amp;quot;structure&amp;quot; JSON format ===&lt;br /&gt;
[[Datei:PoNG Example1.png|right|350px]]&lt;br /&gt;
The basic object hierarchy of the objects are:&lt;br /&gt;
* layout&lt;br /&gt;
** title &lt;br /&gt;
** header&lt;br /&gt;
** rows&lt;br /&gt;
*** cols &lt;br /&gt;
**** rows&lt;br /&gt;
***** ...&lt;br /&gt;
** footer&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;rows&amp;lt;/code&amp;gt; can contain either nested &amp;lt;code&amp;gt;cols&amp;lt;/code&amp;gt; or alternatively a resource. The same for &amp;lt;code&amp;gt;cols&amp;lt;/code&amp;gt;. A resource specifies the URL, where to load information about the content, has some meta data to define its layout, actions and dialogs.&lt;br /&gt;
&lt;br /&gt;
You can get every possible layout with this nesting of rows, cols and resources.&lt;br /&gt;
&lt;br /&gt;
Please refer the [[PoNG Structure Specification]] for details.&lt;br /&gt;
&lt;br /&gt;
The example shows, that you can set up a complex portal page with different information resource views on it with a very view lines of meta data definition. The result of this example is shown on the screen shot on the right (no fake). BTW, I would describe it in this way: &amp;lt;i&amp;gt;&amp;quot;This &amp;quot;portal&amp;quot; has a header, then two rows, the second row contains two columns, and then there is a footer.&amp;quot;&amp;lt;/i&amp;gt; &lt;br /&gt;
&lt;br /&gt;
So how can you explain your browser this w/o any HTML code? Let&amp;#039;s try:&lt;br /&gt;
==== Example ====&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;layout&amp;quot;: {&lt;br /&gt;
    &amp;quot;title&amp;quot;: &amp;quot;Title&amp;quot;,&lt;br /&gt;
    &amp;quot;header&amp;quot;: {&lt;br /&gt;
      &amp;quot;logoURL&amp;quot;: &amp;quot;logo.png&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;rows&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;rowId&amp;quot;: &amp;quot;myBlog&amp;quot;,&lt;br /&gt;
        &amp;quot;height&amp;quot;: &amp;quot;185px&amp;quot;,&lt;br /&gt;
        &amp;quot;resourceURL&amp;quot;: &amp;quot;blog&amp;quot;,&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;pong-list&amp;quot;,&lt;br /&gt;
        &amp;quot;decor&amp;quot; : &amp;quot;decor&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;rowId&amp;quot;: &amp;quot;r1&amp;quot;,&lt;br /&gt;
        &amp;quot;height&amp;quot;: &amp;quot;450px&amp;quot;,&lt;br /&gt;
        &amp;quot;cols&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;columnId&amp;quot;: &amp;quot;tbl&amp;quot;,&lt;br /&gt;
            &amp;quot;width&amp;quot;: &amp;quot;40%&amp;quot;,&lt;br /&gt;
            &amp;quot;resourceURL&amp;quot;: &amp;quot;resX&amp;quot;,&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;pong-table&amp;quot;,&lt;br /&gt;
            &amp;quot;decor&amp;quot; : &amp;quot;decor&amp;quot;,&lt;br /&gt;
            &amp;quot;actions&amp;quot; : [ { &amp;quot;actionName&amp;quot;: &amp;quot;Help&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;pong-help&amp;quot; } ]&lt;br /&gt;
          },&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;columnId&amp;quot;: &amp;quot;plot&amp;quot;,&lt;br /&gt;
            &amp;quot;width&amp;quot;: &amp;quot;60%&amp;quot;,&lt;br /&gt;
            &amp;quot;decor&amp;quot; : &amp;quot;decor&amp;quot;,&lt;br /&gt;
            &amp;quot;resourceURL&amp;quot;: &amp;quot;gnuplot&amp;quot;,&lt;br /&gt;
            &amp;quot;callback&amp;quot;: &amp;quot;grmh()&amp;quot;,&lt;br /&gt;
            &amp;quot;actions&amp;quot; : [ { &amp;quot;actionName&amp;quot;: &amp;quot;Config&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;modal-form&amp;quot; } ]&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;footer&amp;quot;: {&lt;br /&gt;
      &amp;quot;copyrightText&amp;quot;: &amp;quot;Copyright 2015, MH.&amp;quot;,&lt;br /&gt;
      &amp;quot;linkList&amp;quot;: [&lt;br /&gt;
      	{ &amp;quot;text&amp;quot;:&amp;quot;Impressum&amp;quot;, &amp;quot;url&amp;quot;: &amp;quot;impress.html&amp;quot;},&lt;br /&gt;
      	{ &amp;quot;text&amp;quot;:&amp;quot;Privacy Note&amp;quot;, &amp;quot;url&amp;quot;: &amp;quot;privacy.html&amp;quot;}&lt;br /&gt;
      ]	&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
This example layout structure will result in a &amp;quot;myBlog&amp;quot; box of full width and below are two columns, one with the &amp;quot;resX&amp;quot; and the other smaller one with a &amp;quot;plot&amp;quot;. If you just starts with this file, all views will be empty, because no one defined the resource details, that are just resource names at the moment.&lt;br /&gt;
&lt;br /&gt;
And if you think, the there is a bunch of work in defining e.g. the &amp;quot;blog&amp;quot;, then check out, what is [[PoNG Module: List View|the todo of this resource definition]].&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;[http://mh-svr.de/PoNG/ Test the prototype]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Installation Manual ==&lt;br /&gt;
Please refer also the [[PoNG Release Notes]].&lt;br /&gt;
=== Static HTML Installation ===&lt;br /&gt;
Perhaps you start here. Since PoNG is client centric, you can play a lot with a static backend. You can focus on implementing, configuring or integrating REST web services and view the data in the browser.&lt;br /&gt;
 &lt;br /&gt;
Simply load and extract the [[PoNG Static HTML Distribution]] to any subdirectory of your web server and customize the structure file &amp;lt;code&amp;gt;/svc/layout/main/structure&amp;lt;/code&amp;gt;, logo and CSS files to your needs.&lt;br /&gt;
&lt;br /&gt;
=== Tomcat based Installation ===&lt;br /&gt;
TODO&lt;br /&gt;
=== PHP based Installation ===&lt;br /&gt;
The [[PoNG PHP Backend]] powers the [[Portal as a Service]]. &lt;br /&gt;
&lt;br /&gt;
For local installations please contact &amp;#039;&amp;#039;admin (at) mh-svr dot de&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Browser Support ==&lt;br /&gt;
PoNG is tested with&lt;br /&gt;
* Firefox 27.0.1 (Ubuntu 13.10 64bit)&lt;br /&gt;
* Safari (iPad, iOS 7)&lt;br /&gt;
* Chrome on Android&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=Portal_as_a_Service&amp;diff=187</id>
		<title>Portal as a Service</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=Portal_as_a_Service&amp;diff=187"/>
		<updated>2015-02-22T19:42:10Z</updated>

		<summary type="html">&lt;p&gt;Mh: /* How do I start? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ [[Category:PoNG]]&lt;br /&gt;
== What is it? ==&lt;br /&gt;
* It is a web based configuration for PoNG portals.&lt;br /&gt;
* It is a hosting for PoNG portals designed by you.&lt;br /&gt;
* It is free! [[Portal_as_a_Service#Disclaimer|*]]&lt;br /&gt;
&lt;br /&gt;
== How do I start? ==&lt;br /&gt;
# Create your account on the [http://mh-svr.de/portal/ Portal as a Service page]. &lt;br /&gt;
# Log in with your account and create a new Portal&lt;br /&gt;
# Click &amp;#039;&amp;#039;Customize&amp;#039;&amp;#039; to jump to the portal administration page&lt;br /&gt;
# Add a page and click &amp;#039;&amp;#039;Edit&amp;#039;&amp;#039;&lt;br /&gt;
# You can use the interactive &amp;#039;&amp;#039;&amp;#039;Page Layout Designer&amp;#039;&amp;#039;&amp;#039; to create your portal page &lt;br /&gt;
# Click the page name in the layout designer to jump to your new portal page and preview it.&lt;br /&gt;
&lt;br /&gt;
== Page Layout Designer Guide ==&lt;br /&gt;
You can create page layouts interactively:&lt;br /&gt;
&lt;br /&gt;
[[Datei:PoNG LayoutDesigner.png]]&lt;br /&gt;
&lt;br /&gt;
The basic layout structure is are &amp;#039;&amp;#039;&amp;#039;rows&amp;#039;&amp;#039;&amp;#039;, containing views. You can add rows using the &amp;#039;&amp;#039;horizontal split&amp;#039;&amp;#039; button. Using the &amp;#039;&amp;#039;vertical split&amp;#039;&amp;#039; button, you can convert the rows view into a &amp;#039;&amp;#039;&amp;#039;set of columns&amp;#039;&amp;#039;&amp;#039; containing views. With the &amp;#039;&amp;#039;vertical split button&amp;#039;&amp;#039;, you can concert a column view  into a set of rows.&lt;br /&gt;
&lt;br /&gt;
At the end you are able to create any layout with a hierarchy of rows and columns,&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
This is a &amp;#039;&amp;#039;&amp;#039;free public beta test&amp;#039;&amp;#039;&amp;#039; of the &amp;#039;&amp;#039;Portal NG&amp;#039;&amp;#039; SERVICE.&lt;br /&gt;
&lt;br /&gt;
The beta test may end at any time. Any data and configuration stored inside the SERVICE may be removed at any time. &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Important:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
THE SERVICE IS PROVIDED &amp;quot;AS IS&amp;quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR&lt;br /&gt;
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,&lt;br /&gt;
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE&lt;br /&gt;
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER&lt;br /&gt;
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,&lt;br /&gt;
OUT OF OR IN CONNECTION WITH THE SERVICE OR THE USE OR OTHER DEALINGS IN&lt;br /&gt;
THE SERVICE.&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=PoNG_Static_HTML_Distribution&amp;diff=186</id>
		<title>PoNG Static HTML Distribution</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=PoNG_Static_HTML_Distribution&amp;diff=186"/>
		<updated>2015-02-22T18:16:47Z</updated>

		<summary type="html">&lt;p&gt;Mh: /* PoNG License */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Static does not mean, the [[PoNG]] portal is not dynamic -- it just needs only a static backend!! So no need of PHP or Tomcat or JEE servers ...&lt;br /&gt;
&lt;br /&gt;
Please also check the [[PoNG Release Notes]].&lt;br /&gt;
&lt;br /&gt;
== [[PoNG]] Quick Start: ==&lt;br /&gt;
The &amp;#039;&amp;#039;PoNG JS Framework V0.3&amp;#039;&amp;#039; and the &amp;#039;&amp;#039;PoNG Static HTML Distribution V0.3&amp;#039;&amp;#039; are released under [[PoNG_Static_HTML_Distribution#PoNG_License|MIT License]]&lt;br /&gt;
# Download the static html package [http://mh-svr.de/downloads/pong_0.3.zip here (V0.3, 620 kB)] &lt;br /&gt;
# Unpack the archive into your web server html directory, e.g. &amp;lt;code&amp;gt;/var/www/portal&amp;lt;/code&amp;gt;&lt;br /&gt;
# Start the web browser and point it to the portal root, e.g. &amp;lt;code&amp;gt;http://mydomain.com/portal&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The portal contains two pages, one static welcome page and a second form type page.&lt;br /&gt;
&lt;br /&gt;
Please read the [[PoNG|abstract]] to understand [[PoNG Description|the idea and vision]].&lt;br /&gt;
&lt;br /&gt;
[[Category:PoNG]]&lt;br /&gt;
&lt;br /&gt;
== What is inside the install package ==&lt;br /&gt;
{| &lt;br /&gt;
| . || index.html  ||  an empty page, just to initialize the framework -- there is no need to edit this file&lt;br /&gt;
|-&lt;br /&gt;
| . || nav  ||                      [[PoNG_Structure_Specification#JSON_basics|JSON]] to define the navigation bar&amp;#039;s items&lt;br /&gt;
|-&lt;br /&gt;
| /i18n/ || ||                     translation packages, add your translations here&lt;br /&gt;
|-&lt;br /&gt;
| /i18n/ ||    DE.json &lt;br /&gt;
|-&lt;br /&gt;
| /i18n/ ||     EN.json&lt;br /&gt;
|-&lt;br /&gt;
|  /css/ || ||                       style sheets to customize the look and feel&lt;br /&gt;
|-&lt;br /&gt;
| /css/ ||     custom.css ||             define your modifications here&lt;br /&gt;
|-&lt;br /&gt;
| /css/ ||    ... ||  other files, you won&amp;#039;t need to customize any of them&lt;br /&gt;
|-&lt;br /&gt;
|  /img/  || ... ||                     folder for graphic decoration and pictures&lt;br /&gt;
|-&lt;br /&gt;
| /js/ || ||  The heart of the framework &lt;br /&gt;
|-&lt;br /&gt;
| /js/ ||    portal-ng-XY.js     ||    (main framework&lt;br /&gt;
|-&lt;br /&gt;
| /js/ ||    portal-ng-modules.js  ||  (modules hook list&lt;br /&gt;
|-&lt;br /&gt;
| /js/ ||    /pong-modules      ||     ... folder with some ready to use plug ins ...&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| /svc/  ||  ||                  your services, should deliver [[PoNG_Structure_Specification#JSON_basics|JSON]] data, HTML and JS content&lt;br /&gt;
|-&lt;br /&gt;
| /svc/layout/ ||   ||             serve [[PoNG_Structure_Specification|JSON config]] for portal pages&lt;br /&gt;
|-&lt;br /&gt;
| /svc/layout/main/ || structure || [[PoNG_Structure_Specification#JSON_basics|JSON]] to define start page and main layout,  other layouts may include the header and footer from here&lt;br /&gt;
|-&lt;br /&gt;
|  /svc/layout/test/ || structure || JSON for a layout with two rows, with a form in the 1st row and two columns for output in the second row&lt;br /&gt;
|-&lt;br /&gt;
|  /svc/test/            ||  ||  This is a REST service&lt;br /&gt;
|-&lt;br /&gt;
|  /svc/test/   || pong-form ||      [[PoNG_Structure_Specification#JSON_basics|JSON]] to initialize the [[PoNG Module: Form View|web form]] and the actions)&lt;br /&gt;
|-&lt;br /&gt;
|  /svc/test/info/       || (index.html) ||      delivers dummy output for the &amp;quot;info&amp;quot; button&lt;br /&gt;
|-&lt;br /&gt;
|  /svc/test/check/      || (index.html) ||      delivers dummy output for the &amp;quot;check&amp;quot; button&lt;br /&gt;
|-&lt;br /&gt;
|  /svc/test/help/       || (index.html) ||      PHP -ui- to deliver help text in different languages&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Start customizing the static portal ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1:&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
Customize the [[PoNG Module: Navigation Bar|nav bar]] by editing the &amp;lt;code&amp;gt;nav&amp;lt;/code&amp;gt; file. &lt;br /&gt;
&lt;br /&gt;
If you add an item, e.g. &amp;quot;blah&amp;quot;, you have to add a layout file, so &amp;lt;code&amp;gt;/svc/layout/blah/structure&amp;lt;/code&amp;gt;, refer &amp;quot;step 2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 2:&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
Customize the [[PoNG_Structure_Specification|layout specification]]: &lt;br /&gt;
* Customize the [[PoNG_Structure_Specification#Header|header]] and [[PoNG_Structure_Specification#Footer|footer]] as you like. I think you may want to replace the logo. &lt;br /&gt;
* Edit the [[PoNG_Structure_Specification|structure file]] and define your own set of rows and columns and point them to [[PoNG_Structure_Specification#Resources|resources]] and [[PoNG Modules|define module]] types. Now you have to configure the resources and modules, refer &amp;quot;step 3&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 3:&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
The resources are &amp;quot;folders&amp;quot; in the static backend, so you have to create the folders with the resource names (specified in &amp;quot;step 2&amp;quot;) and put the module config there to tell the [[PoNG Modules|module plug-ins]], how to deal with the content of the resource.&lt;br /&gt;
&lt;br /&gt;
== Shared scipts and CSSs ==&lt;br /&gt;
To share the JS scripts for modules and CSS files you can modify the main &amp;lt;code&amp;gt;index.html&amp;lt;/code&amp;gt; file. By default a relative path to subdirectories is used.&lt;br /&gt;
&lt;br /&gt;
To change the loaders, please search and modify the following section in the &amp;lt;code&amp;gt;index.html&amp;lt;/code&amp;gt;:&lt;br /&gt;
 // EDIT THIS VAR TO SHARE THE INSTALL PACKAGES &lt;br /&gt;
 var cssPath = &amp;quot;css/&amp;quot;;&lt;br /&gt;
 var jsPath  = &amp;quot;js/&amp;quot;;&lt;br /&gt;
 var modulesJsPath  = &amp;quot;js/pong-modules/&amp;quot;;&lt;br /&gt;
 var modulesCssPath  = &amp;quot;css/pong-modules/&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PoNG JS Framework License ==&lt;br /&gt;
The MIT License (MIT)&lt;br /&gt;
&lt;br /&gt;
Copyright (c) 2014 Markus Harms, ma@mh-svr.de&lt;br /&gt;
&lt;br /&gt;
Permission is hereby granted, free of charge, to any person obtaining a copy&lt;br /&gt;
of this software and associated documentation files (the &amp;quot;Software&amp;quot;), to deal&lt;br /&gt;
in the Software without restriction, including without limitation the rights&lt;br /&gt;
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell&lt;br /&gt;
copies of the Software, and to permit persons to whom the Software is&lt;br /&gt;
furnished to do so, subject to the following conditions:&lt;br /&gt;
&lt;br /&gt;
The above copyright notice and this permission notice shall be included in&lt;br /&gt;
all copies or substantial portions of the Software.&lt;br /&gt;
&lt;br /&gt;
THE SOFTWARE IS PROVIDED &amp;quot;AS IS&amp;quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR&lt;br /&gt;
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,&lt;br /&gt;
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE&lt;br /&gt;
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER&lt;br /&gt;
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,&lt;br /&gt;
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN&lt;br /&gt;
THE SOFTWARE.&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=PoNG&amp;diff=185</id>
		<title>PoNG</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=PoNG&amp;diff=185"/>
		<updated>2015-02-22T18:15:56Z</updated>

		<summary type="html">&lt;p&gt;Mh: /* PHP based Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:PoNG]]&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Quick Links:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* [[PoNG Modules]]&lt;br /&gt;
* [[PoNG Structure Specification]]&lt;br /&gt;
* [[PoNG Module Programming]]&lt;br /&gt;
&lt;br /&gt;
== Basic Idea ==&lt;br /&gt;
&lt;br /&gt;
=== Main Structure ===&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;portal&amp;#039;&amp;#039; has always a &amp;#039;&amp;#039;&amp;#039;header&amp;#039;&amp;#039;&amp;#039;, some &amp;#039;&amp;#039;&amp;#039;rows&amp;#039;&amp;#039;&amp;#039; and a &amp;#039;&amp;#039;&amp;#039;footer&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
[[Datei:Pong-struct-1.png|200px]]&lt;br /&gt;
&lt;br /&gt;
You can specify the hight of each row individually.&lt;br /&gt;
&lt;br /&gt;
=== Structured Views ===&lt;br /&gt;
A row can contain a &amp;#039;&amp;#039;&amp;#039;view&amp;#039;&amp;#039;&amp;#039; or a set of &amp;#039;&amp;#039;&amp;#039;columns&amp;#039;&amp;#039;&amp;#039; ...&lt;br /&gt;
&lt;br /&gt;
[[Datei:Pong-struct-2.png|200px]]&lt;br /&gt;
&lt;br /&gt;
... and columns can contain views or rows, containing views or ... (you understand?). You can define the width of each column.&lt;br /&gt;
&lt;br /&gt;
With this construct you should be able to do every possible arrangement of views.&lt;br /&gt;
&lt;br /&gt;
=== Views use Plug-Ins ===&lt;br /&gt;
Views can use ready to use plug-ins with different functionality&lt;br /&gt;
&lt;br /&gt;
[[Datei:Pong-struct-3a.png|300px]] &lt;br /&gt;
&lt;br /&gt;
There are also plug-ins for the header and footer, e.g. to display navigation bars, logos, link-lists or language switch buttons.&lt;br /&gt;
&lt;br /&gt;
=== Configure the Views ===&lt;br /&gt;
All views load their own configuration to initialize the view. The configuration comes from a web server or application server (dynamic configuration).&lt;br /&gt;
&lt;br /&gt;
[[Datei:Pong-struct-4.png|400px]]&lt;br /&gt;
&lt;br /&gt;
=== Data and Content in Views ===&lt;br /&gt;
After the initialization the view can load, modify, save or create data on a RESTful server backend. I.e. the WIKI content plug-in can load pages from a MediaWiki server.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Pong-struct-5.png|400px]]&lt;br /&gt;
&lt;br /&gt;
=== ... and Action! ===&lt;br /&gt;
For a dynamic page, all views can do different interactions:&lt;br /&gt;
# Views can call functions on a HTTP server backend (via REST calls)&lt;br /&gt;
# Views can call update method of other views. These views typically call the server backend to load data.&lt;br /&gt;
# Views can load a view into a row or a column, replacing the view there.&lt;br /&gt;
# Views can navigate to another page. Hopefully another portal page.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Pong-struct-6.png|400px]]&lt;br /&gt;
&lt;br /&gt;
The interactions are defined in the configuration of the view. E.g. in a view using the form plug-in you can define a button to save the form data and triggering an update of a table view afterwards.&lt;br /&gt;
&lt;br /&gt;
Of course -- the description of the page layout and the content data should be in a machine readable format and precise enough, that your browser is able to understand it. But these description of layout and data must still be human readable, self explaining and without HTML or JS coding necessary.&lt;br /&gt;
&lt;br /&gt;
Please read also the [[PoNG Description]].&lt;br /&gt;
&lt;br /&gt;
== A Quick Start in 2 min (local installation) ==&lt;br /&gt;
You need a (simple) Web Server, so install Apache package on you Unix or get e.g. XAMPP or ... or ...&lt;br /&gt;
# Download the [[PoNG_Static_HTML_Distribution|static HTML distribution]] package [[http://keller.minidns.net/mh/pong_v0.3a1.zip here]] (523 kB)&lt;br /&gt;
# Unpack the archive into your web server HTML directory, e.g. /var/www/portal&lt;br /&gt;
# Point your web browser to the portal root, e.g. http://mydomain.com/portal &lt;br /&gt;
&lt;br /&gt;
Start [[PoNG_Static_HTML_Distribution#Start_customizing_the_static_portal|customizing the portal]] ...&lt;br /&gt;
&lt;br /&gt;
== PoNG: Portal as a Service ==&lt;br /&gt;
We offer a [[Portal as a Service]] for free (v0.3 beta test phase). &lt;br /&gt;
&lt;br /&gt;
You can sign up an account and design a new portal on our [http://mh-svr.de/portal/ Portal as a Service] with seconds.&lt;br /&gt;
&lt;br /&gt;
== Layout Configuration ==&lt;br /&gt;
The layout-structure is a JSON file, requested by the layout resource. By default the &amp;lt;tt&amp;gt;/svc/layout/main/structure&amp;lt;/tt&amp;gt; is loaded first. &lt;br /&gt;
&lt;br /&gt;
Your site may have other layouts than &amp;quot;main&amp;quot;, e.g. &amp;lt;tt&amp;gt;/svc/layout/admin/structure&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== The &amp;quot;structure&amp;quot; JSON format ===&lt;br /&gt;
[[Datei:PoNG Example1.png|right|350px]]&lt;br /&gt;
The basic object hierarchy of the objects are:&lt;br /&gt;
* layout&lt;br /&gt;
** title &lt;br /&gt;
** header&lt;br /&gt;
** rows&lt;br /&gt;
*** cols &lt;br /&gt;
**** rows&lt;br /&gt;
***** ...&lt;br /&gt;
** footer&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;rows&amp;lt;/code&amp;gt; can contain either nested &amp;lt;code&amp;gt;cols&amp;lt;/code&amp;gt; or alternatively a resource. The same for &amp;lt;code&amp;gt;cols&amp;lt;/code&amp;gt;. A resource specifies the URL, where to load information about the content, has some meta data to define its layout, actions and dialogs.&lt;br /&gt;
&lt;br /&gt;
You can get every possible layout with this nesting of rows, cols and resources.&lt;br /&gt;
&lt;br /&gt;
Please refer the [[PoNG Structure Specification]] for details.&lt;br /&gt;
&lt;br /&gt;
The example shows, that you can set up a complex portal page with different information resource views on it with a very view lines of meta data definition. The result of this example is shown on the screen shot on the right (no fake). BTW, I would describe it in this way: &amp;lt;i&amp;gt;&amp;quot;This &amp;quot;portal&amp;quot; has a header, then two rows, the second row contains two columns, and then there is a footer.&amp;quot;&amp;lt;/i&amp;gt; &lt;br /&gt;
&lt;br /&gt;
So how can you explain your browser this w/o any HTML code? Let&amp;#039;s try:&lt;br /&gt;
==== Example ====&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;layout&amp;quot;: {&lt;br /&gt;
    &amp;quot;title&amp;quot;: &amp;quot;Title&amp;quot;,&lt;br /&gt;
    &amp;quot;header&amp;quot;: {&lt;br /&gt;
      &amp;quot;logoURL&amp;quot;: &amp;quot;logo.png&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;rows&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;rowId&amp;quot;: &amp;quot;myBlog&amp;quot;,&lt;br /&gt;
        &amp;quot;height&amp;quot;: &amp;quot;185px&amp;quot;,&lt;br /&gt;
        &amp;quot;resourceURL&amp;quot;: &amp;quot;blog&amp;quot;,&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;pong-list&amp;quot;,&lt;br /&gt;
        &amp;quot;decor&amp;quot; : &amp;quot;decor&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;rowId&amp;quot;: &amp;quot;r1&amp;quot;,&lt;br /&gt;
        &amp;quot;height&amp;quot;: &amp;quot;450px&amp;quot;,&lt;br /&gt;
        &amp;quot;cols&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;columnId&amp;quot;: &amp;quot;tbl&amp;quot;,&lt;br /&gt;
            &amp;quot;width&amp;quot;: &amp;quot;40%&amp;quot;,&lt;br /&gt;
            &amp;quot;resourceURL&amp;quot;: &amp;quot;resX&amp;quot;,&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;pong-table&amp;quot;,&lt;br /&gt;
            &amp;quot;decor&amp;quot; : &amp;quot;decor&amp;quot;,&lt;br /&gt;
            &amp;quot;actions&amp;quot; : [ { &amp;quot;actionName&amp;quot;: &amp;quot;Help&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;pong-help&amp;quot; } ]&lt;br /&gt;
          },&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;columnId&amp;quot;: &amp;quot;plot&amp;quot;,&lt;br /&gt;
            &amp;quot;width&amp;quot;: &amp;quot;60%&amp;quot;,&lt;br /&gt;
            &amp;quot;decor&amp;quot; : &amp;quot;decor&amp;quot;,&lt;br /&gt;
            &amp;quot;resourceURL&amp;quot;: &amp;quot;gnuplot&amp;quot;,&lt;br /&gt;
            &amp;quot;callback&amp;quot;: &amp;quot;grmh()&amp;quot;,&lt;br /&gt;
            &amp;quot;actions&amp;quot; : [ { &amp;quot;actionName&amp;quot;: &amp;quot;Config&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;modal-form&amp;quot; } ]&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;footer&amp;quot;: {&lt;br /&gt;
      &amp;quot;copyrightText&amp;quot;: &amp;quot;Copyright 2015, MH.&amp;quot;,&lt;br /&gt;
      &amp;quot;linkList&amp;quot;: [&lt;br /&gt;
      	{ &amp;quot;text&amp;quot;:&amp;quot;Impressum&amp;quot;, &amp;quot;url&amp;quot;: &amp;quot;impress.html&amp;quot;},&lt;br /&gt;
      	{ &amp;quot;text&amp;quot;:&amp;quot;Privacy Note&amp;quot;, &amp;quot;url&amp;quot;: &amp;quot;privacy.html&amp;quot;}&lt;br /&gt;
      ]	&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
This example layout structure will result in a &amp;quot;myBlog&amp;quot; box of full width and below are two columns, one with the &amp;quot;resX&amp;quot; and the other smaller one with a &amp;quot;plot&amp;quot;. If you just starts with this file, all views will be empty, because no one defined the resource details, that are just resource names at the moment.&lt;br /&gt;
&lt;br /&gt;
And if you think, the there is a bunch of work in defining e.g. the &amp;quot;blog&amp;quot;, then check out, what is [[PoNG Module: List View|the todo of this resource definition]].&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;[http://mh-svr.de/PoNG/ Test the prototype]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Installation Manual ==&lt;br /&gt;
Please refer also the [[PoNG Release Notes]].&lt;br /&gt;
=== Static HTML Installation ===&lt;br /&gt;
Perhaps you start here. Since PoNG is client centric, you can play a lot with a static backend. You can focus on implementing, configuring or integrating REST web services and view the data in the browser.&lt;br /&gt;
 &lt;br /&gt;
Simply load and extract the [[PoNG Static HTML Distribution]] to any subdirectory of your web server and customize the structure file &amp;lt;code&amp;gt;/svc/layout/main/structure&amp;lt;/code&amp;gt;, logo and CSS files to your needs.&lt;br /&gt;
&lt;br /&gt;
=== Tomcat based Installation ===&lt;br /&gt;
TODO&lt;br /&gt;
=== PHP based Installation ===&lt;br /&gt;
The [[PoNG PHP Backend]] powers the [[Portal as a Service]]. &lt;br /&gt;
&lt;br /&gt;
For local installations please contact &amp;#039;&amp;#039;admin (at) mh-svr dot de&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Browser Support ==&lt;br /&gt;
PoNG is tested with&lt;br /&gt;
* Firefox 27.0.1 (Ubuntu 13.10 64bit)&lt;br /&gt;
* Safari (iPad, iOS 7)&lt;br /&gt;
* Chrome on Android&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=PoNG&amp;diff=184</id>
		<title>PoNG</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=PoNG&amp;diff=184"/>
		<updated>2015-02-22T18:15:15Z</updated>

		<summary type="html">&lt;p&gt;Mh: /* Layout Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:PoNG]]&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Quick Links:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* [[PoNG Modules]]&lt;br /&gt;
* [[PoNG Structure Specification]]&lt;br /&gt;
* [[PoNG Module Programming]]&lt;br /&gt;
&lt;br /&gt;
== Basic Idea ==&lt;br /&gt;
&lt;br /&gt;
=== Main Structure ===&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;portal&amp;#039;&amp;#039; has always a &amp;#039;&amp;#039;&amp;#039;header&amp;#039;&amp;#039;&amp;#039;, some &amp;#039;&amp;#039;&amp;#039;rows&amp;#039;&amp;#039;&amp;#039; and a &amp;#039;&amp;#039;&amp;#039;footer&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
[[Datei:Pong-struct-1.png|200px]]&lt;br /&gt;
&lt;br /&gt;
You can specify the hight of each row individually.&lt;br /&gt;
&lt;br /&gt;
=== Structured Views ===&lt;br /&gt;
A row can contain a &amp;#039;&amp;#039;&amp;#039;view&amp;#039;&amp;#039;&amp;#039; or a set of &amp;#039;&amp;#039;&amp;#039;columns&amp;#039;&amp;#039;&amp;#039; ...&lt;br /&gt;
&lt;br /&gt;
[[Datei:Pong-struct-2.png|200px]]&lt;br /&gt;
&lt;br /&gt;
... and columns can contain views or rows, containing views or ... (you understand?). You can define the width of each column.&lt;br /&gt;
&lt;br /&gt;
With this construct you should be able to do every possible arrangement of views.&lt;br /&gt;
&lt;br /&gt;
=== Views use Plug-Ins ===&lt;br /&gt;
Views can use ready to use plug-ins with different functionality&lt;br /&gt;
&lt;br /&gt;
[[Datei:Pong-struct-3a.png|300px]] &lt;br /&gt;
&lt;br /&gt;
There are also plug-ins for the header and footer, e.g. to display navigation bars, logos, link-lists or language switch buttons.&lt;br /&gt;
&lt;br /&gt;
=== Configure the Views ===&lt;br /&gt;
All views load their own configuration to initialize the view. The configuration comes from a web server or application server (dynamic configuration).&lt;br /&gt;
&lt;br /&gt;
[[Datei:Pong-struct-4.png|400px]]&lt;br /&gt;
&lt;br /&gt;
=== Data and Content in Views ===&lt;br /&gt;
After the initialization the view can load, modify, save or create data on a RESTful server backend. I.e. the WIKI content plug-in can load pages from a MediaWiki server.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Pong-struct-5.png|400px]]&lt;br /&gt;
&lt;br /&gt;
=== ... and Action! ===&lt;br /&gt;
For a dynamic page, all views can do different interactions:&lt;br /&gt;
# Views can call functions on a HTTP server backend (via REST calls)&lt;br /&gt;
# Views can call update method of other views. These views typically call the server backend to load data.&lt;br /&gt;
# Views can load a view into a row or a column, replacing the view there.&lt;br /&gt;
# Views can navigate to another page. Hopefully another portal page.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Pong-struct-6.png|400px]]&lt;br /&gt;
&lt;br /&gt;
The interactions are defined in the configuration of the view. E.g. in a view using the form plug-in you can define a button to save the form data and triggering an update of a table view afterwards.&lt;br /&gt;
&lt;br /&gt;
Of course -- the description of the page layout and the content data should be in a machine readable format and precise enough, that your browser is able to understand it. But these description of layout and data must still be human readable, self explaining and without HTML or JS coding necessary.&lt;br /&gt;
&lt;br /&gt;
Please read also the [[PoNG Description]].&lt;br /&gt;
&lt;br /&gt;
== A Quick Start in 2 min (local installation) ==&lt;br /&gt;
You need a (simple) Web Server, so install Apache package on you Unix or get e.g. XAMPP or ... or ...&lt;br /&gt;
# Download the [[PoNG_Static_HTML_Distribution|static HTML distribution]] package [[http://keller.minidns.net/mh/pong_v0.3a1.zip here]] (523 kB)&lt;br /&gt;
# Unpack the archive into your web server HTML directory, e.g. /var/www/portal&lt;br /&gt;
# Point your web browser to the portal root, e.g. http://mydomain.com/portal &lt;br /&gt;
&lt;br /&gt;
Start [[PoNG_Static_HTML_Distribution#Start_customizing_the_static_portal|customizing the portal]] ...&lt;br /&gt;
&lt;br /&gt;
== PoNG: Portal as a Service ==&lt;br /&gt;
We offer a [[Portal as a Service]] for free (v0.3 beta test phase). &lt;br /&gt;
&lt;br /&gt;
You can sign up an account and design a new portal on our [http://mh-svr.de/portal/ Portal as a Service] with seconds.&lt;br /&gt;
&lt;br /&gt;
== Layout Configuration ==&lt;br /&gt;
The layout-structure is a JSON file, requested by the layout resource. By default the &amp;lt;tt&amp;gt;/svc/layout/main/structure&amp;lt;/tt&amp;gt; is loaded first. &lt;br /&gt;
&lt;br /&gt;
Your site may have other layouts than &amp;quot;main&amp;quot;, e.g. &amp;lt;tt&amp;gt;/svc/layout/admin/structure&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== The &amp;quot;structure&amp;quot; JSON format ===&lt;br /&gt;
[[Datei:PoNG Example1.png|right|350px]]&lt;br /&gt;
The basic object hierarchy of the objects are:&lt;br /&gt;
* layout&lt;br /&gt;
** title &lt;br /&gt;
** header&lt;br /&gt;
** rows&lt;br /&gt;
*** cols &lt;br /&gt;
**** rows&lt;br /&gt;
***** ...&lt;br /&gt;
** footer&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;rows&amp;lt;/code&amp;gt; can contain either nested &amp;lt;code&amp;gt;cols&amp;lt;/code&amp;gt; or alternatively a resource. The same for &amp;lt;code&amp;gt;cols&amp;lt;/code&amp;gt;. A resource specifies the URL, where to load information about the content, has some meta data to define its layout, actions and dialogs.&lt;br /&gt;
&lt;br /&gt;
You can get every possible layout with this nesting of rows, cols and resources.&lt;br /&gt;
&lt;br /&gt;
Please refer the [[PoNG Structure Specification]] for details.&lt;br /&gt;
&lt;br /&gt;
The example shows, that you can set up a complex portal page with different information resource views on it with a very view lines of meta data definition. The result of this example is shown on the screen shot on the right (no fake). BTW, I would describe it in this way: &amp;lt;i&amp;gt;&amp;quot;This &amp;quot;portal&amp;quot; has a header, then two rows, the second row contains two columns, and then there is a footer.&amp;quot;&amp;lt;/i&amp;gt; &lt;br /&gt;
&lt;br /&gt;
So how can you explain your browser this w/o any HTML code? Let&amp;#039;s try:&lt;br /&gt;
==== Example ====&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;layout&amp;quot;: {&lt;br /&gt;
    &amp;quot;title&amp;quot;: &amp;quot;Title&amp;quot;,&lt;br /&gt;
    &amp;quot;header&amp;quot;: {&lt;br /&gt;
      &amp;quot;logoURL&amp;quot;: &amp;quot;logo.png&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;rows&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;rowId&amp;quot;: &amp;quot;myBlog&amp;quot;,&lt;br /&gt;
        &amp;quot;height&amp;quot;: &amp;quot;185px&amp;quot;,&lt;br /&gt;
        &amp;quot;resourceURL&amp;quot;: &amp;quot;blog&amp;quot;,&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;pong-list&amp;quot;,&lt;br /&gt;
        &amp;quot;decor&amp;quot; : &amp;quot;decor&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;rowId&amp;quot;: &amp;quot;r1&amp;quot;,&lt;br /&gt;
        &amp;quot;height&amp;quot;: &amp;quot;450px&amp;quot;,&lt;br /&gt;
        &amp;quot;cols&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;columnId&amp;quot;: &amp;quot;tbl&amp;quot;,&lt;br /&gt;
            &amp;quot;width&amp;quot;: &amp;quot;40%&amp;quot;,&lt;br /&gt;
            &amp;quot;resourceURL&amp;quot;: &amp;quot;resX&amp;quot;,&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;pong-table&amp;quot;,&lt;br /&gt;
            &amp;quot;decor&amp;quot; : &amp;quot;decor&amp;quot;,&lt;br /&gt;
            &amp;quot;actions&amp;quot; : [ { &amp;quot;actionName&amp;quot;: &amp;quot;Help&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;pong-help&amp;quot; } ]&lt;br /&gt;
          },&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;columnId&amp;quot;: &amp;quot;plot&amp;quot;,&lt;br /&gt;
            &amp;quot;width&amp;quot;: &amp;quot;60%&amp;quot;,&lt;br /&gt;
            &amp;quot;decor&amp;quot; : &amp;quot;decor&amp;quot;,&lt;br /&gt;
            &amp;quot;resourceURL&amp;quot;: &amp;quot;gnuplot&amp;quot;,&lt;br /&gt;
            &amp;quot;callback&amp;quot;: &amp;quot;grmh()&amp;quot;,&lt;br /&gt;
            &amp;quot;actions&amp;quot; : [ { &amp;quot;actionName&amp;quot;: &amp;quot;Config&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;modal-form&amp;quot; } ]&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;footer&amp;quot;: {&lt;br /&gt;
      &amp;quot;copyrightText&amp;quot;: &amp;quot;Copyright 2015, MH.&amp;quot;,&lt;br /&gt;
      &amp;quot;linkList&amp;quot;: [&lt;br /&gt;
      	{ &amp;quot;text&amp;quot;:&amp;quot;Impressum&amp;quot;, &amp;quot;url&amp;quot;: &amp;quot;impress.html&amp;quot;},&lt;br /&gt;
      	{ &amp;quot;text&amp;quot;:&amp;quot;Privacy Note&amp;quot;, &amp;quot;url&amp;quot;: &amp;quot;privacy.html&amp;quot;}&lt;br /&gt;
      ]	&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
This example layout structure will result in a &amp;quot;myBlog&amp;quot; box of full width and below are two columns, one with the &amp;quot;resX&amp;quot; and the other smaller one with a &amp;quot;plot&amp;quot;. If you just starts with this file, all views will be empty, because no one defined the resource details, that are just resource names at the moment.&lt;br /&gt;
&lt;br /&gt;
And if you think, the there is a bunch of work in defining e.g. the &amp;quot;blog&amp;quot;, then check out, what is [[PoNG Module: List View|the todo of this resource definition]].&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;[http://mh-svr.de/PoNG/ Test the prototype]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Installation Manual ==&lt;br /&gt;
Please refer also the [[PoNG Release Notes]].&lt;br /&gt;
=== Static HTML Installation ===&lt;br /&gt;
Perhaps you start here. Since PoNG is client centric, you can play a lot with a static backend. You can focus on implementing, configuring or integrating REST web services and view the data in the browser.&lt;br /&gt;
 &lt;br /&gt;
Simply load and extract the [[PoNG Static HTML Distribution]] to any subdirectory of your web server and customize the structure file &amp;lt;code&amp;gt;/svc/layout/main/structure&amp;lt;/code&amp;gt;, logo and CSS files to your needs.&lt;br /&gt;
&lt;br /&gt;
=== Tomcat based Installation ===&lt;br /&gt;
TODO&lt;br /&gt;
=== PHP based Installation ===&lt;br /&gt;
Simply load and extract the [[PoNG PHP Backend]] to any subdirectory of your PHP/MySQL-enabled web server. &lt;br /&gt;
&lt;br /&gt;
IMPORTANT: The [[PoNG PHP Backend]] is work in progress.&lt;br /&gt;
&lt;br /&gt;
== Browser Support ==&lt;br /&gt;
PoNG is tested with&lt;br /&gt;
* Firefox 27.0.1 (Ubuntu 13.10 64bit)&lt;br /&gt;
* Safari (iPad, iOS 7)&lt;br /&gt;
* Chrome on Android&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=Portal_as_a_Service&amp;diff=183</id>
		<title>Portal as a Service</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=Portal_as_a_Service&amp;diff=183"/>
		<updated>2015-02-22T09:21:22Z</updated>

		<summary type="html">&lt;p&gt;Mh: /* How do I start? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ [[Category:PoNG]]&lt;br /&gt;
== What is it? ==&lt;br /&gt;
* It is a web based configuration for PoNG portals.&lt;br /&gt;
* It is a hosting for PoNG portals designed by you.&lt;br /&gt;
* It is free! [[Portal_as_a_Service#Disclaimer|*]]&lt;br /&gt;
&lt;br /&gt;
== How do I start? ==&lt;br /&gt;
# Create your account on the [http://mh-svr/portal/ Portal as a Service page]. &lt;br /&gt;
# Log in with your account and create a new Portal&lt;br /&gt;
# Click &amp;#039;&amp;#039;Customize&amp;#039;&amp;#039; to jump to the portal administration page&lt;br /&gt;
# Add a page and click &amp;#039;&amp;#039;Edit&amp;#039;&amp;#039;&lt;br /&gt;
# You can use the interactive &amp;#039;&amp;#039;&amp;#039;Page Layout Designer&amp;#039;&amp;#039;&amp;#039; to create your portal page &lt;br /&gt;
# Click the page name in the layout designer to jump to your new portal page and preview it.&lt;br /&gt;
&lt;br /&gt;
== Page Layout Designer Guide ==&lt;br /&gt;
You can create page layouts interactively:&lt;br /&gt;
&lt;br /&gt;
[[Datei:PoNG LayoutDesigner.png]]&lt;br /&gt;
&lt;br /&gt;
The basic layout structure is are &amp;#039;&amp;#039;&amp;#039;rows&amp;#039;&amp;#039;&amp;#039;, containing views. You can add rows using the &amp;#039;&amp;#039;horizontal split&amp;#039;&amp;#039; button. Using the &amp;#039;&amp;#039;vertical split&amp;#039;&amp;#039; button, you can convert the rows view into a &amp;#039;&amp;#039;&amp;#039;set of columns&amp;#039;&amp;#039;&amp;#039; containing views. With the &amp;#039;&amp;#039;vertical split button&amp;#039;&amp;#039;, you can concert a column view  into a set of rows.&lt;br /&gt;
&lt;br /&gt;
At the end you are able to create any layout with a hierarchy of rows and columns,&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
This is a &amp;#039;&amp;#039;&amp;#039;free public beta test&amp;#039;&amp;#039;&amp;#039; of the &amp;#039;&amp;#039;Portal NG&amp;#039;&amp;#039; SERVICE.&lt;br /&gt;
&lt;br /&gt;
The beta test may end at any time. Any data and configuration stored inside the SERVICE may be removed at any time. &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Important:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
THE SERVICE IS PROVIDED &amp;quot;AS IS&amp;quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR&lt;br /&gt;
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,&lt;br /&gt;
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE&lt;br /&gt;
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER&lt;br /&gt;
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,&lt;br /&gt;
OUT OF OR IN CONNECTION WITH THE SERVICE OR THE USE OR OTHER DEALINGS IN&lt;br /&gt;
THE SERVICE.&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=Portal_as_a_Service&amp;diff=182</id>
		<title>Portal as a Service</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=Portal_as_a_Service&amp;diff=182"/>
		<updated>2015-02-22T09:20:14Z</updated>

		<summary type="html">&lt;p&gt;Mh: Die Seite wurde neu angelegt: „__NOTOC__ Category:PoNG == What is it? == * It is a web based configuration for PoNG portals. * It is a hosting for PoNG portals designed by you. * It is f…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ [[Category:PoNG]]&lt;br /&gt;
== What is it? ==&lt;br /&gt;
* It is a web based configuration for PoNG portals.&lt;br /&gt;
* It is a hosting for PoNG portals designed by you.&lt;br /&gt;
* It is free! [[Portal_as_a_Service#Disclaimer|*]]&lt;br /&gt;
&lt;br /&gt;
== How do I start? ==&lt;br /&gt;
# Create your account on the [http://mh-svr/portal/ Portal as a Service page]. &lt;br /&gt;
# Log in with your account and create a new Portal&lt;br /&gt;
# Click &amp;#039;&amp;#039;Customize&amp;#039;&amp;#039; to jump to the portal administration page&lt;br /&gt;
# Add a page and click &amp;#039;&amp;#039;Edit&amp;#039;&amp;#039;&lt;br /&gt;
# You can use the interactive [[Portal as a Service#Page Layout Designer Guide| page layout designer]] to create your portal page &lt;br /&gt;
# Click the page name in the layout designer to jump to your new portal page and preview it.&lt;br /&gt;
&lt;br /&gt;
== Page Layout Designer Guide ==&lt;br /&gt;
You can create page layouts interactively:&lt;br /&gt;
&lt;br /&gt;
[[Datei:PoNG LayoutDesigner.png]]&lt;br /&gt;
&lt;br /&gt;
The basic layout structure is are &amp;#039;&amp;#039;&amp;#039;rows&amp;#039;&amp;#039;&amp;#039;, containing views. You can add rows using the &amp;#039;&amp;#039;horizontal split&amp;#039;&amp;#039; button. Using the &amp;#039;&amp;#039;vertical split&amp;#039;&amp;#039; button, you can convert the rows view into a &amp;#039;&amp;#039;&amp;#039;set of columns&amp;#039;&amp;#039;&amp;#039; containing views. With the &amp;#039;&amp;#039;vertical split button&amp;#039;&amp;#039;, you can concert a column view  into a set of rows.&lt;br /&gt;
&lt;br /&gt;
At the end you are able to create any layout with a hierarchy of rows and columns,&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
This is a &amp;#039;&amp;#039;&amp;#039;free public beta test&amp;#039;&amp;#039;&amp;#039; of the &amp;#039;&amp;#039;Portal NG&amp;#039;&amp;#039; SERVICE.&lt;br /&gt;
&lt;br /&gt;
The beta test may end at any time. Any data and configuration stored inside the SERVICE may be removed at any time. &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Important:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
THE SERVICE IS PROVIDED &amp;quot;AS IS&amp;quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR&lt;br /&gt;
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,&lt;br /&gt;
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE&lt;br /&gt;
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER&lt;br /&gt;
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,&lt;br /&gt;
OUT OF OR IN CONNECTION WITH THE SERVICE OR THE USE OR OTHER DEALINGS IN&lt;br /&gt;
THE SERVICE.&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=Datei:PoNG_LayoutDesigner.png&amp;diff=181</id>
		<title>Datei:PoNG LayoutDesigner.png</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=Datei:PoNG_LayoutDesigner.png&amp;diff=181"/>
		<updated>2015-02-22T09:20:09Z</updated>

		<summary type="html">&lt;p&gt;Mh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=PoNG_Static_HTML_Distribution&amp;diff=180</id>
		<title>PoNG Static HTML Distribution</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=PoNG_Static_HTML_Distribution&amp;diff=180"/>
		<updated>2015-02-22T07:50:32Z</updated>

		<summary type="html">&lt;p&gt;Mh: /* PoNG Quick Start: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Static does not mean, the [[PoNG]] portal is not dynamic -- it just needs only a static backend!! So no need of PHP or Tomcat or JEE servers ...&lt;br /&gt;
&lt;br /&gt;
Please also check the [[PoNG Release Notes]].&lt;br /&gt;
&lt;br /&gt;
== [[PoNG]] Quick Start: ==&lt;br /&gt;
The &amp;#039;&amp;#039;PoNG JS Framework V0.3&amp;#039;&amp;#039; and the &amp;#039;&amp;#039;PoNG Static HTML Distribution V0.3&amp;#039;&amp;#039; are released under [[PoNG_Static_HTML_Distribution#PoNG_License|MIT License]]&lt;br /&gt;
# Download the static html package [http://mh-svr.de/downloads/pong_0.3.zip here (V0.3, 620 kB)] &lt;br /&gt;
# Unpack the archive into your web server html directory, e.g. &amp;lt;code&amp;gt;/var/www/portal&amp;lt;/code&amp;gt;&lt;br /&gt;
# Start the web browser and point it to the portal root, e.g. &amp;lt;code&amp;gt;http://mydomain.com/portal&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The portal contains two pages, one static welcome page and a second form type page.&lt;br /&gt;
&lt;br /&gt;
Please read the [[PoNG|abstract]] to understand [[PoNG Description|the idea and vision]].&lt;br /&gt;
&lt;br /&gt;
[[Category:PoNG]]&lt;br /&gt;
&lt;br /&gt;
== What is inside the install package ==&lt;br /&gt;
{| &lt;br /&gt;
| . || index.html  ||  an empty page, just to initialize the framework -- there is no need to edit this file&lt;br /&gt;
|-&lt;br /&gt;
| . || nav  ||                      [[PoNG_Structure_Specification#JSON_basics|JSON]] to define the navigation bar&amp;#039;s items&lt;br /&gt;
|-&lt;br /&gt;
| /i18n/ || ||                     translation packages, add your translations here&lt;br /&gt;
|-&lt;br /&gt;
| /i18n/ ||    DE.json &lt;br /&gt;
|-&lt;br /&gt;
| /i18n/ ||     EN.json&lt;br /&gt;
|-&lt;br /&gt;
|  /css/ || ||                       style sheets to customize the look and feel&lt;br /&gt;
|-&lt;br /&gt;
| /css/ ||     custom.css ||             define your modifications here&lt;br /&gt;
|-&lt;br /&gt;
| /css/ ||    ... ||  other files, you won&amp;#039;t need to customize any of them&lt;br /&gt;
|-&lt;br /&gt;
|  /img/  || ... ||                     folder for graphic decoration and pictures&lt;br /&gt;
|-&lt;br /&gt;
| /js/ || ||  The heart of the framework &lt;br /&gt;
|-&lt;br /&gt;
| /js/ ||    portal-ng-XY.js     ||    (main framework&lt;br /&gt;
|-&lt;br /&gt;
| /js/ ||    portal-ng-modules.js  ||  (modules hook list&lt;br /&gt;
|-&lt;br /&gt;
| /js/ ||    /pong-modules      ||     ... folder with some ready to use plug ins ...&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| /svc/  ||  ||                  your services, should deliver [[PoNG_Structure_Specification#JSON_basics|JSON]] data, HTML and JS content&lt;br /&gt;
|-&lt;br /&gt;
| /svc/layout/ ||   ||             serve [[PoNG_Structure_Specification|JSON config]] for portal pages&lt;br /&gt;
|-&lt;br /&gt;
| /svc/layout/main/ || structure || [[PoNG_Structure_Specification#JSON_basics|JSON]] to define start page and main layout,  other layouts may include the header and footer from here&lt;br /&gt;
|-&lt;br /&gt;
|  /svc/layout/test/ || structure || JSON for a layout with two rows, with a form in the 1st row and two columns for output in the second row&lt;br /&gt;
|-&lt;br /&gt;
|  /svc/test/            ||  ||  This is a REST service&lt;br /&gt;
|-&lt;br /&gt;
|  /svc/test/   || pong-form ||      [[PoNG_Structure_Specification#JSON_basics|JSON]] to initialize the [[PoNG Module: Form View|web form]] and the actions)&lt;br /&gt;
|-&lt;br /&gt;
|  /svc/test/info/       || (index.html) ||      delivers dummy output for the &amp;quot;info&amp;quot; button&lt;br /&gt;
|-&lt;br /&gt;
|  /svc/test/check/      || (index.html) ||      delivers dummy output for the &amp;quot;check&amp;quot; button&lt;br /&gt;
|-&lt;br /&gt;
|  /svc/test/help/       || (index.html) ||      PHP -ui- to deliver help text in different languages&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Start customizing the static portal ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1:&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
Customize the [[PoNG Module: Navigation Bar|nav bar]] by editing the &amp;lt;code&amp;gt;nav&amp;lt;/code&amp;gt; file. &lt;br /&gt;
&lt;br /&gt;
If you add an item, e.g. &amp;quot;blah&amp;quot;, you have to add a layout file, so &amp;lt;code&amp;gt;/svc/layout/blah/structure&amp;lt;/code&amp;gt;, refer &amp;quot;step 2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 2:&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
Customize the [[PoNG_Structure_Specification|layout specification]]: &lt;br /&gt;
* Customize the [[PoNG_Structure_Specification#Header|header]] and [[PoNG_Structure_Specification#Footer|footer]] as you like. I think you may want to replace the logo. &lt;br /&gt;
* Edit the [[PoNG_Structure_Specification|structure file]] and define your own set of rows and columns and point them to [[PoNG_Structure_Specification#Resources|resources]] and [[PoNG Modules|define module]] types. Now you have to configure the resources and modules, refer &amp;quot;step 3&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 3:&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
The resources are &amp;quot;folders&amp;quot; in the static backend, so you have to create the folders with the resource names (specified in &amp;quot;step 2&amp;quot;) and put the module config there to tell the [[PoNG Modules|module plug-ins]], how to deal with the content of the resource.&lt;br /&gt;
&lt;br /&gt;
== Shared scipts and CSSs ==&lt;br /&gt;
To share the JS scripts for modules and CSS files you can modify the main &amp;lt;code&amp;gt;index.html&amp;lt;/code&amp;gt; file. By default a relative path to subdirectories is used.&lt;br /&gt;
&lt;br /&gt;
To change the loaders, please search and modify the following section in the &amp;lt;code&amp;gt;index.html&amp;lt;/code&amp;gt;:&lt;br /&gt;
 // EDIT THIS VAR TO SHARE THE INSTALL PACKAGES &lt;br /&gt;
 var cssPath = &amp;quot;css/&amp;quot;;&lt;br /&gt;
 var jsPath  = &amp;quot;js/&amp;quot;;&lt;br /&gt;
 var modulesJsPath  = &amp;quot;js/pong-modules/&amp;quot;;&lt;br /&gt;
 var modulesCssPath  = &amp;quot;css/pong-modules/&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PoNG License ==&lt;br /&gt;
The MIT License (MIT)&lt;br /&gt;
&lt;br /&gt;
Copyright (c) 2014 Markus Harms, ma@mh-svr.de&lt;br /&gt;
&lt;br /&gt;
Permission is hereby granted, free of charge, to any person obtaining a copy&lt;br /&gt;
of this software and associated documentation files (the &amp;quot;Software&amp;quot;), to deal&lt;br /&gt;
in the Software without restriction, including without limitation the rights&lt;br /&gt;
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell&lt;br /&gt;
copies of the Software, and to permit persons to whom the Software is&lt;br /&gt;
furnished to do so, subject to the following conditions:&lt;br /&gt;
&lt;br /&gt;
The above copyright notice and this permission notice shall be included in&lt;br /&gt;
all copies or substantial portions of the Software.&lt;br /&gt;
&lt;br /&gt;
THE SOFTWARE IS PROVIDED &amp;quot;AS IS&amp;quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR&lt;br /&gt;
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,&lt;br /&gt;
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE&lt;br /&gt;
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER&lt;br /&gt;
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,&lt;br /&gt;
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN&lt;br /&gt;
THE SOFTWARE.&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=PoNG_Static_HTML_Distribution&amp;diff=179</id>
		<title>PoNG Static HTML Distribution</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=PoNG_Static_HTML_Distribution&amp;diff=179"/>
		<updated>2015-02-22T07:46:45Z</updated>

		<summary type="html">&lt;p&gt;Mh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Static does not mean, the [[PoNG]] portal is not dynamic -- it just needs only a static backend!! So no need of PHP or Tomcat or JEE servers ...&lt;br /&gt;
&lt;br /&gt;
Please also check the [[PoNG Release Notes]].&lt;br /&gt;
&lt;br /&gt;
== [[PoNG]] Quick Start: ==&lt;br /&gt;
# Download the static html package [http://mh-svr.de/downloads/pong_0.3.zip here (V0.3, 620 kB)] &lt;br /&gt;
# Unpack the archive into your web server html directory, e.g. &amp;lt;code&amp;gt;/var/www/portal&amp;lt;/code&amp;gt;&lt;br /&gt;
# Start the web browser and point it to the portal root, e.g. &amp;lt;code&amp;gt;http://mydomain.com/portal&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The portal contains two pages, one static welcome page and a second form type page.&lt;br /&gt;
&lt;br /&gt;
Please read the [[PoNG|abstract]] to understand [[PoNG Description|the idea and vision]].&lt;br /&gt;
&lt;br /&gt;
[[Category:PoNG]]&lt;br /&gt;
&lt;br /&gt;
== What is inside the install package ==&lt;br /&gt;
{| &lt;br /&gt;
| . || index.html  ||  an empty page, just to initialize the framework -- there is no need to edit this file&lt;br /&gt;
|-&lt;br /&gt;
| . || nav  ||                      [[PoNG_Structure_Specification#JSON_basics|JSON]] to define the navigation bar&amp;#039;s items&lt;br /&gt;
|-&lt;br /&gt;
| /i18n/ || ||                     translation packages, add your translations here&lt;br /&gt;
|-&lt;br /&gt;
| /i18n/ ||    DE.json &lt;br /&gt;
|-&lt;br /&gt;
| /i18n/ ||     EN.json&lt;br /&gt;
|-&lt;br /&gt;
|  /css/ || ||                       style sheets to customize the look and feel&lt;br /&gt;
|-&lt;br /&gt;
| /css/ ||     custom.css ||             define your modifications here&lt;br /&gt;
|-&lt;br /&gt;
| /css/ ||    ... ||  other files, you won&amp;#039;t need to customize any of them&lt;br /&gt;
|-&lt;br /&gt;
|  /img/  || ... ||                     folder for graphic decoration and pictures&lt;br /&gt;
|-&lt;br /&gt;
| /js/ || ||  The heart of the framework &lt;br /&gt;
|-&lt;br /&gt;
| /js/ ||    portal-ng-XY.js     ||    (main framework&lt;br /&gt;
|-&lt;br /&gt;
| /js/ ||    portal-ng-modules.js  ||  (modules hook list&lt;br /&gt;
|-&lt;br /&gt;
| /js/ ||    /pong-modules      ||     ... folder with some ready to use plug ins ...&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| /svc/  ||  ||                  your services, should deliver [[PoNG_Structure_Specification#JSON_basics|JSON]] data, HTML and JS content&lt;br /&gt;
|-&lt;br /&gt;
| /svc/layout/ ||   ||             serve [[PoNG_Structure_Specification|JSON config]] for portal pages&lt;br /&gt;
|-&lt;br /&gt;
| /svc/layout/main/ || structure || [[PoNG_Structure_Specification#JSON_basics|JSON]] to define start page and main layout,  other layouts may include the header and footer from here&lt;br /&gt;
|-&lt;br /&gt;
|  /svc/layout/test/ || structure || JSON for a layout with two rows, with a form in the 1st row and two columns for output in the second row&lt;br /&gt;
|-&lt;br /&gt;
|  /svc/test/            ||  ||  This is a REST service&lt;br /&gt;
|-&lt;br /&gt;
|  /svc/test/   || pong-form ||      [[PoNG_Structure_Specification#JSON_basics|JSON]] to initialize the [[PoNG Module: Form View|web form]] and the actions)&lt;br /&gt;
|-&lt;br /&gt;
|  /svc/test/info/       || (index.html) ||      delivers dummy output for the &amp;quot;info&amp;quot; button&lt;br /&gt;
|-&lt;br /&gt;
|  /svc/test/check/      || (index.html) ||      delivers dummy output for the &amp;quot;check&amp;quot; button&lt;br /&gt;
|-&lt;br /&gt;
|  /svc/test/help/       || (index.html) ||      PHP -ui- to deliver help text in different languages&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Start customizing the static portal ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1:&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
Customize the [[PoNG Module: Navigation Bar|nav bar]] by editing the &amp;lt;code&amp;gt;nav&amp;lt;/code&amp;gt; file. &lt;br /&gt;
&lt;br /&gt;
If you add an item, e.g. &amp;quot;blah&amp;quot;, you have to add a layout file, so &amp;lt;code&amp;gt;/svc/layout/blah/structure&amp;lt;/code&amp;gt;, refer &amp;quot;step 2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 2:&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
Customize the [[PoNG_Structure_Specification|layout specification]]: &lt;br /&gt;
* Customize the [[PoNG_Structure_Specification#Header|header]] and [[PoNG_Structure_Specification#Footer|footer]] as you like. I think you may want to replace the logo. &lt;br /&gt;
* Edit the [[PoNG_Structure_Specification|structure file]] and define your own set of rows and columns and point them to [[PoNG_Structure_Specification#Resources|resources]] and [[PoNG Modules|define module]] types. Now you have to configure the resources and modules, refer &amp;quot;step 3&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 3:&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
The resources are &amp;quot;folders&amp;quot; in the static backend, so you have to create the folders with the resource names (specified in &amp;quot;step 2&amp;quot;) and put the module config there to tell the [[PoNG Modules|module plug-ins]], how to deal with the content of the resource.&lt;br /&gt;
&lt;br /&gt;
== Shared scipts and CSSs ==&lt;br /&gt;
To share the JS scripts for modules and CSS files you can modify the main &amp;lt;code&amp;gt;index.html&amp;lt;/code&amp;gt; file. By default a relative path to subdirectories is used.&lt;br /&gt;
&lt;br /&gt;
To change the loaders, please search and modify the following section in the &amp;lt;code&amp;gt;index.html&amp;lt;/code&amp;gt;:&lt;br /&gt;
 // EDIT THIS VAR TO SHARE THE INSTALL PACKAGES &lt;br /&gt;
 var cssPath = &amp;quot;css/&amp;quot;;&lt;br /&gt;
 var jsPath  = &amp;quot;js/&amp;quot;;&lt;br /&gt;
 var modulesJsPath  = &amp;quot;js/pong-modules/&amp;quot;;&lt;br /&gt;
 var modulesCssPath  = &amp;quot;css/pong-modules/&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PoNG License ==&lt;br /&gt;
The MIT License (MIT)&lt;br /&gt;
&lt;br /&gt;
Copyright (c) 2014 Markus Harms, ma@mh-svr.de&lt;br /&gt;
&lt;br /&gt;
Permission is hereby granted, free of charge, to any person obtaining a copy&lt;br /&gt;
of this software and associated documentation files (the &amp;quot;Software&amp;quot;), to deal&lt;br /&gt;
in the Software without restriction, including without limitation the rights&lt;br /&gt;
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell&lt;br /&gt;
copies of the Software, and to permit persons to whom the Software is&lt;br /&gt;
furnished to do so, subject to the following conditions:&lt;br /&gt;
&lt;br /&gt;
The above copyright notice and this permission notice shall be included in&lt;br /&gt;
all copies or substantial portions of the Software.&lt;br /&gt;
&lt;br /&gt;
THE SOFTWARE IS PROVIDED &amp;quot;AS IS&amp;quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR&lt;br /&gt;
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,&lt;br /&gt;
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE&lt;br /&gt;
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER&lt;br /&gt;
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,&lt;br /&gt;
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN&lt;br /&gt;
THE SOFTWARE.&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=PoNG&amp;diff=178</id>
		<title>PoNG</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=PoNG&amp;diff=178"/>
		<updated>2015-02-22T07:46:23Z</updated>

		<summary type="html">&lt;p&gt;Mh: /* PoNG License */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:PoNG]]&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Quick Links:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* [[PoNG Modules]]&lt;br /&gt;
* [[PoNG Structure Specification]]&lt;br /&gt;
* [[PoNG Module Programming]]&lt;br /&gt;
&lt;br /&gt;
== Basic Idea ==&lt;br /&gt;
&lt;br /&gt;
=== Main Structure ===&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;portal&amp;#039;&amp;#039; has always a &amp;#039;&amp;#039;&amp;#039;header&amp;#039;&amp;#039;&amp;#039;, some &amp;#039;&amp;#039;&amp;#039;rows&amp;#039;&amp;#039;&amp;#039; and a &amp;#039;&amp;#039;&amp;#039;footer&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
[[Datei:Pong-struct-1.png|200px]]&lt;br /&gt;
&lt;br /&gt;
You can specify the hight of each row individually.&lt;br /&gt;
&lt;br /&gt;
=== Structured Views ===&lt;br /&gt;
A row can contain a &amp;#039;&amp;#039;&amp;#039;view&amp;#039;&amp;#039;&amp;#039; or a set of &amp;#039;&amp;#039;&amp;#039;columns&amp;#039;&amp;#039;&amp;#039; ...&lt;br /&gt;
&lt;br /&gt;
[[Datei:Pong-struct-2.png|200px]]&lt;br /&gt;
&lt;br /&gt;
... and columns can contain views or rows, containing views or ... (you understand?). You can define the width of each column.&lt;br /&gt;
&lt;br /&gt;
With this construct you should be able to do every possible arrangement of views.&lt;br /&gt;
&lt;br /&gt;
=== Views use Plug-Ins ===&lt;br /&gt;
Views can use ready to use plug-ins with different functionality&lt;br /&gt;
&lt;br /&gt;
[[Datei:Pong-struct-3a.png|300px]] &lt;br /&gt;
&lt;br /&gt;
There are also plug-ins for the header and footer, e.g. to display navigation bars, logos, link-lists or language switch buttons.&lt;br /&gt;
&lt;br /&gt;
=== Configure the Views ===&lt;br /&gt;
All views load their own configuration to initialize the view. The configuration comes from a web server or application server (dynamic configuration).&lt;br /&gt;
&lt;br /&gt;
[[Datei:Pong-struct-4.png|400px]]&lt;br /&gt;
&lt;br /&gt;
=== Data and Content in Views ===&lt;br /&gt;
After the initialization the view can load, modify, save or create data on a RESTful server backend. I.e. the WIKI content plug-in can load pages from a MediaWiki server.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Pong-struct-5.png|400px]]&lt;br /&gt;
&lt;br /&gt;
=== ... and Action! ===&lt;br /&gt;
For a dynamic page, all views can do different interactions:&lt;br /&gt;
# Views can call functions on a HTTP server backend (via REST calls)&lt;br /&gt;
# Views can call update method of other views. These views typically call the server backend to load data.&lt;br /&gt;
# Views can load a view into a row or a column, replacing the view there.&lt;br /&gt;
# Views can navigate to another page. Hopefully another portal page.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Pong-struct-6.png|400px]]&lt;br /&gt;
&lt;br /&gt;
The interactions are defined in the configuration of the view. E.g. in a view using the form plug-in you can define a button to save the form data and triggering an update of a table view afterwards.&lt;br /&gt;
&lt;br /&gt;
Of course -- the description of the page layout and the content data should be in a machine readable format and precise enough, that your browser is able to understand it. But these description of layout and data must still be human readable, self explaining and without HTML or JS coding necessary.&lt;br /&gt;
&lt;br /&gt;
Please read also the [[PoNG Description]].&lt;br /&gt;
&lt;br /&gt;
== Layout Configuration ==&lt;br /&gt;
The layout-structure is a JSON file, requested by the layout resource. By default the &amp;lt;tt&amp;gt;/svc/layout/main/structure&amp;lt;/tt&amp;gt; is loaded first. &lt;br /&gt;
&lt;br /&gt;
Your site may have other layouts than &amp;quot;main&amp;quot;, e.g. &amp;lt;tt&amp;gt;/svc/layout/admin/structure&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== The &amp;quot;structure&amp;quot; JSON format ===&lt;br /&gt;
[[Datei:PoNG Example1.png|right|350px]]&lt;br /&gt;
The basic object hierarchy of the objects are:&lt;br /&gt;
* layout&lt;br /&gt;
** title &lt;br /&gt;
** header&lt;br /&gt;
** rows&lt;br /&gt;
*** cols &lt;br /&gt;
**** rows&lt;br /&gt;
***** ...&lt;br /&gt;
** footer&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;rows&amp;lt;/code&amp;gt; can contain either nested &amp;lt;code&amp;gt;cols&amp;lt;/code&amp;gt; or alternatively a resource. The same for &amp;lt;code&amp;gt;cols&amp;lt;/code&amp;gt;. A resource specifies the URL, where to load information about the content, has some meta data to define its layout, actions and dialogs.&lt;br /&gt;
&lt;br /&gt;
You can get every possible layout with this nesting of rows, cols and resources.&lt;br /&gt;
&lt;br /&gt;
Please refer the [[PoNG Structure Specification]] for details.&lt;br /&gt;
&lt;br /&gt;
The example shows, that you can set up a complex portal page with different information resource views on it with a very view lines of meta data definition. The result of this example is shown on the screen shot on the right (no fake). BTW, I would describe it in this way: &amp;lt;i&amp;gt;&amp;quot;This &amp;quot;portal&amp;quot; has a header, then two rows, the second row contains two columns, and then there is a footer.&amp;quot;&amp;lt;/i&amp;gt; &lt;br /&gt;
&lt;br /&gt;
So how can you explain your browser this w/o any HTML code? Let&amp;#039;s try:&lt;br /&gt;
==== Example ====&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;layout&amp;quot;: {&lt;br /&gt;
    &amp;quot;title&amp;quot;: &amp;quot;Title&amp;quot;,&lt;br /&gt;
    &amp;quot;header&amp;quot;: {&lt;br /&gt;
      &amp;quot;logoURL&amp;quot;: &amp;quot;logo.png&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;rows&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;rowId&amp;quot;: &amp;quot;myBlog&amp;quot;,&lt;br /&gt;
        &amp;quot;height&amp;quot;: &amp;quot;185px&amp;quot;,&lt;br /&gt;
        &amp;quot;resourceURL&amp;quot;: &amp;quot;blog&amp;quot;,&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;pong-list&amp;quot;,&lt;br /&gt;
        &amp;quot;decor&amp;quot; : &amp;quot;decor&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;rowId&amp;quot;: &amp;quot;r1&amp;quot;,&lt;br /&gt;
        &amp;quot;height&amp;quot;: &amp;quot;450px&amp;quot;,&lt;br /&gt;
        &amp;quot;cols&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;columnId&amp;quot;: &amp;quot;tbl&amp;quot;,&lt;br /&gt;
            &amp;quot;width&amp;quot;: &amp;quot;40%&amp;quot;,&lt;br /&gt;
            &amp;quot;resourceURL&amp;quot;: &amp;quot;resX&amp;quot;,&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;pong-table&amp;quot;,&lt;br /&gt;
            &amp;quot;decor&amp;quot; : &amp;quot;decor&amp;quot;,&lt;br /&gt;
            &amp;quot;actions&amp;quot; : [ { &amp;quot;actionName&amp;quot;: &amp;quot;Help&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;pong-help&amp;quot; } ]&lt;br /&gt;
          },&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;columnId&amp;quot;: &amp;quot;plot&amp;quot;,&lt;br /&gt;
            &amp;quot;width&amp;quot;: &amp;quot;60%&amp;quot;,&lt;br /&gt;
            &amp;quot;decor&amp;quot; : &amp;quot;decor&amp;quot;,&lt;br /&gt;
            &amp;quot;resourceURL&amp;quot;: &amp;quot;gnuplot&amp;quot;,&lt;br /&gt;
            &amp;quot;callback&amp;quot;: &amp;quot;grmh()&amp;quot;,&lt;br /&gt;
            &amp;quot;actions&amp;quot; : [ { &amp;quot;actionName&amp;quot;: &amp;quot;Config&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;modal-form&amp;quot; } ]&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;footer&amp;quot;: {&lt;br /&gt;
      &amp;quot;copyrightText&amp;quot;: &amp;quot;Copyright 2015, MH.&amp;quot;,&lt;br /&gt;
      &amp;quot;linkList&amp;quot;: [&lt;br /&gt;
      	{ &amp;quot;text&amp;quot;:&amp;quot;Impressum&amp;quot;, &amp;quot;url&amp;quot;: &amp;quot;impress.html&amp;quot;},&lt;br /&gt;
      	{ &amp;quot;text&amp;quot;:&amp;quot;Privacy Note&amp;quot;, &amp;quot;url&amp;quot;: &amp;quot;privacy.html&amp;quot;}&lt;br /&gt;
      ]	&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
This example layout structure will result in a &amp;quot;myBlog&amp;quot; box of full width and below are two columns, one with the &amp;quot;resX&amp;quot; and the other smaller one with a &amp;quot;plot&amp;quot;. If you just starts with this file, all views will be empty, because no one defined the resource details, that are just resource names at the moment.&lt;br /&gt;
&lt;br /&gt;
And if you think, the there is a bunch of work in defining e.g. the &amp;quot;blog&amp;quot;, then check out, what is [[PoNG Module: List View|the todo of this resource definition]].&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;[http://mh-svr.de/PoNG/ Test the prototype]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Installation Manual ==&lt;br /&gt;
Please refer also the [[PoNG Release Notes]].&lt;br /&gt;
=== Static HTML Installation ===&lt;br /&gt;
Perhaps you start here. Since PoNG is client centric, you can play a lot with a static backend. You can focus on implementing, configuring or integrating REST web services and view the data in the browser.&lt;br /&gt;
 &lt;br /&gt;
Simply load and extract the [[PoNG Static HTML Distribution]] to any subdirectory of your web server and customize the structure file &amp;lt;code&amp;gt;/svc/layout/main/structure&amp;lt;/code&amp;gt;, logo and CSS files to your needs.&lt;br /&gt;
&lt;br /&gt;
=== Tomcat based Installation ===&lt;br /&gt;
TODO&lt;br /&gt;
=== PHP based Installation ===&lt;br /&gt;
Simply load and extract the [[PoNG PHP Backend]] to any subdirectory of your PHP/MySQL-enabled web server. &lt;br /&gt;
&lt;br /&gt;
IMPORTANT: The [[PoNG PHP Backend]] is work in progress.&lt;br /&gt;
&lt;br /&gt;
== Browser Support ==&lt;br /&gt;
PoNG is tested with&lt;br /&gt;
* Firefox 27.0.1 (Ubuntu 13.10 64bit)&lt;br /&gt;
* Safari (iPad, iOS 7)&lt;br /&gt;
* Chrome on Android&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=PoNG_Static_HTML_Distribution&amp;diff=177</id>
		<title>PoNG Static HTML Distribution</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=PoNG_Static_HTML_Distribution&amp;diff=177"/>
		<updated>2015-02-19T07:17:46Z</updated>

		<summary type="html">&lt;p&gt;Mh: /* PoNG Quick Start: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Static does not mean, the [[PoNG]] portal is not dynamic -- it just needs only a static backend!! So no need of PHP or Tomcat or JEE servers ...&lt;br /&gt;
&lt;br /&gt;
Please also check the [[PoNG Release Notes]].&lt;br /&gt;
&lt;br /&gt;
== [[PoNG]] Quick Start: ==&lt;br /&gt;
# Download the static html package [http://mh-svr.de/downloads/pong_0.3.zip here (V0.3, 620 kB)] &lt;br /&gt;
# Unpack the archive into your web server html directory, e.g. &amp;lt;code&amp;gt;/var/www/portal&amp;lt;/code&amp;gt;&lt;br /&gt;
# Start the web browser and point it to the portal root, e.g. &amp;lt;code&amp;gt;http://mydomain.com/portal&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The portal contains two pages, one static welcome page and a second form type page.&lt;br /&gt;
&lt;br /&gt;
Please read the [[PoNG|abstract]] to understand [[PoNG Description|the idea and vision]].&lt;br /&gt;
&lt;br /&gt;
[[Category:PoNG]]&lt;br /&gt;
&lt;br /&gt;
== What is inside the install package ==&lt;br /&gt;
{| &lt;br /&gt;
| . || index.html  ||  an empty page, just to initialize the framework -- there is no need to edit this file&lt;br /&gt;
|-&lt;br /&gt;
| . || nav  ||                      [[PoNG_Structure_Specification#JSON_basics|JSON]] to define the navigation bar&amp;#039;s items&lt;br /&gt;
|-&lt;br /&gt;
| /i18n/ || ||                     translation packages, add your translations here&lt;br /&gt;
|-&lt;br /&gt;
| /i18n/ ||    DE.json &lt;br /&gt;
|-&lt;br /&gt;
| /i18n/ ||     EN.json&lt;br /&gt;
|-&lt;br /&gt;
|  /css/ || ||                       style sheets to customize the look and feel&lt;br /&gt;
|-&lt;br /&gt;
| /css/ ||     custom.css ||             define your modifications here&lt;br /&gt;
|-&lt;br /&gt;
| /css/ ||    ... ||  other files, you won&amp;#039;t need to customize any of them&lt;br /&gt;
|-&lt;br /&gt;
|  /img/  || ... ||                     folder for graphic decoration and pictures&lt;br /&gt;
|-&lt;br /&gt;
| /js/ || ||  The heart of the framework &lt;br /&gt;
|-&lt;br /&gt;
| /js/ ||    portal-ng-XY.js     ||    (main framework&lt;br /&gt;
|-&lt;br /&gt;
| /js/ ||    portal-ng-modules.js  ||  (modules hook list&lt;br /&gt;
|-&lt;br /&gt;
| /js/ ||    /pong-modules      ||     ... folder with some ready to use plug ins ...&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| /svc/  ||  ||                  your services, should deliver [[PoNG_Structure_Specification#JSON_basics|JSON]] data, HTML and JS content&lt;br /&gt;
|-&lt;br /&gt;
| /svc/layout/ ||   ||             serve [[PoNG_Structure_Specification|JSON config]] for portal pages&lt;br /&gt;
|-&lt;br /&gt;
| /svc/layout/main/ || structure || [[PoNG_Structure_Specification#JSON_basics|JSON]] to define start page and main layout,  other layouts may include the header and footer from here&lt;br /&gt;
|-&lt;br /&gt;
|  /svc/layout/test/ || structure || JSON for a layout with two rows, with a form in the 1st row and two columns for output in the second row&lt;br /&gt;
|-&lt;br /&gt;
|  /svc/test/            ||  ||  This is a REST service&lt;br /&gt;
|-&lt;br /&gt;
|  /svc/test/   || pong-form ||      [[PoNG_Structure_Specification#JSON_basics|JSON]] to initialize the [[PoNG Module: Form View|web form]] and the actions)&lt;br /&gt;
|-&lt;br /&gt;
|  /svc/test/info/       || (index.html) ||      delivers dummy output for the &amp;quot;info&amp;quot; button&lt;br /&gt;
|-&lt;br /&gt;
|  /svc/test/check/      || (index.html) ||      delivers dummy output for the &amp;quot;check&amp;quot; button&lt;br /&gt;
|-&lt;br /&gt;
|  /svc/test/help/       || (index.html) ||      PHP -ui- to deliver help text in different languages&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Start customizing the static portal ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 1:&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
Customize the [[PoNG Module: Navigation Bar|nav bar]] by editing the &amp;lt;code&amp;gt;nav&amp;lt;/code&amp;gt; file. &lt;br /&gt;
&lt;br /&gt;
If you add an item, e.g. &amp;quot;blah&amp;quot;, you have to add a layout file, so &amp;lt;code&amp;gt;/svc/layout/blah/structure&amp;lt;/code&amp;gt;, refer &amp;quot;step 2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 2:&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
Customize the [[PoNG_Structure_Specification|layout specification]]: &lt;br /&gt;
* Customize the [[PoNG_Structure_Specification#Header|header]] and [[PoNG_Structure_Specification#Footer|footer]] as you like. I think you may want to replace the logo. &lt;br /&gt;
* Edit the [[PoNG_Structure_Specification|structure file]] and define your own set of rows and columns and point them to [[PoNG_Structure_Specification#Resources|resources]] and [[PoNG Modules|define module]] types. Now you have to configure the resources and modules, refer &amp;quot;step 3&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step 3:&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
The resources are &amp;quot;folders&amp;quot; in the static backend, so you have to create the folders with the resource names (specified in &amp;quot;step 2&amp;quot;) and put the module config there to tell the [[PoNG Modules|module plug-ins]], how to deal with the content of the resource.&lt;br /&gt;
&lt;br /&gt;
== Shared scipts and CSSs ==&lt;br /&gt;
To share the JS scripts for modules and CSS files you can modify the main &amp;lt;code&amp;gt;index.html&amp;lt;/code&amp;gt; file. By default a relative path to subdirectories is used.&lt;br /&gt;
&lt;br /&gt;
To change the loaders, please search and modify the following section in the &amp;lt;code&amp;gt;index.html&amp;lt;/code&amp;gt;:&lt;br /&gt;
 // EDIT THIS VAR TO SHARE THE INSTALL PACKAGES &lt;br /&gt;
 var cssPath = &amp;quot;css/&amp;quot;;&lt;br /&gt;
 var jsPath  = &amp;quot;js/&amp;quot;;&lt;br /&gt;
 var modulesJsPath  = &amp;quot;js/pong-modules/&amp;quot;;&lt;br /&gt;
 var modulesCssPath  = &amp;quot;css/pong-modules/&amp;quot;;&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=PoNG_Release_Notes&amp;diff=176</id>
		<title>PoNG Release Notes</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=PoNG_Release_Notes&amp;diff=176"/>
		<updated>2015-02-19T07:15:25Z</updated>

		<summary type="html">&lt;p&gt;Mh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:PoNG]][[PoNG]] Releases:&lt;br /&gt;
* [[PoNG_Static_HTML_Distribution]] (please note: you don&amp;#039;t need more than that ;-)&lt;br /&gt;
* [[PoNG_PHP_Backend]]&lt;br /&gt;
== Version 0.3 ==&lt;br /&gt;
* General Improvements&lt;br /&gt;
** [[PoNG_Static_HTML_Distribution#Shared_scipts_and_CSSs|Config for JS/CSS location]]&lt;br /&gt;
** [[PoNG_Module_Programming#update|Update callback mechanism for modules]]&lt;br /&gt;
** [[PoNG_Structure_Specification#Resources|Module configuration can be embedded in structure file as &amp;#039;&amp;#039;moduleConfig&amp;#039;&amp;#039;]]&lt;br /&gt;
* Modules:&lt;br /&gt;
** [[PoNG Module: Form View|Form View]]&lt;br /&gt;
** [[PoNG_Module:_Table_View#Editable_Cells|Table with editable cells]]&lt;br /&gt;
** [[PoNG_Module:_List_View#Editable_Cells|List with editable cells]]&lt;br /&gt;
** Layout Editor&lt;br /&gt;
* Extras:&lt;br /&gt;
** [[PoNG_Module_Programming#Module_Template|Module template for programmers]]&lt;br /&gt;
** [[PoNG_PHP_Backend|PHP-BE: API to save layout and settings]]&lt;br /&gt;
* Fixes&lt;br /&gt;
** Display title also w/o decor&lt;br /&gt;
&lt;br /&gt;
== Version 0.2 ==&lt;br /&gt;
General:&lt;br /&gt;
* PHP Backend Base&lt;br /&gt;
* Header/Footer Improvements&lt;br /&gt;
* Allow links in Copyright&lt;br /&gt;
* Basic auth mechnism&lt;br /&gt;
&lt;br /&gt;
Modules:&lt;br /&gt;
* [[PoNG Module: MediaWiki View|MediaWiki]]&lt;br /&gt;
* Security Header &lt;br /&gt;
* [[PoNG Module: Master Details View|Master-Detail-Tables View]]&lt;br /&gt;
* [[PoNG Module: I18N|Internationalization]]&lt;br /&gt;
&lt;br /&gt;
== Version 0.1 ==&lt;br /&gt;
Features:&lt;br /&gt;
* Rendering of basic PoNG [[PoNG Structure Specification]]&lt;br /&gt;
* [[PoGN_Structure_Specification#Modal_dialogs|Modal dialog for views]]&lt;br /&gt;
* [[PoNG_Modules|Basic module and hook concept]]&lt;br /&gt;
* Hooks&lt;br /&gt;
** [[PoNG_Modules#addHeaderHtml|Header]] and [[PoNG_Modules#addFooterHtml|Footer]] hooks&lt;br /&gt;
** [[PoNG_Modules#addActionBtn|Action button]] and [[PoNG_Modules#creModal|modal dialog loader]]&lt;br /&gt;
** [[PoNG_Modules#loadResourcesHtml|Resource HTML loader]]&lt;br /&gt;
* Modules:&lt;br /&gt;
** [[PoNG Module: Table View|Table View]]&lt;br /&gt;
** [[PoNG Module: List View|List View]]&lt;br /&gt;
** [[PoNG Module: Form View|Form View]]&lt;br /&gt;
** [[PoNG Module: Modal Form Dialog|Modal Form Dialog]]&lt;br /&gt;
** [[PoNG Module: Help Dialog|Help Dialog]]&lt;br /&gt;
* Includes static out of the box demo&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=PoNG_Release_Notes&amp;diff=175</id>
		<title>PoNG Release Notes</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=PoNG_Release_Notes&amp;diff=175"/>
		<updated>2015-02-19T05:57:46Z</updated>

		<summary type="html">&lt;p&gt;Mh: /* Version 0.3 (beta) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:PoNG]][[PoNG]] Releases&lt;br /&gt;
== Version 0.3 ==&lt;br /&gt;
* General Improvements&lt;br /&gt;
** [[PoNG_Static_HTML_Distribution#Shared_scipts_and_CSSs|Config for JS/CSS location]]&lt;br /&gt;
** [[PoNG_Module_Programming#update|Update callback mechanism for modules]]&lt;br /&gt;
** [[PoNG_Structure_Specification#Resources|Module configuration can be embedded in structure file as &amp;#039;&amp;#039;moduleConfig&amp;#039;&amp;#039;]]&lt;br /&gt;
* Modules:&lt;br /&gt;
** [[PoNG Module: Form View|Form View]]&lt;br /&gt;
** [[PoNG_Module:_Table_View#Editable_Cells|Table with editable cells]]&lt;br /&gt;
** [[PoNG_Module:_List_View#Editable_Cells|List with editable cells]]&lt;br /&gt;
** Layout Editor&lt;br /&gt;
* Extras:&lt;br /&gt;
** [[PoNG_Module_Programming#Module_Template|Module template for programmers]]&lt;br /&gt;
** [[PoNG_PHP_Backend|PHP-BE: API to save layout and settings]]&lt;br /&gt;
* Fixes&lt;br /&gt;
** Display title also w/o decor&lt;br /&gt;
&lt;br /&gt;
== Version 0.2 ==&lt;br /&gt;
General:&lt;br /&gt;
* PHP Backend Base&lt;br /&gt;
* Header/Footer Improvements&lt;br /&gt;
* Allow links in Copyright&lt;br /&gt;
* Basic auth mechnism&lt;br /&gt;
&lt;br /&gt;
Modules:&lt;br /&gt;
* [[PoNG Module: MediaWiki View|MediaWiki]]&lt;br /&gt;
* Security Header &lt;br /&gt;
* [[PoNG Module: Master Details View|Master-Detail-Tables View]]&lt;br /&gt;
* [[PoNG Module: I18N|Internationalization]]&lt;br /&gt;
&lt;br /&gt;
== Version 0.1 ==&lt;br /&gt;
Features:&lt;br /&gt;
* Rendering of basic PoNG [[PoNG Structure Specification]]&lt;br /&gt;
* [[PoGN_Structure_Specification#Modal_dialogs|Modal dialog for views]]&lt;br /&gt;
* [[PoNG_Modules|Basic module and hook concept]]&lt;br /&gt;
* Hooks&lt;br /&gt;
** [[PoNG_Modules#addHeaderHtml|Header]] and [[PoNG_Modules#addFooterHtml|Footer]] hooks&lt;br /&gt;
** [[PoNG_Modules#addActionBtn|Action button]] and [[PoNG_Modules#creModal|modal dialog loader]]&lt;br /&gt;
** [[PoNG_Modules#loadResourcesHtml|Resource HTML loader]]&lt;br /&gt;
* Modules:&lt;br /&gt;
** [[PoNG Module: Table View|Table View]]&lt;br /&gt;
** [[PoNG Module: List View|List View]]&lt;br /&gt;
** [[PoNG Module: Form View|Form View]]&lt;br /&gt;
** [[PoNG Module: Modal Form Dialog|Modal Form Dialog]]&lt;br /&gt;
** [[PoNG Module: Help Dialog|Help Dialog]]&lt;br /&gt;
* Includes static out of the box demo&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
	<entry>
		<id>https://mh-svr.de/mw/index.php?title=PoNG_PHP_Backend&amp;diff=174</id>
		<title>PoNG PHP Backend</title>
		<link rel="alternate" type="text/html" href="https://mh-svr.de/mw/index.php?title=PoNG_PHP_Backend&amp;diff=174"/>
		<updated>2015-02-19T05:56:54Z</updated>

		<summary type="html">&lt;p&gt;Mh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Request per mail: &amp;#039;&amp;#039;&amp;#039;ma (at) mh-svr dot de&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Installation steps:&lt;br /&gt;
# Run the (MySQL) SQL script to install the required tables&lt;br /&gt;
# Unzip the PHP backend package into your web server&lt;br /&gt;
# Open the base URL in the browser&lt;/div&gt;</summary>
		<author><name>Mh</name></author>
		
	</entry>
</feed>