Tags:
create new tag
view all tags

Feature Proposal: The rename topic operation to have option not to replace web internal references

Motivation

When you move a topic to a different web, links to other topics on the same web (e.g. TopicName) are updated to OldWeb.TopicName so that the links are kept working. There are times when you want to prevent this link adaptation from happening.

Let's assume that you are splitting a web into two webs as follows.

web-split.png

Also assume Mars* topics are linking each other and Jupiter* topics are linking each other but no inter-planetary links between Mars* and Jupiter*.

In the splitting, here's what happens.

  1. MarsPhobos is moved from Planets to Mars
    1. On Mars.MarsPhobos, links to MarsDeimos are changed to Planets.MarsDeimos
    2. On Planets.MarsDeimos, links to MarsPhobos are changed to Mars.MarsPhobos
  2. MarsDeimos is moved from Planets to Mars
    1. On Mars.MarsDeimos, links to Mars.Phobos are not changed because it's already fully qualified
    2. On Mars.MarsPhobos, links to Planets.MarsDeimos are changed to Mars.MarsDeimos

Both Mars.MarsPhobos and Mars.MarsDeimos end up having fully qualified links to Mars.MarsPhobos and Mars.MarsDeimos. Those links should be MarsPhobos and MarsDeimos.

Things get worse if you have thousands of webs and NoInAllPublicWebsOption is in effect (you cannot use "in all public webs" on "More topic actions" page because it would time out). The step 2.b doesn't happen.

To cope with this kind of situation, you may want to avoid link adaptation entirely. With link adaptation of topics referring to the moved topic, you have control (the check boxes on the rename page). But there is no option to prevent link adaptation on the moved topic from happening.

Description and Documentation

If disablefixlinks URL parameter is true when the rename script is called for a topic rename, in TWiki::UI::Manage::move(), TWiki::Render::replaceWebInternalReferences() is not called.

Since this feature is esoteric, the rename page doesn't show the checkbox for the disablefixlinks URL parameter by default. The checkbox is displayed only if DISABLEFIXLINKSCHECKBOX is 'on'.

Examples

Impact

Implementation

-- Contributors: HideyoImazu - 2012-11-08

Discussion

I see the need. I am concerned about the UI, and the complexity to explain it to the user.

I think a more intuitive way is a mass-move feature:

  • Show a flat checkbox list of all topics in a web, with "check all" and "uncheck all" buttons.
  • A selector of destination web.
  • On submit, all selected topics are moved logically as a set, not touching the inter-links, but fixing other links as needed.

See GlobalReplacePlugin for inspiration.

-- PeterThoeny - 2012-11-14

This topic is renamed because it was very long.

-- HideyoImazu - 2012-11-15

Ideally:

  • The rename script recognizes the bulk action
  • The rename script page given action=bulk parameter looks somewhat similar to the rename topic page
    • A link to rename?action=bulk page is placed on the "More topic action" page. The link title is "Move topics en masse"
    • It has a target web selection
    • All topics the user can rename are listed with a checkbox.
    • The topic list is accompanied with the "check all" and "uncheck all" buttons
  • When the "Move" button is clicked, all topics check are plainly moved to the destination web
    • success/failure of each move operation is displayed
  • "Copy topics en masse" feature is also provided (c.f. CopyScript)
This deserves a feature proposal in its own right.

Is it OK to implement noreplintrefs=on with a corresponding check box on the rename page? The "ideal" takes much more effort to implment than the original proposal.

-- HideyoImazu - 2012-11-15

For the last 4 years I try to improve the usability of TWiki. This additional checkbox in the "more topic action" screen or rename screen is confusing to users IMHO. As a compromise, how about adding a configure setting to enable this feature, and to show the checkbox only when enabled? Default would be disabled. What do you think?

-- PeterThoeny - 2012-11-21

I agree it would be confusing. So I'm fine making the checkbox not displayed by default.

What should be the preference variable to enable it? NOREPLINTREFSCHECKBOX?

-- HideyoImazu - 2012-11-22

The preference variable we agreed in the release meeting is now mentioned in the Description section. The URL parameter name is renamed to fit the preference variable name.

-- HideyoImazu - 2012-11-22

Accepted by release meeting at JerusalemReleaseMeeting2012x11x22: New NOWEBPREFIXONMOVECHECKBOX settings shows a "don't prefix topic with web name when topic is moved to another web" (or the like) checkbox.

-- PeterThoeny - 2012-11-22

I renamed this proposal from RenameTopicNoReplIntRefs to RenameTopicWithNoWebPrefix.

-- PeterThoeny - 2012-11-25

I've realized that %INCLUDE{...}% has the disablefixlinks parameter, which does the same thing. How about using the same parameter name and DISABLEFIXLINKSCHECKBOX ?

-- HideyoImazu - 2012-12-18

Good point, makes sense.

-- PeterThoeny - 2012-12-21

The proposal description is updated accordingly.

-- HideyoImazu - 2012-12-21

Topic attachments
I Attachment History Action Size Date Who Comment
PNGpng web-split.png r1 manage 13.6 K 2012-11-09 - 07:30 HideyoImazu  
Edit | Attach | Watch | Print version | History: r13 < r12 < r11 < r10 < r9 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r13 - 2013-02-18 - HideyoImazu
 
  • Learn about TWiki  
  • Download TWiki
This site is powered by the TWiki collaboration platform Powered by Perl Hosted by OICcam.com Ideas, requests, problems regarding TWiki? Send feedback. Ask community in the support forum.
Copyright © 1999-2026 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.