# Basic idea from : https://mail.google.com/mail/?shva=1#search/delete+button/139d8ffdbb78d345 form.element(_id='delete_record__row')['_class']='hidden' 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('#delete_record__row').removeAttr('class').removeAttr('style'); jQuery('form').submit(); }" % delete_confirmation
Finally... A bit annoying to have to keep the check to delete though Richard On Tue, Nov 13, 2012 at 6:46 PM, Richard Vézina <ml.richard.vez...@gmail.com > wrote: > 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 < > paolo.carucci...@gmail.com> 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 >>> <paolo.ca...@gmail.com>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 >>>>> >>>>> >>>>> -- >>>> >>>> >>>> >>>> >>> >>> -- >> >> >> >> > > --