From 5261ae4c9bdbf0f93a7312198f073fc142400704 Mon Sep 17 00:00:00 2001
From: alvaro <alvaro@alia.(none)>
Date: Sun, 24 Jun 2012 15:12:22 -0700
Subject: [PATCH] bootstrap in script generated components

---
 static/index.html               |   2 +-
 utils/modules/create-service.sh |  36 +----------
 utils/modules/create-type.sh    |  81 ++----------------------
 utils/modules/create-uri.sh     |  81 ++----------------------
 utils/modules/service-model.inc |  10 +++
 utils/modules/service-view.inc  |  77 ++++++++++++++++++++++
 utils/modules/type-model-1.inc  |  10 +++
 utils/modules/type-model-2.inc  |  10 +++
 utils/modules/type-view.inc     | 109 ++++++++++++++++++++++++++++++++
 9 files changed, 228 insertions(+), 188 deletions(-)
 create mode 100644 utils/modules/service-model.inc
 create mode 100644 utils/modules/service-view.inc
 create mode 100644 utils/modules/type-model-1.inc
 create mode 100644 utils/modules/type-model-2.inc
 create mode 100644 utils/modules/type-view.inc

diff --git a/static/index.html b/static/index.html
index 22e4cd5f..628e9369 100644
--- a/static/index.html
+++ b/static/index.html
@@ -74,7 +74,7 @@
       </div>
       <div class="span5 well">
       <h2>Add static files</h2>
-        <p>You can also serve (and use) files that help you to present your content the way you want (JavaScript, CSS, images, etc). Just copy them on the <code>static</code> folder inside lodspeakr and you are ready to use them. For more information <a href='https://github.com/alangrafu/lodspeakr/wiki/Statics'>about static files in LODSPeaKR, please check the wiki</a>.</p>
+        <p>You can also serve (and use) files that help you to present your content the way you want (JavaScript, CSS, images, etc). Just copy them on the <code>static</code> folder inside lodspeakr and you are ready to use them. For more information <a href='https://github.com/alangrafu/lodspeakr/wiki/Statics'>about static files in LODSPeaKR</a> and <a href='https://github.com/alangrafu/lodspeakr/wiki/Change-root-page'>how to change the landing page</a>, please check the wiki</a>.</p>
       </div>
       <div class="span5 well">
       <h2>Understanding components</h2>
diff --git a/utils/modules/create-service.sh b/utils/modules/create-service.sh
index fbcbc581..1098ad87 100755
--- a/utils/modules/create-service.sh
+++ b/utils/modules/create-service.sh
@@ -3,40 +3,10 @@
 DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
 
 initToken='services'
+cd $DIR
+modelHtml=`cat service-model.inc`
 
-modelHtml=`cat  <<QUERY
-{%for h in base.header %}
-PREFIX {{h.prefix}}: <{{h.ns}}>
-{%endfor%}
-SELECT DISTINCT ?resource WHERE {
-  GRAPH {%if lodspk.args.arg0 %}<{{lodspk.args.arg0}}>{%else%}?g{%endif%} {
-  	[] a ?resource .
-  }
-}
-LIMIT 10
-QUERY`
-
-viewHtml=`cat  <<VIEW
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" {% for i, ns in lodspk.ns %}xmlns:{{i}}="{{ns}}" {%endfor%}
-      version="XHTML+RDFa 1.0" xml:lang="en">
-  <head>
-    <title>$1</title>
-    <link href="{{lodspk.baseUrl}}css/basic.css" rel="stylesheet" type="text/css" media="screen" />
-    <style type="text/css">
-    </style>
-  </head>
-  <body>
-    <h1>$1</h1>
- 	 <ul>
-    {% for row in models.main %}
-        <li><a href="{{lodspk.baseUrl}}special/instances/{{ row.resource.curie }}">{{row.resource.curie}}</a></li>
-    {% endfor %}
-    </ul>
-  </body>
-</html>
-VIEW`
+viewHtml=`cat  service-view.inc`
 
 #Check models
 mainDir=$DIR/../../components/$initToken/$1/
diff --git a/utils/modules/create-type.sh b/utils/modules/create-type.sh
index 379e2fe0..77c2e182 100755
--- a/utils/modules/create-type.sh
+++ b/utils/modules/create-type.sh
@@ -4,85 +4,12 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
 
 initToken='types'
 
-modelHtmlSP=`cat <<QUERY
-SELECT ?s ?p  WHERE {
-  {
-    GRAPH ?g{
-                ?s ?p <{{uri}}> .
-    }
-  }UNION{     
-                ?s ?p <{{uri}}> .
-  }
-}
-QUERY`
+cd $DIR
+modelHtmlSP=`cat type-model-1.inc`
 
-modelHtmlPO=`cat <<QUERY
-SELECT ?p ?o  WHERE {
-  {
-    GRAPH ?g{
-                <{{uri}}> ?p ?o.
-    }
-  }UNION{     
-                <{{uri}}> ?p ?o .
-  }
-}
-QUERY`
+modelHtmlPO=`cat type-model-2.inc`
 
-
-viewHtml=`cat <<VIEW
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN"
-    "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
-    <html xmlns="http://www.w3.org/1999/xhtml" {% for i, ns in lodspk.ns %}xmlns:{{i}}="{{ns}}" 
-    {%endfor%}version="XHTML+RDFa 1.0" xml:lang="en">
-    <head>
-    <title>Page about {{lodspk.this.value}}</title>
-    <link href="{{lodspk.home}}css/basic.css" rel="stylesheet" type="text/css" media="screen" />
-    <link rel="alternate" type="application/rdf+xml" title="RDF/XML Version" href="{{lodspk.this.value}}.rdf" />
-    <link rel="alternate" type="text/turtle" title="Turtle Version" href="{{lodspk.this.value}}.ttl" />
-    <link rel="alternate" type="text/plain" title="N-Triples Version" href="{{lodspk.this.value}}.nt" />
-    <link rel="alternate" type="application/json" title="RDFJSON Version" href="{{lodspk.this.value}}.json" />
-  </head>
-  <body about="{{lodspk.this.value}}">
-    <h1>Default view</h1>
-
-    <div style='margin-top: 40px'>
-    <table>
-    <tr><th>Subject</th><th>Predicate</th><th>Object</th></tr>
-    {% for row in models.po %}
-     <tr>
-<td>{%if forloop.first%}<a href='{{lodspk.this.value}}'>{{lodspk.this.curie}}</a>{%endif%}</td>
-     <td style='background-color:#c9f9c9'><a href='{{row.p.value}}'>{{row.p.curie}}</a></td>
-     
-        <td style='background-color:#c9f9c9'>
-        {%if row.o.uri == 1%}
-        <a rev='[{{row.p.curie}}]' href='{{row.o.value}}'>{{row.o.curie}}</a>
-        {%else%}
-        {{row.o.value}}
-        {%endif%}
-        </td>
-
-        </tr>
-    {% endfor %}
-<tr><td></td><td><a href='{{lodspk.this.value}}'>{{lodspk.this.curie}}</a></td><td></td></tr>
-
-    {% for row in models.sp %}
-      <tr>
-        <td style='background-color:#c9f9c9'><a href='{{row.s.value}}'>{{row.s.curie}}</a></td>
-
-        <td style='background-color:#c9f9c9'><a rel='{{row.s.curie}}' href='{{row.p.value}}'>{{row.p.curie}}</a></td>
-<td>{%if forloop.first%}<a href='{{lodspk.this.value}}'>{{lodspk.this.curie}}</a>{%endif%}</td>
-        </tr>
-    {% endfor %}
-    <tr><th>Subject</th><th>Predicate</th><th>Object</th></tr>
-
-    </table>
-    </div>    
-    
-    <br/>
-  </body>
-</html>
-VIEW`
+viewHtml=`cat type-view.inc`
 
 
 #Check models
diff --git a/utils/modules/create-uri.sh b/utils/modules/create-uri.sh
index ae7380fb..bb717855 100755
--- a/utils/modules/create-uri.sh
+++ b/utils/modules/create-uri.sh
@@ -4,85 +4,12 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
 
 initToken='uris'
 
-modelHtmlSP=`cat <<QUERY
-SELECT ?s ?p  WHERE {
-  {
-    GRAPH ?g{
-                ?s ?p <{{uri}}> .
-    }
-  }UNION{     
-                ?s ?p <{{uri}}> .
-  }
-}
-QUERY`
+cd $DIR
+modelHtmlSP=`cat type-model-1.inc`
 
-modelHtmlPO=`cat <<QUERY
-SELECT ?p ?o  WHERE {
-  {
-    GRAPH ?g{
-                <{{uri}}> ?p ?o.
-    }
-  }UNION{     
-                <{{uri}}> ?p ?o .
-  }
-}
-QUERY`
+modelHtmlPO=`cat type-model-2.inc`
 
-
-viewHtml=`cat <<VIEW
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN"
-    "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
-    <html xmlns="http://www.w3.org/1999/xhtml" {% for i, ns in lodspk.ns %}xmlns:{{i}}="{{ns}}" 
-    {%endfor%}version="XHTML+RDFa 1.0" xml:lang="en">
-    <head>
-    <title>Page about {{lodspk.this.value}}</title>
-    <link href="{{lodspk.home}}css/basic.css" rel="stylesheet" type="text/css" media="screen" />
-    <link rel="alternate" type="application/rdf+xml" title="RDF/XML Version" href="{{lodspk.this.value}}.rdf" />
-    <link rel="alternate" type="text/turtle" title="Turtle Version" href="{{lodspk.this.value}}.ttl" />
-    <link rel="alternate" type="text/plain" title="N-Triples Version" href="{{lodspk.this.value}}.nt" />
-    <link rel="alternate" type="application/json" title="RDFJSON Version" href="{{lodspk.this.value}}.json" />
-  </head>
-  <body about="{{lodspk.this.value}}">
-    <h1>Default view</h1>
-
-    <div style='margin-top: 40px'>
-    <table>
-    <tr><th>Subject</th><th>Predicate</th><th>Object</th></tr>
-    {% for row in models.po %}
-     <tr>
-<td>{%if forloop.first%}<a href='{{lodspk.this.value}}'>{{lodspk.this.curie}}</a>{%endif%}</td>
-     <td style='background-color:#c9f9c9'><a href='{{row.p.value}}'>{{row.p.curie}}</a></td>
-     
-        <td style='background-color:#c9f9c9'>
-        {%if row.o.uri == 1%}
-        <a rev='[{{row.p.curie}}]' href='{{row.o.value}}'>{{row.o.curie}}</a>
-        {%else%}
-        {{row.o.value}}
-        {%endif%}
-        </td>
-
-        </tr>
-    {% endfor %}
-<tr><td></td><td><a href='{{lodspk.this.value}}'>{{lodspk.this.curie}}</a></td><td></td></tr>
-
-    {% for row in models.sp %}
-      <tr>
-        <td style='background-color:#c9f9c9'><a href='{{row.s.value}}'>{{row.s.curie}}</a></td>
-
-        <td style='background-color:#c9f9c9'><a rel='{{row.s.curie}}' href='{{row.p.value}}'>{{row.p.curie}}</a></td>
-<td>{%if forloop.first%}<a href='{{lodspk.this.value}}'>{{lodspk.this.curie}}</a>{%endif%}</td>
-        </tr>
-    {% endfor %}
-    <tr><th>Subject</th><th>Predicate</th><th>Object</th></tr>
-
-    </table>
-    </div>    
-    
-    <br/>
-  </body>
-</html>
-VIEW`
+viewHtml=`cat type-view.inc`
 
 
 #Check models
diff --git a/utils/modules/service-model.inc b/utils/modules/service-model.inc
new file mode 100644
index 00000000..9b437bfb
--- /dev/null
+++ b/utils/modules/service-model.inc
@@ -0,0 +1,10 @@
+SELECT DISTINCT ?resource WHERE {
+  {
+    GRAPH {%if lodspk.args.arg0 %}<{{lodspk.args.arg0}}>{%else%}?g{%endif%} {
+  	  [] a ?resource .
+    }
+  }UNION{
+    [] a ?resource .
+  }
+}
+LIMIT 10
diff --git a/utils/modules/service-view.inc b/utils/modules/service-view.inc
new file mode 100644
index 00000000..c48017e1
--- /dev/null
+++ b/utils/modules/service-view.inc
@@ -0,0 +1,77 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <title>LODSPeaKr Basic Menu</title>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <meta name="description" content="">
+    <meta name="author" content="">
+    <link href="css/bootstrap.min.css" rel="stylesheet" type="text/css" media="screen" />
+    <style>
+      body {
+        padding-top: 60px; /* 60px to make the container go all the way to the bottom of the topbar */
+      }
+      .wait{
+        background-image:url('img/wait.gif');
+        background-repeat:no-repeat;
+        padding-right:20px;
+        background-position: right;
+      }
+    </style>
+    <link href="css/bootstrap-responsive.min.css" rel="stylesheet" type="text/css" media="screen" />
+    <script type="text/javascript" src="js/jquery.js"></script>
+    <script type="text/javascript" src="js/bootstrap.min.js"></script>
+    <script type="text/javascript" src="js/bootstrap-typeahead.js"></script>
+    <script type="text/javascript">
+    $(document).ready(function(){
+        $('.typeahead').typeahead({
+            source: function (typeahead, query) {
+              $('.typeahead').addClass('wait');[]
+              return $.get('search/'+encodeURIComponent(query), { }, function (data) {
+                  $('.typeahead').removeClass('wait');[]
+                  return typeahead.process(data);
+              }, 'json');
+            },
+            onselect: function (obj) {
+              $('.typeahead').attr('disabled', true);
+              window.location = obj.uri;
+            }
+        });
+    });
+    </script>
+  </head>
+  <body>
+ <div class="navbar navbar-fixed-top">
+      <div class="navbar-inner">
+        <div class="container">
+          <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+          </a>
+          <a class="brand" href="#">LODSPeaKr</a>
+          <div class="nav-collapse">
+            <ul class="nav">
+              <li class="active"><a href="#">Home</a></li>
+              <li><a href="classes">Classes</a></li>
+              <li><a href="namedGraphs">Named Graphs</a></li>
+            </ul>
+            <form class="navbar-search pull-left" action="">
+              <input type="text" data-provide="typeahead" class="typeahead search-query span2" placeholder="Search"/>
+            </form>
+          </div><!--/.nav-collapse -->
+        </div>
+      </div>
+    </div>
+
+    <div class="container">
+      <h1>My new service</h1>
+ 	    <ul>
+    {% for row in models.main %}
+        <li><a href="{{lodspk.home}}instances/{{ row.resource.curie }}">{{row.resource.curie}}</a></li>
+    {% endfor %}
+      </ul>
+    </div>
+  </body>
+</html>
+
diff --git a/utils/modules/type-model-1.inc b/utils/modules/type-model-1.inc
new file mode 100644
index 00000000..58ecc532
--- /dev/null
+++ b/utils/modules/type-model-1.inc
@@ -0,0 +1,10 @@
+SELECT ?s ?p  WHERE {
+  {
+    GRAPH ?g{
+                ?s ?p <{{uri}}> .
+    }
+  }UNION{     
+                ?s ?p <{{uri}}> .
+  }
+}
+
diff --git a/utils/modules/type-model-2.inc b/utils/modules/type-model-2.inc
new file mode 100644
index 00000000..695c482d
--- /dev/null
+++ b/utils/modules/type-model-2.inc
@@ -0,0 +1,10 @@
+SELECT ?p ?o  WHERE {
+  {
+    GRAPH ?g{
+                <{{uri}}> ?p ?o.
+    }
+  }UNION{     
+                <{{uri}}> ?p ?o .
+  }
+}
+
diff --git a/utils/modules/type-view.inc b/utils/modules/type-view.inc
new file mode 100644
index 00000000..323f9b1f
--- /dev/null
+++ b/utils/modules/type-view.inc
@@ -0,0 +1,109 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <title>LODSPeaKr Basic Menu</title>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <meta name="description" content="">
+    <meta name="author" content="">
+    <link href="{{lodspk.home}}css/bootstrap.min.css" rel="stylesheet" type="text/css" media="screen" />
+    <style>
+      body {
+        padding-top: 60px; /* 60px to make the container go all the way to the bottom of the topbar */
+      }
+      .wait{
+        background-image:url('img/wait.gif');
+        background-repeat:no-repeat;
+        padding-right:20px;
+        background-position: right;
+      }
+    </style>
+    <link href="{{lodspk.home}}css/bootstrap-responsive.min.css" rel="stylesheet" type="text/css" media="screen" />
+    <script type="text/javascript" src="{{lodspk.home}}js/jquery.js"></script>
+    <script type="text/javascript" src="{{lodspk.home}}js/bootstrap.min.js"></script>
+    <script type="text/javascript" src="{{lodspk.home}}js/bootstrap-typeahead.js"></script>
+    <script type="text/javascript">
+    $(document).ready(function(){
+        $('.typeahead').typeahead({
+            source: function (typeahead, query) {
+              $('.typeahead').addClass('wait');[]
+              return $.get('search/'+encodeURIComponent(query), { }, function (data) {
+                  $('.typeahead').removeClass('wait');[]
+                  return typeahead.process(data);
+              }, 'json');
+            },
+            onselect: function (obj) {
+              $('.typeahead').attr('disabled', true);
+              window.location = obj.uri;
+            }
+        });
+    });
+    </script>
+  </head>
+  <body>
+ <div class="navbar navbar-fixed-top">
+      <div class="navbar-inner">
+        <div class="container">
+          <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+          </a>
+          <a class="brand" href="{{lodspk.home}}">LODSPeaKr</a>
+          <div class="nav-collapse">
+            <ul class="nav">
+              <li class="active"><a href="{{lodspk.home}}">Home</a></li>
+              <li><a href="{{lodspk.home}}classes">Classes</a></li>
+              <li><a href="{{lodspk.home}}namedGraphs">Named Graphs</a></li>
+            </ul>
+            <form class="navbar-search pull-left" action="">
+              <input type="text" data-provide="typeahead" class="typeahead search-query span2" placeholder="Search"/>
+            </form>
+          </div><!--/.nav-collapse -->
+        </div>
+      </div>
+    </div>
+
+    <div class="container">
+    <h1>Default view</h1>
+
+    <div style='margin-top: 40px'>
+    <table class='table table-striped'>
+    <thead>
+    <tr><th>Subject</th><th>Predicate</th><th>Object</th></tr>
+    </thead>
+    {% for row in models.po %}
+     <tr>
+<td>{%if forloop.first%}<a href='{{lodspk.this.value}}'>{{lodspk.this.curie}}</a>{%endif%}</td>
+     <td><a href='{{row.p.value}}'>{{row.p.curie}}</a></td>
+     
+        <td>
+        {%if row.o.uri == 1%}
+        <a rev='[{{row.p.curie}}]' href='{{row.o.value}}'>{{row.o.curie}}</a>
+        {%else%}
+        {{row.o.value}}
+        {%endif%}
+        </td>
+
+        </tr>
+    {% endfor %}
+<tr><td></td><td><a href='{{lodspk.this.value}}'>{{lodspk.this.curie}}</a></td><td></td></tr>
+
+    {% for row in models.sp %}
+      <tr>
+        <td><a href='{{row.s.value}}'>{{row.s.curie}}</a></td>
+
+        <td><a rel='{{row.s.curie}}' href='{{row.p.value}}'>{{row.p.curie}}</a></td>
+<td>{%if forloop.first%}<a href='{{lodspk.this.value}}'>{{lodspk.this.curie}}</a>{%endif%}</td>
+        </tr>
+    {% endfor %}
+    <thead>
+    <tr><th>Subject</th><th>Predicate</th><th>Object</th></tr>
+    </thead>
+    </table>
+    </div>    
+    
+    <br/>
+  </body>
+</html>
+
-- 
GitLab