+# self.reset_queue()
+ # unconditionnally expose MANIFOLD_URL, this is small and manifold.js uses that for various messages
+ self.expose_js_manifold_config()
+
+
+ # needs to be called explicitly and only when metadata is actually required
+ # in particular user needs to be logged
+ def get_metadata (self):
+ # look in session's cache - we don't want to retrieve this for every request
+ session=self.request.session
+
+ if 'manifold' not in session:
+ session['manifold'] = {}
+ manifold = session['manifold']
+
+ # if cached, use it
+ if 'metadata' in manifold and isinstance(manifold['metadata'],MetaData):
+
+# cached_metadata = SessionCache().get_metadata(self.request)
+# if cached_metadata and isinstance(cached_metadata, MetaData):
+ logger.debug("Page.get_metadata: return cached value")
+ return manifold['metadata']
+# return cached_metadata
+
+ metadata_auth = {'AuthMethod':'anonymous'}
+
+ metadata = MetaData (metadata_auth)
+ metadata.fetch(self.request)
+ # store it for next time
+ manifold['metadata']=metadata
+# SessionCache().store_metadata(self.request, metadata)
+ logger.debug("Page.get_metadata: return new value")
+ return metadata
+
+ def expose_js_metadata (self):
+ # expose global MANIFOLD_METADATA as a js variable
+ # xxx this is fetched synchroneously..
+ self.add_js_init_chunks("var MANIFOLD_METADATA =" + self.get_metadata().to_json() + ";\n")
+
+ def expose_js_var(self, name, value):
+ # expose variable as a js value
+ self.add_js_init_chunks("var " + name + "=" + value + ";\n")