PoNG: Unterschied zwischen den Versionen

Aus MH
Wechseln zu: Navigation, Suche
(Example)
Zeile 1: Zeile 1:
Please read the [[PoNG Description]] first![[Category:PoNG]]
+
[[Category:PoNG]]
 
+
'''Quick Links:'''
Searching for:
 
 
* [[PoNG Modules]]
 
* [[PoNG Modules]]
 
* [[PoNG Structure Specification]]
 
* [[PoNG Structure Specification]]
 
* [[PoNG Module Programming]]
 
* [[PoNG Module Programming]]
 +
 +
== Basic Idea ==
 +
 +
Please read the [[PoNG Description]].
  
 
== Layout Configuration ==
 
== Layout Configuration ==

Version vom 17. Februar 2015, 07:05 Uhr

Quick Links:

Basic Idea

Please read the PoNG Description.

Layout Configuration

The layout-structure is a JSON file, requested by the layout resource. By default the /svc/layout/main/structure is loaded first.

Your site may have other layouts than "main", e.g. /svc/layout/admin/structure.

The "structure" JSON format

PoNG Example1.png

The basic object hierarchy of the objects are:

  • layout
    • title
    • header
    • rows
      • cols
        • rows
          • ...
    • footer

The rows can contain either nested cols or alternatively a resource. The same for cols. A resource specifies the URL, where to load information about the content, has some meta data to define its layout, actions and dialogs.

You can get every possible layout with this nesting of rows, cols and resources.

Please refer the PoNG Structure Specification for details.

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: "This "portal" has a header, then two rows, the second row contains two columns, and then there is a footer."

So how can you explain your browser this w/o any HTML code? Let's try:

Example

{
 "layout": {
   "title": "Title",
   "header": {
     "logoURL": "logo.png"
   },
   "rows": [
     {
       "rowId": "myBlog",
       "height": "185px",
       "resourceURL": "blog",
       "type": "pong-list",
       "decor" : "decor"
     },
     {
       "rowId": "r1",
       "height": "450px",
       "cols": [
         {
           "columnId": "tbl",
           "width": "40%",
           "resourceURL": "resX",
           "type": "pong-table",
           "decor" : "decor",
           "actions" : [ { "actionName": "Help", "type": "pong-help" } ]
         },
         {
           "columnId": "plot",
           "width": "60%",
           "decor" : "decor",
           "resourceURL": "gnuplot",
           "callback": "grmh()",
           "actions" : [ { "actionName": "Config", "type": "modal-form" } ]
         }
       ]
     }
   ],
   "footer": {
     "copyrightText": "Copyright 2015, MH.",
     "linkList": [
     	{ "text":"Impressum", "url": "impress.html"},
     	{ "text":"Privacy Note", "url": "privacy.html"}
     ]	
   }
 }
}

This example layout structure will result in a "myBlog" box of full width and below are two columns, one with the "resX" and the other smaller one with a "plot". 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.

And if you think, the there is a bunch of work in defining e.g. the "blog", then check out, what is the todo of this resource definition.

Test the prototype

Installation Manual

Please refer also the PoNG Release Notes.

Static HTML Installation

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.

Simply load and extract the PoNG Static HTML Distribution to any subdirectory of your web server and customize the structure file /svc/layout/main/structure, logo and CSS files to your needs.

Tomcat based Installation

TODO

PHP based Installation

Simply load and extract the PoNG PHP Backend to any subdirectory of your PHP/MySQL-enabled web server.

IMPORTANT: The PoNG PHP Backend is work in progress.

Browser Support

PoNG is tested with

  • Firefox 27.0.1 (Ubuntu 13.10 64bit)
  • Safari (iPad, iOS 7)
  • Chrome on Android

PoNG License

The MIT License (MIT)

Copyright (c) 2014 Markus Harms, ma@mh-svr.de

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.