Ticket #1114: wiki_delete_version_range-r3430.patch
| File wiki_delete_version_range-r3430.patch, 4.8 kB (added by cboos, 2 years ago) |
|---|
-
trac/wiki/web_ui.py
193 193 if req.args.has_key('cancel'): 194 194 req.redirect(req.href.wiki(page.name)) 195 195 196 version = None 197 if req.args.has_key('version'): 198 version = int(req.args.get('version', 0)) 196 version = int(req.args.get('version', 0)) or None 197 old_version = int(req.args.get('old_version', 0)) or version 199 198 200 page.delete(version, db) 199 if version and old_version and version > old_version: 200 # delete from `old_version` exclusive to `version` inclusive: 201 for v in range(old_version, version): 202 page.delete(v + 1, db) 203 else: 204 # only delete that `version`, or the whole page if `None` 205 page.delete(version, db) 201 206 db.commit() 202 207 203 208 if not page.exists: … … 241 246 version = None 242 247 if req.args.has_key('delete_version'): 243 248 version = int(req.args.get('version', 0)) 249 old_version = int(req.args.get('old_version', 0)) or version 244 250 245 251 self._set_title(req, page, 'delete') 246 252 req.hdf['wiki'] = {'mode': 'delete'} 247 253 if version is not None: 248 req.hdf['wiki.version'] = version249 254 num_versions = 0 250 for change in page.get_history(): 251 num_versions += 1; 252 if num_versions > 1: 253 break 254 req.hdf['wiki.only_version'] = num_versions == 1 255 for v,t,author,comment,ipnr in page.get_history(): 256 if v >= old_version: 257 num_versions += 1; 258 if num_versions > 1: 259 break 260 req.hdf['wiki'] = {'version': version, 'old_version': old_version, 261 'only_version': num_versions == 1} 255 262 256 263 def _render_diff(self, req, db, page): 257 264 req.perm.assert_permission('WIKI_VIEW') -
templates/wiki.cs
41 41 42 42 <div id="content" class="wiki"> 43 43 44 <?cs if wiki.action == "delete" ?> 45 <h1>Delete <?cs 46 if:?wiki.version ?>version <?cs var:wiki.version ?> of <?cs /if ?><a href="<?cs 44 <?cs if wiki.action == "delete" ?><?cs 45 if:wiki.version - wiki.old_version > 1 ?><?cs 46 set:first_version = wiki.old_version + 1 ?><?cs 47 set:version_range = "versions "+first_version+" to "+wiki.version+" of " ?><?cs 48 set:delete_what = "those versions" ?><?cs 49 elif:wiki.version ?><?cs 50 set:version_range = "version "+wiki.version+" of " ?><?cs 51 set:delete_what = "this version" ?><?cs 52 else ?><?cs 53 set:version_range = "" ?><?cs 54 set:delete_what = "page" ?><?cs 55 /if ?> 56 <h1>Delete <?cs var:version_range ?><a href="<?cs 47 57 var:wiki.current_href ?>"><?cs var:wiki.page_name ?></a></h1> 48 58 <form action="<?cs var:wiki.current_href ?>" method="post"> 49 59 <input type="hidden" name="action" value="delete" /> 50 60 <p><strong>Are you sure you want to <?cs 51 if:!?wiki.version ?>completely <?cs /if ?>delete <?cs 52 if:?wiki.version ?>version <?cs var:wiki.version ?> of <?cs 53 /if ?>this page?</strong><br /><?cs 61 if:!?wiki.version ?>completely <?cs 62 /if ?>delete <?cs var:version_range ?>this page?</strong><br /><?cs 54 63 if:wiki.only_version ?> 55 64 This is the only version the page, so the page will be removed 56 65 completely!<?cs 57 66 /if ?><?cs 58 67 if:?wiki.version ?> 59 68 <input type="hidden" name="version" value="<?cs var:wiki.version ?>" /><?cs 69 /if ?><?cs 70 if:wiki.old_version ?> 71 <input type="hidden" name="old_version" value="<?cs var:wiki.old_version ?>" /><?cs 60 72 /if ?> 61 73 This is an irreversible operation.</p> 62 74 <div class="buttons"> 63 75 <input type="submit" name="cancel" value="Cancel" /> 64 <input type="submit" value="Delete <?cs 65 if:?wiki.version ?>this version<?cs else ?>page<?cs /if ?>" /> 76 <input type="submit" value="Delete <?cs var:delete_what ?>" /> 66 77 </div> 67 78 </form> 68 79 … … 169 180 </table><?cs 170 181 /if ?> 171 182 </li> 172 </ul> 183 </ul><?cs 184 if:trac.acl.WIKI_DELETE ?> 185 <form method="get" action="<?cs var:wiki.current_href ?>"> 186 <input type="hidden" name="action" value="delete" /> 187 <input type="hidden" name="version" value="<?cs var:wiki.version ?>" /> 188 <input type="hidden" name="old_version" value="<?cs var:wiki.old_version ?>" /> 189 <input type="submit" name="delete_version" value="Delete <?cs 190 if:wiki.version - wiki.old_version > 1 ?> version <?cs 191 var:wiki.old_version+1 ?> to <?cs 192 /if ?>version <?cs var:wiki.version ?>" /> 193 </form><?cs 194 /if ?> 173 195 </div> 174 196 175 197 <?cs elif wiki.action == "history" ?>
