41 nodeid, xml_escape(dumps(eid))) |
41 nodeid, xml_escape(dumps(eid))) |
42 return u'[<a class="handle" href="%s" id="handle%s">%s</a>]' % ( |
42 return u'[<a class="handle" href="%s" id="handle%s">%s</a>]' % ( |
43 js, nodeid, label) |
43 js, nodeid, label) |
44 |
44 |
45 |
45 |
46 class DeleteConfForm(FormViewMixIn, EntityView): |
46 class DeleteConfForm(forms.CompositeForm): |
|
47 id = 'deleteconf' |
|
48 __select__ = non_final_entity() |
|
49 |
|
50 domid = 'deleteconf' |
|
51 copy_nav_params = True |
|
52 form_buttons = [Button(stdmsgs.YES, cwaction='delete'), |
|
53 Button(stdmsgs.NO, cwaction='cancel')] |
|
54 @property |
|
55 def action(self): |
|
56 return self.build_url('edit') |
|
57 |
|
58 def __init__(self, *args, **kwargs): |
|
59 super(DeleteConfForm, self).__init__(*args, **kwargs) |
|
60 done = set() |
|
61 for entity in self.rset.entities(): |
|
62 if entity.eid in done: |
|
63 continue |
|
64 done.add(entity.eid) |
|
65 subform = self.vreg.select('forms', 'base', self.req, entity=entity, |
|
66 mainform=False) |
|
67 self.form_add_subform(subform) |
|
68 |
|
69 |
|
70 class DeleteConfFormView(FormViewMixIn, EntityView): |
47 """form used to confirm deletion of some entities""" |
71 """form used to confirm deletion of some entities""" |
48 id = 'deleteconf' |
72 id = 'deleteconf' |
49 title = _('delete') |
73 title = _('delete') |
50 # don't use navigation, all entities asked to be deleted should be displayed |
74 # don't use navigation, all entities asked to be deleted should be displayed |
51 # else we will only delete the displayed page |
75 # else we will only delete the displayed page |
57 _ = req._ |
81 _ = req._ |
58 w(u'<script type="text/javascript">updateMessage(\'%s\');</script>\n' |
82 w(u'<script type="text/javascript">updateMessage(\'%s\');</script>\n' |
59 % _('this action is not reversible!')) |
83 % _('this action is not reversible!')) |
60 # XXX above message should have style of a warning |
84 # XXX above message should have style of a warning |
61 w(u'<h4>%s</h4>\n' % _('Do you want to delete the following element(s) ?')) |
85 w(u'<h4>%s</h4>\n' % _('Do you want to delete the following element(s) ?')) |
62 form = self.vreg.select('forms', 'composite', req, domid='deleteconf', |
86 form = self.vreg.select('forms', 'composite', req, onsubmit=onsubmit) |
63 copy_nav_params=True, |
|
64 action=self.build_url('edit'), onsubmit=onsubmit, |
|
65 form_buttons=[Button(stdmsgs.YES, cwaction='delete'), |
|
66 Button(stdmsgs.NO, cwaction='cancel')]) |
|
67 done = set() |
|
68 w(u'<ul>\n') |
87 w(u'<ul>\n') |
69 for entity in self.rset.entities(): |
88 for entity in self.rset.entities(): |
70 if entity.eid in done: |
|
71 continue |
|
72 done.add(entity.eid) |
|
73 subform = self.vreg.select('forms', 'base', req, entity=entity, |
|
74 mainform=False) |
|
75 form.form_add_subform(subform) |
|
76 # don't use outofcontext view or any other that may contain inline edition form |
89 # don't use outofcontext view or any other that may contain inline edition form |
77 w(u'<li>%s</li>' % tags.a(entity.view('textoutofcontext'), |
90 w(u'<li>%s</li>' % tags.a(entity.view('textoutofcontext'), |
78 href=entity.absolute_url())) |
91 href=entity.absolute_url())) |
79 w(u'</ul>\n') |
92 w(u'</ul>\n') |
80 w(form.form_render()) |
93 w(form.form_render()) |