[KSS-checkins] r49029 - in kukit/kss.core/branch/ree-loglevels: docs kss/core kss/core/pluginregistry/browser

reebalazs at codespeak.net reebalazs at codespeak.net
Sat Nov 24 13:12:13 CET 2007


Author: reebalazs
Date: Sat Nov 24 13:12:12 2007
New Revision: 49029

Modified:
   kukit/kss.core/branch/ree-loglevels/docs/HISTORY.txt
   kukit/kss.core/branch/ree-loglevels/kss/core/   (props changed)
   kukit/kss.core/branch/ree-loglevels/kss/core/EXTERNALS.TXT
   kukit/kss.core/branch/ree-loglevels/kss/core/pluginregistry/browser/develui.css
   kukit/kss.core/branch/ree-loglevels/kss/core/pluginregistry/browser/develui.pt
   kukit/kss.core/branch/ree-loglevels/kss/core/pluginregistry/browser/develview.py
Log:
Implement loglevels based on cookies

Modified: kukit/kss.core/branch/ree-loglevels/docs/HISTORY.txt
==============================================================================
--- kukit/kss.core/branch/ree-loglevels/docs/HISTORY.txt	(original)
+++ kukit/kss.core/branch/ree-loglevels/docs/HISTORY.txt	Sat Nov 24 13:12:12 2007
@@ -6,6 +6,10 @@
 
     - ...
 
+    - Implement loglevels based on cookies
+      Add handling of log levels to the kss mode view
+      [ree]
+
     - Moved the core demos to this package from kss.demo.
       They are now located under the core plugin.
       [ree]

Modified: kukit/kss.core/branch/ree-loglevels/kss/core/EXTERNALS.TXT
==============================================================================
--- kukit/kss.core/branch/ree-loglevels/kss/core/EXTERNALS.TXT	(original)
+++ kukit/kss.core/branch/ree-loglevels/kss/core/EXTERNALS.TXT	Sat Nov 24 13:12:12 2007
@@ -5,4 +5,4 @@
 # You can update your working dir by: 
 #     svn propset svn:externals -F EXTERNALS.TXT .
 #
-kukit http://codespeak.net/svn/kukit/kukit.js/trunk
+kukit http://codespeak.net/svn/kukit/kukit.js/branch/ree-loglevels

Modified: kukit/kss.core/branch/ree-loglevels/kss/core/pluginregistry/browser/develui.css
==============================================================================
--- kukit/kss.core/branch/ree-loglevels/kss/core/pluginregistry/browser/develui.css	(original)
+++ kukit/kss.core/branch/ree-loglevels/kss/core/pluginregistry/browser/develui.css	Sat Nov 24 13:12:12 2007
@@ -97,3 +97,7 @@
     color: green;
 }
 
+.cyan {
+    color: cyan;
+}
+

Modified: kukit/kss.core/branch/ree-loglevels/kss/core/pluginregistry/browser/develui.pt
==============================================================================
--- kukit/kss.core/branch/ree-loglevels/kss/core/pluginregistry/browser/develui.pt	(original)
+++ kukit/kss.core/branch/ree-loglevels/kss/core/pluginregistry/browser/develui.pt	Sat Nov 24 13:12:12 2007
@@ -54,7 +54,8 @@
 
 </head>
   <body tal:define="devel_mode python: options.get('devel_mode', view.ison());
-                   referer request/referer|request/HTTP_REFERER|nothing">
+                    loglevel python: options.get('loglevel', view.getLogLevel());
+                    referer request/referer|request/HTTP_REFERER|nothing">
 
     <h2>Kss mode setup</h2>
     
@@ -93,6 +94,45 @@
 
     </form>
 
+    <h2>KSS log level setup</h2>
+    
+    <p tal:define="logclass python: loglevel == 'ERROR' and 'red' or loglevel == 'WARNING' and 'cyan' or ''">
+      Current KSS log level is<b>
+      <span tal:attributes="class loglevel"
+            tal:content="loglevel">DEBUG</span></b>.
+    </p>
+
+    <div class="help">
+        Logging is only effective in Development mode.
+    </div>
+
+    <h3>
+    	Set KSS log level
+    </h3>
+    <form name="loglevel">
+    <div class="help">
+        Click the button to set log level.
+    </div>
+
+    <div>
+      <input type="hidden" name="referer" 
+             tal:attributes="value referer" />
+      <tal:levels repeat="level python:['DEBUG', 'INFO', 'WARNING', 'ERROR']">
+        <input type="radio" name="loglevel"
+               tal:attributes="value level;
+                               checked python: level==loglevel and 1 or None;
+                               ">
+        <label tal:attributes="class python: level == 'ERROR' and 'red' or level == 'WARNING' and 'cyan' or ''"
+                 tal:content="level">DEBUG</label>
+        <br />
+      </tal:levels>
+      <input type="submit" name="devel" id="button_loglevel" class="clickable"
+	     value="Set"  />
+	</div>
+    <p class="help">The cookie is global to the site.</p>
+
+    </form>
+
     <p tal:condition="referer"><a tal:attributes="href referer">Back</a></p>
 
   </body>

Modified: kukit/kss.core/branch/ree-loglevels/kss/core/pluginregistry/browser/develview.py
==============================================================================
--- kukit/kss.core/branch/ree-loglevels/kss/core/pluginregistry/browser/develview.py	(original)
+++ kukit/kss.core/branch/ree-loglevels/kss/core/pluginregistry/browser/develview.py	Sat Nov 24 13:12:12 2007
@@ -11,7 +11,8 @@
 from zope.traversing.interfaces import ITraverser
 from zope.publisher.interfaces import NotFound
 
-COOKIE_NAME = '__kss_devel'
+COOKIE_DEVELMODE = '__kss_devel'
+COOKIE_LOGLEVEL = '__kss_loglevel'
 
 class DevelView(BrowserView):
     implements(IDevelView)
@@ -37,7 +38,7 @@
         return self, ('ui', )
 
     # --
-    # Accessable methods
+    # Methods for handling development/production mode
     # --
 
     def ison(self):
@@ -51,7 +52,7 @@
           select development mode without the cookie
 
         '''
-        ison = COOKIE_NAME in self.request.cookies
+        ison = COOKIE_DEVELMODE in self.request.cookies
 
         if not ison:
             # Check from javascript tool
@@ -76,26 +77,51 @@
 
     def set(self):
         'Sets development mode cookie'
-        self.request.response.setCookie(COOKIE_NAME, '1', path='/')
+        self.request.response.setCookie(COOKIE_DEVELMODE, '1', path='/')
 
     def unset(self):
         'Unsets development mode cookie'
-        self.request.response.expireCookie(COOKIE_NAME, path='/')
+        self.request.response.expireCookie(COOKIE_DEVELMODE, path='/')
+
+    # --
+    # Methods for handling loglevel
+    # --
+
+    def getLogLevel(self, REQUEST=None):
+        'Gets current log level'
+        loglevel = self.request.cookies.get(COOKIE_LOGLEVEL, 'DEBUG').upper()
+        return loglevel
+
+    def setLogLevel(self, loglevel):
+        'Sets loglevel cookie'
+        self.request.response.setCookie(COOKIE_LOGLEVEL, loglevel, path='/')
+
+    # --
+    # User interface
+    # --
 
     _ui = ViewPageTemplateFile('develui.pt', content_type='text/html;charset=utf-8')
 
     def ui(self):
         'User interface for interactive switching'
         options = {}
+        # Handle development/production mode
         if 'devel' in self.request.form:
             self.set()
             # setting it also to have immediate effect in the page
             options['devel_mode'] = True
         if 'prod' in self.request.form:
             self.unset()
-            if COOKIE_NAME in self.request.cookies:
+            if COOKIE_DEVELMODE in self.request.cookies:
                 # setting it also to have immediate effect in the page
                 options['devel_mode'] = False
+        # Handle loglevel
+        if 'loglevel' in self.request.form:
+            loglevel =  self.request.form['loglevel']
+            self.setLogLevel(loglevel)
+            # setting it also to have immediate effect in the page
+            options['loglevel'] = loglevel
+        # Return the rendered template
         return self._ui(**options)
 
     def ui_js(self):


More information about the Kukit-checkins mailing list