29
29
filterfn = re.compile(ur"^%s/.*$" % re.escape(pagename), re.U).match
30
30
subpagenames = request.rootpage.getPageList(user='', exists=1, filter=filterfn)
31
31
self.subpages = [pagename for pagename in subpagenames if self.request.user.may.delete(pagename)]
33
self.show_redirect = request.cfg.show_rename_redirect
34
except AttributeError:
35
self.show_redirect = False
37
self.rename_redirect = int(self.request.form.get('rename_redirect', '0'))
39
self.rename_redirect = 0
41
33
def is_allowed(self):
42
34
may = self.request.user.may
53
45
""" Rename this page to "pagename" """
56
newpagename = form.get('newpagename', u'')
57
newpagename = wikiutil.normalize_pagename(newpagename, self.cfg)
58
comment = form.get('comment', u'')
48
newpagename = form.get('newpagename', [u''])[0]
49
newpagename = self.request.normalizePagename(newpagename)
50
comment = form.get('comment', [u''])[0]
59
51
comment = wikiutil.clean_input(comment)
61
rename_subpages = int(self.request.form.get('rename_subpages', '0'))
65
53
self.page = PageEditor(self.request, self.pagename)
66
54
success, msgs = self.page.renamePage(newpagename, comment)
73
if self.show_redirect and self.rename_redirect:
74
self.page = PageEditor(self.request, self.pagename)
75
self.page.saveText('#redirect %s' % newpagename, 0)
57
if 'rename_subpages' in form:
59
rename_subpages = int(form['rename_subpages'][0])
77
63
if rename_subpages and self.subpages:
78
64
for name in self.subpages:
79
65
self.page = PageEditor(self.request, name)
80
66
new_subpagename = name.replace(self.pagename, newpagename, 1)
81
67
success_i, msg = self.page.renamePage(new_subpagename, comment)
84
if self.show_redirect and self.rename_redirect and success_i:
85
self.page = PageEditor(self.request, name)
86
self.page.saveText('#redirect %s' % new_subpagename, 0)
87
msgs = ' '.join([msg for msg in msgs if msg])
68
msgs = "%s %s" % (msgs, msg)
89
70
self.newpagename = newpagename # keep there for finish
90
71
return success, msgs
92
73
def do_action_finish(self, success):
94
75
url = Page(self.request, self.newpagename).url(self.request)
95
self.request.http_redirect(url, code=301)
76
self.request.http_redirect(url)
97
79
self.render_msg(self.make_form(), "dialog")
99
81
def get_form_html(self, buttons_html):
103
redirect_label = _('Create redirect for renamed page(s)?')
105
subpages = ' '.join([wikiutil.escape(page) for page in self.subpages])
109
%(subpage_label)s<input type="checkbox" name="rename_subpages" value="1" %(subpages_checked)s>
112
<class="label"><subpage> %(subpage)s</subpage>
117
'subpages_checked': ('', 'checked')[self.request.args.get('subpages_checked', '0') == '1'],
118
'subpage_label': _('Rename all /subpages too?'),
121
redirect_label = _('Create redirect for renamed page?')
124
if self.show_redirect:
125
redirect_html = '<tr><dd>%(redirect_label)s<input type="checkbox" name="rename_redirect" value="1" %(redirect)s></dd></tr>' % {
126
'redirect': self.rename_redirect,
127
'redirect_label': redirect_label,
132
if self.show_redirect or self.subpages:
139
"subpages_html": subpages_html,
140
"redirect_html": redirect_html,
84
subpages = ' '.join(self.subpages)
88
'subpages_checked': ('', 'checked')[self.request.form.get('subpages_checked', ['0'])[0] == '1'],
89
'subpage_label': _('Rename all /subpages too?'),
90
'pagename': wikiutil.escape(self.pagename, True),
91
'newname_label': _("New name"),
92
'comment_label': _("Optional reason for the renaming"),
93
'buttons_html': buttons_html,
94
'querytext': _('Really rename this page?')
146
'querytext': _('Really rename this page?'),
147
'pagename': wikiutil.escape(self.pagename, True),
148
'newname_label': _("New name"),
149
'comment_label': _("Optional reason for the renaming"),
150
'buttons_html': buttons_html,
151
'options_html': options_html,
155
98
<strong>%(querytext)s</strong>
104
%(subpage_label)s<input type="checkbox" name="rename_subpages" value="1" %(subpages_checked)s>
107
<class="label"><subpage> %(subpage)s</subpage>
113
<td class="label"><label>%(newname_label)s</label></td>
115
<input type="text" name="newpagename" value="%(pagename)s" size="80">
119
<td class="label"><label>%(comment_label)s</label></td>
121
<input type="text" name="comment" size="80" maxlength="200">
135
'pagename': wikiutil.escape(self.pagename, True),
136
'newname_label': _("New name"),
137
'comment_label': _("Optional reason for the renaming"),
138
'buttons_html': buttons_html,
161
143
<td class="label"><label>%(newname_label)s</label></td>