from plugins.tabs import Tabs
from plugins.simplelist import SimpleList
from plugins.slicelist import SliceList
+from plugins.quickfilter import QuickFilter
from plugins.raw import Raw
from myslice.viewutils import topmenu_items, the_user
-from myslice.viewutils import hard_wired_slice_names, hard_wired_list, lorem_p, lorem
+from myslice.viewutils import hard_wired_slice_names, hard_wired_list, lorem_p, lorem, quickfilter_criterias
@login_required
def test_plugin_view (request):
togglable=False,html=lorem) ]),
SimpleList (title='SimpleList with slice names',
list=hard_wired_slice_names,
- ) ] )
+ ),
+ QuickFilter (list=quickfilter_criterias,
+ title='QuickFilter in main content') ] )
# define 'content_main' to the template engine
template_env [ 'content_main' ] = main_plugin.render(request)
hard_wired_list.append("")
hard_wired_list.append("OTOH and IMHO, there should be two separate and explicit subclasses of SimpleList for slices or testbeds")
+quickfilter_criterias = [{'key': 'Slice', 'values': ['slice1','slice2']}, \
+ {'key': 'Type', 'values': ['type1','type2']}, \
+ {'key': 'Network', 'values': ['net1','net2']}]
--- /dev/null
+from engine.plugin import Plugin
+
+class QuickFilter (Plugin) :
+
+ def __init__ (self, list=[], with_datatables=False, **settings):
+ Plugin.__init__ (self, **settings)
+ self.list=[{'key': 'Slice', 'values': ['slice1','slice2']}, \
+ {'key': 'Type', 'values': ['type1','type2']}, \
+ {'key': 'Network', 'values': ['net1','net2']}]
+ self.add_to_settings ('list')
+ self.with_datatables = with_datatables
+ self.add_to_settings ('with_datatables')
+ self.criterias = [{'key': 'Slice', 'values': ['slice1','slice2']}, \
+ {'key': 'Type', 'values': ['type1','type2']}, \
+ {'key': 'Network', 'values': ['net1','net2']}]
+
+ def title (self) : return "Title for Quick "
+
+ def template_file (self): return "quickfilter.html"
+
+ def requirements (self):
+ reqs = { 'js_files' : [ "js/quickfilter.js" ],
+ 'css_files': [ "css/quickfilter.css" ],
+ }
+ if self.with_datatables:
+ reqs['js_files'].append ("datatables/js/dataTables.js")
+ reqs['js_files'].append ("js/with-datatables.js")
+ print self.classname(),reqs
+ return reqs
+
--- /dev/null
+
+<div id ='quick_filters'>
+<table class='filters'>
+ <tr>
+ {% for criteria in list %}
+ <th class='top'>{{criteria.key}}</th>
+ {% endfor %}
+ <th class="top">Extra fields</th>
+ </tr>
+ <tr>
+ {% for criteria in list %}
+ <td class='top'>
+ <select id='{{uid}}-select_{{criteria.key}}' class='topselect QuickFilter_select'>
+ <option value=''>All</option>
+ {% for item in criteria.values%}
+ <option value=''>{{item}}</option>
+ {% endfor %}
+ </select>
+ </td>
+ {% endfor %}
+ <td class='top'>
+ <select id='{{uid}}-select_extra' class='topselect QuickFilter_select'>
+ <option value=''>All</option>
+ </select>
+ </td>
+ </tr>
+</table>
+</div>
\ No newline at end of file