Add support for JS error reporting to Sentry.
authorRaphaël Barrois <raphael.barrois@polytechnique.org>
Fri, 5 Apr 2013 21:43:49 +0000 (23:43 +0200)
committerRaphaël Barrois <raphael.barrois@polytechnique.org>
Fri, 5 Apr 2013 21:43:49 +0000 (23:43 +0200)
Signed-off-by: Raphaël Barrois <raphael.barrois@polytechnique.org>
configs/platal.ini
modules/platal.php
templates/platal/error.tpl [new file with mode: 0644]
templates/platal/raven.tpl [new file with mode: 0644]
templates/skin/common.header.tpl

index cfc3820..532f221 100644 (file)
@@ -159,6 +159,10 @@ econfiance = ""
 ; Key used to log errors to Sentry
 sentry_dsn = ""
 
+; $globals->core->sentry_js_dsn
+; Key used to log JS errors to Sentry
+sentry_js_dsn = ""
+
 
 ; The API section contains  the configuration for the web services.
 [Api]
index 481b4c4..f4b0443 100644 (file)
@@ -613,9 +613,13 @@ Adresse de secours : ' . $to));
         $wiz->apply($page, 'review', $action, $mode);
     }
 
-    function handler_test_error($page)
+    function handler_test_error($page, $mode = null)
     {
-        throw new Exception("Blih");
+        if ($mode == 'js') {
+            $page->changeTpl('platal/error.tpl');
+        } else {
+            throw new Exception("Blih");
+        }
     }
 }
 
diff --git a/templates/platal/error.tpl b/templates/platal/error.tpl
new file mode 100644 (file)
index 0000000..3dcceff
--- /dev/null
@@ -0,0 +1,31 @@
+{**************************************************************************}
+{*                                                                        *}
+{*  Copyright (C) 2003-2013 Polytechnique.org                             *}
+{*  http://opensource.polytechnique.org/                                  *}
+{*                                                                        *}
+{*  This program is free software; you can redistribute it and/or modify  *}
+{*  it under the terms of the GNU General Public License as published by  *}
+{*  the Free Software Foundation; either version 2 of the License, or     *}
+{*  (at your option) any later version.                                   *}
+{*                                                                        *}
+{*  This program is distributed in the hope that it will be useful,       *}
+{*  but WITHOUT ANY WARRANTY; without even the implied warranty of        *}
+{*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *}
+{*  GNU General Public License for more details.                          *}
+{*                                                                        *}
+{*  You should have received a copy of the GNU General Public License     *}
+{*  along with this program; if not, write to the Free Software           *}
+{*  Foundation, Inc.,                                                     *}
+{*  59 Temple Place, Suite 330, Boston, MA  02111-1307  USA               *}
+{*                                                                        *}
+{**************************************************************************}
+
+{literal}
+<script type="text/javascript">
+function test_error() {
+  throw new Error("Test JS error");
+}
+
+test_error();
+</script>
+{/literal}
diff --git a/templates/platal/raven.tpl b/templates/platal/raven.tpl
new file mode 100644 (file)
index 0000000..e33bc08
--- /dev/null
@@ -0,0 +1,32 @@
+{**************************************************************************}
+{*                                                                        *}
+{*  Copyright (C) 2003-2013 Polytechnique.org                             *}
+{*  http://opensource.polytechnique.org/                                  *}
+{*                                                                        *}
+{*  This program is free software; you can redistribute it and/or modify  *}
+{*  it under the terms of the GNU General Public License as published by  *}
+{*  the Free Software Foundation; either version 2 of the License, or     *}
+{*  (at your option) any later version.                                   *}
+{*                                                                        *}
+{*  This program is distributed in the hope that it will be useful,       *}
+{*  but WITHOUT ANY WARRANTY; without even the implied warranty of        *}
+{*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *}
+{*  GNU General Public License for more details.                          *}
+{*                                                                        *}
+{*  You should have received a copy of the GNU General Public License     *}
+{*  along with this program; if not, write to the Free Software           *}
+{*  Foundation, Inc.,                                                     *}
+{*  59 Temple Place, Suite 330, Boston, MA  02111-1307  USA               *}
+{*                                                                        *}
+{**************************************************************************}
+
+{if $globals->core->sentry_js_dsn}
+    {* Minified raven *}
+    <script type="text/javascript" src="//d3nslu0hdya83q.cloudfront.net/dist/1.0/raven.min.js"></script>
+    <script type="text/javascript">
+    {literal}
+        var options = {};
+    {/literal}
+        Raven.config('{#globals.core.sentry_js_dsn#}', options).install();
+    </script>
+{/if}
index d91ddc1..f27554a 100644 (file)
@@ -46,5 +46,6 @@
     <link rel="bookmark" href="http://www.polytechnique.fr/eleves/" title="| Site d'élèves" />
 
     {include core=plpage.header.tpl}
+    {include file=platal/raven.tpl}
 
 {* vim:set et sw=2 sts=2 sws=2 enc=utf-8: *}