Index: api/App.php
===================================================================
--- api/App.php	(revision 925)
+++ api/App.php	(working copy)
@@ -75,6 +75,18 @@
 		
 		$tpl->display('file:' . $this->_TPL_PATH . 'results.tpl');
 	}
+
+    function showFnrPanelAction() {
+        $tpl = DevblocksPlatform::getTemplateService();
+		$tpl->assign('path', $this->_TPL_PATH);
+
+        $topics = DAO_FnrTopic::getWhere();
+        $tpl->assign('topics', $topics);
+
+        $tpl->display('file:' . dirname(__FILE__) . '/templates/display/rpc/reply_links_panel.tpl');
+		$tpl->display('file:' . $this->_TPL_PATH . 'reply_links_panel.tpl');
+    }
+
 };
 
 if (class_exists('Extension_ResearchTab')):
@@ -129,6 +141,21 @@
 }
 endif;
 
+if (class_exists('Extension_ReplyToolbarItem',true)):
+	class ChFnrReplyToolbarButton extends Extension_ReplyToolbarItem {
+		function render(CerberusMessage $message) { 
+			$tpl = DevblocksPlatform::getTemplateService();
+			$tpl_path = dirname(dirname(__FILE__)).'/templates/';
+			$tpl->assign('path', $tpl_path);
+			$tpl->cache_lifetime = "0";
+			
+			$tpl->assign('message', $message); /* @var $message CerberusMessage */
+			
+			$tpl->display('file:' . $tpl_path . 'reply.tpl');
+		}
+	};
+endif;
+
 class ChFnrConfigTab extends Extension_ConfigTab {
 	const ID = 'fnr.config.tab';
 	

