git://git.onelab.eu
/
unfold.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
df482c9
)
make exposure of metadata explicit rather than automatic - not all views require...
author
Thierry Parmentelat
<thierry.parmentelat@inria.fr>
Thu, 14 Mar 2013 08:27:16 +0000
(09:27 +0100)
committer
Thierry Parmentelat
<thierry.parmentelat@inria.fr>
Thu, 14 Mar 2013 08:27:16 +0000
(09:27 +0100)
engine/manifoldapi.py
patch
|
blob
|
history
engine/page.py
patch
|
blob
|
history
engine/static/js/plugin.js
patch
|
blob
|
history
plugins/quickfilter.py
patch
|
blob
|
history
plugins/static/js/quickfilter.js
patch
|
blob
|
history
diff --git
a/engine/manifoldapi.py
b/engine/manifoldapi.py
index
1001f1b
..
40f3e0c
100644
(file)
--- a/
engine/manifoldapi.py
+++ b/
engine/manifoldapi.py
@@
-11,9
+11,6
@@
class ManifoldAPI:
config = Config()
self.auth = auth
config = Config()
self.auth = auth
-# self.server = config.manifold_server
-# self.port = config.manifold_port
-# self.path = config.manifold_path
self.cainfo = cainfo
self.errors = []
self.trace = []
self.cainfo = cainfo
self.errors = []
self.trace = []
diff --git
a/engine/page.py
b/engine/page.py
index
dfbb5a9
..
57e5226
100644
(file)
--- a/
engine/page.py
+++ b/
engine/page.py
@@
-27,8
+27,8
@@
class Page:
self.prelude=Prelude(css_files='css/plugin.css')
# load metadata
self._metadata={}
self.prelude=Prelude(css_files='css/plugin.css')
# load metadata
self._metadata={}
- self._metadata_javascript=''
- self.expose_js_metadata()
+ # do not call this uncondionnally as we might not even have logged in
+
#
self.expose_js_metadata()
# record known plugins hashed on their domid
def record_plugin (self, plugin):
# record known plugins hashed on their domid
def record_plugin (self, plugin):
@@
-64,7
+64,15
@@
class Page:
def expose_js_metadata(self):
request=self.request
def expose_js_metadata(self):
request=self.request
- if 'metadata' not in request.session.keys():
+ # xxx this code should probably not be called unconditionnally at page creation time
+ # because we're not sure a user is logged in so we might have no session...
+ if 'manifold' not in request.session:
+ print "Page.expose_js_metadata: no 'manifold' in session... - skipping"
+ return
+ # use cached version if present
+ if 'metadata' in request.session.keys():
+ self._metadata = request.session['metadata']
+ else:
manifold_api_session_auth = request.session['manifold']['auth']
manifold_api = ManifoldAPI(auth=manifold_api_session_auth)
manifold_api_session_auth = request.session['manifold']['auth']
manifold_api = ManifoldAPI(auth=manifold_api_session_auth)
@@
-82,13
+90,9
@@
class Page:
self._metadata[method] = res
request.session['metadata'] = self._metadata
self._metadata[method] = res
request.session['metadata'] = self._metadata
- self._metadata_javascript = "all_headers=" + json.dumps(self._metadata) + ";"
- self.add_js_chunks(self._metadata_javascript)
- else:
- self._metadata = request.session['metadata']
-
self._metadata_
javascript = "all_headers=" + json.dumps(self._metadata) + ";"
- self.add_js_chunks(
self._metadata_
javascript)
+ javascript = "all_headers=" + json.dumps(self._metadata) + ";"
+ self.add_js_chunks(javascript)
def metadata_get_fields(self, method):
return self._metadata[method]['column'].sort()
def metadata_get_fields(self, method):
return self._metadata[method]['column'].sort()
diff --git
a/engine/static/js/plugin.js
b/engine/static/js/plugin.js
index
709421e
..
76683d1
100644
(file)
--- a/
engine/static/js/plugin.js
+++ b/
engine/static/js/plugin.js
@@
-1,10
+1,10
@@
function getMetadata(){
function getMetadata(){
- return
all_headers
;
+ return
MANIFOLD_METADATA
;
}
// returns all fields of a given method
function getMetadata_fields(method){
var result=new Array();
}
// returns all fields of a given method
function getMetadata_fields(method){
var result=new Array();
- jQuery.each(
all_headers
, function(m,obj){
+ jQuery.each(
MANIFOLD_METADATA
, function(m,obj){
if(m==method){
jQuery.each(obj['column'], function(i,f){
result.push(f);
if(m==method){
jQuery.each(obj['column'], function(i,f){
result.push(f);
@@
-18,9
+18,8
@@
function getMetadata_fields(method){
}
// returns all properties of a given field
function getMetadata_field(method, field){
}
// returns all properties of a given field
function getMetadata_field(method, field){
- //console.log(all_headers);
var result=new Array();
var result=new Array();
- jQuery.each(
all_headers
, function(m,obj){
+ jQuery.each(
MANIFOLD_METADATA
, function(m,obj){
if(m==method){
jQuery.each(obj['column'], function(i,f){
if(f['column']==field){
if(m==method){
jQuery.each(obj['column'], function(i,f){
if(f['column']==field){
@@
-35,9
+34,8
@@
function getMetadata_field(method, field){
}
// returns the value of a property from a field within a method (type of object : resource,node,lease,slice...)
function getMetadata_property(method, field, property){
}
// returns the value of a property from a field within a method (type of object : resource,node,lease,slice...)
function getMetadata_property(method, field, property){
- //console.log(all_headers);
var result=null;
var result=null;
- jQuery.each(
all_headers
, function(m,obj){
+ jQuery.each(
MANIFOLD_METADATA
, function(m,obj){
if(m==method){
jQuery.each(obj['column'], function(i,f){
if(f['column']==field){
if(m==method){
jQuery.each(obj['column'], function(i,f){
if(f['column']==field){
@@
-49,6
+47,4
@@
function getMetadata_property(method, field, property){
}
});
return result;
}
});
return result;
- //all_headers[method]['column']
- //[field][]
}
}
diff --git
a/plugins/quickfilter.py
b/plugins/quickfilter.py
index
77929d7
..
b7777e4
100644
(file)
--- a/
plugins/quickfilter.py
+++ b/
plugins/quickfilter.py
@@
-6,7
+6,7
@@
class QuickFilter (Plugin) :
Plugin.__init__ (self, **settings)
self.list=list
self.with_datatables = with_datatables
Plugin.__init__ (self, **settings)
self.list=list
self.with_datatables = with_datatables
-
+ self.page.expose_js_metadata()
def title (self) : return "Title for Quick "
def title (self) : return "Title for Quick "
diff --git
a/plugins/static/js/quickfilter.js
b/plugins/static/js/quickfilter.js
index
b14efe1
..
7402b7b
100644
(file)
--- a/
plugins/static/js/quickfilter.js
+++ b/
plugins/static/js/quickfilter.js
@@
-152,7
+152,7
@@
console.log(filter[0]);
allowedValues=getMetadata_property('resource', filter[0], 'allowed_values');
if (allowedValues!='' && allowedValues!="N/A") {
console.log(filter[0]);
allowedValues=getMetadata_property('resource', filter[0], 'allowed_values');
if (allowedValues!='' && allowedValues!="N/A") {
- //if(
all_headers
[filter[0]]['allowed_values']!=''){
+ //if(
MANIFOLD_METADATA
[filter[0]]['allowed_values']!=''){
jQuery('#QuickFilter_select_field').val("#");
jQuery('#QuickFilter_select_value').children().remove().end();
jQuery('#QuickFilter_select_value_container').hide();
jQuery('#QuickFilter_select_field').val("#");
jQuery('#QuickFilter_select_value').children().remove().end();
jQuery('#QuickFilter_select_value_container').hide();