first step for drag and drop reorderable links
This commit is contained in:
parent
2080e42cce
commit
98432972dc
|
@ -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')
|
||||
|
|
Reference in New Issue