I thought about something similar... I could set the check to delete to hidden and revert back to unhidden just before submit.
Richard On Tue, Nov 13, 2012 at 5:32 PM, Paolo Caruccio <[email protected]>wrote: > Please try with: > > delChkbx = form.element('tr', _id='delete_record__row') > delChkbx['_style'] = "position:absolute;left:-99999px;" > > > In my previous solution please set deletable=False in the form declaration. > > > Il giorno martedì 13 novembre 2012 23:11:48 UTC+1, Richard ha scritto: >> >> Hello Paolo, >> >> So far I have this: >> >> form.add_button(T('Delete'), '#', _class='btn-small btn-danger') >> delete_confirmation = T('Are you sure you want to delete this >> record?') >> form.element('input[value='+T(**'Delete')+']')['_onclick'] = >> "if (confirm('%s')) { jQuery('input[type=checkbox].**delete').attr('checked', >> 'checked'); jQuery('form').submit(); }" % delete_confirmation >> >> That work just fine, but I would avoid to show the checkbox check to >> delete... >> >> I will read carfully what you propose. >> >> Thanks >> >> Richard >> >> On Tue, Nov 13, 2012 at 4:53 PM, Paolo Caruccio <[email protected]>wrote: >> >>> a possible solution >>> >>> # controller >>> def update_record(): >>> form = crud.update(db.table, request.args(0)) >>> >>> delete_confirmation = T('Are you sure you want to delete this >>> record?') >>> >>> delBtn = A('Delete', _href=URL('delete_record', >>> args=['table', request.args(0)]), >>> _message=delete_confirmation, >>> _class='btn btn-small btn-danger', >>> _id='delBtn' >>> ) >>> form.element('input', _type='submit', replace=lambda me: CAT(me,delBtn >>> )) >>> return dict(form=form) >>> >>> def delete_record(): >>> tablename = request.args(0) >>> rec_id = request.args(1) >>> crud.delete(db[tablename], rec_id, >>> next=URL('select_table'), message=T( >>> 'Deleted')) >>> >>> >>> # view: 'update_record.html' >>> >>> >>> {{extend 'layout.html'}} >>> >>> >>> {{=form}} >>> >>> >>> <script type="text/javascript"> >>> $(document).ready(function() { >>> $('#delBtn').click(function(e**) { >>> e.preventDefault(); >>> btn = $(this); >>> thisHref = btn.attr('href'); >>> msg = btn.attr('message'); >>> if(confirm(msg)){ >>> window.location = thisHref; >>> } >>> }); >>> }) >>> </script> >>> >>> >>> Il giorno martedì 13 novembre 2012 21:26:08 UTC+1, Richard ha scritto: >>> >>>> Hello, >>>> >>>> I would like to replace the way web2py allow the deletion of a record. >>>> Instead of the check to delete then confirm then submit... I would add a >>>> delete buttton on which is attached a confirmation message onclick then >>>> when the confirmation is confirmed the record is deleted. >>>> >>>> Actually I had this : >>>> >>>> form = crud.update(db.table, record) >>>> form.add_button(T('Delete'), '#', _class='btn-small >>>> btn-danger') >>>> delete_confirmation = T('Are you sure you want to delete >>>> this record?') >>>> try: >>>> >>>> form.element('input[value='+T(****'Delete')+']')['_onclick'] >>>> = "return confirm ('%s')" % delete_confirmation >>>> except: >>>> pass >>>> >>>> What I miss is how to actually set form.deleted=true as said in the >>>> book (http://web2py.com/books/**defau**lt/chapter/29/07#SQLFORM-**and-* >>>> *insert/update/delete<http://web2py.com/books/default/chapter/29/07#SQLFORM-and-insert/update/delete> >>>> )... >>>> >>>> I think I need a bit of JS, that detect the confirmation and will >>>> submit the form. >>>> >>>> Am I on the right track? >>>> >>>> Richard >>>> >>>> >>>> -- >>> >>> >>> >>> >> >> -- > > > > --

