[KSS-checkins] r49362 - in kukit/kss.core/trunk: docs kss/core/pluginregistry/browser

reebalazs at codespeak.net reebalazs at codespeak.net
Wed Dec 5 08:42:06 CET 2007


Author: reebalazs
Date: Wed Dec  5 08:42:06 2007
New Revision: 49362

Modified:
   kukit/kss.core/trunk/docs/HISTORY.txt
   kukit/kss.core/trunk/kss/core/pluginregistry/browser/develui.css
   kukit/kss.core/trunk/kss/core/pluginregistry/browser/develui.pt
   kukit/kss.core/trunk/kss/core/pluginregistry/browser/develview.py
Log:
Implement loglevels based on cookies. Merge of branch ree-loglevels.

Modified: kukit/kss.core/trunk/docs/HISTORY.txt
==============================================================================
--- kukit/kss.core/trunk/docs/HISTORY.txt	(original)
+++ kukit/kss.core/trunk/docs/HISTORY.txt	Wed Dec  5 08:42:06 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/trunk/kss/core/pluginregistry/browser/develui.css
==============================================================================
--- kukit/kss.core/trunk/kss/core/pluginregistry/browser/develui.css	(original)
+++ kukit/kss.core/trunk/kss/core/pluginregistry/browser/develui.css	Wed Dec  5 08:42:06 2007
@@ -55,13 +55,13 @@
   background-color: #880000;
 }
 
-a.button,
-input[type="submit"] {
+a.button, .clickable {
   width: auto;
   padding: 0.2em;
   border: 1px solid #FF8888;
   color: #CC0000;
   text-decoration: none;
+  font-size: 80%;
 }
 
 fieldset {
@@ -89,11 +89,22 @@
   padding : 1em;
 }
 
-.red {
-    color: red;
+.production, .error {
+  color: red;
+}
+
+.production, .development {
+  font-weight: bold;
 }
 
-.green {
-    color: green;
+.warning {
+  color: orange;
 }
 
+.development, .info {
+  color: green;
+}
+
+.debug {
+  color: blue;
+}

Modified: kukit/kss.core/trunk/kss/core/pluginregistry/browser/develui.pt
==============================================================================
--- kukit/kss.core/trunk/kss/core/pluginregistry/browser/develui.pt	(original)
+++ kukit/kss.core/trunk/kss/core/pluginregistry/browser/develui.pt	Wed Dec  5 08:42:06 2007
@@ -54,46 +54,103 @@
 
 </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>
+    <h2>KSS mode setup</h2>
     
     <p>
-      Current KSS mode is<b>
-      <span class="green"
+      KSS is in <span class="development"
             tal:condition="devel_mode">development</span><span
-            class="red" tal:condition="not: devel_mode">production</span></b>.
+            class="production" tal:condition="not: devel_mode">production</span> mode.
     </p>
 
-    <p>
+    <p class="help">
+        The mode is stored in a cookie that is global to the site.
+    </p>
+    <p class="help">
+        It can be overridden by a local utility (eg. ResourceRegistries, in Plone).
+    </p>
+    
+    <p class="help">
     	If you call <code>@@kss_devel_mode/ison</code> on the current context,
-        you get <code>True</code> if in development mode, <code>False</code> in in production mode.
+        you will get <code>True</code> in development mode, <code>False</code> in production mode.
     </p>
 
-    <h3>
-    	Set KSS mode cookie
-    </h3>
     <form name="edit">
-    <div class="help">
-        Click the button to toggle mode.
-    </div>
-
-    <div>
-      <input type="hidden" name="referer" 
-             tal:attributes="value referer" />
-      <input type="submit" name="prod" id="button_prod" class="clickable"
-             tal:condition="devel_mode"
-	     value="Switch to production mode." />
-      <input type="submit" name="devel" id="button_devel" class="clickable"
-             tal:condition="not:devel_mode"
-	     value="Switch to development mode."  />
-	</div>
-    <p class="help">The cookie is global to the site and may be overridden by a
-    local utility (eg. ResourceRegistries, in Plone)</p>
+      <fieldset>
+        <h3>
+          Set KSS mode cookie
+        </h3>
+        <p class="help">
+            Click the button to toggle mode.
+        </p>
+
+        <div>
+          <input type="hidden" name="referer" 
+                 tal:attributes="value referer" />
+          <input type="submit" name="prod" id="button_prod" class="clickable production"
+               value="Switch to production mode." />
+          <input type="submit" name="devel" id="button_devel" class="clickable development"
+               value="Switch to development mode."  />
+        </div>
+
+      </fieldset>
+    </form>
+    
+    <p tal:condition="referer">
+      <a class="button" tal:attributes="href referer">Back to the referer page.</a>
+    </p>
+
+    <h2>KSS log level setup</h2>
+    
+    <p>
+      Current KSS log level is<b>
+      <span tal:attributes="class python:loglevel.lower()"
+            tal:content="loglevel">DEBUG</span></b>.
+    </p>
 
+    <p class="help">
+        The log level is stored in a cookie that is global to the site.
+    </p>
+    
+    <p class="help">
+        Logging is effective only in <span class="development">development</span> mode.
+    </p>
+
+    <form name="loglevel">
+      <fieldset>
+        <h3>
+          Set KSS log level
+        </h3>
+        <p class="help">
+            Click the button to set log level.
+        </p>
+        
+
+        <div>
+          <input type="hidden" name="referer" 
+                 tal:attributes="value referer" />
+          <tal:levels repeat="level python:['DEBUG', 'INFO', 'WARNING', 'ERROR']">
+            <label tal:attributes="class python:level.lower()">
+              <input type="radio" name="loglevel"
+                     tal:attributes="value level;
+                                     checked python: level==loglevel and 1 or None;
+                                     " />
+              <tal:block replace="level">DEBUG</tal:block>
+            </label>
+            <br />
+          </tal:levels>
+          <input type="submit" name="loglevel_submit" id="button_loglevel" class="clickable"
+           value="Set"  />
+        </div>
+
+      </fieldset>
     </form>
 
-    <p tal:condition="referer"><a tal:attributes="href referer">Back</a></p>
+    <p tal:condition="referer">
+      <a class="button" tal:attributes="href referer">Back to the referer page.</a>
+    </p>
 
   </body>
 </html>

Modified: kukit/kss.core/trunk/kss/core/pluginregistry/browser/develview.py
==============================================================================
--- kukit/kss.core/trunk/kss/core/pluginregistry/browser/develview.py	(original)
+++ kukit/kss.core/trunk/kss/core/pluginregistry/browser/develview.py	Wed Dec  5 08:42:06 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