diff --git a/VERSION b/VERSION index 42a2f86f..cee3f88c 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -Version 2.00.0 (2012-07-26 08:12:26) dev +Version 2.00.0 (2012-07-26 09:41:33) dev diff --git a/applications/admin/controllers/default.py b/applications/admin/controllers/default.py index e39e02e8..341f1ddc 100644 --- a/applications/admin/controllers/default.py +++ b/applications/admin/controllers/default.py @@ -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') diff --git a/applications/admin/views/default/delete.html b/applications/admin/views/default/delete.html index 2e53ab7e..d0f86f44 100644 --- a/applications/admin/views/default/delete.html +++ b/applications/admin/views/default/delete.html @@ -4,6 +4,6 @@

{{=T('Are you sure you want to delete file "%s"?', filename)}}

-

{{=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")}}

+

{{=dialog}}

diff --git a/gluon/html.py b/gluon/html.py index 40cf5a17..50b61cd0 100644 --- a/gluon/html.py +++ b/gluon/html.py @@ -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):