+manifold_async_debug=false;
+
// Helper functions for asynchronous requests
var api_url = '/manifold/api/json/'
-var api_render_url = '/manifold/render/json'
-
-function manifold_array_size(obj) {
- var size = 0, key;
- for (key in obj) {
- if (obj.hasOwnProperty(key)) size++;
- }
- return size;
-};
// Executes all async. queries contained in manifold_async_query_array, which is
// an array of hash (action, method, ts, filter, fields)
//
function manifold_async_exec(arr)
{
- console.log('manifold_async_exec length='+ arr.length);
+ if (manifold_async_debug) console.log('manifold_async_exec length='+ arr.length);
// start spinners
// xxx todo - I don't have the spinner jquery plugin yet
// jQuery('.loading').spin();
// Loop through query array and issue XML/RPC queries
jQuery.each(arr, function(index, elt) {
- console.log ('sending POST on ' + api_url + " iterating on " + elt);
- jQuery.post(api_url, {'query': elt.query.to_hash()}, manifold_async_success_closure(elt.query, elt.id));
+ hash=elt.query.to_hash();
+ if (manifold_async_debug) console.log ('sending POST on ' + api_url + " iterating on " + hash);
+ jQuery.post(api_url, {'query': hash}, manifold_async_success_closure(elt.query, elt.id));
})
}
return out;
}
-function manifold_async_render_list(data, method, is_cached) {
- // we suppose we only have one column, or we need more precisions
- var col = [];
- if (manifold_array_size(data[0]) == 1) {
- for (var k in data[0]) {
- key = k;
- value = k;
- }
- } else {
- for (var k in data[0]) {
- if (k.substr(-4) == '_hrn') {
- key = k;
- } else {
- value = k;
- }
- }
- }
- var out = manifold_html_ul(data, key, value, key, method, is_cached);
- var element = '#manifold__list__' + key + '__' + value;
- jQuery(element).html(out);
- // FIXME spinners
- //onObjectAvailable('Spinners', function(){ Spinners.get(element).remove(); }, this, true);
- jQuery('.loading').spin();
-}
-
-
-
function manifold_update_template(data)
{
jQuery.each(data, function(key, value) {
}
}
-function __old__manifold_async_render_success(data, query) {
- if (data) {
-
- // We loop through all the fields to update the corresponding
- // locations in the page
- if (typeof(data[0].error) != 'undefined') {
- manifold_async_error(data[0].error);
- }
-
- /* Publish an update announce */
- jQuery.publish("/rendering/changed", [data, query]);
-
- // Is there a linked query ?
- if ((query.done == 'now') && (query.ts == 'latest')) {
- var new_query = [query_json.replace("latest", "now")];
- manifold_async_exec(new_query);
- }
- }
-}
-
//http://stackoverflow.com/questions/5100539/django-csrf-check-failing-with-an-ajax-post-request
//make sure to expose csrf in our outcoming ajax/post requests
$.ajaxSetup({
* License: GPLv3
*/
+simplelist_debug=false;
+
(function($){
var methods = {
init : function( options ) {
if ( ! data ) {
/* Subscribe to query updates */
var url='/results/' + options.query_uuid + '/changed';
- $.subscribe(url, {instance: this}, update_list);
- window.console.log('subscribing to ' + url);
+ $.subscribe(url, {instance: $this}, update_list);
+ if (simplelist_debug) window.console.log('subscribing to ' + url);
$this.data('SimpleList', {options: options, target : this, SimpleList : SimpleList});
}
});
};
/* Private methods */
-
function update_list(e, rows) {
if (rows.length == 0) {
e.data.instance.html('No result !');
}
options = e.data.instance.data().SimpleList.options;
is_cached = options.query.ts != 'now' ? true : false;
- e.data.instance.html(myslice_html_ul(rows, options.key, options.value, is_cached)+"<br/>");
+ html_code=myslice_html_ul(rows, options.key, options.value, is_cached)+"<br/>";
+ e.data.instance.html(html_code);
}
+ function myslice_html_ul(data, key, value, is_cached) {
+ var out = "<ul>";
+ for (var i = 0; i < data.length; i++) {
+ out += myslice_html_li(key, data[i][value], is_cached);
+ //out += myslice_html_li(key, myslice_html_a(data[i][key], data[i][value], key), is_cached);
+ }
+ out += "</ul>";
+ return out;
+ }
+
function myslice_html_li(type, value, is_cached) {
var cached = '';
//if (is_cached)
// cached='<div class="cache"><span><b>Cached information from the database</b><br/>Timestamp: XX/XX/XX XX:XX:XX<br/><br/><i>Refresh in progress...</i></span></div>';
if (type == 'slice_hrn') {
- return "<li class='icn icn-play'><a href='/view/slice/" + value + "'>" + value + cached + "</a></li>";
+ return "<li class='icn icn-play'><a href='/slice/" + value + "'>" + value + cached + "</a></li>";
} else if (type == 'network_hrn') {
return "<li class='icn icn-play'>" + value + cached + "</li>";
} else {
}
}
- function myslice_html_ul(data, key, value, is_cached) {
- var out = "<ul>";
- for (var i = 0; i < data.length; i++) {
- out += myslice_html_li(key, data[i][value], is_cached);
- //out += myslice_html_li(key, myslice_html_a(data[i][key], data[i][value], key), is_cached);
- }
- out += "</ul>";
- return out;
- }
-
})( jQuery );