filter/sort table
filter/sort table

--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -2,15 +2,18 @@
 <project version="4">

   <component name="ChangeListManager">

     <list default="true" id="816b2800-4ae7-4ee2-9d29-ebf91af07d7d" name="Default" comment="">

-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/data.json.php" />

       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/data/DCaaS+Catalogue+September+2013 Public.xls" afterPath="$PROJECT_DIR$/data/DCaaS+Catalogue+September+2013 Public.xls" />

+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/img/csv.gif" afterPath="$PROJECT_DIR$/img/csv.gif" />

       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/fonts/glyphicons-halflings-regular.eot" afterPath="$PROJECT_DIR$/fonts/glyphicons-halflings-regular.eot" />

       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/fonts/glyphicons-halflings-regular.ttf" afterPath="$PROJECT_DIR$/fonts/glyphicons-halflings-regular.ttf" />

       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/fonts/glyphicons-halflings-regular.woff" afterPath="$PROJECT_DIR$/fonts/glyphicons-halflings-regular.woff" />

+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/img/icon_2567.png" afterPath="$PROJECT_DIR$/img/icon_2567.png" />

+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/lib/tag-cloud" afterPath="$PROJECT_DIR$/lib/tag-cloud" />

       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.gitmodules" afterPath="$PROJECT_DIR$/.gitmodules" />

       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/.name" afterPath="$PROJECT_DIR$/.idea/.name" />

       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/data/DCaaS+Catalogue+September+2013 PublicDCaaS_AFI_Part_3_Sec_5_Service_.csv" afterPath="$PROJECT_DIR$/data/DCaaS+Catalogue+September+2013 PublicDCaaS_AFI_Part_3_Sec_5_Service_.csv" />

       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/README.md" afterPath="$PROJECT_DIR$/README.md" />

+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/about.php" afterPath="$PROJECT_DIR$/about.php" />

       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/css/bootstrap-theme.css" afterPath="$PROJECT_DIR$/css/bootstrap-theme.css" />

       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/css/bootstrap-theme.min.css" afterPath="$PROJECT_DIR$/css/bootstrap-theme.min.css" />

       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/css/bootstrap.css" afterPath="$PROJECT_DIR$/css/bootstrap.css" />

@@ -19,28 +22,38 @@
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/js/bootstrap.min.js" afterPath="$PROJECT_DIR$/js/bootstrap.min.js" />

       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/compiler.xml" afterPath="$PROJECT_DIR$/.idea/compiler.xml" />

       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/config.php" afterPath="$PROJECT_DIR$/config.php" />

+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/data.json.php" afterPath="$PROJECT_DIR$/data.json.php" />

       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/dcaas.iml" afterPath="$PROJECT_DIR$/dcaas.iml" />

       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/encodings.xml" afterPath="$PROJECT_DIR$/.idea/encodings.xml" />

       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/fonts/glyphicons-halflings-regular.svg" afterPath="$PROJECT_DIR$/fonts/glyphicons-halflings-regular.svg" />

+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/img/icon_2567.svg" afterPath="$PROJECT_DIR$/img/icon_2567.svg" />

       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/data/import.php" afterPath="$PROJECT_DIR$/data/import.php" />

       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/index.php" afterPath="$PROJECT_DIR$/index.php" />

+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/img/license.txt" afterPath="$PROJECT_DIR$/img/license.txt" />

       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/misc.xml" afterPath="$PROJECT_DIR$/.idea/misc.xml" />

       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/modules.xml" afterPath="$PROJECT_DIR$/.idea/modules.xml" />

+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/robots.txt" afterPath="$PROJECT_DIR$/robots.txt" />

       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/scopes/scope_settings.xml" afterPath="$PROJECT_DIR$/.idea/scopes/scope_settings.xml" />

+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/sitemap.xml.php" afterPath="$PROJECT_DIR$/sitemap.xml.php" />

       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/table.php" afterPath="$PROJECT_DIR$/table.php" />

       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/vcs.xml" afterPath="$PROJECT_DIR$/.idea/vcs.xml" />

+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/view.php" afterPath="$PROJECT_DIR$/view.php" />

       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />

       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/data/xls2csv.py" afterPath="$PROJECT_DIR$/data/xls2csv.py" />

     </list>

     <ignored path="dcaas.iws" />

     <ignored path=".idea/workspace.xml" />

-    <file path="/Dummy.txt" changelist="816b2800-4ae7-4ee2-9d29-ebf91af07d7d" time="1388307080633" ignored="false" />

+    <file path="/Dummy.txt" changelist="816b2800-4ae7-4ee2-9d29-ebf91af07d7d" time="1388344993673" ignored="false" />

     <file path="/import.php" changelist="816b2800-4ae7-4ee2-9d29-ebf91af07d7d" time="1388236506137" ignored="false" />

     <file path="/index.php" changelist="816b2800-4ae7-4ee2-9d29-ebf91af07d7d" time="1388339437257" ignored="false" />

-    <file path="/config.php" changelist="816b2800-4ae7-4ee2-9d29-ebf91af07d7d" time="1388307451340" ignored="false" />

+    <file path="/config.php" changelist="816b2800-4ae7-4ee2-9d29-ebf91af07d7d" time="1388498839775" ignored="false" />

     <file path="/tagcloud.css" changelist="816b2800-4ae7-4ee2-9d29-ebf91af07d7d" time="1388307524935" ignored="false" />

-    <file path="/data.json.php" changelist="816b2800-4ae7-4ee2-9d29-ebf91af07d7d" time="1388344717435" ignored="false" />

-    <file path="/table.php" changelist="816b2800-4ae7-4ee2-9d29-ebf91af07d7d" time="1388344953688" ignored="false" />

+    <file path="/data.json.php" changelist="816b2800-4ae7-4ee2-9d29-ebf91af07d7d" time="1388499467699" ignored="false" />

+    <file path="/table.php" changelist="816b2800-4ae7-4ee2-9d29-ebf91af07d7d" time="1388499014164" ignored="false" />

+    <file path="/view.php" changelist="816b2800-4ae7-4ee2-9d29-ebf91af07d7d" time="1388496818732" ignored="false" />

+    <file path="/robots.txt" changelist="816b2800-4ae7-4ee2-9d29-ebf91af07d7d" time="1388492384234" ignored="false" />

+    <file path="/sitemap.xml.php" changelist="816b2800-4ae7-4ee2-9d29-ebf91af07d7d" time="1388492660527" ignored="false" />

+    <file path="/xls2csv.py" changelist="816b2800-4ae7-4ee2-9d29-ebf91af07d7d" time="1388492814098" ignored="false" />

     <option name="TRACKING_ENABLED" value="true" />

     <option name="SHOW_DIALOG" value="false" />

     <option name="HIGHLIGHT_CONFLICTS" value="true" />

@@ -104,36 +117,46 @@
       <file leaf-file-name="config.php" pinned="false" current="false" current-in-tab="false">

         <entry file="file://$PROJECT_DIR$/config.php">

           <provider selected="true" editor-type-id="text-editor">

-            <state line="40" column="50" selection-start="1318" selection-end="1318" vertical-scroll-proportion="2.3076923">

-              <folding />

-            </state>

-          </provider>

-        </entry>

-      </file>

-      <file leaf-file-name="import.php" pinned="false" current="false" current-in-tab="false">

-        <entry file="file://$PROJECT_DIR$/data/import.php">

-          <provider selected="true" editor-type-id="text-editor">

-            <state line="29" column="34" selection-start="1266" selection-end="1266" vertical-scroll-proportion="-10.5">

-              <folding />

-            </state>

-          </provider>

-        </entry>

-      </file>

-      <file leaf-file-name="index.php" pinned="false" current="false" current-in-tab="false">

-        <entry file="file://$PROJECT_DIR$/index.php">

-          <provider selected="true" editor-type-id="text-editor">

-            <state line="25" column="4" selection-start="829" selection-end="903" vertical-scroll-proportion="-16.346153">

-              <folding>

-                <element signature="n#style#0;n#div#0;n#div#0;n#div#0;n#!!top" expanded="true" />

-              </folding>

-            </state>

-          </provider>

-        </entry>

-      </file>

-      <file leaf-file-name="data.json.php" pinned="false" current="false" current-in-tab="false">

+            <state line="52" column="42" selection-start="1618" selection-end="1618" vertical-scroll-proportion="-13.615385">

+              <folding />

+            </state>

+          </provider>

+        </entry>

+      </file>

+      <file leaf-file-name="jquery.dynatable.css" pinned="false" current="false" current-in-tab="false">

+        <entry file="file://$PROJECT_DIR$/js/dynatable/jquery.dynatable.css">

+          <provider selected="true" editor-type-id="text-editor">

+            <state line="2" column="16" selection-start="0" selection-end="83" vertical-scroll-proportion="0.0">

+              <folding />

+            </state>

+          </provider>

+        </entry>

+      </file>

+      <file leaf-file-name="bootstrap.css" pinned="false" current="false" current-in-tab="false">

+        <entry file="file://$PROJECT_DIR$/css/bootstrap.css">

+          <provider selected="true" editor-type-id="text-editor">

+            <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">

+              <folding />

+            </state>

+          </provider>

+        </entry>

+      </file>

+      <file leaf-file-name="xls2csv.py" pinned="false" current="false" current-in-tab="false">

+        <entry file="file://$PROJECT_DIR$/data/xls2csv.py">

+          <provider selected="true" editor-type-id="text-editor">

+            <state line="15" column="113" selection-start="490" selection-end="490" vertical-scroll-proportion="-8.16">

+              <folding />

+            </state>

+          </provider>

+          <provider editor-type-id="com.intellij.persistence.database.editor.CsvTableFileEditorProvider">

+            <state />

+          </provider>

+        </entry>

+      </file>

+      <file leaf-file-name="data.json.php" pinned="false" current="true" current-in-tab="true">

         <entry file="file://$PROJECT_DIR$/data.json.php">

           <provider selected="true" editor-type-id="text-editor">

-            <state line="13" column="47" selection-start="693" selection-end="693" vertical-scroll-proportion="-8.5">

+            <state line="21" column="45" selection-start="1149" selection-end="1149" vertical-scroll-proportion="0.45535713">

               <folding />

             </state>

           </provider>

@@ -148,10 +171,37 @@
           </provider>

         </entry>

       </file>

-      <file leaf-file-name="table.php" pinned="false" current="true" current-in-tab="true">

+      <file leaf-file-name="table.php" pinned="false" current="false" current-in-tab="false">

         <entry file="file://$PROJECT_DIR$/table.php">

           <provider selected="true" editor-type-id="text-editor">

-            <state line="30" column="13" selection-start="914" selection-end="914" vertical-scroll-proportion="0.41511628">

+            <state line="24" column="58" selection-start="610" selection-end="610" vertical-scroll-proportion="-7.8461537">

+              <folding />

+            </state>

+          </provider>

+        </entry>

+      </file>

+      <file leaf-file-name="view.php" pinned="false" current="false" current-in-tab="false">

+        <entry file="file://$PROJECT_DIR$/view.php">

+          <provider selected="true" editor-type-id="text-editor">

+            <state line="36" column="60" selection-start="1888" selection-end="1888" vertical-scroll-proportion="-23.538462">

+              <folding />

+            </state>

+          </provider>

+        </entry>

+      </file>

+      <file leaf-file-name="sitemap.xml.php" pinned="false" current="false" current-in-tab="false">

+        <entry file="file://$PROJECT_DIR$/sitemap.xml.php">

+          <provider selected="true" editor-type-id="text-editor">

+            <state line="20" column="17" selection-start="876" selection-end="876" vertical-scroll-proportion="-13.076923">

+              <folding />

+            </state>

+          </provider>

+        </entry>

+      </file>

+      <file leaf-file-name="robots.txt" pinned="false" current="false" current-in-tab="false">

+        <entry file="file://$PROJECT_DIR$/robots.txt">

+          <provider selected="true" editor-type-id="text-editor">

+            <state line="5" column="51" selection-start="175" selection-end="175" vertical-scroll-proportion="0.0">

               <folding />

             </state>

           </provider>

@@ -176,12 +226,16 @@
     <option name="changedFiles">

       <list>

         <option value="$PROJECT_DIR$/data/import.php" />

-        <option value="$PROJECT_DIR$/config.php" />

         <option value="$PROJECT_DIR$/lib/tag-cloud/css/tagcloud.css" />

         <option value="$PROJECT_DIR$/about.php" />

         <option value="$PROJECT_DIR$/index.php" />

+        <option value="$PROJECT_DIR$/robots.txt" />

+        <option value="$PROJECT_DIR$/sitemap.xml.php" />

+        <option value="$PROJECT_DIR$/data/xls2csv.py" />

+        <option value="$PROJECT_DIR$/view.php" />

+        <option value="$PROJECT_DIR$/config.php" />

+        <option value="$PROJECT_DIR$/table.php" />

         <option value="$PROJECT_DIR$/data.json.php" />

-        <option value="$PROJECT_DIR$/table.php" />

       </list>

     </option>

   </component>

@@ -273,6 +327,66 @@
               <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />

             </PATH_ELEMENT>

             <PATH_ELEMENT>

+              <option name="myItemId" value="tests" />

+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />

+            </PATH_ELEMENT>

+            <PATH_ELEMENT>

+              <option name="myItemId" value="lotsofcode" />

+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />

+            </PATH_ELEMENT>

+            <PATH_ELEMENT>

+              <option name="myItemId" value="TagCloud" />

+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />

+            </PATH_ELEMENT>

+          </PATH>

+          <PATH>

+            <PATH_ELEMENT>

+              <option name="myItemId" value="dcaas" />

+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />

+            </PATH_ELEMENT>

+            <PATH_ELEMENT>

+              <option name="myItemId" value="dcaas" />

+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />

+            </PATH_ELEMENT>

+            <PATH_ELEMENT>

+              <option name="myItemId" value="lib" />

+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />

+            </PATH_ELEMENT>

+            <PATH_ELEMENT>

+              <option name="myItemId" value="tag-cloud" />

+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />

+            </PATH_ELEMENT>

+            <PATH_ELEMENT>

+              <option name="myItemId" value="src" />

+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />

+            </PATH_ELEMENT>

+            <PATH_ELEMENT>

+              <option name="myItemId" value="lotsofcode" />

+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />

+            </PATH_ELEMENT>

+            <PATH_ELEMENT>

+              <option name="myItemId" value="TagCloud" />

+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />

+            </PATH_ELEMENT>

+          </PATH>

+          <PATH>

+            <PATH_ELEMENT>

+              <option name="myItemId" value="dcaas" />

+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />

+            </PATH_ELEMENT>

+            <PATH_ELEMENT>

+              <option name="myItemId" value="dcaas" />

+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />

+            </PATH_ELEMENT>

+            <PATH_ELEMENT>

+              <option name="myItemId" value="lib" />

+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />

+            </PATH_ELEMENT>

+            <PATH_ELEMENT>

+              <option name="myItemId" value="tag-cloud" />

+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />

+            </PATH_ELEMENT>

+            <PATH_ELEMENT>

               <option name="myItemId" value="css" />

               <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />

             </PATH_ELEMENT>

@@ -287,6 +401,38 @@
               <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />

             </PATH_ELEMENT>

             <PATH_ELEMENT>

+              <option name="myItemId" value="js" />

+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />

+            </PATH_ELEMENT>

+          </PATH>

+          <PATH>

+            <PATH_ELEMENT>

+              <option name="myItemId" value="dcaas" />

+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />

+            </PATH_ELEMENT>

+            <PATH_ELEMENT>

+              <option name="myItemId" value="dcaas" />

+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />

+            </PATH_ELEMENT>

+            <PATH_ELEMENT>

+              <option name="myItemId" value="js" />

+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />

+            </PATH_ELEMENT>

+            <PATH_ELEMENT>

+              <option name="myItemId" value="dynatable" />

+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />

+            </PATH_ELEMENT>

+          </PATH>

+          <PATH>

+            <PATH_ELEMENT>

+              <option name="myItemId" value="dcaas" />

+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />

+            </PATH_ELEMENT>

+            <PATH_ELEMENT>

+              <option name="myItemId" value="dcaas" />

+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />

+            </PATH_ELEMENT>

+            <PATH_ELEMENT>

               <option name="myItemId" value="img" />

               <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />

             </PATH_ELEMENT>

@@ -302,6 +448,20 @@
             </PATH_ELEMENT>

             <PATH_ELEMENT>

               <option name="myItemId" value="data" />

+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />

+            </PATH_ELEMENT>

+          </PATH>

+          <PATH>

+            <PATH_ELEMENT>

+              <option name="myItemId" value="dcaas" />

+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />

+            </PATH_ELEMENT>

+            <PATH_ELEMENT>

+              <option name="myItemId" value="dcaas" />

+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />

+            </PATH_ELEMENT>

+            <PATH_ELEMENT>

+              <option name="myItemId" value="css" />

               <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />

             </PATH_ELEMENT>

           </PATH>

@@ -391,8 +551,9 @@
   <component name="ShelveChangesManager" show_recycled="false" />

   <component name="ToolWindowManager">

     <frame x="58" y="-4" width="1626" height="1058" extended-state="6" />

-    <editor active="false" />

+    <editor active="true" />

     <layout>

+      <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.32894737" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />

       <window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />

       <window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />

       <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />

@@ -455,7 +616,7 @@
     <option name="WRAP_WHEN_TYPING_REACHES_RIGHT_MARGIN" value="false" />

     <option name="FORCE_NON_EMPTY_COMMENT" value="false" />

     <option name="CLEAR_INITIAL_COMMIT_MESSAGE" value="false" />

-    <option name="LAST_COMMIT_MESSAGE" />

+    <option name="LAST_COMMIT_MESSAGE" value="ajax table" />

     <option name="MAKE_NEW_CHANGELIST_ACTIVE" value="false" />

     <option name="OPTIMIZE_IMPORTS_BEFORE_PROJECT_COMMIT" value="false" />

     <option name="CHECK_FILES_UP_TO_DATE_BEFORE_COMMIT" value="false" />

@@ -469,18 +630,12 @@
     <option name="UPDATE_FILTER_BY_SCOPE" value="false" />

     <option name="SHOW_FILE_HISTORY_AS_TREE" value="false" />

     <option name="FILE_HISTORY_SPLITTER_PROPORTION" value="0.6" />

+    <MESSAGE value="ajax table" />

   </component>

   <component name="XDebuggerManager">

     <breakpoint-manager />

   </component>

   <component name="editorHistoryManager">

-    <entry file="file://$PROJECT_DIR$/config.php">

-      <provider selected="true" editor-type-id="text-editor">

-        <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">

-          <folding />

-        </state>

-      </provider>

-    </entry>

     <entry file="file://$PROJECT_DIR$/data/import.php">

       <provider selected="true" editor-type-id="text-editor">

         <state line="29" column="34" selection-start="1266" selection-end="1266" vertical-scroll-proportion="0.0">

@@ -504,20 +659,6 @@
         </state>

       </provider>

     </entry>

-    <entry file="file://$PROJECT_DIR$/config.php">

-      <provider selected="true" editor-type-id="text-editor">

-        <state line="40" column="50" selection-start="1318" selection-end="1318" vertical-scroll-proportion="2.3076923">

-          <folding />

-        </state>

-      </provider>

-    </entry>

-    <entry file="file://$PROJECT_DIR$/lib/tag-cloud/css/tagcloud.css">

-      <provider selected="true" editor-type-id="text-editor">

-        <state line="44" column="17" selection-start="642" selection-end="642" vertical-scroll-proportion="0.0">

-          <folding />

-        </state>

-      </provider>

-    </entry>

     <entry file="file://$PROJECT_DIR$/about.php">

       <provider selected="true" editor-type-id="text-editor">

         <state line="7" column="13" selection-start="159" selection-end="159" vertical-scroll-proportion="0.1383721">

@@ -525,32 +666,91 @@
         </state>

       </provider>

     </entry>

+    <entry file="file://$PROJECT_DIR$/robots.txt">

+      <provider selected="true" editor-type-id="text-editor">

+        <state line="5" column="51" selection-start="175" selection-end="175" vertical-scroll-proportion="0.0">

+          <folding />

+        </state>

+      </provider>

+    </entry>

+    <entry file="file://$PROJECT_DIR$/data/import.php">

+      <provider selected="true" editor-type-id="text-editor">

+        <state line="41" column="27" selection-start="1839" selection-end="1839" vertical-scroll-proportion="-16.384615">

+          <folding />

+        </state>

+      </provider>

+    </entry>

+    <entry file="file://$PROJECT_DIR$/data/xls2csv.py">

+      <provider selected="true" editor-type-id="text-editor">

+        <state line="15" column="113" selection-start="490" selection-end="490" vertical-scroll-proportion="-8.16">

+          <folding />

+        </state>

+      </provider>

+      <provider editor-type-id="com.intellij.persistence.database.editor.CsvTableFileEditorProvider">

+        <state />

+      </provider>

+    </entry>

     <entry file="file://$PROJECT_DIR$/index.php">

       <provider selected="true" editor-type-id="text-editor">

-        <state line="25" column="4" selection-start="829" selection-end="903" vertical-scroll-proportion="-16.346153">

+        <state line="25" column="53" selection-start="878" selection-end="878" vertical-scroll-proportion="-11.076923">

           <folding>

             <element signature="n#style#0;n#div#0;n#div#0;n#div#0;n#!!top" expanded="true" />

           </folding>

         </state>

       </provider>

     </entry>

-    <entry file="file://$PROJECT_DIR$/data/import.php">

-      <provider selected="true" editor-type-id="text-editor">

-        <state line="29" column="34" selection-start="1266" selection-end="1266" vertical-scroll-proportion="-10.5">

+    <entry file="file://$PROJECT_DIR$/sitemap.xml.php">

+      <provider selected="true" editor-type-id="text-editor">

+        <state line="20" column="17" selection-start="876" selection-end="876" vertical-scroll-proportion="-13.076923">

+          <folding />

+        </state>

+      </provider>

+    </entry>

+    <entry file="file://$PROJECT_DIR$/view.php">

+      <provider selected="true" editor-type-id="text-editor">

+        <state line="36" column="60" selection-start="1888" selection-end="1888" vertical-scroll-proportion="-23.538462">

+          <folding />

+        </state>

+      </provider>

+    </entry>

+    <entry file="file://$PROJECT_DIR$/css/bootstrap.css">

+      <provider selected="true" editor-type-id="text-editor">

+        <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">

+          <folding />

+        </state>

+      </provider>

+    </entry>

+    <entry file="file://$PROJECT_DIR$/js/dynatable/jquery.dynatable.css">

+      <provider selected="true" editor-type-id="text-editor">

+        <state line="2" column="16" selection-start="0" selection-end="83" vertical-scroll-proportion="0.0">

+          <folding />

+        </state>

+      </provider>

+    </entry>

+    <entry file="file://$PROJECT_DIR$/lib/tag-cloud/css/tagcloud.css">

+      <provider selected="true" editor-type-id="text-editor">

+        <state line="44" column="17" selection-start="642" selection-end="642" vertical-scroll-proportion="0.0">

+          <folding />

+        </state>

+      </provider>

+    </entry>

+    <entry file="file://$PROJECT_DIR$/config.php">

+      <provider selected="true" editor-type-id="text-editor">

+        <state line="52" column="42" selection-start="1618" selection-end="1618" vertical-scroll-proportion="-13.615385">

+          <folding />

+        </state>

+      </provider>

+    </entry>

+    <entry file="file://$PROJECT_DIR$/table.php">

+      <provider selected="true" editor-type-id="text-editor">

+        <state line="24" column="58" selection-start="610" selection-end="610" vertical-scroll-proportion="-7.8461537">

           <folding />

         </state>

       </provider>

     </entry>

     <entry file="file://$PROJECT_DIR$/data.json.php">

       <provider selected="true" editor-type-id="text-editor">

-        <state line="13" column="47" selection-start="693" selection-end="693" vertical-scroll-proportion="-8.5">

-          <folding />

-        </state>

-      </provider>

-    </entry>

-    <entry file="file://$PROJECT_DIR$/table.php">

-      <provider selected="true" editor-type-id="text-editor">

-        <state line="30" column="13" selection-start="914" selection-end="914" vertical-scroll-proportion="0.41511628">

+        <state line="21" column="45" selection-start="1149" selection-end="1149" vertical-scroll-proportion="0.45535713">

           <folding />

         </state>

       </provider>


file:a/about.php -> file:b/about.php
--- a/about.php
+++ b/about.php
@@ -1,2 +1,3 @@
-Icon "Cloud Computing" designed by <a href="http://thenounproject.com/andrewforrester/">Andrew Forrester</a> from the <a href="http://www.thenounproject.com/">Noun Project</a>

+Icon "Cloud Computing" designed by <a href="http://thenounproject.com/andrewforrester/">Andrew Forrester</a> from the <a

+    href="http://www.thenounproject.com/">Noun Project</a>

 

file:a/config.php -> file:b/config.php
--- a/config.php
+++ b/config.php
@@ -18,6 +18,10 @@
     // Print PDOException message
     echo $e->getMessage();
 }
+function local_url()
+{
+    return "http://" . $_SERVER['HTTP_HOST'] . rtrim(dirname($_SERVER['PHP_SELF']), '/\\') . "/";
+}
 
 function includeHeader($title)
 {
@@ -32,14 +36,22 @@
         <meta name="author" content="">
         <link rel="shortcut icon" href="../../docs-assets/ico/favicon.png">
 
-        <title>Starter Template for Bootstrap</title>
+        <title><?= $title ?></title>
 
         <!-- Bootstrap core CSS -->
 
         <link href="js/dynatable/jquery.dynatable.css" rel="stylesheet">
         <link href="lib/tag-cloud/css/tagcloud.css" rel="stylesheet">
         <link href="css/bootstrap.css" rel="stylesheet">
-
+       <style>
+           th a {
+               color: #428bca;
+           }
+           th a:hover {
+               color: #428bca;
+               text-decoration: underline;
+           }
+       </style>
         <!-- Custom styles for this template
         <link href="starter-template.css" rel="stylesheet">-->
 
@@ -55,7 +67,13 @@
         <![endif]-->
     </head>
 
-    <body>
+    <body xmlns="http://www.w3.org/1999/xhtml"
+    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
+    xmlns:gr="http://purl.org/goodrelations/v1#"
+    xmlns:foaf="http://xmlns.com/foaf/0.1/"
+    xmlns:vcard="http://www.w3.org/2006/vcard/ns#" >
 
     <div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
         <div class="container">

--- a/data.json.php
+++ b/data.json.php
@@ -2,15 +2,36 @@
 include("config.php");
 header("Content-Type: application/json");
 $result = Array();
-$page = filter_input(INPUT_GET, 'page',FILTER_SANITIZE_NUMBER_INT);
-$perPage     = filter_input(INPUT_GET, 'perPage',FILTER_SANITIZE_NUMBER_INT);
-$offset   = filter_input(INPUT_GET, 'offset',FILTER_SANITIZE_NUMBER_INT);
-$query = "Select acnabn, service_name from dcaas_services order by acnabn";
+$page = filter_input(INPUT_GET, 'page', FILTER_SANITIZE_NUMBER_INT);
+$perPage = filter_input(INPUT_GET, 'perPage', FILTER_SANITIZE_NUMBER_INT);
+$offset = filter_input(INPUT_GET, 'offset', FILTER_SANITIZE_NUMBER_INT);
+$search = preg_replace("/[^a-zA-Z0-9]+/", "", filter_var($_GET['queries']['search'], FILTER_SANITIZE_STRING));
+$sortby = 'acnabn';
+if (isset($_GET['sorts'])) {
+    $keys = array_keys($_GET['sorts']);
+    if (in_array($keys[0], array('trading_or_business_name', 'acnabn', 'service', 'service_category', 'service_sub_category'))) {
+        $sortby = preg_replace("/[^a-zA-Z0-9_]+/", "", $keys[0]);
+        if ($sortby == 'service') $sortby = 'service_name';
+    }
+}
+$select_columns = 'Select trading_or_business_name, acnabn, service_name, service_category, service_sub_category ';
+$query = " from dcaas_services "
+    . ($search != "" ? " where service_name like '%$search%'" : "");
 $total = $db->query("select count(*) from dcaas_services")->fetch(PDO::FETCH_NUM);
-foreach ($db->query($query." limit $offset,".($page*$perPage), PDO::FETCH_ASSOC) as $row) {
-    $result['records'][]  = $row;
+$query_total = $db->query("select count(*) ".$query)->fetch(PDO::FETCH_NUM);
+
+/* http://www.sqlite.org/lang_select.html
+Instead of a separate OFFSET clause, the LIMIT clause may specify two scalar expressions separated by a comma.
+In this case, the first expression is used as the OFFSET expression and the second as the LIMIT expression.
+This is counter-intuitive, as when using the OFFSET clause the second of the two expressions is the OFFSET
+and the first the LIMIT. This is intentional - it maximizes compatibility with other SQL database systems.*/
+$limit = "limit $offset, $perPage";
+
+foreach ($db->query($select_columns .$query . " order by $sortby $limit", PDO::FETCH_ASSOC) as $row) {
+    $row['service'] = '<a href="view.php?acnabn=' . $row['acnabn'] . "&service_name=" . $row['service_name'] . '">' . $row['service_name'] . "</a>";
+    $result['records'][] = $row;
 }
-$result['queryRecordCount'] = intval($total[0]);
+$result['queryRecordCount'] = intval($query_total[0]);
 $result['totalRecordCount'] = intval($total[0]);
 echo json_encode($result);
 ?>

--- a/data/xls2csv.py
+++ b/data/xls2csv.py
@@ -12,9 +12,9 @@
 def cleanseValue(column,value):
 	if isinstance(value, basestring):
 		value = "".join([x if ord(x) < 128 else '' for x in value])
-		value = value.replace('<','&gt;').replace('>','&lt;').replace('\n','<br/>').replace('\r','<br/>')
+		value = value.replace('<','&gt;').replace('>','&lt;').replace('\n','<br/>').replace('\r','<br/>').strip()
 	else:
-		value = str(value)
+		value = str(value).strip()
 	if column == 'ACNABN' and value != None:
 		value = value.replace(' ','').replace(".0","").replace('"','').replace(",","")
 		value = value.replace("ABN"," ").replace("ACN"," ").replace("/"," ").replace(":"," ")

file:b/robots.txt (new)
--- /dev/null
+++ b/robots.txt
@@ -1,1 +1,6 @@
-
+# www.robotstxt.org/

+# www.google.com/support/webmasters/bin/answer.py?hl=en&answer=156449

+

+User-agent: *

+Disallow: /admin/

+Sitemap: http://orgs.disclosurelo.gs/sitemap.xml.php

file:b/sitemap.xml.php (new)
--- /dev/null
+++ b/sitemap.xml.php
@@ -1,1 +1,21 @@
-
+<?php

+

+include('config.php');

+$last_updated = date('Y-m-d', @filemtime('data'));

+header("Content-Type: text/xml");

+echo "<?xml version='1.0' encoding='UTF-8'?>";

+echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' . "\n";

+echo " <url><loc>" . local_url() . "index.php</loc><priority>1.0</priority></url>\n";

+/*foreach (scandir("./") as $file) {

+    if (strpos($file, ".php") !== false && $file != "index.php" && $file != "sitemap.xml.php")

+        echo " <url><loc>" . local_url() . "$file</loc><priority>0.3</priority></url>\n";

+} */

+

+

+$query = "Select distinct acnabn, service_name from dcaas_services order by acnabn";

+

+foreach ($db->query($query, PDO::FETCH_ASSOC) as $row) {

+    echo '<url><loc>' . local_url() . 'view.php?acnabn=' . $row['acnabn'] . "&service_name=" . $row['service_name'] . "</loc><priority>0.6</priority></url>\n";

+}

+

+echo '</urlset>';

file:a/table.php -> file:b/table.php
--- a/table.php
+++ b/table.php
@@ -2,17 +2,14 @@
 include("config.php");
 include("lib/tag-cloud/src/lotsofcode/TagCloud/TagCloud.php");
 
-includeHeader("title");
+includeHeader("DCaaS Service Catalogue");
 ?>
 
 <div class="starter-template">
     <br/>
     <br/>
 
-    <h1>Bootstrap starter template</h1>
-
-    <p class="lead">Use this document as a way to quickly start any new project.<br> All you get is this text and a
-        mostly barebones HTML document.</p>
+    <h1>DCaaS Service Catalogue</h1>
 
     <!--<div id="search-example-year-filter" style="float: left;">
         Year:
@@ -31,8 +28,13 @@
     </div>-->
 
 
-    <table id="my-table">
-                 <thead><th>acnabn</th><th>service_name</th></thead>
+    <table id="my-table" class="table table-striped">
+        <thead>
+        <th>trading_or_business_name</th>
+        <th>Service</th>
+        <th>service_category</th>
+        <th>service_sub_category</th>
+        </thead>
     </table>
 </div>
 
@@ -53,34 +55,34 @@
         }
     });
 
-   /* $('#search-example').dynatable({
-        features: {
-            paginate: false,
-            recordCount: false,
-            sorting: false
-        },
-        inputs: {
-            queries: $('#search-year')
-        }
-    });
+    /* $('#search-example').dynatable({
+     features: {
+     paginate: false,
+     recordCount: false,
+     sorting: false
+     },
+     inputs: {
+     queries: $('#search-year')
+     }
+     });
 
-    $('#search-function-example')
-        .bind('dynatable:init', function (e, dynatable) {
-            dynatable.queries.functions['max-price'] = function (record, queryValue) {
-                return parseFloat(record.price.replace(/,/, '')) <= parseFloat(queryValue);
-            };
-        })
-        .dynatable({
-            features: {
-                paginate: false,
-                recordCount: false,
-                sorting: false,
-                search: false
-            },
-            inputs: {
-                queries: $('#max-price')
-            }
-        }); */
+     $('#search-function-example')
+     .bind('dynatable:init', function (e, dynatable) {
+     dynatable.queries.functions['max-price'] = function (record, queryValue) {
+     return parseFloat(record.price.replace(/,/, '')) <= parseFloat(queryValue);
+     };
+     })
+     .dynatable({
+     features: {
+     paginate: false,
+     recordCount: false,
+     sorting: false,
+     search: false
+     },
+     inputs: {
+     queries: $('#max-price')
+     }
+     }); */
 
 </script>
 

file:b/view.php (new)
--- /dev/null
+++ b/view.php
@@ -1,1 +1,48 @@
+<?php
+include("config.php");
+$acnabn = filter_input(INPUT_GET,'acnabn', FILTER_SANITIZE_STRING);
+$service_name = filter_input(INPUT_GET,'service_name', FILTER_SANITIZE_STRING);
+$sth =  $db->prepare("Select * from dcaas_services where acnabn = :acnabn and service_name = :service_name");
+$sth->bindValue(':acnabn',$acnabn);
+$sth->bindValue(':service_name',$service_name);
+$sth->execute();
+$data = $sth->fetchAll(PDO::FETCH_ASSOC);
+if (count($data) == 0) {
+    header('HTTP/1.0 404 Not Found');
+    includeHeader('Not Found');
+    echo "not found";
+} else {
 
+    $service = $data[0];
+    includeHeader($service['service_name']);
+    ?>
+    <div itemscope itemtype="http://schema.org/Product">
+    <h1 itemprop="name"><?= $service['service_name'] ?></h1>
+
+    <div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
+        <div itemprop="seller" itemscope itemtype="http://schema.org/Organization">
+            <h2>(<span itemprop="name"><?= $service['trading_or_business_name'] ?></span>)</h2>
+            <small><a
+                    href="https://www.tenders.gov.au/?event=public.advancedsearch.CNSONRedirect&type=cnEvent&atmType=archived%2Cclosed%2Cpublished%2Cproposed&agencyUUID=&agencyStatus=0&portfolioUUID=&keyword=&KeywordTypeSearch=AllWord&CNID=&dateType=Publish+Date&dateStart=&dateEnd=&supplierName=&supplierABN=<?= $service['acnabn'] ?>&valueFrom=&valueTo=&ATMID=&AgencyRefId=&consultancy=&submit=Search">
+                    View Australian Government contracts with this supplier on AusTender</a></small>
+            <br/>
+        </div>
+    </div>
+    <br/>
+    <i><span itemprop="description"><?= $service['service_description'] ?></span></i><br/>
+    <table>
+    <?php
+    foreach ($service as $key => $value) {
+        if (trim($value) != "" && !in_array($key, Array('trading_or_business_name' , 'acnabn' , 'service_name' ,'service_description', 'id'))) {
+
+                echo "<tr><td>".ucwords(str_replace("_", " ", $key)) . "</td><td>$value</td></tr>\n";
+
+
+        }
+
+    }
+    echo "</table>";
+
+}
+includeFooter();
+