You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by he...@apache.org on 2015/04/08 11:20:26 UTC

[10/19] incubator-brooklyn git commit: Improve the SEO for the catalog

Improve the SEO for the catalog

- support hashbang tag
  https://developers.google.com/webmasters/ajax-crawling/docs/getting-started


Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/26e63add
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/26e63add
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/26e63add

Branch: refs/heads/master
Commit: 26e63add205ce15ea86b42e5c632522609ec6afa
Parents: ab6abfa
Author: Valentin Aitken <bo...@gmail.com>
Authored: Mon Feb 23 19:37:27 2015 +0200
Committer: Valentin Aitken <bo...@gmail.com>
Committed: Mon Feb 23 19:37:27 2015 +0200

----------------------------------------------------------------------
 .../website/learnmore/catalog/catalog-item.html | 65 ++++++++++++++++----
 1 file changed, 52 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/26e63add/docs/website/learnmore/catalog/catalog-item.html
----------------------------------------------------------------------
diff --git a/docs/website/learnmore/catalog/catalog-item.html b/docs/website/learnmore/catalog/catalog-item.html
index 82512a9..2eaf96b 100644
--- a/docs/website/learnmore/catalog/catalog-item.html
+++ b/docs/website/learnmore/catalog/catalog-item.html
@@ -22,6 +22,8 @@ under the License.
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
 <head>
   <title>Brooklyn Entity - Brooklyn Node</title>
+  <meta name="fragment" content="!">
+
   {% include base-head.html %}
   <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
   <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
@@ -58,18 +60,13 @@ under the License.
 <script src="{{site.path.style}}/js/catalog/items.js" type="text/javascript"></script>
 <script type="text/javascript">
   $(document).ready(function () {
-    updateItems();
+    updateItem();
 
-    $(window).on('hashchange', updateItems);
+    $(window).on('hashchange', updateItem);
 
-    function updateItems() {
-      var args;
-      var hash = window.location.hash;
-      if(!hash || hash.length <= 2) {
-        alert('No such catalog item');
-        return;
-      }
-      args = hash.substring(2).split('/');
+    function updateItem() {
+      var args, catalog_type;
+      args = getArgs();
       if(args.length!=2) {
         alert('bad entity format')
         return;
@@ -77,11 +74,53 @@ under the License.
 
       // entities/brooklyn.entity.brooklynnode.BrooklynNode
       var item = brooklyn.findItemOfType(items[args[0]], args[1]);
+
       $("#summary").html(brooklyn.typeSummary(item));
+      if(args[0] == 'entities') {
+        catalog_type = 'Entity';
+      } else if(args[0] == 'policies') {
+        catalog_type = 'Policy';
+      } else if(args[0] == 'enrichers') {
+        catalog_type = 'Enricher'
+      }
+
+      document.title = 'Brooklyn ' + catalog_type + ' - ' + item.name;
+
       item.config.forEach(function (element) { $("#configKeys").append(brooklyn.configKeyCard(element)); });
-      item.sensors.forEach(function (element) { $("#sensors").append(brooklyn.sensorCard(element)); });
-      if (item.effectors != undefined) {
-        item.effectors.forEach(function (element) { $("#effectors").append(brooklyn.effectorCard(element)); });
+
+      if(args[0] == 'entities') {
+        item.sensors.forEach(function (element) { $("#sensors").append(brooklyn.sensorCard(element)); });
+        if (item.effectors != undefined) {
+          item.effectors.forEach(function (element) { $("#effectors").append(brooklyn.effectorCard(element)); });
+        }
+      }
+    }
+
+    function getArgs() {
+      var args;
+      var params = window.location.hash;
+      if(params) {
+        if(params.length <= 2) {
+          alert('No such catalog item');
+        }
+        args = params.substring(2).split('/');
+      } else {
+        params = getParameterByName('_escaped_fragment_');
+        args = params.split('/');
+      }
+
+      return args;
+
+      function getParameterByName(name) {
+        var search = window.location.search || document.location.search;
+        if(search === undefined) {
+          alert('No get parameter specified for a catalog item')
+        }
+
+        name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
+        var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
+                results = regex.exec(search);
+        return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
       }
     }
   });