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
>>>>
>>>>
>>>>  --
>>>
>>>
>>>
>>>
>>
>>  --
>
>
>
>

-- 



Reply via email to