FORM.dialog

This commit is contained in:
mdipierro
2012-07-26 09:41:39 -05:00
parent 8cb1fb2564
commit a13ba1bc63
4 changed files with 49 additions and 3 deletions
+1 -1
View File
@@ -1 +1 @@
Version 2.00.0 (2012-07-26 08:12:26) dev
Version 2.00.0 (2012-07-26 09:41:33) dev
+26
View File
@@ -403,6 +403,32 @@ def delete():
redirect(URL(sender, anchor=request.vars.id2))
return dict(filename=filename, sender=sender)
def delete():
""" Object delete handler """
app = get_app()
filename = '/'.join(request.args)
sender = request.vars.sender
if isinstance(sender, list): # ## fix a problem with Vista
sender = sender[0]
dialog = FORM.dialog(T('Delete'),
{T('Cancel'):URL(sender, anchor=request.vars.id)})
if dialog.accepted:
try:
full_path = apath(filename, r=request)
lineno = count_lines(open(full_path,'r').read())
os.unlink(full_path)
log_progress(app,'DELETE',filename,progress=-lineno)
session.flash = T('file "%(filename)s" deleted',
dict(filename=filename))
except Exception:
session.flash = T('unable to delete file "%(filename)s"',
dict(filename=filename))
redirect(URL(sender, anchor=request.vars.id2))
return dict(dialog=dialog,filename=filename)
def enable():
app = get_app()
filename = os.path.join(apath(app, r=request),'DISABLED')
+1 -1
View File
@@ -4,6 +4,6 @@
<div class="center">
<h2>{{=T('Are you sure you want to delete file "%s"?', filename)}}</h2>
<p>{{=FORM(INPUT(_type='submit',_name='nodelete',_value=T('Abort')),INPUT(_type='hidden',_name='sender',_value=sender), _class="inline")}}{{=FORM(INPUT(_type='submit',_name='delete',_value=T('Delete')),INPUT(_type='hidden',_name='sender',_value=sender), _class="inline")}}</p>
<p>{{=dialog}}</p>
</div>
+21 -1
View File
@@ -2024,8 +2024,28 @@ class FORM(DIV):
self.validate(**kwargs)
return self
REDIRECT_JS = "window.location='%s';return false"
def add_button(self,value,url,_class=None):
self[0][-1][1].append(INPUT(_type="button",_value=value,_onclick="window.location='%s';return false" % url,_class=_class))
self[0][-1][1].append(INPUT(_type="button",_value=value,_class=_class,
_onclick=self.REDIRECT_JS % url))
@staticmethod
def dialog(text='OK',buttons=None,hidden=None):
if not buttons: buttons = {}
if not hidden: hidden={}
inputs = [INPUT(_type='button',
_value=name,
_onclick=FORM.REDIRECT_JS % link) \
for name,link in buttons.items()]
inputs += [INPUT(_type='hidden',
_name=name,
_value=value)
for name,value in hidden.items()]
form = FORM(INPUT(_type='submit',_value=text),*inputs)
form.process()
return form
class BEAUTIFY(DIV):