first step for drag and drop reorderable links

This commit is contained in:
Frédéric Péters 2006-10-10 10:07:18 +00:00
parent 2080e42cce
commit 98432972dc
1 changed files with 25 additions and 4 deletions

View File

@ -73,11 +73,12 @@ class LinksFormPage(FormPage):
return LinksFormStatusPage(self.formdef, filled)
class LinksDirectory(Directory):
_q_exports = ['', 'new', 'listing']
_q_exports = ['', 'new', 'listing', 'update_order']
label = N_('Links')
def _q_index [html] (self):
html_top('links', _('Links'))
html_top('links', _('Links'),
scripts = ['/js/prototype.js', '/js/scriptaculous/scriptaculous.js'] )
get_response().breadcrumb.append(('links', _('Links')))
'<p><a href="new">%s</a></p>' % _('New')
try:
@ -85,10 +86,10 @@ class LinksDirectory(Directory):
except:
links = []
'<ul class="biglist">'
'<ul class="biglist" id="links-list">'
for l in links:
link_id = l.id
'<li>'
'<li id="fieldlistitem_%s">' % link_id
'<strong class="label">%s</strong>' % l.get_field_value('Titre')
'<p class="details">'
l.get_field_value('URL')
@ -99,6 +100,26 @@ class LinksDirectory(Directory):
command_icon('%s/delete' % link_id, 'remove')
'</p></li>'
'</ul>'
'''<script type="text/javascript">
// <![CDATA[
Sortable.create('links-list', {dropOnEmpty:true,constraint:false,
containement:["links-list"],
onUpdate:function(){
new Ajax.Request('update_order', {
method:'post',
parameters:Sortable.serialize('links-list'),
onComplete:function(request){new Effect.Highlight('links-list',{});},
evalScripts:true,
asynchronous:true})}});\n
// ]]>
</script>'''
def update_order(self):
request = get_request()
new_order = request.form['links-list[]']
print new_order
return 'ok'
def new(self):
html_top('links', title = 'XX')