Index: branches/release-35/tmpl/cms/list_template.tmpl
===================================================================
--- branches/release-35/tmpl/cms/list_template.tmpl (revision 1877)
+++ branches/release-35/tmpl/cms/list_template.tmpl (revision 1898)
@@ -4,5 +4,11 @@
         id="quickfilters"
         label="<__trans phrase="Quickfilters">">
-        <$mtapp:ListFilters$>
+        <ul>
+            <li id="all-tab"><a href="#all" onclick="showTable('all-listing');">Show All</a></li>
+            <li id="index-tab"><a href="#index" onclick="showTable('index-listing');">Index Templates</a></li>
+            <li id="system-tab"><a href="#system"  onclick="showTable('system-listing');">System Templates</a></li>
+            <li id="archive-tab"><a href="#archive" onclick="showTable('archive-listing');">Archive Templates</a></li>
+            <li id="module-tab"><a href="#module"  onclick="showTable('module-listing');">Template Modules</a></li>
+        </ul>
     </mtapp:widget>
     <mtapp:widget
@@ -21,5 +27,27 @@
 <script type="text/javascript">
 /* <![CDATA[ */
+var tableList = ["index", "archive", "module", "system"];
 var tableSelect = [];
+function showTable(name) {
+    for (var i=0, len=tableList.length; i<len; i++) {
+        var el = tableList[i] + "-listing"
+        var elTab = tableList[i] + "-tab"
+        if (name == "all-listing") {
+            DOM.removeClassName ( el, "hidden");
+            DOM.removeClassName ( elTab, "current-filter");
+            DOM.addClassName( "all-tab", "current-filter" );
+        }
+        else if (name == el) {
+            DOM.removeClassName ( el, "hidden");
+            DOM.addClassName( elTab, "current-filter" );
+            DOM.removeClassName( "all-tab", "current-filter" );
+        }
+        else {
+            DOM.addClassName( el, "hidden" );
+            DOM.removeClassName( elTab, "current-filter" );
+            DOM.removeClassName( "all-tab", "current-filter" );
+        }
+    }
+}
 function init() {
 <mt:loop name="template_type_loop">
@@ -27,4 +55,6 @@
     tableSelect[tableSelect.length-1].rowSelect = true;
 </mt:loop>
+    var name = (window.location.hash && window.location.hash.match( /^#/ ) ) ? window.location.hash.substr(1) : "all";
+    showTable(name + "-listing");
 }
 TC.attachLoadEvent(init);
