You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2012/12/04 23:30:56 UTC
[16/47] ISIS-188: normalizing file endings throughout
http://git-wip-us.apache.org/repos/asf/isis/blob/211aee9b/examples/onlinedemo/webapp/src/main/webapp/generic/app.js
----------------------------------------------------------------------
diff --git a/examples/onlinedemo/webapp/src/main/webapp/generic/app.js b/examples/onlinedemo/webapp/src/main/webapp/generic/app.js
index ed384af..43a4604 100644
--- a/examples/onlinedemo/webapp/src/main/webapp/generic/app.js
+++ b/examples/onlinedemo/webapp/src/main/webapp/generic/app.js
@@ -1,339 +1,339 @@
-// [START] Code specific to this app
-$(function() {
- $('#Find').submit(findObject)
-});
-
-$(function() {
- $('#serviceMenu').click(getServices)
-});
-
-getServices = function() {
- var div = $('#objects').empty();
- var server = $('#Find input#server').val();
- var url = 'http://' + server + '/services/';
-
- var username = $('#Find input#username').val();
- var password = $('#Find input#password').val();
-
- // TODO: Factor out function below
- $.ajax({
- url : url,
- dataType : 'json',
- username : username,
- password : password,
- success : function(data) {
- var html = listRepAsHtml(data);
- div.append(html);
- }
- });
-
- return false; // To stop event bubbling up
-}
-
-findObject = function() {
- var server = $('#Find input#server').val();
- var oid = $('#Find input#oid').val();
- getObject('http://' + server + '/objects/' + oid);
- return false; // To stop event bubbling up
-}
-// [END] Code specific to this app
-
-
-
-// Generic library methods below
-bindLinks = function() {
- $(".property a").click(linkToObject);
- $(".collection a").click(linkToCollection);
- $(".action a").click(linkToAction);
-};
-
-
-createLink = function(href, label, onClick) {
- var link = $('<a href="' + href + '">' + label + '</a>');
- link.click(onClick);
- return link;
-}
-
-linkToObject = function() {
- getObject($(this)[0].href);
- return false; // To stop event bubbling up
-}
-
-linkToCollection = function() {
- getCollection($(this)[0].href);
- return false; // To stop event bubbling up
-}
-
-linkToAction = function() {
- getAction($(this)[0].href);
- return false; // To stop event bubbling up
-}
-
-// TODO: Factor out common logic between this and linkToActionInvokePost
-// Ideally, we could store the method (GET/POST/PUT) as an Html 5 attribute on
-// the
-// <a> link and use that.
-linkToActionInvokeGet = function() {
- // TODO: See comment within linkToActionInvokePost (below)
-
- var arguments = $('#objects form').serialize(); // TODO: Use $.param()
- // instead of serialize?
- var button = $('#objects form button');
- invokeActionWithGet(button[0].href, '?' + arguments);
- return false; // To stop event bubbling up
-}
-
-linkToActionInvokePost = function() {
- // TODO: Not the intended design! We really want to pass in the actual
- // form that was submitted, and extract the button/href from there, but
- // I couldn't get that to work. This (naive) approach assumes there is only
- // one
- // form & one button in the objects div.
- var button = $('#objects form button');
- var input = $('#objects form input');
- var arguments = {};
- if (input.length > 0) {
- for ( var j = 0; j < input.length; j++) {
- var value = input.val();
- arguments[input[j].name] = value;
- }
- }
- invokeActionWithPost(button[0].href, arguments);
- return false; // To stop event bubbling up
-}
-
-getObject = function(url) {
-
- var username = $('#Find input#username').val();
- var password = $('#Find input#password').val();
-
- $.ajax({
- url : url,
- dataType : 'json',
- username : username,
- password : password,
- success : function(data) {
- renderObject(data)
- }
- });
-
-}
-
-renderObject = function(objectRep) {
- var objects = $("#objects").empty();
- objects.append(objectRepAsHtml(objectRep, true, true));
- bindLinks();
-}
-
-getCollection = function(url) {
- var username = $('#Find input#username').val();
- var password = $('#Find input#password').val();
-
- $.ajax({
- url : url,
- dataType : 'json',
- username : username,
- password : password,
- success : function(data) {
- var objects = $("#objects").empty();
- objects.append(collectionRepAsHtml(data));
- }
- });
-}
-
-getAction = function(url) {
-
- var username = $('#Find input#username').val();
- var password = $('#Find input#password').val();
-
- $
- .ajax({
- url : url,
- username : username,
- password : password,
- success : function(data) {
- if (data.parameters.length == 0) { // Zero-parameter
- // actions invoked
- // immediately
- var invokeLink = getLinkRep(data, 'invoke');
- var url = invokeLink.href;
- switch (invokeLink.method) {
- case 'GET':
- invokeActionWithGet(url);
- break;
- case 'POST':
- invokeActionWithPost(url);
- break;
- case 'PUT':
- alert('PUT method not currently supported in this context');
- break;
- }
- } else { // Actions with params rendered as a dialog
- var objects = $("#objects").empty();
- objects.append(actionRepAsHtml(data));
- }
- }
- });
-
-}
-
-// TODO: This and next method could be merged, with the type (method) passed in
-// as a
-// param (values defined on an Enum). Would be better to always treat arguments
-// as a
-// map, and url-encode it for the GET case.
-// See also comment on linkToActionInvokeGet.
-invokeActionWithGet = function(url, arguments) {
-
- var username = $('#Find input#username').val();
- var password = $('#Find input#password').val();
-
- $.ajax({
- type : 'GET',
- url : url + arguments,
- username : username,
- password : password,
- success : function(data) {
- var objects = $("#objects").empty();
- objects.append(actionResultRepAsHtml(data));
- },
- dataType : 'json'
- });
-}
-
-invokeActionWithPost = function(url, arguments) {
- if (arguments != null) {
- alert("POST actions with parameters not yet supported");
- }
-
- var username = $('#Find input#username').val();
- var password = $('#Find input#password').val();
-
- $.ajax({
- type : 'POST',
- url : url,
- data : arguments,
- username : username,
- password : password,
- success : function(data) {
- var objects = $("#objects").empty();
- objects.append(actionResultRepAsHtml(data));
- },
- dataType : 'json'
- });
-}
-
-actionResultRepAsHtml = function(data) {
- var html = $('<div>');
- // TODO: Make more use of the other information in links
- switch (data.resulttype) {
- case 'list':
- html.append(listRepAsHtml(data.result));
- break;
- case 'object':
- html.append(objectRepAsHtml(data.result, true, true));
- break;
- default:
- alert(data.resulttype + ' result type not supported at present');
- break;
- }
- html.append('</div>');
- return html;
-}
-
-listRepAsHtml = function(data) {
- var html = $('<div>');
- var items = data.value;
- for ( var j = 0; j < items.length; j++) {
- html.append(createLink(items[j].href, items[j].title, linkToObject));
- html.append("<br>");
- }
- html.append('</div>');
- return html;
-}
-
-objectRepAsHtml = function(data, includeProperties, includeActions) {
-
- var result = $('<div>');
- var objectRep = {
- title : data.title,
- members : data.members,
- includeProperties : includeProperties,
- includeActions : includeActions
- };
-
- $("#objectRepAsHtml-tmpl").tmpl(objectRep).appendTo(result);
-
- return result;
-}
-
-collectionRepAsHtml = function(data) {
- var result = $('<div>');
- // TODO: Factor out next two lines into createParentLink - used in next
- // method also
- var parentLink = getLinkRep(data, 'up');
- if (!parentLink) {
- parentLink = getLinkRep(data, 'parent'); // HACK: remove this.
- }
- result.append(createLink(parentLink.href, 'Back To Parent', linkToObject));
- result.append('<br><h3>' + data.id + '</h3>');
- result.append(listRepAsHtml(data));
- result.append('</div>');
- return result;
-}
-
-actionRepAsHtml = function(data) {
- var form = $('<form id="' + data.id + '"></form>'); // TODO: Form id needs
- // to be improved
- var parentLink = getLinkRep(data, 'up');
- if (!parentLink) {
- parentLink = getLinkRep(data, 'parent'); // HACK: remove this.
- }
- form.append(createLink(parentLink.href, 'Back To Parent', linkToObject));
- form.append('<br><h3>' + data.id + '</h3>');
- var params = data.parameters;
- for ( var j = 0; j < params.length; j++) {
- form.append(params[j].name + ' ');
- form.append('<input type="text" name="' + params[j].name + '">');
- form.append('<br>');
- }
- var invokeLink = getLinkRep(data, 'invoke');
- var button = $('<button href="' + invokeLink.href + '">OK</button>');
- form.append(button);
- switch (invokeLink.method) {
- // TODO: Refactor so that method is held as an Html attribute on the <a>
- // link
- case 'GET':
- form.submit(linkToActionInvokeGet);
- break;
- case 'POST':
- form.submit(linkToActionInvokePost);
- break;
- default:
- alert(invokeLink.method
- + ' method not currently supported by this viewer');
- break;
- }
- return form;
-}
-
-actionMemberAsHtml = function(member) {
- var result = $('<dt class="action">');
- result.append(member.id);
- result.append('<\dt>');
-
- result.append('<dd class="action">')
- result.append(createLink(member.links[0].href, member.id, linkToAction));
- return result.append('<\dd>');
-}
-
-getLinkRep = function(objectWithLinks, rel) {
- var result;
- var links = objectWithLinks.links;
- for ( var j = 0; j < links.length; j++) {
- if (links[j].rel == rel) {
- result = links[j];
- }
- }
- return result;
-}
+// [START] Code specific to this app
+$(function() {
+ $('#Find').submit(findObject)
+});
+
+$(function() {
+ $('#serviceMenu').click(getServices)
+});
+
+getServices = function() {
+ var div = $('#objects').empty();
+ var server = $('#Find input#server').val();
+ var url = 'http://' + server + '/services/';
+
+ var username = $('#Find input#username').val();
+ var password = $('#Find input#password').val();
+
+ // TODO: Factor out function below
+ $.ajax({
+ url : url,
+ dataType : 'json',
+ username : username,
+ password : password,
+ success : function(data) {
+ var html = listRepAsHtml(data);
+ div.append(html);
+ }
+ });
+
+ return false; // To stop event bubbling up
+}
+
+findObject = function() {
+ var server = $('#Find input#server').val();
+ var oid = $('#Find input#oid').val();
+ getObject('http://' + server + '/objects/' + oid);
+ return false; // To stop event bubbling up
+}
+// [END] Code specific to this app
+
+
+
+// Generic library methods below
+bindLinks = function() {
+ $(".property a").click(linkToObject);
+ $(".collection a").click(linkToCollection);
+ $(".action a").click(linkToAction);
+};
+
+
+createLink = function(href, label, onClick) {
+ var link = $('<a href="' + href + '">' + label + '</a>');
+ link.click(onClick);
+ return link;
+}
+
+linkToObject = function() {
+ getObject($(this)[0].href);
+ return false; // To stop event bubbling up
+}
+
+linkToCollection = function() {
+ getCollection($(this)[0].href);
+ return false; // To stop event bubbling up
+}
+
+linkToAction = function() {
+ getAction($(this)[0].href);
+ return false; // To stop event bubbling up
+}
+
+// TODO: Factor out common logic between this and linkToActionInvokePost
+// Ideally, we could store the method (GET/POST/PUT) as an Html 5 attribute on
+// the
+// <a> link and use that.
+linkToActionInvokeGet = function() {
+ // TODO: See comment within linkToActionInvokePost (below)
+
+ var arguments = $('#objects form').serialize(); // TODO: Use $.param()
+ // instead of serialize?
+ var button = $('#objects form button');
+ invokeActionWithGet(button[0].href, '?' + arguments);
+ return false; // To stop event bubbling up
+}
+
+linkToActionInvokePost = function() {
+ // TODO: Not the intended design! We really want to pass in the actual
+ // form that was submitted, and extract the button/href from there, but
+ // I couldn't get that to work. This (naive) approach assumes there is only
+ // one
+ // form & one button in the objects div.
+ var button = $('#objects form button');
+ var input = $('#objects form input');
+ var arguments = {};
+ if (input.length > 0) {
+ for ( var j = 0; j < input.length; j++) {
+ var value = input.val();
+ arguments[input[j].name] = value;
+ }
+ }
+ invokeActionWithPost(button[0].href, arguments);
+ return false; // To stop event bubbling up
+}
+
+getObject = function(url) {
+
+ var username = $('#Find input#username').val();
+ var password = $('#Find input#password').val();
+
+ $.ajax({
+ url : url,
+ dataType : 'json',
+ username : username,
+ password : password,
+ success : function(data) {
+ renderObject(data)
+ }
+ });
+
+}
+
+renderObject = function(objectRep) {
+ var objects = $("#objects").empty();
+ objects.append(objectRepAsHtml(objectRep, true, true));
+ bindLinks();
+}
+
+getCollection = function(url) {
+ var username = $('#Find input#username').val();
+ var password = $('#Find input#password').val();
+
+ $.ajax({
+ url : url,
+ dataType : 'json',
+ username : username,
+ password : password,
+ success : function(data) {
+ var objects = $("#objects").empty();
+ objects.append(collectionRepAsHtml(data));
+ }
+ });
+}
+
+getAction = function(url) {
+
+ var username = $('#Find input#username').val();
+ var password = $('#Find input#password').val();
+
+ $
+ .ajax({
+ url : url,
+ username : username,
+ password : password,
+ success : function(data) {
+ if (data.parameters.length == 0) { // Zero-parameter
+ // actions invoked
+ // immediately
+ var invokeLink = getLinkRep(data, 'invoke');
+ var url = invokeLink.href;
+ switch (invokeLink.method) {
+ case 'GET':
+ invokeActionWithGet(url);
+ break;
+ case 'POST':
+ invokeActionWithPost(url);
+ break;
+ case 'PUT':
+ alert('PUT method not currently supported in this context');
+ break;
+ }
+ } else { // Actions with params rendered as a dialog
+ var objects = $("#objects").empty();
+ objects.append(actionRepAsHtml(data));
+ }
+ }
+ });
+
+}
+
+// TODO: This and next method could be merged, with the type (method) passed in
+// as a
+// param (values defined on an Enum). Would be better to always treat arguments
+// as a
+// map, and url-encode it for the GET case.
+// See also comment on linkToActionInvokeGet.
+invokeActionWithGet = function(url, arguments) {
+
+ var username = $('#Find input#username').val();
+ var password = $('#Find input#password').val();
+
+ $.ajax({
+ type : 'GET',
+ url : url + arguments,
+ username : username,
+ password : password,
+ success : function(data) {
+ var objects = $("#objects").empty();
+ objects.append(actionResultRepAsHtml(data));
+ },
+ dataType : 'json'
+ });
+}
+
+invokeActionWithPost = function(url, arguments) {
+ if (arguments != null) {
+ alert("POST actions with parameters not yet supported");
+ }
+
+ var username = $('#Find input#username').val();
+ var password = $('#Find input#password').val();
+
+ $.ajax({
+ type : 'POST',
+ url : url,
+ data : arguments,
+ username : username,
+ password : password,
+ success : function(data) {
+ var objects = $("#objects").empty();
+ objects.append(actionResultRepAsHtml(data));
+ },
+ dataType : 'json'
+ });
+}
+
+actionResultRepAsHtml = function(data) {
+ var html = $('<div>');
+ // TODO: Make more use of the other information in links
+ switch (data.resulttype) {
+ case 'list':
+ html.append(listRepAsHtml(data.result));
+ break;
+ case 'object':
+ html.append(objectRepAsHtml(data.result, true, true));
+ break;
+ default:
+ alert(data.resulttype + ' result type not supported at present');
+ break;
+ }
+ html.append('</div>');
+ return html;
+}
+
+listRepAsHtml = function(data) {
+ var html = $('<div>');
+ var items = data.value;
+ for ( var j = 0; j < items.length; j++) {
+ html.append(createLink(items[j].href, items[j].title, linkToObject));
+ html.append("<br>");
+ }
+ html.append('</div>');
+ return html;
+}
+
+objectRepAsHtml = function(data, includeProperties, includeActions) {
+
+ var result = $('<div>');
+ var objectRep = {
+ title : data.title,
+ members : data.members,
+ includeProperties : includeProperties,
+ includeActions : includeActions
+ };
+
+ $("#objectRepAsHtml-tmpl").tmpl(objectRep).appendTo(result);
+
+ return result;
+}
+
+collectionRepAsHtml = function(data) {
+ var result = $('<div>');
+ // TODO: Factor out next two lines into createParentLink - used in next
+ // method also
+ var parentLink = getLinkRep(data, 'up');
+ if (!parentLink) {
+ parentLink = getLinkRep(data, 'parent'); // HACK: remove this.
+ }
+ result.append(createLink(parentLink.href, 'Back To Parent', linkToObject));
+ result.append('<br><h3>' + data.id + '</h3>');
+ result.append(listRepAsHtml(data));
+ result.append('</div>');
+ return result;
+}
+
+actionRepAsHtml = function(data) {
+ var form = $('<form id="' + data.id + '"></form>'); // TODO: Form id needs
+ // to be improved
+ var parentLink = getLinkRep(data, 'up');
+ if (!parentLink) {
+ parentLink = getLinkRep(data, 'parent'); // HACK: remove this.
+ }
+ form.append(createLink(parentLink.href, 'Back To Parent', linkToObject));
+ form.append('<br><h3>' + data.id + '</h3>');
+ var params = data.parameters;
+ for ( var j = 0; j < params.length; j++) {
+ form.append(params[j].name + ' ');
+ form.append('<input type="text" name="' + params[j].name + '">');
+ form.append('<br>');
+ }
+ var invokeLink = getLinkRep(data, 'invoke');
+ var button = $('<button href="' + invokeLink.href + '">OK</button>');
+ form.append(button);
+ switch (invokeLink.method) {
+ // TODO: Refactor so that method is held as an Html attribute on the <a>
+ // link
+ case 'GET':
+ form.submit(linkToActionInvokeGet);
+ break;
+ case 'POST':
+ form.submit(linkToActionInvokePost);
+ break;
+ default:
+ alert(invokeLink.method
+ + ' method not currently supported by this viewer');
+ break;
+ }
+ return form;
+}
+
+actionMemberAsHtml = function(member) {
+ var result = $('<dt class="action">');
+ result.append(member.id);
+ result.append('<\dt>');
+
+ result.append('<dd class="action">')
+ result.append(createLink(member.links[0].href, member.id, linkToAction));
+ return result.append('<\dd>');
+}
+
+getLinkRep = function(objectWithLinks, rel) {
+ var result;
+ var links = objectWithLinks.links;
+ for ( var j = 0; j < links.length; j++) {
+ if (links[j].rel == rel) {
+ result = links[j];
+ }
+ }
+ return result;
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/211aee9b/examples/onlinedemo/webapp/src/main/webapp/generic/generic.css
----------------------------------------------------------------------
diff --git a/examples/onlinedemo/webapp/src/main/webapp/generic/generic.css b/examples/onlinedemo/webapp/src/main/webapp/generic/generic.css
index fc9a811..d5e326d 100644
--- a/examples/onlinedemo/webapp/src/main/webapp/generic/generic.css
+++ b/examples/onlinedemo/webapp/src/main/webapp/generic/generic.css
@@ -1,56 +1,56 @@
-ul
-{
- padding: 0;
-}
-
-div.actions
-{
- float: left;
- width: 400px;
-}
-
-.actions li
-{
- list-style-type: none;
-}
-
-dl.properties-and-collections
-{
- float: left;
- width: 780px;
- margin: 1em 0;
- padding: 0;
- border-bottom: 1px solid #999;
-}
-
-.properties-and-collections dt
-{
- clear: left;
- float: left;
- width: 300px;
- margin: 0;
- padding: 5px;
- border-top: 1px solid #999;
- text-align: right;
- font-weight: bold;
- color: green;
-}
-
-.properties-and-collections dt:after
-{
- content: ":";
-}
-
-.properties-and-collections dd
-{
- float: left;
- width: 300px;
- margin: 0;
- padding: 5px;
- border-top: 1px solid #999;
-}
-
-.clear
-{
- clear: both;
-}
+ul
+{
+ padding: 0;
+}
+
+div.actions
+{
+ float: left;
+ width: 400px;
+}
+
+.actions li
+{
+ list-style-type: none;
+}
+
+dl.properties-and-collections
+{
+ float: left;
+ width: 780px;
+ margin: 1em 0;
+ padding: 0;
+ border-bottom: 1px solid #999;
+}
+
+.properties-and-collections dt
+{
+ clear: left;
+ float: left;
+ width: 300px;
+ margin: 0;
+ padding: 5px;
+ border-top: 1px solid #999;
+ text-align: right;
+ font-weight: bold;
+ color: green;
+}
+
+.properties-and-collections dt:after
+{
+ content: ":";
+}
+
+.properties-and-collections dd
+{
+ float: left;
+ width: 300px;
+ margin: 0;
+ padding: 5px;
+ border-top: 1px solid #999;
+}
+
+.clear
+{
+ clear: both;
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/211aee9b/examples/onlinedemo/webapp/src/main/webapp/generic/index.html
----------------------------------------------------------------------
diff --git a/examples/onlinedemo/webapp/src/main/webapp/generic/index.html b/examples/onlinedemo/webapp/src/main/webapp/generic/index.html
index 70c8900..c6a95d1 100644
--- a/examples/onlinedemo/webapp/src/main/webapp/generic/index.html
+++ b/examples/onlinedemo/webapp/src/main/webapp/generic/index.html
@@ -1,87 +1,87 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-
-<html>
- <head>
- <script type="text/javascript" src="../jquery/jquery-1.6.4.js"></script>
- <script type="text/javascript"
- src="../jquery.tmpl/jquery.tmpl-vBeta1.0.0.js"></script>
-
- <link type="text/css" href="generic.css" />
-
- <script type="text/javascript" src="app.js"></script>
-</head>
-
-<body>
-
- <form id="Find" action="#">
- <h3>Navigate directly to an object:</h3>
- User:<input type="text" id="username" value="sven"> Password:
- <input type="text" id="password" value="pass"> <br>
- Server:<input type="text" id="server" value="localhost:8080">
- OId: <input type="text" id="oid" value="OID:1" size="50"> <br>
- <button id="ok">OK</button>
- </form>
-
- <br />
- <h3>
- <a href="" id="serviceMenu">Main Menu</a>
- </h3>
- <div id="objects"></div>
-
- <script id="objectRepAsHtml-tmpl" type="text/x-jquery-tmpl">
- <div>
- <br><h3>${title}</h3></br>
-
- {{if includeActions}}
- <div class="actions">
- <ul>
- {{each members}}
- {{if $value.memberType == 'action' }}
- {{tmpl($value) "#actionMemberAsHtml-tmpl" }}
- {{/if}}
- {{/each}}
- </ul>
- </div>
- {{/if}}
-
- {{if includeProperties}}
- <dl class="properties-and-collections">
-
- {{each members }}
- {{if $value.memberType == 'property'}}
- {{tmpl($value) "#propertyMemberAsHtml-tmpl" }}
- {{/if}}
- {{if $value.memberType == 'collection'}}
- {{tmpl($value) "#collectionMemberAsHtml-tmpl" }}
- {{/if}}
- {{/each}}
-
- </dl>
- <div class="clear"/>
- {{/if}}
-
- </div>
- </script>
-
- <script id="propertyMemberAsHtml-tmpl" type="text/x-jquery-tmpl">
- <dt class='property'>${id}</dt>
- <dd class='property'>
- {{if value.href}}
- <a href="${value.href}">${value.title}</a>
- {{else}}
- ${value}
- {{/if}}
- </dd>
- </script>
-
- <script id="collectionMemberAsHtml-tmpl" type="text/x-jquery-tmpl">
- <dt class='collection'>${id}</dt>
- <dd class='collection'><a href="${links[0].href}">Collection Contents</a></dd>
- </script>
-
- <script id="actionMemberAsHtml-tmpl" type="text/x-jquery-tmpl">
- <li class='action'><a href="${links[0].href}">${id}</a></li>
- </script>
-</body>
-
-</html>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+
+<html>
+ <head>
+ <script type="text/javascript" src="../jquery/jquery-1.6.4.js"></script>
+ <script type="text/javascript"
+ src="../jquery.tmpl/jquery.tmpl-vBeta1.0.0.js"></script>
+
+ <link type="text/css" href="generic.css" />
+
+ <script type="text/javascript" src="app.js"></script>
+</head>
+
+<body>
+
+ <form id="Find" action="#">
+ <h3>Navigate directly to an object:</h3>
+ User:<input type="text" id="username" value="sven"> Password:
+ <input type="text" id="password" value="pass"> <br>
+ Server:<input type="text" id="server" value="localhost:8080">
+ OId: <input type="text" id="oid" value="OID:1" size="50"> <br>
+ <button id="ok">OK</button>
+ </form>
+
+ <br />
+ <h3>
+ <a href="" id="serviceMenu">Main Menu</a>
+ </h3>
+ <div id="objects"></div>
+
+ <script id="objectRepAsHtml-tmpl" type="text/x-jquery-tmpl">
+ <div>
+ <br><h3>${title}</h3></br>
+
+ {{if includeActions}}
+ <div class="actions">
+ <ul>
+ {{each members}}
+ {{if $value.memberType == 'action' }}
+ {{tmpl($value) "#actionMemberAsHtml-tmpl" }}
+ {{/if}}
+ {{/each}}
+ </ul>
+ </div>
+ {{/if}}
+
+ {{if includeProperties}}
+ <dl class="properties-and-collections">
+
+ {{each members }}
+ {{if $value.memberType == 'property'}}
+ {{tmpl($value) "#propertyMemberAsHtml-tmpl" }}
+ {{/if}}
+ {{if $value.memberType == 'collection'}}
+ {{tmpl($value) "#collectionMemberAsHtml-tmpl" }}
+ {{/if}}
+ {{/each}}
+
+ </dl>
+ <div class="clear"/>
+ {{/if}}
+
+ </div>
+ </script>
+
+ <script id="propertyMemberAsHtml-tmpl" type="text/x-jquery-tmpl">
+ <dt class='property'>${id}</dt>
+ <dd class='property'>
+ {{if value.href}}
+ <a href="${value.href}">${value.title}</a>
+ {{else}}
+ ${value}
+ {{/if}}
+ </dd>
+ </script>
+
+ <script id="collectionMemberAsHtml-tmpl" type="text/x-jquery-tmpl">
+ <dt class='collection'>${id}</dt>
+ <dd class='collection'><a href="${links[0].href}">Collection Contents</a></dd>
+ </script>
+
+ <script id="actionMemberAsHtml-tmpl" type="text/x-jquery-tmpl">
+ <li class='action'><a href="${links[0].href}">${id}</a></li>
+ </script>
+</body>
+
+</html>
http://git-wip-us.apache.org/repos/asf/isis/blob/211aee9b/examples/onlinedemo/webapp/src/main/webapp/mobile/app.js
----------------------------------------------------------------------
diff --git a/examples/onlinedemo/webapp/src/main/webapp/mobile/app.js b/examples/onlinedemo/webapp/src/main/webapp/mobile/app.js
index 131c2d2..5f2c500 100644
--- a/examples/onlinedemo/webapp/src/main/webapp/mobile/app.js
+++ b/examples/onlinedemo/webapp/src/main/webapp/mobile/app.js
@@ -1,24 +1,24 @@
-var util = namespace('org.apache.isis.viewer.json.jqmobile.util');
-var generic = namespace('org.apache.isis.viewer.json.jqmobile.generic');
-
-$(function() {
- $("#settings-theme input").click(function(e) {
-
- var theme = e.currentTarget.value;
- $("div[data-role='page']").each( function() {
- $(this).attr("data-theme", e);
- // TODO: how refresh?
- });
- });
-
- $(document).bind("pagebeforechange", generic.submitRenderAndNavigate);
-
- // if user manually refreshes page for domain object, then re-retrieve
- var locationHref = location.href;
- if(locationHref.indexOf("genericDomainObjectView") != -1) {
- var urlHref = generic.extract(locationHref);
- generic.submitAndRender(urlHref, "pop");
- } else {
- $.mobile.changePage($("#home"))
- }
+var util = namespace('org.apache.isis.viewer.json.jqmobile.util');
+var generic = namespace('org.apache.isis.viewer.json.jqmobile.generic');
+
+$(function() {
+ $("#settings-theme input").click(function(e) {
+
+ var theme = e.currentTarget.value;
+ $("div[data-role='page']").each( function() {
+ $(this).attr("data-theme", e);
+ // TODO: how refresh?
+ });
+ });
+
+ $(document).bind("pagebeforechange", generic.submitRenderAndNavigate);
+
+ // if user manually refreshes page for domain object, then re-retrieve
+ var locationHref = location.href;
+ if(locationHref.indexOf("genericDomainObjectView") != -1) {
+ var urlHref = generic.extract(locationHref);
+ generic.submitAndRender(urlHref, "pop");
+ } else {
+ $.mobile.changePage($("#home"))
+ }
});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/211aee9b/examples/onlinedemo/webapp/src/main/webapp/mobile/generic.js
----------------------------------------------------------------------
diff --git a/examples/onlinedemo/webapp/src/main/webapp/mobile/generic.js b/examples/onlinedemo/webapp/src/main/webapp/mobile/generic.js
index 6d266f7..d428a3e 100644
--- a/examples/onlinedemo/webapp/src/main/webapp/mobile/generic.js
+++ b/examples/onlinedemo/webapp/src/main/webapp/mobile/generic.js
@@ -1,226 +1,226 @@
-var util = namespace('org.apache.isis.viewer.json.jqmobile.util');
-var generic = namespace('org.apache.isis.viewer.json.jqmobile.generic');
-
-generic.itemLinks = function(jsonItems) {
- var items = $.map(jsonItems, function(value, i) {
- return {
- "hrefUrlEncoded" : util.urlencode(value.href),
- "title" : value.title,
- "href" : value.href
- }
- })
- return items
-}
-
-generic.extract = function(urlHref) {
- // does it match: foobar.html?dataUrl=xxx; if so, then return xxx
- var matches = /.*?dataUrl=(.*)/.exec(urlHref)
- var url = matches && matches[1]
- if(url) {
- return util.urldecode(url)
- }
- // does it simply match foobar.html; if so, then return null
- if ( /.*\.html$/.test(urlHref)) {
- return null
- }
- // simply return the URL, assuming it is the data url we need to get.
- return urlHref
-}
-
-generic.returnTypeFor = function(memberItem) {
- var detailsJson = util.grepAndFollowLink(memberItem.links, "details")
- if (!detailsJson) {
- return null;
- }
- var describedByJson = util.grepAndFollowLink(detailsJson.links, "describedby")
- if (!describedByJson) {
- return null;
- }
- var returnTypeLink = util.grepLink(describedByJson.links, "returntype")
- return returnTypeLink? returnTypeLink.href : null;
-}
-
-generic.dataTypeFor = function(memberItem) {
- var returnType = generic.returnTypeFor(memberItem);
- if(returnType.endsWith("boolean")) return "boolean"
- return "string"
-}
-
-generic.pageAndOptions = function(page, view, dataUrl, transition) {
- var pageAndOptions = {
- "page": page,
- "options": {
- "dataUrl": "#" + view + "?dataUrl=" + util.urlencode(dataUrl),
- "allowSamePageTransition": true,
- "transition": transition
- }
- }
- return pageAndOptions
-}
-
-generic.handleDomainObjectRepresentation = function(urlHref, pageChangeData, json, xhr) {
-
- var page = $("#genericDomainObjectView");
- var header = page.children(":jqmData(role=header)");
- var content = page.children(":jqmData(role=content)");
-
- header.find("h1").html(json.title);
-
- // value properties
- var valueProperties = json.members.filter(function(item) {
- return item.memberType === "property" && !item.value.href;
- });
-
- valueProperties = $.map( valueProperties, function(value, i) {
- var dataType = generic.dataTypeFor(value)
- return {
- "id": value.id,
- "value": value.value,
- "dataTypeIsString": dataType === "string",
- "dataTypeIsBoolean": dataType === "boolean"
- }
- } );
-
- var valuePropertiesDiv = page.children(":jqmData(role=content)").find(".valueProperties");
- var valuePropertiesTemplateDiv = page.children(".valueProperties-tmpl");
- util.applyTemplateDiv(valueProperties, valuePropertiesDiv, valuePropertiesTemplateDiv);
-
-
- // reference properties
- var referenceProperties = json.members.filter(function(item) {
- return item.memberType === "property" && item.value.href;
- });
- var referencePropertiesList = page.children(":jqmData(role=content)").find(".referenceProperties");
- var referencePropertiesTemplateDiv = page.children(".referenceProperties-tmpl");
- util.applyTemplateDiv(referenceProperties, referencePropertiesList, referencePropertiesTemplateDiv);
-
- var collections = json.members.filter(function(item) {
- return item.memberType === "collection";
- }).map(function(value, i) {
- var href = util.grepLink(value.links, "details").href
- return {
- "hrefUrlEncoded" : util.urlencode(value.links[0].href),
- "id" : value.id,
- "href" : value.links[0].href
- }
- });
-
- // collections
- var collectionsList = page.children(":jqmData(role=content)").find(".collections");
- var collectionsTemplateDiv = page.children(".collections-tmpl");
- util.applyTemplateDiv(collections, collectionsList, collectionsTemplateDiv);
-
- page.page();
- content.find( ":jqmData(role=listview)" ).listview("refresh");
- page.trigger("create");
-
- return generic.pageAndOptions(page, "genericDomainObjectView", urlHref)
-}
-
-
-generic.handleListRepresentation = function(urlHref, pageChangeData, json, xhr) {
-
- var page = $("#genericListView");
- var header = page.children(":jqmData(role=header)");
- var content = page.children(":jqmData(role=content)");
-
- var items = generic.itemLinks(json.value)
-
- header.find("h1").html("Objects");
-
- var div = page.find("ul");
- var templateDiv = page.find(".tmpl");
-
- util.applyTemplateDiv(items, div, templateDiv);
-
- page.page();
- content.find( ":jqmData(role=listview)" ).listview("refresh");
- page.trigger("create");
-
- return generic.pageAndOptions(page, "genericListView", urlHref)
-}
-
-generic.handleObjectCollectionRepresentation = function(urlHref, pageChangeData, json, xhr) {
-
- var page = $("#genericObjectCollectionView");
- var header = page.children(":jqmData(role=header)");
- var content = page.children(":jqmData(role=content)");
-
- var items = generic.itemLinks(json.value)
-
- var parentTitle = util.grepLink(json.links, "up").title
-
- var collectionId = json.id;
- header.find("h1").html(collectionId + " for " + parentTitle);
-
- var div = page.find("ul");
- var templateDiv = page.find(".tmpl");
- util.applyTemplateDiv(items, div, templateDiv);
-
- page.page();
- content.find( ":jqmData(role=listview)" ).listview("refresh");
- page.trigger("create");
-
- return generic.pageAndOptions(page, "genericObjectCollectionView", urlHref, "slideup")
-}
-
-
-generic.actionResultHandlers = {
- "object": generic.handleDomainObjectRepresentation,
- "list": generic.handleListRepresentation
-}
-
-generic.handleActionResultRepresentation = function(urlHref, pageChangeData, json, xhr) {
- var resultType = json.resulttype
- var handler = generic.actionResultHandlers[resultType];
- if(!handler) {
- alert("unable to handle result type")
- return;
- }
- return handler(urlHref, pageChangeData, json.result, xhr)
-}
-
-generic.handlers = {
- "application/json;profile=\"urn:org.restfulobjects/domainobject\"": generic.handleDomainObjectRepresentation,
- "application/json; profile=\"urn:org.restfulobjects/domainobject\"": generic.handleDomainObjectRepresentation,
- "application/json;profile=\"urn:org.restfulobjects/list\"": generic.handleListRepresentation,
- "application/json; profile=\"urn:org.restfulobjects/list\"": generic.handleListRepresentation,
- "application/json;profile=\"urn:org.restfulobjects/objectcollection\"": generic.handleObjectCollectionRepresentation,
- "application/json; profile=\"urn:org.restfulobjects/objectcollection\"": generic.handleObjectCollectionRepresentation,
- "application/json;profile=\"urn:org.restfulobjects/actionresult\"": generic.handleActionResultRepresentation,
- "application/json; profile=\"urn:org.restfulobjects/actionresult\"": generic.handleActionResultRepresentation
-}
-
-generic.submitAndRender = function(urlHref, pageChangeData) {
- $.ajax({
- url : urlHref,
- dataType : 'json',
- success : function(json, str, xhr) {
- var contentType = xhr.getResponseHeader("Content-Type");
- var handler = generic.handlers[contentType];
- if(!handler) {
- alert("unable to handle response")
- return;
- }
- var pageAndOptions = handler(urlHref, pageChangeData, json, xhr)
-
- $.mobile.changePage(pageAndOptions.page, pageAndOptions.options);
- }
- })
-}
-
-generic.submitRenderAndNavigate = function(e, pageChangeData) {
- if (typeof pageChangeData.toPage !== "string") {
- return;
- }
-
- var url = $.mobile.path.parseUrl(pageChangeData.toPage)
- var urlHref = generic.extract(url.href)
- if(!urlHref) {
- return;
- }
-
- generic.submitAndRender(urlHref, pageChangeData);
- e.preventDefault();
-}
-
+var util = namespace('org.apache.isis.viewer.json.jqmobile.util');
+var generic = namespace('org.apache.isis.viewer.json.jqmobile.generic');
+
+generic.itemLinks = function(jsonItems) {
+ var items = $.map(jsonItems, function(value, i) {
+ return {
+ "hrefUrlEncoded" : util.urlencode(value.href),
+ "title" : value.title,
+ "href" : value.href
+ }
+ })
+ return items
+}
+
+generic.extract = function(urlHref) {
+ // does it match: foobar.html?dataUrl=xxx; if so, then return xxx
+ var matches = /.*?dataUrl=(.*)/.exec(urlHref)
+ var url = matches && matches[1]
+ if(url) {
+ return util.urldecode(url)
+ }
+ // does it simply match foobar.html; if so, then return null
+ if ( /.*\.html$/.test(urlHref)) {
+ return null
+ }
+ // simply return the URL, assuming it is the data url we need to get.
+ return urlHref
+}
+
+generic.returnTypeFor = function(memberItem) {
+ var detailsJson = util.grepAndFollowLink(memberItem.links, "details")
+ if (!detailsJson) {
+ return null;
+ }
+ var describedByJson = util.grepAndFollowLink(detailsJson.links, "describedby")
+ if (!describedByJson) {
+ return null;
+ }
+ var returnTypeLink = util.grepLink(describedByJson.links, "returntype")
+ return returnTypeLink? returnTypeLink.href : null;
+}
+
+generic.dataTypeFor = function(memberItem) {
+ var returnType = generic.returnTypeFor(memberItem);
+ if(returnType.endsWith("boolean")) return "boolean"
+ return "string"
+}
+
+generic.pageAndOptions = function(page, view, dataUrl, transition) {
+ var pageAndOptions = {
+ "page": page,
+ "options": {
+ "dataUrl": "#" + view + "?dataUrl=" + util.urlencode(dataUrl),
+ "allowSamePageTransition": true,
+ "transition": transition
+ }
+ }
+ return pageAndOptions
+}
+
+generic.handleDomainObjectRepresentation = function(urlHref, pageChangeData, json, xhr) {
+
+ var page = $("#genericDomainObjectView");
+ var header = page.children(":jqmData(role=header)");
+ var content = page.children(":jqmData(role=content)");
+
+ header.find("h1").html(json.title);
+
+ // value properties
+ var valueProperties = json.members.filter(function(item) {
+ return item.memberType === "property" && !item.value.href;
+ });
+
+ valueProperties = $.map( valueProperties, function(value, i) {
+ var dataType = generic.dataTypeFor(value)
+ return {
+ "id": value.id,
+ "value": value.value,
+ "dataTypeIsString": dataType === "string",
+ "dataTypeIsBoolean": dataType === "boolean"
+ }
+ } );
+
+ var valuePropertiesDiv = page.children(":jqmData(role=content)").find(".valueProperties");
+ var valuePropertiesTemplateDiv = page.children(".valueProperties-tmpl");
+ util.applyTemplateDiv(valueProperties, valuePropertiesDiv, valuePropertiesTemplateDiv);
+
+
+ // reference properties
+ var referenceProperties = json.members.filter(function(item) {
+ return item.memberType === "property" && item.value.href;
+ });
+ var referencePropertiesList = page.children(":jqmData(role=content)").find(".referenceProperties");
+ var referencePropertiesTemplateDiv = page.children(".referenceProperties-tmpl");
+ util.applyTemplateDiv(referenceProperties, referencePropertiesList, referencePropertiesTemplateDiv);
+
+ var collections = json.members.filter(function(item) {
+ return item.memberType === "collection";
+ }).map(function(value, i) {
+ var href = util.grepLink(value.links, "details").href
+ return {
+ "hrefUrlEncoded" : util.urlencode(value.links[0].href),
+ "id" : value.id,
+ "href" : value.links[0].href
+ }
+ });
+
+ // collections
+ var collectionsList = page.children(":jqmData(role=content)").find(".collections");
+ var collectionsTemplateDiv = page.children(".collections-tmpl");
+ util.applyTemplateDiv(collections, collectionsList, collectionsTemplateDiv);
+
+ page.page();
+ content.find( ":jqmData(role=listview)" ).listview("refresh");
+ page.trigger("create");
+
+ return generic.pageAndOptions(page, "genericDomainObjectView", urlHref)
+}
+
+
+generic.handleListRepresentation = function(urlHref, pageChangeData, json, xhr) {
+
+ var page = $("#genericListView");
+ var header = page.children(":jqmData(role=header)");
+ var content = page.children(":jqmData(role=content)");
+
+ var items = generic.itemLinks(json.value)
+
+ header.find("h1").html("Objects");
+
+ var div = page.find("ul");
+ var templateDiv = page.find(".tmpl");
+
+ util.applyTemplateDiv(items, div, templateDiv);
+
+ page.page();
+ content.find( ":jqmData(role=listview)" ).listview("refresh");
+ page.trigger("create");
+
+ return generic.pageAndOptions(page, "genericListView", urlHref)
+}
+
+generic.handleObjectCollectionRepresentation = function(urlHref, pageChangeData, json, xhr) {
+
+ var page = $("#genericObjectCollectionView");
+ var header = page.children(":jqmData(role=header)");
+ var content = page.children(":jqmData(role=content)");
+
+ var items = generic.itemLinks(json.value)
+
+ var parentTitle = util.grepLink(json.links, "up").title
+
+ var collectionId = json.id;
+ header.find("h1").html(collectionId + " for " + parentTitle);
+
+ var div = page.find("ul");
+ var templateDiv = page.find(".tmpl");
+ util.applyTemplateDiv(items, div, templateDiv);
+
+ page.page();
+ content.find( ":jqmData(role=listview)" ).listview("refresh");
+ page.trigger("create");
+
+ return generic.pageAndOptions(page, "genericObjectCollectionView", urlHref, "slideup")
+}
+
+
+generic.actionResultHandlers = {
+ "object": generic.handleDomainObjectRepresentation,
+ "list": generic.handleListRepresentation
+}
+
+generic.handleActionResultRepresentation = function(urlHref, pageChangeData, json, xhr) {
+ var resultType = json.resulttype
+ var handler = generic.actionResultHandlers[resultType];
+ if(!handler) {
+ alert("unable to handle result type")
+ return;
+ }
+ return handler(urlHref, pageChangeData, json.result, xhr)
+}
+
+generic.handlers = {
+ "application/json;profile=\"urn:org.restfulobjects/domainobject\"": generic.handleDomainObjectRepresentation,
+ "application/json; profile=\"urn:org.restfulobjects/domainobject\"": generic.handleDomainObjectRepresentation,
+ "application/json;profile=\"urn:org.restfulobjects/list\"": generic.handleListRepresentation,
+ "application/json; profile=\"urn:org.restfulobjects/list\"": generic.handleListRepresentation,
+ "application/json;profile=\"urn:org.restfulobjects/objectcollection\"": generic.handleObjectCollectionRepresentation,
+ "application/json; profile=\"urn:org.restfulobjects/objectcollection\"": generic.handleObjectCollectionRepresentation,
+ "application/json;profile=\"urn:org.restfulobjects/actionresult\"": generic.handleActionResultRepresentation,
+ "application/json; profile=\"urn:org.restfulobjects/actionresult\"": generic.handleActionResultRepresentation
+}
+
+generic.submitAndRender = function(urlHref, pageChangeData) {
+ $.ajax({
+ url : urlHref,
+ dataType : 'json',
+ success : function(json, str, xhr) {
+ var contentType = xhr.getResponseHeader("Content-Type");
+ var handler = generic.handlers[contentType];
+ if(!handler) {
+ alert("unable to handle response")
+ return;
+ }
+ var pageAndOptions = handler(urlHref, pageChangeData, json, xhr)
+
+ $.mobile.changePage(pageAndOptions.page, pageAndOptions.options);
+ }
+ })
+}
+
+generic.submitRenderAndNavigate = function(e, pageChangeData) {
+ if (typeof pageChangeData.toPage !== "string") {
+ return;
+ }
+
+ var url = $.mobile.path.parseUrl(pageChangeData.toPage)
+ var urlHref = generic.extract(url.href)
+ if(!urlHref) {
+ return;
+ }
+
+ generic.submitAndRender(urlHref, pageChangeData);
+ e.preventDefault();
+}
+
http://git-wip-us.apache.org/repos/asf/isis/blob/211aee9b/examples/onlinedemo/webapp/src/main/webapp/mobile/index.html
----------------------------------------------------------------------
diff --git a/examples/onlinedemo/webapp/src/main/webapp/mobile/index.html b/examples/onlinedemo/webapp/src/main/webapp/mobile/index.html
index 8f4624a..2d57f4e 100644
--- a/examples/onlinedemo/webapp/src/main/webapp/mobile/index.html
+++ b/examples/onlinedemo/webapp/src/main/webapp/mobile/index.html
@@ -1,191 +1,191 @@
-<!DOCTYPE html>
-<html>
-
-<head>
-<meta charset="utf-8">
-<meta name="viewport" content="initial-scale=1, width=device-width, target-densitydpi=device-dpi"/>
-
-<title>Apache Isis Online Demo</title>
-
-<link rel="stylesheet" href="../jquery.mobile/jquery.mobile-1.0.min.css" />
-
-<script src="../jquery/jquery-1.6.4.min.js"></script>
-<script src="../jquery.mobile/jquery.mobile-1.0.min.js"></script>
-<script src="../jquery.tmpl/jquery.tmpl-vBeta1.0.0.min.js"></script>
-
-<link rel="stylesheet" type="text/css" href="app.css" />
-
-<script type="text/javascript" src="namespace.js"></script>
-<script type="text/javascript" src="util.js"></script>
-<script type="text/javascript" src="generic.js"></script>
-<script type="text/javascript" src="app.js"></script>
-</head>
-
-<body id="pageHolder">
- <div data-role="page" id="home">
-
- <div data-role="header">
- <!--
- <a href="#settings" data-icon="gear" class="ui-btn-right" data-transition="slideup">Settings</a>
- -->
- <h1>Home</h1>
- </div>
-
- <div data-role="content">
- <br/>
- <button>Todays Tasks</button>
- <ul data-role="listview" class="tasks"></ul>
- </div>
-
- <script class="tmpl" type="text/x-jquery-tmpl">
- <li>
- <a href="${href}">${title}</a>
- </li>
- </script>
-
- <script type="text/javascript">
- $("#home button").click(function(){
- $.mobile.changePage("../services/toDoItems/actions/toDosForToday/invoke", "pop")
- });
- </script>
- </div>
-
- <div data-role="page" id="genericListView">
-
- <div data-role="header">
- <a data-icon="back" data-rel="back">Back</a>
- <h1>List</h1>
- </div>
-
- <div data-role="content">
- <br/>
- <ul data-filter="true" data-role="listview"></ul>
- </div>
-
- <script class="tmpl" type="text/x-jquery-tmpl">
- <li>
- <a href="${href}">${title}</a>
- </li>
- </script>
- </div>
-
- <div data-role="page" id="genericObjectCollectionView">
-
- <div data-role="header">
- <a data-icon="back" data-rel="back">Back</a>
- <h1>Collection</h1>
- </div>
-
- <div data-role="content">
- <br/>
- <ul data-filter="true" data-role="listview"></ul>
- </div>
-
- <script class="tmpl" type="text/x-jquery-tmpl">
- <li>
- <a href="${href}">${title}</a>
- </li>
- </script>
- </div>
-
- <div data-role="page" id="genericDomainObjectView">
-
- <div data-role="header">
- <a data-icon="back" data-rel="back">Back</a>
- <h1>Object</h1>
- </div>
-
- <div data-role="content">
- <div class="valueProperties"></div>
- <br/>
- <p>References</p>
- <ul data-role="listview" data-inset="true" class="referenceProperties"></ul>
- <br/>
- <p>Collections</p>
- <ul data-role="listview" data-inset="true" class="collections"></ul>
- </div>
-
- <script class="valueProperties-tmpl" type="text/x-jquery-tmpl">
- {{if dataTypeIsString}}
- <label for="${id}">${id}:</label>
- <input type="text"
- name="${id}" id="${id}" value="${value}" placeholder="${id}"
- class="required"/>
- {{/if}}
- {{if dataTypeIsBoolean}}
- <div data-role="fieldcontain">
- <fieldset data-role="controlgroup">
- <legend>${id}?</legend>
- <input type="checkbox"
- name="${id}" id="${id}" value="${value}"
- class="required"/>
- <label for="${id}">${id}</label>
- </fieldset>
- </div>
- {{/if}}
- </script>
-
- <script class="referenceProperties-tmpl" type="text/x-jquery-tmpl">
- <li>
- <a data-transition="slide" href="${value.href}">
- <p>${id}</p>
- <p><b>${value.title}</b></p>
- </a>
- </li>
- </script>
-
- <script class="collections-tmpl" type="text/x-jquery-tmpl">
- <li>
- <a data-transition="slideup" href="${href}">${id}</a>
- </li>
- </script>
-
- </div>
-
- <div data-role="page" id="settings" data-add-back-btn="true">
-
- <div data-role="header">
- <h1>Settings</h1>
- </div>
-
- <div data-role="content">
-
- <fieldset id="settings-theme">
- <legend>Theme:</legend>
- <input type="radio" name="settings-theme" id="settings-theme-a" value="a" checked="checked" />
- <label for="settings-theme-a">Dark</label>
-
- <input type="radio" name="settings-theme" id="settings-theme-b" value="b"/>
- <label for="settings-theme-b">Blue</label>
-
- <input type="radio" name="settings-theme" id="settings-theme-c" value="c"/>
- <label for="settings-theme-c">Grey</label>
-
- <input type="radio" name="settings-theme" id="settings-theme-d" value="d"/>
- <label for="settings-theme-d">White</label>
-
- <input type="radio" name="settings-theme" id="settings-theme-e" value="e"/>
- <label for="settings-theme-e">Yellow</label>
- </fieldset>
-
- </div>
-
- <script type="text/javascript">
- $("#settings input").change(function(e){
- var theme = $(this).attr("value");
- $("div").filter( function() {
- var divDataRole = $(this).attr("data-role")
- var isPage = (divDataRole === "page");
- return isPage;
- }).attr("data-theme", theme);
- });
- </script>
-
- <div data-role="footer">
- <h4></h4>
- </div>
- </div>
-
-
-</body>
+<!DOCTYPE html>
+<html>
+
+<head>
+<meta charset="utf-8">
+<meta name="viewport" content="initial-scale=1, width=device-width, target-densitydpi=device-dpi"/>
+
+<title>Apache Isis Online Demo</title>
+
+<link rel="stylesheet" href="../jquery.mobile/jquery.mobile-1.0.min.css" />
+
+<script src="../jquery/jquery-1.6.4.min.js"></script>
+<script src="../jquery.mobile/jquery.mobile-1.0.min.js"></script>
+<script src="../jquery.tmpl/jquery.tmpl-vBeta1.0.0.min.js"></script>
+
+<link rel="stylesheet" type="text/css" href="app.css" />
+
+<script type="text/javascript" src="namespace.js"></script>
+<script type="text/javascript" src="util.js"></script>
+<script type="text/javascript" src="generic.js"></script>
+<script type="text/javascript" src="app.js"></script>
+</head>
+
+<body id="pageHolder">
+ <div data-role="page" id="home">
+
+ <div data-role="header">
+ <!--
+ <a href="#settings" data-icon="gear" class="ui-btn-right" data-transition="slideup">Settings</a>
+ -->
+ <h1>Home</h1>
+ </div>
+
+ <div data-role="content">
+ <br/>
+ <button>Todays Tasks</button>
+ <ul data-role="listview" class="tasks"></ul>
+ </div>
+
+ <script class="tmpl" type="text/x-jquery-tmpl">
+ <li>
+ <a href="${href}">${title}</a>
+ </li>
+ </script>
+
+ <script type="text/javascript">
+ $("#home button").click(function(){
+ $.mobile.changePage("../services/toDoItems/actions/toDosForToday/invoke", "pop")
+ });
+ </script>
+ </div>
+
+ <div data-role="page" id="genericListView">
+
+ <div data-role="header">
+ <a data-icon="back" data-rel="back">Back</a>
+ <h1>List</h1>
+ </div>
+
+ <div data-role="content">
+ <br/>
+ <ul data-filter="true" data-role="listview"></ul>
+ </div>
+
+ <script class="tmpl" type="text/x-jquery-tmpl">
+ <li>
+ <a href="${href}">${title}</a>
+ </li>
+ </script>
+ </div>
+
+ <div data-role="page" id="genericObjectCollectionView">
+
+ <div data-role="header">
+ <a data-icon="back" data-rel="back">Back</a>
+ <h1>Collection</h1>
+ </div>
+
+ <div data-role="content">
+ <br/>
+ <ul data-filter="true" data-role="listview"></ul>
+ </div>
+
+ <script class="tmpl" type="text/x-jquery-tmpl">
+ <li>
+ <a href="${href}">${title}</a>
+ </li>
+ </script>
+ </div>
+
+ <div data-role="page" id="genericDomainObjectView">
+
+ <div data-role="header">
+ <a data-icon="back" data-rel="back">Back</a>
+ <h1>Object</h1>
+ </div>
+
+ <div data-role="content">
+ <div class="valueProperties"></div>
+ <br/>
+ <p>References</p>
+ <ul data-role="listview" data-inset="true" class="referenceProperties"></ul>
+ <br/>
+ <p>Collections</p>
+ <ul data-role="listview" data-inset="true" class="collections"></ul>
+ </div>
+
+ <script class="valueProperties-tmpl" type="text/x-jquery-tmpl">
+ {{if dataTypeIsString}}
+ <label for="${id}">${id}:</label>
+ <input type="text"
+ name="${id}" id="${id}" value="${value}" placeholder="${id}"
+ class="required"/>
+ {{/if}}
+ {{if dataTypeIsBoolean}}
+ <div data-role="fieldcontain">
+ <fieldset data-role="controlgroup">
+ <legend>${id}?</legend>
+ <input type="checkbox"
+ name="${id}" id="${id}" value="${value}"
+ class="required"/>
+ <label for="${id}">${id}</label>
+ </fieldset>
+ </div>
+ {{/if}}
+ </script>
+
+ <script class="referenceProperties-tmpl" type="text/x-jquery-tmpl">
+ <li>
+ <a data-transition="slide" href="${value.href}">
+ <p>${id}</p>
+ <p><b>${value.title}</b></p>
+ </a>
+ </li>
+ </script>
+
+ <script class="collections-tmpl" type="text/x-jquery-tmpl">
+ <li>
+ <a data-transition="slideup" href="${href}">${id}</a>
+ </li>
+ </script>
+
+ </div>
+
+ <div data-role="page" id="settings" data-add-back-btn="true">
+
+ <div data-role="header">
+ <h1>Settings</h1>
+ </div>
+
+ <div data-role="content">
+
+ <fieldset id="settings-theme">
+ <legend>Theme:</legend>
+ <input type="radio" name="settings-theme" id="settings-theme-a" value="a" checked="checked" />
+ <label for="settings-theme-a">Dark</label>
+
+ <input type="radio" name="settings-theme" id="settings-theme-b" value="b"/>
+ <label for="settings-theme-b">Blue</label>
+
+ <input type="radio" name="settings-theme" id="settings-theme-c" value="c"/>
+ <label for="settings-theme-c">Grey</label>
+
+ <input type="radio" name="settings-theme" id="settings-theme-d" value="d"/>
+ <label for="settings-theme-d">White</label>
+
+ <input type="radio" name="settings-theme" id="settings-theme-e" value="e"/>
+ <label for="settings-theme-e">Yellow</label>
+ </fieldset>
+
+ </div>
+
+ <script type="text/javascript">
+ $("#settings input").change(function(e){
+ var theme = $(this).attr("value");
+ $("div").filter( function() {
+ var divDataRole = $(this).attr("data-role")
+ var isPage = (divDataRole === "page");
+ return isPage;
+ }).attr("data-theme", theme);
+ });
+ </script>
+
+ <div data-role="footer">
+ <h4></h4>
+ </div>
+ </div>
+
+
+</body>
</html>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/211aee9b/examples/onlinedemo/webapp/src/main/webapp/mobile/namespace.js
----------------------------------------------------------------------
diff --git a/examples/onlinedemo/webapp/src/main/webapp/mobile/namespace.js b/examples/onlinedemo/webapp/src/main/webapp/mobile/namespace.js
index b2c0a33..7da5ff2 100644
--- a/examples/onlinedemo/webapp/src/main/webapp/mobile/namespace.js
+++ b/examples/onlinedemo/webapp/src/main/webapp/mobile/namespace.js
@@ -1,13 +1,13 @@
-namespace = function(namespaceString) {
- var parts = namespaceString.split('.'),
- parent = window,
- currentPart = '';
-
- for(var i = 0, length = parts.length; i < length; i++) {
- currentPart = parts[i];
- parent[currentPart] = parent[currentPart] || {};
- parent = parent[currentPart];
- }
-
- return parent;
+namespace = function(namespaceString) {
+ var parts = namespaceString.split('.'),
+ parent = window,
+ currentPart = '';
+
+ for(var i = 0, length = parts.length; i < length; i++) {
+ currentPart = parts[i];
+ parent[currentPart] = parent[currentPart] || {};
+ parent = parent[currentPart];
+ }
+
+ return parent;
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/211aee9b/examples/onlinedemo/webapp/src/main/webapp/mobile/util.js
----------------------------------------------------------------------
diff --git a/examples/onlinedemo/webapp/src/main/webapp/mobile/util.js b/examples/onlinedemo/webapp/src/main/webapp/mobile/util.js
index 637fcef..fe17a03 100644
--- a/examples/onlinedemo/webapp/src/main/webapp/mobile/util.js
+++ b/examples/onlinedemo/webapp/src/main/webapp/mobile/util.js
@@ -1,94 +1,94 @@
-String.prototype.endsWith = function(pattern) {
- var d = this.length - pattern.length;
- return d >= 0 && this.lastIndexOf(pattern) === d;
-};
-
-
-var util = namespace('org.apache.isis.viewer.json.jqmobile.util');
-
-util.findPage = function(selector) {
- var page = $("#pageHolder").find(selector);
- if(page[0]) {
- return page[0];
- }
- return null
-}
-
-util.removePage = function(id) {
- var page = util.findPage(id)
- if(page) {
- page.remove();
- }
-}
-
-util.cloneAndInsertPage = function(sourceId, targetId) {
- var page = $("#"+sourceId).clone().attr("id", targetId);
- page.appendTo("#pageHolder");
- return page
-}
-
-util.grepLink = function(links, relStr) {
- return $.grep(links, function(v) { return v.rel === relStr } )[0]
-}
-
-util.followLink = function(link) {
- var response = {};
- $.ajax({
- url : link.href,
- dataType : 'json',
- async: false,
- success : function(json, str, xhr) {
- response = {
- "json": json,
- "str": str,
- "xhr": xhr
- }
- }
- })
- return response;
-}
-
-util.grepAndFollowLink = function(links, rel) {
- var link = util.grepLink(links, rel)
- if (!link) { return null; }
- var response = util.followLink(link);
- if (!response) { return null; }
- return response.json;
-}
-
-util.queryParamsFor = function (href) {
- var vars = [], hash;
- var hashes = href.slice(href.indexOf('?') + 1).split('&');
- for(var i = 0; i < hashes.length; i++)
- {
- hash = hashes[i].split('=');
- vars.push(hash[0]);
- vars[hash[0]] = urldecode(hash[1]);
- }
- return vars;
-}
-
-// from http://phpjs.org/functions/urlencode:573
-util.urlencode = function(str) {
- str = (str + '').toString();
- return encodeURIComponent(str).replace(/!/g, '%21').replace(/'/g, '%27').replace(/\(/g, '%28').replace(/\)/g, '%29').replace(/\*/g, '%2A').replace(/%20/g, '+');
-}
-
-// from http://phpjs.org/functions/urldecode:572
-util.urldecode = function(str) {
- return decodeURIComponent((str + '').replace(/\+/g, '%20'));
-}
-
-util.applyTemplate = function(data, selector, templateSelector) {
- $(selector).empty();
- $(templateSelector)
- .tmpl(data)
- .appendTo(selector);
-}
-
-util.applyTemplateDiv = function(data, div, templateDiv) {
- div.empty();
- templateDiv
- .tmpl(data)
- .appendTo(div);
+String.prototype.endsWith = function(pattern) {
+ var d = this.length - pattern.length;
+ return d >= 0 && this.lastIndexOf(pattern) === d;
+};
+
+
+var util = namespace('org.apache.isis.viewer.json.jqmobile.util');
+
+util.findPage = function(selector) {
+ var page = $("#pageHolder").find(selector);
+ if(page[0]) {
+ return page[0];
+ }
+ return null
+}
+
+util.removePage = function(id) {
+ var page = util.findPage(id)
+ if(page) {
+ page.remove();
+ }
+}
+
+util.cloneAndInsertPage = function(sourceId, targetId) {
+ var page = $("#"+sourceId).clone().attr("id", targetId);
+ page.appendTo("#pageHolder");
+ return page
+}
+
+util.grepLink = function(links, relStr) {
+ return $.grep(links, function(v) { return v.rel === relStr } )[0]
+}
+
+util.followLink = function(link) {
+ var response = {};
+ $.ajax({
+ url : link.href,
+ dataType : 'json',
+ async: false,
+ success : function(json, str, xhr) {
+ response = {
+ "json": json,
+ "str": str,
+ "xhr": xhr
+ }
+ }
+ })
+ return response;
+}
+
+util.grepAndFollowLink = function(links, rel) {
+ var link = util.grepLink(links, rel)
+ if (!link) { return null; }
+ var response = util.followLink(link);
+ if (!response) { return null; }
+ return response.json;
+}
+
+util.queryParamsFor = function (href) {
+ var vars = [], hash;
+ var hashes = href.slice(href.indexOf('?') + 1).split('&');
+ for(var i = 0; i < hashes.length; i++)
+ {
+ hash = hashes[i].split('=');
+ vars.push(hash[0]);
+ vars[hash[0]] = urldecode(hash[1]);
+ }
+ return vars;
+}
+
+// from http://phpjs.org/functions/urlencode:573
+util.urlencode = function(str) {
+ str = (str + '').toString();
+ return encodeURIComponent(str).replace(/!/g, '%21').replace(/'/g, '%27').replace(/\(/g, '%28').replace(/\)/g, '%29').replace(/\*/g, '%2A').replace(/%20/g, '+');
+}
+
+// from http://phpjs.org/functions/urldecode:572
+util.urldecode = function(str) {
+ return decodeURIComponent((str + '').replace(/\+/g, '%20'));
+}
+
+util.applyTemplate = function(data, selector, templateSelector) {
+ $(selector).empty();
+ $(templateSelector)
+ .tmpl(data)
+ .appendTo(selector);
+}
+
+util.applyTemplateDiv = function(data, div, templateDiv) {
+ div.empty();
+ templateDiv
+ .tmpl(data)
+ .appendTo(div);
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/211aee9b/examples/quickstart/viewer-dnd/config/viewer_dnd.properties
----------------------------------------------------------------------
diff --git a/examples/quickstart/viewer-dnd/config/viewer_dnd.properties b/examples/quickstart/viewer-dnd/config/viewer_dnd.properties
index 62460a5..80de8f1 100644
--- a/examples/quickstart/viewer-dnd/config/viewer_dnd.properties
+++ b/examples/quickstart/viewer-dnd/config/viewer_dnd.properties
@@ -1,22 +1,22 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-#
-# configuration file for the DnD viewer
-#
-
-# (intentionally empty)
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+#
+# configuration file for the DnD viewer
+#
+
+# (intentionally empty)
http://git-wip-us.apache.org/repos/asf/isis/blob/211aee9b/examples/quickstart/viewer-html/lib/.gitignore
----------------------------------------------------------------------
diff --git a/examples/quickstart/viewer-html/lib/.gitignore b/examples/quickstart/viewer-html/lib/.gitignore
index 385d3d8..70eee7e 100644
--- a/examples/quickstart/viewer-html/lib/.gitignore
+++ b/examples/quickstart/viewer-html/lib/.gitignore
@@ -1,5 +1,5 @@
-#
-# explicitly ignoring Microsoft JDBC4 jar
-# (cannot redistribute, licensing)
-#
-sqljdbc4.jar
+#
+# explicitly ignoring Microsoft JDBC4 jar
+# (cannot redistribute, licensing)
+#
+sqljdbc4.jar
http://git-wip-us.apache.org/repos/asf/isis/blob/211aee9b/examples/quickstart/viewer-html/src/main/webapp/WEB-INF/authentication_file.passwords
----------------------------------------------------------------------
diff --git a/examples/quickstart/viewer-html/src/main/webapp/WEB-INF/authentication_file.passwords b/examples/quickstart/viewer-html/src/main/webapp/WEB-INF/authentication_file.passwords
index 7048902..97b228e 100644
--- a/examples/quickstart/viewer-html/src/main/webapp/WEB-INF/authentication_file.passwords
+++ b/examples/quickstart/viewer-html/src/main/webapp/WEB-INF/authentication_file.passwords
@@ -22,7 +22,7 @@
#
# list of users, and their password, and optionally roles
-sven:pass:role1|role2|role3
-dick:pass
-bob:pass
-joe:pass
+sven:pass:role1|role2|role3
+dick:pass
+bob:pass
+joe:pass
http://git-wip-us.apache.org/repos/asf/isis/blob/211aee9b/examples/quickstart/viewer-html/src/main/webapp/WEB-INF/isis.properties
----------------------------------------------------------------------
diff --git a/examples/quickstart/viewer-html/src/main/webapp/WEB-INF/isis.properties b/examples/quickstart/viewer-html/src/main/webapp/WEB-INF/isis.properties
index 2ba2456..c46aeb5 100644
--- a/examples/quickstart/viewer-html/src/main/webapp/WEB-INF/isis.properties
+++ b/examples/quickstart/viewer-html/src/main/webapp/WEB-INF/isis.properties
@@ -175,6 +175,6 @@ isis.services = todo.ToDoItems
# in-memory object store, the fixtures are installed on every run. For other
# object stores, they are used only when the object store is first initialized.
#
-isis.fixtures.prefix= fixture
+isis.fixtures.prefix= fixture
isis.fixtures= todo.ToDoItemsFixture
http://git-wip-us.apache.org/repos/asf/isis/blob/211aee9b/examples/quickstart/viewer-html/src/main/webapp/WEB-INF/logging.properties
----------------------------------------------------------------------
diff --git a/examples/quickstart/viewer-html/src/main/webapp/WEB-INF/logging.properties b/examples/quickstart/viewer-html/src/main/webapp/WEB-INF/logging.properties
index dd16433..50b23d7 100644
--- a/examples/quickstart/viewer-html/src/main/webapp/WEB-INF/logging.properties
+++ b/examples/quickstart/viewer-html/src/main/webapp/WEB-INF/logging.properties
@@ -1,89 +1,89 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-
-#
-# Isis uses log4j is used to provide system logging
-#
-log4j.rootCategory=INFO, Console
-
-# The console appender
-log4j.appender.Console=org.apache.log4j.ConsoleAppender
-log4j.appender.Console.target=System.out
-log4j.appender.Console.layout=org.apache.log4j.PatternLayout
-log4j.appender.Console.layout.ConversionPattern=%d{ABSOLUTE} [%-20c{1} %-10t %-5p] %m%n
-
-log4j.appender.File=org.apache.log4j.RollingFileAppender
-log4j.appender.File.file=isis.log
-log4j.appender.File.append=false
-log4j.appender.File.layout=org.apache.log4j.PatternLayout
-log4j.appender.File.layout.ConversionPattern=%d [%-20c{1} %-10t %-5p] %m%n
-
-
-
-
-
-! turn on the internal log4j debugging flag so we can see what it is doing
-#log4j.debug=true
-
-
-log4j.logger.jdbc.sqlonly=DEBUG, sql, Console
-log4j.additivity.jdbc.sqlonly=false
-
-log4j.logger.jdbc.resultsettable=DEBUG, jdbc, Console
-log4j.additivity.jdbc.resultsettable=false
-
-
-
-log4j.logger.jdbc.audit=DEBUG,jdbc, Console
-log4j.additivity.jdbc.audit=false
-
-log4j.logger.jdbc.resultset=DEBUG,jdbc
-log4j.additivity.jdbc.resultset=false
-
-log4j.logger.jdbc.sqltiming=WARNING,sqltiming
-log4j.additivity.jdbc.sqltiming=false
-
-log4j.logger.jdbc.connection=FATAL,connection
-log4j.additivity.jdbc.connection=false
-
-
-
-log4j.appender.sql=org.apache.log4j.FileAppender
-log4j.appender.sql.File=./logs/sql.log
-log4j.appender.sql.Append=false
-log4j.appender.sql.layout=org.apache.log4j.PatternLayout
-log4j.appender.sql.layout.ConversionPattern=-----> %d{yyyy-MM-dd HH:mm:ss.SSS} %m%n%n
-
-log4j.appender.sqltiming=org.apache.log4j.FileAppender
-log4j.appender.sqltiming.File=./logs/sqltiming.log
-log4j.appender.sqltiming.Append=false
-log4j.appender.sqltiming.layout=org.apache.log4j.PatternLayout
-log4j.appender.sqltiming.layout.ConversionPattern=-----> %d{yyyy-MM-dd HH:mm:ss.SSS} %m%n%n
-
-log4j.appender.jdbc=org.apache.log4j.FileAppender
-log4j.appender.jdbc.File=./logs/jdbc.log
-log4j.appender.jdbc.Append=false
-log4j.appender.jdbc.layout=org.apache.log4j.PatternLayout
-log4j.appender.jdbc.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %m%n
-
-log4j.appender.connection=org.apache.log4j.FileAppender
-log4j.appender.connection.File=./logs/connection.log
-log4j.appender.connection.Append=false
-log4j.appender.connection.layout=org.apache.log4j.PatternLayout
-log4j.appender.connection.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %m%n
-
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+
+#
+# Isis uses log4j is used to provide system logging
+#
+log4j.rootCategory=INFO, Console
+
+# The console appender
+log4j.appender.Console=org.apache.log4j.ConsoleAppender
+log4j.appender.Console.target=System.out
+log4j.appender.Console.layout=org.apache.log4j.PatternLayout
+log4j.appender.Console.layout.ConversionPattern=%d{ABSOLUTE} [%-20c{1} %-10t %-5p] %m%n
+
+log4j.appender.File=org.apache.log4j.RollingFileAppender
+log4j.appender.File.file=isis.log
+log4j.appender.File.append=false
+log4j.appender.File.layout=org.apache.log4j.PatternLayout
+log4j.appender.File.layout.ConversionPattern=%d [%-20c{1} %-10t %-5p] %m%n
+
+
+
+
+
+! turn on the internal log4j debugging flag so we can see what it is doing
+#log4j.debug=true
+
+
+log4j.logger.jdbc.sqlonly=DEBUG, sql, Console
+log4j.additivity.jdbc.sqlonly=false
+
+log4j.logger.jdbc.resultsettable=DEBUG, jdbc, Console
+log4j.additivity.jdbc.resultsettable=false
+
+
+
+log4j.logger.jdbc.audit=DEBUG,jdbc, Console
+log4j.additivity.jdbc.audit=false
+
+log4j.logger.jdbc.resultset=DEBUG,jdbc
+log4j.additivity.jdbc.resultset=false
+
+log4j.logger.jdbc.sqltiming=WARNING,sqltiming
+log4j.additivity.jdbc.sqltiming=false
+
+log4j.logger.jdbc.connection=FATAL,connection
+log4j.additivity.jdbc.connection=false
+
+
+
+log4j.appender.sql=org.apache.log4j.FileAppender
+log4j.appender.sql.File=./logs/sql.log
+log4j.appender.sql.Append=false
+log4j.appender.sql.layout=org.apache.log4j.PatternLayout
+log4j.appender.sql.layout.ConversionPattern=-----> %d{yyyy-MM-dd HH:mm:ss.SSS} %m%n%n
+
+log4j.appender.sqltiming=org.apache.log4j.FileAppender
+log4j.appender.sqltiming.File=./logs/sqltiming.log
+log4j.appender.sqltiming.Append=false
+log4j.appender.sqltiming.layout=org.apache.log4j.PatternLayout
+log4j.appender.sqltiming.layout.ConversionPattern=-----> %d{yyyy-MM-dd HH:mm:ss.SSS} %m%n%n
+
+log4j.appender.jdbc=org.apache.log4j.FileAppender
+log4j.appender.jdbc.File=./logs/jdbc.log
+log4j.appender.jdbc.Append=false
+log4j.appender.jdbc.layout=org.apache.log4j.PatternLayout
+log4j.appender.jdbc.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %m%n
+
+log4j.appender.connection=org.apache.log4j.FileAppender
+log4j.appender.connection.File=./logs/connection.log
+log4j.appender.connection.Append=false
+log4j.appender.connection.layout=org.apache.log4j.PatternLayout
+log4j.appender.connection.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %m%n
+
http://git-wip-us.apache.org/repos/asf/isis/blob/211aee9b/examples/quickstart/viewer-html/src/main/webapp/WEB-INF/viewer_html.properties
----------------------------------------------------------------------
diff --git a/examples/quickstart/viewer-html/src/main/webapp/WEB-INF/viewer_html.properties b/examples/quickstart/viewer-html/src/main/webapp/WEB-INF/viewer_html.properties
index 3282708..d714f3e 100644
--- a/examples/quickstart/viewer-html/src/main/webapp/WEB-INF/viewer_html.properties
+++ b/examples/quickstart/viewer-html/src/main/webapp/WEB-INF/viewer_html.properties
@@ -1,31 +1,31 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-#
-# configuration file for the HTML viewer
-#
-
-#
-# customization for the header and footer
-#
-isis.viewer.html.header=<div id="site-header"><div id="site-logo"> </div></div>
-isis.viewer.html.footer=<div id="page-footer"><small>Powered by Apache Isis</small><div><small><a href="index.html">home</a> | <a href="index.shtml">scimpi</a> | <a href="services">rest</a> | <a href="mobile/index.html">mobile</a></small></div></div>
-
-#
-# stylesheet
-#
-isis.viewer.html.style-sheet=htmlviewer/style/default.css
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+#
+# configuration file for the HTML viewer
+#
+
+#
+# customization for the header and footer
+#
+isis.viewer.html.header=<div id="site-header"><div id="site-logo"> </div></div>
+isis.viewer.html.footer=<div id="page-footer"><small>Powered by Apache Isis</small><div><small><a href="index.html">home</a> | <a href="index.shtml">scimpi</a> | <a href="services">rest</a> | <a href="mobile/index.html">mobile</a></small></div></div>
+
+#
+# stylesheet
+#
+isis.viewer.html.style-sheet=htmlviewer/style/default.css