'auth',
'engine',
'plugins',
- 'slice',
+ 'trash',
# Uncomment the next line to enable the admin:
# 'django.contrib.admin',
# Uncomment the next line to enable admin documentation:
env={}
header=getattr(self,'header',None)
if header: env['header']=header
+ env['with_datatables']= "yes" if self.with_datatables else ""
return env
def requirements (self):
* License: GPLv3
*/
-simplelist_debug=false;
+simplelist_debug=true;
(function($){
var methods = {
/* Subscribe to query updates */
var channel='/results/' + options.query_uuid + '/changed';
/* passing $this as 2nd arg: callbacks will retrieve $this as e.data */
- $.subscribe(channel, $this, update_list);
+ $.subscribe(channel, $this, update_table);
if (simplelist_debug) window.console.log('subscribing to ' + channel);
$this.data('SimpleList', {options: options, SimpleList : SimpleList});
}
};
/* Private methods */
- function update_list(e, rows) {
+ function update_table(e, rows) {
// e.data is what we passed in second argument to subscribe
+ // so here it is the jquery object attached to the plugin <div>
var $this=e.data;
// locate the <tbody>, expected layout being
// <div class='plugin'> <table> <thead /> <tbody /tbody> </table> </div>
html_code=myslice_html_tbody(rows, options.key, options.value, is_cached);
// locate the tbody from the template, set its text
$tbody.html(html_code);
- // clear the spinning wheel
- var $elt = e.data;
- if (simplelist_debug) console.log("about to unspin with elt #" + $elt.attr('id') + " class " + $elt.attr('class'));
- $elt.closest('.need-spin').spin(false);
+
+ // clear the spinning wheel: look up an ancestor that has the need-spin class
+ $this.closest('.need-spin').spin(false);
+
+ // in case we run in datatables mode
+ // xxx this is not working yet
+ // http://datatables.net/forums/discussion/14556/can039t-get-my-table-to-refresh-properly#Item_1
+ // http://live.datatables.net/ufihuc/2/edit#javascript,html
+ // most likely when using datatables we'll have to change the contents using some other way..
+ var datatables_table=$this.find("table.with-datatables");
+ if (simplelist_debug) console.log ("running fnDraw() on " + datatables_table.length + " items");
+ // only try this if needed as datatables might not be loaded at all
+ if (datatables_table.length >0) datatables_table.dataTable().fnDraw();
+
}
function myslice_html_tbody(data, key, value, is_cached) {
}
function myslice_html_tr(key, value,is_cached) {
- var cached = is_cached ? "(cached)" : "";
+// could not understand what sense this 'cache' stuff could actually make
+// var cached = is_cached ? "(cached)" : "";
+ var cached = "";
if (key == 'slice_hrn') {
return "<tr><td class='simplelist'><i class='icon-play-circle'></i><a href='/slice/" + value + "'>" + value + cached + "</a></td></tr>";
} else if (key == 'network_hrn') {
+++ /dev/null
-from django.db import models
-
-# Create your models here.
+++ /dev/null
-"""
-This file demonstrates writing tests using the unittest module. These will pass
-when you run "manage.py test".
-
-Replace this with more appropriate tests for your application.
-"""
-
-from django.test import TestCase
-
-
-class SimpleTest(TestCase):
- def test_basic_addition(self):
- """
- Tests that 1 + 1 always equals 2.
- """
- self.assertEqual(1 + 1, 2)
pluginset=pluginset,
title='Asynchroneous SliceList',
header='slices list',
- with_datatables=True,
+ with_datatables=False,
toggled=True,
- # this is required for the javascript code
+ # this is the query at the core of the slice list
query=slices_query,
-# key='slice_hrn',
-# value='slice_hrn',
)
# variables that will get passed to the view-plugin.html template
# so we can sho who is logged
template_env [ 'username' ] = the_user (request)
+ ##########
+ # lacks a/href to /slice/%s
+ related_plugin = SliceList (
+ pluginset=pluginset,
+ title='Same request, other layout',
+ domid='sidelist',
+ with_datatables=True,
+ header='paginated slices',
+ # share the query
+ query=slices_query,
+ )
+ # likewise but on the side view
+ template_env [ 'content_related' ] = related_plugin.render (request)
+
+ # add our own css in the mix
+ pluginset.add_css_files ( 'css/dashboard.css')
+
+ # don't forget to run the requests
pluginset.exec_queue_asynchroneously ()
+ # xxx create another plugin with the same query and a different layout (with_datatables)
+ # show that it worls as expected, one single api call to backend and 2 refreshed views
+
# the prelude object in pluginset contains a summary of the requirements() for all plugins
# define {js,css}_{files,chunks}
prelude_env = pluginset.template_env()
template_env [ 'content_main' ] = main_plugin.render(request)
##########
- # lacks a/href to /slice/%s
related_plugin = StaticList (pluginset=pluginset,
title='SliceList plugin',domid='slicelist1',
with_datatables='yes',
template_env [ 'topmenu_items' ] = topmenu_items('plugin', request)
template_env [ 'username' ] = the_user (request)
+ # we don't have anythong asynchroneous, but that doesn't hurt...
pluginset.exec_queue_asynchroneously ()
# the prelude object in pluginset contains a summary of the requirements() for all plugins